Linux进程通信实验报告.doc

Linux进程通信实验报告.doc

ID:56785715

大小:92.50 KB

页数:5页

时间:2020-07-11

Linux进程通信实验报告.doc_第1页
Linux进程通信实验报告.doc_第2页
Linux进程通信实验报告.doc_第3页
Linux进程通信实验报告.doc_第4页
Linux进程通信实验报告.doc_第5页
资源描述:

《Linux进程通信实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux进程通信实验报告一、实验目的和要求1.进一步了解对进程控制的系统调用方法。2.通过进程通信设计达到了解UNIX或Linux系统中进程通信的基本原理。二、实验内容和原理1.实验编程,编写程序实现进程的管道通信(设定程序名为pipe.c)。使用系统调用pipe()建立一条管道线。而父进程从则从管道中读出来自于两个子进程的信息,显示在屏幕上。要求父进程先接受子进程P1发来的消息,然后再接受子进程P2发来的消息。2.可选实验,编制一段程序,使其实现进程的软中断通信(设定程序名为softint.c)。使用系统调用fork()创建两个子进程,再用系统调用signal()

2、让父进程捕捉键盘上来的中断信号(即按Del键),当父进程接受这两个软中断的其中一个后,父进程用系统调用kill()向两个子进程分别发送整数值为16和17的软中断信号,子进程获得对应软中断信号后分别输出相应信息后终止。三、实验环境一台安装了RedHatLinux9操作系统的计算机。四、实验操作方法和步骤进入Linux操作系统,利用vi编辑器将程序源代码输入并保存好,然后打开终端对程序进行编译运行。五、实验中遇到的问题及解决六、实验结果及分析基本实验可选实验一、源代码Pipe.c#include"stdio.h"#include"unistd.h"main(){inti,

3、j,fd[2];charS[100];pipe(fd);if(i=fork==0){sprintf(S,"childprocess1issendingamessage"); write(fd[1],S,50); sleep(3); return; }if(j=fork()==0){ sprintf(S,"childprocess2issendingamessage"); write(fd[1],S,50); sleep(3); return;}else{ wait(0);read(fd[0],S,50);printf("%s",S); read(fd[0],S

4、,50);printf("%s",S); return; }}Softint.c#include"stdio.h"#include"unsitd.h"main(){inti,j,fd[2];charS[100];pipe(fd);if(i=fork==0){sprintf(S,"childprocess1issendingamessage");write(fd[1],S,50);sleep(3);return;}if(j=fork()==0){sprintf(S,"childprocess2issendingamessage");write(fd[1],S,5

5、0);sleep(3);return;}else{wait(0);read(fd[0],S,50);printf("%s",S);read(fd[0],S,50);printf("%s",S);return;}}

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

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

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