电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

进程间通信试验资料

进程间通信试验资料_第1页
1/12
进程间通信试验资料_第2页
2/12
进程间通信试验资料_第3页
3/12
进程间通信 (1) 调试以下程序给出运行结果并分析其程序原理:#include #include #include #include #include #include #include #include (1)编写两个程实现进程的无名管道和有名管道通信。要求分别调用 pipe()、close()、write() 、read()、popen()、pclose()、mknod()、mkfifo() 、open()实现多个进程间的通信。1.使用无名管道 pipe(),进行父子进程之间的通信。编写的程序如下:fork 函数执行完毕后,返回值pid<0,则子进程创建失败,pid>0,则运行父进程,关闭读操作,进行写操作,将信息写进管道,写完后关闭写操作,父进程挂起。Pid=0,运行子程序,关闭写操作,进行读操作,读完信息关闭读操作,子进程运行结束,父进程继续运行。2.以命名行为参数的管道文件的示例。(假设有一个可执行程序chcase,从标准输入设备读字符, 将小写字母转化成大写字母并输出。主程序使用 popen创建管道,实现蒋某文本文件中的字幕转化成大写字母,其中的文本文件名作为参数传进来。) 命令行数量不为2 时,输出结果如图所示;创建一个可执行程序chcase,此程序从标准输入设备读字符,将小写字母转化成大写字母并输出 。主程序使用popen()创建一个管道。再创建一个文本文件,输入将要转换成大写字母的小写字母。 Popen 创建的管道一头与文本文件相连,获取文本文件中的信息,将此信息通过管道传送给与管道另一端相连的可执行程序chcase,chcase 获取文本文件中的小写字母后,将小写字母转换成大写字母输出。3.创建有名管道。当输入命令行数量为2 时,打开管道, 只进行写操作。 不为 2 时,打开管道, 只进行读操作。且均循环 26 次。4.软中断机制#include #include #include void waiting(),stop(),alarming(); int wait_mark; main() { int p1,p2; if(p1=fork()) { if(p2=fork()) { wait_mark=1; signal(SIGINT,stop); signal(SIGALRM,alarming); waiting(); kill(p1,16); kill(p2,17); wait(0); wait(0); printf("parent process is killed!\n"); exit(0); } else { wait_mark=1; signal(17,stop); signal(SIGINT,SIG_IGN); while (wait_mark!=0); lockf(1,1,0); printf("child process2 is killed by parent!\n"); lockf(1,0,0); exit(0); }...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

进程间通信试验资料

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部