·进程实验练习一
编写程序创建一个子进程,父进程打印“parent process”字样和自己的pid;子进程打印“child process”字样以及自己的pid和ppid,并通过exec更改代码段,执行cat命令,cat命令中的参数文件为自己的源程序文件。运行结果截图。注意:运行结果中子进程的ppid是否是父进程的pid?若不是,原因是什么,如何修改程序让两者相同?
答:出现过子进程的ppid≠pid,原因是父进程先于子进程结束。若使两者相同,需要在代码末尾加上“wait(NULL)”,这样就可以让父进程等待,直到所有子进程消亡才继续运行,从而使进程同步。
运行截图:
·进程实验练习二
编写程序创建一个子进程,父进程打印“parent process”字样,和自己的pid;子进程打印“child process”字样以及自己的pid和ppid,并通过exec更改代码段,执行cat命令,cat命令中的参数文件为自己的源程序文件;父进程需等待子进程终止后,输出“parent process finished”再结束。
运行截图:
·题目1
编写程序,main函数执行while死循环,捕获SIGINT信号。用户第一次按Ctrl-c,进程仅显示“Ctrl-C pressed the first time”,用户第二次按Ctrl-c,进程显示“CTRL-C pressed the second time”,然后结束进程。
源代码(方法一):
(方法二):
运行截图:
·题目2
编写程序,父子进程使用匿名管道通信,实现“cat/etc/passwd|grep /bin/bash”功能。
源代码:
Linux编程基础之进程实验练习
最新推荐文章于 2023-07-23 18:20:49 发布