操作系统实验一 Linux基本环境及进程管理(11)
时间:2025-05-04
时间:2025-05-04
操作系统实验一 Linux基本环境及进程管理
六、思考
1 、该程序段前面部分用了两个 wait(0) ,它们起什么作用?
2 、该程序段中每个进程退出时都用了语句 exit(0) ,为什么?
3 、为何预期的结果并未显示出?
4 、程序该如何修改才能得到正确结果?
5 、不修改程序如何得到期望的输出?
附加任务:在上面的任务1中,增加语句signal(SIGINT,SIG_IGN)和语句signal(SIGQUIT,SIG_IGN),观察执行结果,并分析原因。这里,
signal(SIGINT,SIG_IGN)和signal(SIGQUIT,SIG_IGN)分别为忽略键信号以及忽略中断信号。
<程序>
#include<stdio.h>
#include<stdlib.h>
#include<signal.h>
#include<unistd.h>
int pid1,pid2;
int EndFlag=0;
int pf1=0;
int pf2=0;
void IntDelete()
{
kill(pid1,16);
kill(pid2,17);
EndFlag=1;
}
void Int1()
{
printf("child process 1 is killed !by parent\n");
exit(0);
}
void Int2()
{
printf("child process 2 is killed !by parent\n");
exit(0);
}
main()
{
int exitpid;
signal(SIGINT,SIG_IGN);
signal(SIGINT,SIG_IGN);
while((pid1=fork())==-1);
if(pid1==0)
上一篇:外研版四年级英语上册M3测试题
下一篇:最新的计算机应用基础单选多选题