欢迎来到天天文库
浏览记录
ID:35342164
大小:58.86 KB
页数:3页
时间:2019-03-23
《实验2linux进程控制与通信》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验2Linux进程控制与通信1.实验目的(1)进一步认识并发执行的概念,认识父了进程及进程创建原理;(2)了解Linux系统中进程通信的基本原理。2.实验环境一台装有Linux操作系统(Fedora7),至少具有256M内存的微机。3.预备知识1)gcc编译器的便用2)fork系统调用:创建一个新进程3)getpid系统调用:获得一个进程的pid4)wait系统调用:发出调用的进程等待子进程结束5)pipe系统调用:建立管道6)write系统调用:向文件屮写数据7)read系统调用:从文件中读数据4.实验
2、内容(1)编写一段程序(程序名为parent_child.c),使用系统调用fork()创建两个子进程,如果是父进程显示"ParentProcess:A”,子进程分别显示"Thisischildl(pidl=xxxx(process:B”和"Thisischildl(pidl=xxxx)process:C”,其中"xxxx”分别指明子进程的pid号。(2)编写一段程序(程序名为comm.c),父子进程Z间建立一条管道,子进程向管道中写入/zChildprocess1issendingamessager,,父
3、进程从管道中读出数据,显示在屏幕上。5.实验要求(1)将parentchild.c源程序,及程序执行结果写入实验报告;(2)将fork()系统调用后内核的工作原理写入实验报告;(3)将comm.c源程序,及程序执行结果写入实验报告;(4)将Linux系统屮管道通信的工作原理写入实验报告。(1)#include#ineludevunistd.h>main(){if(fork()==0)〃了进程1{printf("Thisischildl(pidl=%d(process:B",getpid
4、f));exit(O);}elseif(fork()==0)//子进程2{printff'Thisischild2(pid2=%d)process:C",getpid());exit(O);}printff'ParentProcess:A");//父进程exit(O);}}Q©Gwys@ubuntu:-/DesktopFileEditViewTerminalHelpwys@ubuntu:~/Desktop$./a.outParentProcess:Awys@ubuntu:*/Desktop$This
5、ischild2(pid2=2386)process:CThisischildl(pidl=2385)process:B(2)#include#include#includeintmain(){inta[2];intpid;charin[50];Pipe(a);pid=fork();if(pid==O){close(a[0]);write(a[l]/'Childprocess1issendingamessage!",sizeof("Childproc
6、ess1issendingamessage!"));exit(O);}elseif(pid>0){close(a[l]);wait(O);read{a[0],in,sizeof(in));printf(,,%s"/in);exit(O);}Q0Qwys@ubuntu:^/DesktopFileEditViewTerminalHelpwys@ubuntu:~/Desktop$./a.outChildprocess1issendingamessage!©©囲wys@ubuntu:*/Desktop$
7、
此文档下载收益归作者所有