循序渐进学unix——上机记录(四)
上回说到使用pipe在两个进程之间做双重重定向,下面我们继续看下一练习:
5,一个管道“pipe”,能否被多个进程同时访问?为了回答这一问题,创建一个父进程和两个子进程,两个子进程同时向管道写入,父进程负责读取。这一问题没有太大难度,代码如下:
#include<unistd.h>#include<stdio.h>#include<sys/stat.h>#include<sys/types.h>#include<fcntl.h>void main(){char str[50];int fd = open("pipenomme", O_WRONLY);if(fd==-1)return;else printf("Open pipe nommée pour l'ecriture\n");close(1);dup(fd);//scanf("%s",str);printf("Ce_msg_est_envoyé_par_7_WR_:)\n");}