实验2linux进程控制与通信

实验2linux进程控制与通信

ID:35342164

大小:58.86 KB

页数:3页

时间:2019-03-23

实验2linux进程控制与通信_第1页
实验2linux进程控制与通信_第2页
实验2linux进程控制与通信_第3页
资源描述:

《实验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、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。