Linux学习笔记(11)-kill函数
明天开始学习kill函数的用法。
——————————————————————————————————————————————
kill函数可以用来向指定的进程发送一个指定的信号,在我的理解的来看,就是人为的创造一个中断。
该函数原形:int kill(pid_t pid,int sig);
其中pid为进程ID,sig为发送的信号。
这个函数超级简单,现在做个试验,首先创建一个父进程和子进程,然后父进程向子进程发送一个SIGINT信号,子进程给出一个回应。
#include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<errno.h> #include<string.h> #include<signal.h> void handler(int sig) { printf("获取到Ctrl+c信号!\n"); exit(0); } int main(void) { int pid; pid = fork(); if(pid < 0) { printf("进程创建出错:%d.\n",errno); exit(0); } else if(pid == 0) { printf("子进程创建成功,进程ID为:%d.\n",getpid()); signal(SIGINT,handler); while(1) { sleep(1); printf("通过!\n"); } } else { printf("这是父进程,进程ID为:%d.",getpid()); sleep(5); kill(pid,SIGINT); wait(NULL); printf("父进程退出!\n"); } return 0; }
首先创建一个子进程,改变当它收到SIGINT信号之后的处理,然后让他进入休眠,5秒后,父进程发送SIGINT信号……如果子进程收到信号,将会执行中断服务函数。
代码结果执行如下:
成功执行!
所有内容均为作者手打,转载不要钱,但请留言,并且著名链接和出处,谢谢合作!