0
我在下面有一段代碼。我想看看fd1和fd0的值是多少,在我創建的所有進程中,它們最終都是3和4?爲什麼是這樣。c管道爲什麼是fd [0]和fd [1] 3和4
if (pipe(fd) < 0)
printf("Pipe Error");
if ((pid = fork()) < 0)
{
printf("Fork Error");
}
else if (pid > 0) //daddy
{
close (fd[0]);
write(fd[1],"Hi, Im Parent \n", 15);
printf("Value of fd1 is %d and fd0 is %d in parent. \n", fd[1], fd[0]);
printf("Parent Process is %d \n", pid);
printf("My true id is: %d and my parent id is %d \n", getpid(), getppid());
wait();
}
0,1,2已經在使用(stdin,stdout,stderr) – 2014-10-06 22:49:32
您不包含'fd *'的定義,但顯然它們是文件描述符。文件描述符是一個小整數,用於標識隱藏在內核中的資源(打開文件) - 不是指針或緩衝區。 – alexis 2014-10-06 22:55:43
你期望什麼值? – 2014-10-06 22:58:08