永发信息网

分析下列程序中信号的处理机制(在每行代码后添加注释)并写出程序的运行结果

答案:2  悬赏:10  手机版
解决时间 2021-11-22 15:12
分析下列程序中信号的处理机制(在每行代码后添加注释)并写出程序的运行结果
最佳答案
#include
#include
#include
void handle_sigcld(int signo) //用户自己写的信号处理函数
{
int pid,status;
pid=wait(&status); //获取子进程的结束状态
printf("receive signal %d\n",signo); //打印信号值
printf("child process exit with code %d\n",WEXITSTATUS(status)); // 打印子进程返回值(即exit值)
}

main()
{
int i,pid;
signal(SIGCLD,Handle_sigcld); //注册SIGCLD这个信号对应的处理函数为Handle_sigcld,就是你前面写的那个函数(这里的H不应该大写)。当子进程结束时,操作系统会自动向父进程发SIGCLD这个信号

if((pid=fork())==0) //fork,创建子进程
{
printf("child process exit \n"); //子进程打印并退出,eixt值为1
exit(1);
}
else
{
sleep(1); //父进程,sleep1秒,从而能收到 SIGCLD信号。
exit(0);
}
}

程序输出很简单,就是:

child process exit
receive signal 17
child process exit with code 1

17就是SIGCLD对应的信号值。
全部回答
好几个函数都没有,怎么分析啊?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
1000000万,一年的利息率是多少?
OPPOR11怎么取消相册的加密?
AMD六核处理器Phenom羿龙II X6 1045T 鲁大师
农村自建房大门口至院门路面设计
人体内产生的酮酸是什么东西?
甲十乙=27,甲一乙=3,甲=(),乙=()
英国航空行李托运箱的尺寸到底是多少寸的?
巩义长途汽车站有到洛阳的汽车没?具体是在洛
冒险岛高级快乐百宝箱,老手进!
除了获取root,还有什么软件可以卸载系统软件
怎么潜水游泳?
2016靖边离婚女
PageUp键的什么功能
吃完火龙果后为什么排便里有黑色芝麻撞点点
啦、呀、么、呢、着这几个字单独注音标调吗
推荐资讯
肉嘴松狮是杂种狗吗?和正版有什么区别?
CF怎么设置独显添加独显文件
剑网3茶馆悬赏千岛湖精英怪在哪
老沥青路面上做水稳和混凝土面板的施工工艺
豫k3g330车牌这车牌感觉怎样
18、24和36的最大公约数是______,最小公倍数
广州领克汽车店在哪?哪个服务周到?
650×36+65×300托士计算
上图没戴帽子的和下图谁漂亮一点
问一下韩语里面形容肉的口感"肉嫩,肉老,肉
想你里面 俞承豪骑车撞到他爸爸是哪一集 求他
求,南京两日游攻略。早上九点多一点到达南京
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?