首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么fd[0]和fd[1] 3和4

为什么fd[0]和fd[1] 3和4
EN

Stack Overflow用户
提问于 2014-10-06 22:48:24
回答 1查看 2.2K关注 0票数 0

下面有一个代码段。我想看看fd1和fd0的谷是什么,在我创建的所有过程中,它们最终都是3和4?为什么会这样。

代码语言:javascript
复制
  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();
      }
EN

回答 1

Stack Overflow用户

发布于 2015-01-02 07:35:29

文件描述符(虽然以不同的方式从openpipe等函数返回)是表示打开文件的小整数。

它们与标准C中指向FILE类型的指针文件句柄的概念不同(我使用术语“句柄”,尽管标准本身只是声明它将指针与流关联并返回该指针)。

因此,您会期望看到的行为,pipe()抓住前两个描述符目前没有使用。

文件描述符012分别指标准输入、标准输出和标准错误,类似于FILE *stdinstdoutstderr

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26226046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档