进程间通信 (1) 调试以下程序给出运行结果并分析其程序原理:#include #include #include #include #include #include #include #include (1)编写两个程实现进程的无名管道和有名管道通信
要求分别调用 pipe()、close()、write() 、read()、popen()、pclose()、mknod()、mkfifo() 、open()实现多个进程间的通信
使用无名管道 pipe(),进行父子进程之间的通信
编写的程序如下:fork 函数执行完毕后,返回值pid0,则运行父进程,关闭读操作,进行写操作,将信息写进管道,写完后关闭写操作,父进程挂起
Pid=0,运行子程序,关闭写操作,进行读操作,读完信息关闭读操作,子进程运行结束,父进程继续运行
以命名行为参数的管道文件的示例
(假设有一个可执行程序chcase,从标准输入设备读字符, 将小写字母转化成大写字母并输出
主程序使用 popen创建管道,实现蒋某文本文件中的字幕转化成大写字母,其中的文本文件名作为参数传进来
) 命令行数量不为2 时,输出结果如图所示;创建一个可执行程序chcase,此程序从标准输入设备读字符,将小写字母转化成大写字母并输出
主程序使用popen()创建一个管道
再创建一个文本文件,输入将要转换成大写字母的小写字母
Popen 创建的管道一头与文本文件相连,获取文本文件中的信息,将此信息通过管道传送给与管道另一端相连的可执行程序chcase,chcase 获取文本文件中的小写字母后,将小写字母转换成大写字母输出
创建有名管道
当输入命令行数量为2 时,打开管道, 只进行写操作
不为 2 时,打开管道, 只进行读操作
且均循环 26 次
软中断机制#include #include #include v