日期:2014-05-16  浏览次数:20599 次

求助:用管道在父子进程间传递数据问题
代码如下:
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>

int main(void)
{
int n, fd[2];
pid_t pid;
char line[1024];

if (pipe(fd) < 0)
exit(0);
if ( (pid = fork()) < 0)
exit(0);
if (pid > 0) { /* parent */
close(fd[0]);
write(fd[1], "I am from parent!\n", 19);
}
        else { /* child */
close(fd[1]);
n = read(fd[0], line, 1024);
write(STDOUT_FILENO, line, n);
}
exit(0);
}
请问:为什么在单步调试时,在执行到最后else{}的语句之前就输出I am from parent!,新手请多多指教。
C??

------解决方案--------------------
因为你调试时针对的是父进程,,子进程已经执行完退出了。