#include<dirent.h>
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int main()
{
int canal_son[2];
int canal_father[2];
pipe(canal_father);
pipe(canal_son);
char mesaj_son[20];
char mesaj_father[20];
if (fork()==0)
{
printf("Son %d\n",getpid());
read(canal_father[0],mesaj_father,4);
int j;
for(j=0;j<5;j++)
{
printf("The message from father is: %s \n",mesaj_father);
read(canal_father[0],mesaj_father,4);
write(canal_son[1],"son",3);
}
exit(0);
}
int i=5;
for (i=0;i<5;i++)
{
write(canal_father[1],"mesas",4);
read(canal_son[0],mesaj_son,10);
printf("we are in father:%s\n",mesaj_son);
}
}
我所試圖做的是創造管材孩子和父親之間通信的母公司之間的通信,唯一的問題是,當我嘗試同時使用,我的過程凍結,它就像是在等待一些輸入,如果我只使用一根管道,canal_father或canal_son,它可以完美地工作,有沒有人知道使用2根管道有什麼問題?管孩子,並使用2管
非常感謝。
+1,參議員。 = P(打賭你以前從來沒有聽說過)。合理更新的源代碼示例[可在此處找到](http://ideone.com/14qNTi) – WhozCraig 2013-04-22 17:27:31