操作系统
实验(训)报告
学号:15406038 姓名:牛超 班级:2班 实验时间:2017,11,24
OS0004 实验名称 进程通信
1.理解Linux关于进程间通信的概念
实验目的和要求 2.掌握几种进程间通信的方法
3.巩固进程同步概念和实现进程同步的方法
1. 利用管道实现两个进程间的消息互通; 实验内容 2. 利用标准流管道实现文件的读取和单词统计;
3. 利用无名管道实现父子进程之间的通信。 实验题目
一、读取文件/etc/profile的内容,并且统计该文件中有多少个单词。 程序截图:
实验编号
运行结果截图:
二、编写一段程序,用管道实现父子进程之间的通信,子进程读父进程写入管道的内容,如父进程写“Hello”,子进程能读取该信息。 程序截图:
#include
int main() {
int fds[2]; pipe(fds);
char buf[512]=\ if(fork()==0){
close(fds[1]);
if(read(fds[0],buf,sizeof(buf))>0)
puts(buf); exit(0);
}else{ } return 0; }
close(fds[0]); write(fds[1],buf,6); close(fds[1]); exit(0);
运行结果截图:
思考题:编写一段程序,使其用管道实现父子进程之间的进程通信。子进程向父进程发送自己的进程标识符,以及字符串“is sending a message to parent!”。父进程则通过管道读出子进程发来的消息,将消息显示在屏幕上,然后终止。 程序截图:
#include
int main() {
int fds[2]={0}; pipe(fds);
char buf[512]=\ if(fork()==0){
printf(\ close(fds[0]);
write(fds[1],buf,50);
exit(0);
}else{
close(fds[1]);
read(fds[0],buf,50);
puts(buf);
}
close(fds[0]); exit(0);
return 0; }
运行结果截图:
成绩与评语:
操作系统实验四



