C:通过kill发送信号

可以通过kill函数向其他进程发送信号:

#include

 #include

int kill(pid_t pid, int sig);

#include 
#include 
#include 
#include 
#include 
 
static int sig_done = 0;
 
void handleSig(int sig)
{
    printf("recv sig\n");
    sig_done = 1;
}
 
int main()
{
    pid_t pid;
    pid = fork();
    if(pid == 0)
    {   
        printf("in child\n");
        sleep(3);
        printf("child send sig\n");
        kill(getppid(), SIGINT);
        exit(0);
    }
    else
    {
        printf("in parent\n");
        signal(SIGINT, handleSig);
    }
    int n = 0;
    do{
        printf("sleep %d\n", ++n);
        sleep(1);
    }while(sig_done == 0);

    printf("sig_done=%d\n", sig_done);
    return 0;
}

 运行程序输出:

in parent
sleep 1
in child
sleep 2
sleep 3
child send sig
recv sig
sig_done=1

可以看到子进程通过kill函数向父进程发送了信号

你可能感兴趣的:(C/C++,c语言)