当前位置: 技术问答>linux和unix
linux 信号及信号处理
来源: 互联网 发布时间:2017-01-08
本文导语: /////////////////////////////////////////////////////////////////////////////////////////////// // 父进程和子进程进行通信 // sig.c #include #include #include #include #include // 信号处理函数 void handler(int signo) { switch(signo) {...
///////////////////////////////////////////////////////////////////////////////////////////////
// 父进程和子进程进行通信
// sig.c
#include
#include
#include
#include
#include
// 信号处理函数
void handler(int signo)
{
switch(signo)
{
case SIGUSR1:
printf("Parent: catch sigusr1n");
break;
case SIGUSR2:
printf("Child: catch sigusr2n");
break;
default:
printf("should not be heren");
break;
}
return;
}
// 主函数
int main(int argc, char* argv[])
{
pid_t ppid, cpid;
// 设置信号
if(signal(SIGUSR1, handler) == SIG_ERR)
{
perror("can't set handler for sigusr1n");
exit(1);
}
if(signal(SIGUSR2, handler) == SIG_ERR)
{
perror("can't set handler for sigusr2n");
exit(1);
}
ppid = getpid();
if (cpid = fork()
// 父进程和子进程进行通信
// sig.c
#include
#include
#include
#include
#include
// 信号处理函数
void handler(int signo)
{
switch(signo)
{
case SIGUSR1:
printf("Parent: catch sigusr1n");
break;
case SIGUSR2:
printf("Child: catch sigusr2n");
break;
default:
printf("should not be heren");
break;
}
return;
}
// 主函数
int main(int argc, char* argv[])
{
pid_t ppid, cpid;
// 设置信号
if(signal(SIGUSR1, handler) == SIG_ERR)
{
perror("can't set handler for sigusr1n");
exit(1);
}
if(signal(SIGUSR2, handler) == SIG_ERR)
{
perror("can't set handler for sigusr2n");
exit(1);
}
ppid = getpid();
if (cpid = fork()