【发布时间】:2014-01-28 05:42:23
【问题描述】:
我有以下测试程序,我喜欢将数据从最深的孩子发送(写入)到父母。
代码是:
#define M1 "Message One"
int main(int argc, char **argv) {
int f1[2];
char buff[32];
pipe(f1);
if (fork() == 0) {
if (fork() == 0) {
if (fork() == 0) {
printf("%s :%d\n", "f1[0] :",f1[0]);
while(read(f1[0], buff, sizeof(buff)) > 0)
printf("%s\n", buff);
return 0;
} else {
//do nothing
}
} else {
//do nothing
}
} else {
sleep(2);
printf("%s :%d\n", "f1[1] :",f1[1]);
if(write(f1[1], M1, sizeof(M1) < 0))
printf("%s\n","Error");
return 0;
}
return 0;
}
我的代码的问题是,程序没有打印消息。
我不确定这是否与许多分叉有关。
【问题讨论】: