编一个用有名管道进行通信和控制的程序,在程序A、B所对应的进程Pa、Pb中,进程Pa首先执行,创建有名管道tiros,并打开有名管道用于写,然后从键盘读入一行命令字符串,并通过有名管道向进程Pb发送该命令字符串。进程Pb打开有名管道fifos用于读,通过管

admin2016-05-12  25

问题 编一个用有名管道进行通信和控制的程序,在程序A、B所对应的进程Pa、Pb中,进程Pa首先执行,创建有名管道tiros,并打开有名管道用于写,然后从键盘读入一行命令字符串,并通过有名管道向进程Pb发送该命令字符串。进程Pb打开有名管道fifos用于读,通过管道读到字符串,显示该命令字符串后执行该命令字符串。

选项

答案程序清单24-5:pipe.c /*程序A*/ #include<stdio.h> #include<fcntl.h> #include<string.h> #include<sys/star.h> main() { int fd; char cmd[200]; mknod("fifos",S IFIFO|0666,0); //创建有名管道 fd=open("fifos",O_WRONLY); //写打开有名管道 printf("Input command string:"); gets(cmd); //由键盘读入一行 write(fd,cmd,strlen(cmd)+1); //将命令字符串写入有名管道 close(fd); return; } /*程序B*/ #include<stdio.h> #include<fcntl.h> #include<string.h> #include<sys/stat.h> main() { int fd; char cmdstr[200]; fd=open("fifos",0_RDONLY); //读打开有名管道 bzero(cmdstr,sizeof(cmdstr)); //清缓冲区cmdstr read(fd,cmdstr,sizeof(cmdstr)); //从有名管道中读命令字符串 printf("cmdstr=%s\n",cmdstr); system(cmdstr); //执行该命令字符串 close(fd); return; }。

解析
转载请注明原文地址:https://jikaoti.com/ti/g4EaFFFM
本试题收录于: 操作系统题库理工类分类
0

最新回复(0)