Linux进程间通信的方式

signal函数用于传送信号给指定的进程

signal定义函数 void (*signal(int signum,void (*handler)(int)))(int)

signal函数会依参数signum指定的信号编号来设置该信号的处理函数,当指定的信号到达时就会跳转到参数handler指定的函数执行。

如果参数handler不是函数指针,则必须是下列两个常数之一。

SIG_IGN:忽略参数signum指定的信号

SIG_DFL:将参数signum指定的信号重设为核心预设的信号处理方式。

附加:

#include
#include
#include
#include


void myfunc(int sign)
{
    if(sign == SIGINT)
    {
        printf("hello world!\n");
    }
    if(sign == SIGQUIT)
    {
        printf("exit!\n");
 exit(1);
    }
}

int main()
{
    pid_t pid;
    int select;

    pid = fork();

    if(pid == 0)
    {
        signal(SIGINT,myfunc);
 signal(SIGQUIT,myfunc);
        pause();
    }
    if(pid > 0)
    {  
        scanf("%d",&select);
 if( select == 1)
 {
            kill(pid,SIGINT);
 }
 if(select == 2)
 {
     kill(pid,SIGQUIT);
 }
    }
}

你可能感兴趣的:(Linux)