全文预览

Linux实验报告

上传者:蓝天 |  格式:docx  |  页数:36 |  大小:357KB

文档介绍
结束,父进程通过两个 wait(null ); 检测子进程的状态, 当子进程 1,2 都终止后,父进程也终止,输出“ parents process is killed ”⑵如果把 signal(SIGINT,stop) 放在①号和②号位置,结果会怎样并分析原因。答: 如果把 signal(SIGINT,stop) 放在(1) 号和(2) 号位置后, 结果先输出 child process 2 is killed by parent! 然后输出 parent process is killed! 而不会输出 child process 1 is killed by parent! 因为在 for k 子进程1后, 子进程1 中没有设置对 SIGIN T 信号的处理, 当按下 CTRL+ C后,进程1 默认为终止, 所以没有输出.⑶该程序段前面部分用了两个 wait(0), 为什么? 答: 父进程通过两个 wait(null ); 检测子进程的状态, 当子进程 1,2 都终止后, 父进程也终止, 输出“ parents process is killed ”⑷该程序段中每个进程退出时都用了语句 exit(0), 为什么? 答:每个进程退出时都用了语句 exit(0), 一方面要结束进程, 另外向父进程返回结束标志 0。 2 .修改上面的程序,增加语句 signal(SIGINT,SIG_IGN) 和语句 signal(SIGQUIT,SIG_IGN) ,再观察程序执行时屏幕上出现的现象,并分析其原因。# include<stdio.h> # include<signal.h> # include<unistd.h> int pid1, pid2; int EndF lag=0; pf1=0; pf2=0; void I ntD elete() { kill(pid1,10);

收藏

分享

举报
下载此文档