父子进程间信号通信
来源:互联网 发布:二手车出险查询软件 编辑:程序博客网 时间:2024/04/19 12:42
//司机售票员问题
创建子进程代表售票员,父进程代表司机,同步过程如下:
售票员捕捉SIGINT(代表开车),发SIGUSR1给司机,司机打印(“let's gogogo”)
售票员捕捉SIGIQUIT(代表停车),发SIGUSR2给司机,司机打印(“stop the bus”)
司机捕捉SIGTSTP(代表车到站),发SIGUSR1给售票员,售票员打印(“please get off the bus”)
#include<signal.h>
#include<unistd.h>
int pidparent=0,pidchild=0;
void deal1()
{
printf("1\n");
kill(pidchild,SIGUSR1);
}
void deal2()
{
printf("2\n");
printf("let's gogogo\n");
}
void deal3()
{
printf("3\n");
printf("stop the bus\n");
}
void deal4()
{
printf("4\n");
kill(pidparent,SIGUSR1);
}
void deal5()
{
printf("5\n");
kill(pidparent,SIGUSR2);
}
void deal6()
{
printf("6\n");
printf("please get off the bus\n");
}
main()
{
// int pidparent,pidchild;
while((pidchild=fork())==-1);
if(pidchild>0)
{
signal(SIGTSTP,deal1);
signal(SIGUSR1,deal2);
signal(SIGUSR2,deal3);
signal(SIGINT,SIG_IGN);
signal(SIGQUIT,SIG_IGN);
pause();
wait();
exit(0);
}
else if(pidchild==0)
{
pidparent=getppid();
signal(SIGINT,deal4);
signal(SIGQUIT,deal5);
signal(SIGUSR1,deal6);
signal(SIGTSTP,SIG_IGN);
pause();
pause();
pause();
// exit(0);
}
}
- 父子进程间信号通信
- 父子进程间通信
- fork 父子进程间信号关系
- 信号实现父子进程间同步
- 父子进程信号交互
- 进程间通信-信号
- 进程间通信--信号
- 进程间通信--信号
- 进程间通信-信号
- 进程间通信---信号
- 【进程间通信】信号
- 进程间通信----信号
- 【进程间通信】信号
- 信号通信(进程间通信)
- 父子进程间的单向管道通信
- 匿名管道 父子进程间通信
- python之父子进程间通信
- 父子进程间的共享内存通信
- 在CSDN论坛上看到一个数据库帖子,觉得挺有意思的,特转过来跟大家分享
- 面试笔试-两个数组的数据分类
- javax.servlet.ServletException: DispatchMapping[XXX] does not define a handler property
- 333
- new confirm and new idea --==-- need time
- 父子进程间信号通信
- 444
- Service启动过程过程详解
- JS写的一个功能齐备的树控件treeview
- 从数据类型 varchar 转换为 float 时出错
- 555
- 如何计算Date间隔的时间
- 编程写代码不仅需要有编程的基础和兴趣,更重要的是简单明了的思路
- 文件的创建写入读取 日期控件的使用