了解UNIX管道和文件描述符
我是UNIX管道通信新手,需要一些帮助来理解这一点。我需要创建管道和分支子进程,通过这些管道与父进程通信。我的问题是 a) 为什么每个子进程使用管道 b) 真正的文件描述符是什么,我需要为每个管道创建一个吗 c) StdIn和StdOut与这些有什么关系 为什么每个子进程使用管道 因为单个管道只有两个端点。如果您试图在所有子进程之间共享一个管道,您将不知道哪个子进程生成了给定的输出 文件描述符到底是什么 操作系统保存的打开文件表中的条目 是否需要为每个管道创建一个[文件描述符] 任何进程如果打开了任何类似文件的对象,包括管道的任意一端,都需要有一个文件描述符,通过它可以与该类似文件的对象通信。事实上,在文件描述符表中有一个指向该文件的条目正是打开文件的意思 stdin和stdout与此有什么关系了解UNIX管道和文件描述符,unix,ubuntu,Unix,Ubuntu,我是UNIX管道通信新手,需要一些帮助来理解这一点。我需要创建管道和分支子进程,通过这些管道与父进程通信。我的问题是 a) 为什么每个子进程使用管道 b) 真正的文件描述符是什么,我需要为每个管道创建一个吗 c) StdIn和StdOut与这些有什么关系 为什么每个子进程使用管道 因为单个管道只有两个端点。如果您试图在所有子进程之间共享一个管道,您将不知道哪个子进程生成了给定的输出 文件描述符到底是什么 操作系统保存的打开文件表中的条目 是否需要为每个管道创建一个[文件描述符] 任何进程如果打开
stdin是文件描述符表中的条目0;stdout是条目1。如果您正在启动的进程将其数据读写到文件描述符0和1,那么您可能希望将管道连接到文件描述符0和1。很多问题!也许把每个人分开?对于unix/linux问题,可以在unix.stackexchange.com上进行更好的尝试。