实验九 有名管道和无名管道1.实验目的(1)理解进程通信机制中有名管道和无名管道的实现原理(2)掌握管道的建立、读、写等函数的使用(3)掌握有名管道和无名管道实现进程之间的通信2.实验环境已安装 Linux 操作系统的微机一台3.实验内容 编写程序: (1) 编写管道通信程序:要求主进程创建子进程后,在子进程中调用 exec 函数执行一个新程序前,通过管道给即将执行的程序传递命令行参数,包括:exit,子进程退出;getpid,猎取进程号等. (2)编写有名管道程序:实现写进程获得从键盘输入的数据,读进程获得从写进程端读的数据并显示在屏幕中。 (1)源程序:#include#include#include〈stdlib.h〉int main(int argc,char *argv[]){pid_t pid;int temp;int pipedes[2];char s[3]=”ls”;char d[3];if((pipe(pipedes))==—1){perror(”pipe”);exit(EXIT_FAILURE);}if((pid=fork())==—1){perror("fork");exit(EXIT_FAILURE);}else if(pid〉0){printf ( ” now , write data to pipe\n");if((write(pipedes[1],s,14))==-1){perror("write");exit(EXIT_FAILURE);}else{printf("the written data is :%s\n”,s);}wait();}else if(pid==0){printf ( ” now,read data from pipe\n”);memset(d,'\0’,3);if(read(pipedes[0],d,3)==-1){perror("read");exit(EXIT_FAILURE);}execl(”/bin/ls”,d,”-l”,(char*)0);exit(EXIT_SUCCESS);}return 0;} 运行结果: root@shaohua—laptop:~# 。/pipe1 now,write data to pipe the written data is :ls now,read data from pipe 总计 56 -rwxr-xr-x 1 root root 7507 2025—05—06 21:22 pipe1 -rwxrwxrwx 1 root root 931 2025-05—06 21:22 pipe1。c drwxr—xr-x 3 root root 4096 2025-03-24 21:58 公共的 drwxr-xr-x 3 root root 4096 2025—03-24 21:58 模板 drwxr—xr—x 2 root root 4096 2025—03-09 14:43 视频 drwxr—xr-x 2 root root 4096 2025—03—09 14:43 图片 drwxr-xr-x 2 root root 4096 2025—03-16 21:57 文档 drwxr-xr-x 2 root root 4096 2025—04-23 16:18 下载 drwxr—xr—x 2 root root 4096 2025—03-09 14:43 音乐 drwxr—xr—x 3 roo...