C 一个进程可以有多个stdout和stdin吗?

C 一个进程可以有多个stdout和stdin吗?,c,process,operating-system,posix,C,Process,Operating System,Posix,在编写Unix风格的程序时,它能否寻址和管理多个stdout和stdin通道?否;在任何给定时间,最多有一个标准输入和一个标准输出。最后,由于问题特别提到Unix,标准输入是文件描述符0,标准输出是文件描述符1,并且只有一个文件描述符具有给定的数字。否;在任何给定时间,最多有一个标准输入和一个标准输出。最后,由于问题特别提到Unix,标准输入是文件描述符0,标准输出是文件描述符1,并且只有一个文件描述符具有给定的数字。根据定义,只有1个stdin和1个stdout 但是,您可能需要查看命名管道。

在编写Unix风格的程序时,它能否寻址和管理多个stdout和stdin通道?

否;在任何给定时间,最多有一个标准输入和一个标准输出。最后,由于问题特别提到Unix,标准输入是文件描述符0,标准输出是文件描述符1,并且只有一个文件描述符具有给定的数字。

否;在任何给定时间,最多有一个标准输入和一个标准输出。最后,由于问题特别提到Unix,标准输入是文件描述符0,标准输出是文件描述符1,并且只有一个文件描述符具有给定的数字。

根据定义,只有1个stdin和1个stdout

但是,您可能需要查看命名管道。使用命名管道,您可以执行以下操作:

mkfifo pipe1
mkfifo pipe2
cat a.a > pipe1
cat b.b > pipe2
yourapp pipe1 pipe2

根据定义,只有1个标准输入和1个标准输出

但是,您可能需要查看命名管道。使用命名管道,您可以执行以下操作:

mkfifo pipe1
mkfifo pipe2
cat a.a > pipe1
cat b.b > pipe2
yourapp pipe1 pipe2

我很好奇你认为一个进程有多个stdout意味着什么。例如,printf的输出会去哪里?我会想象某种方式,通过重载方法选择要打印到的特定通道。我在看websocketd守护进程时,想知道是否可以将actor实现为一个长时间运行的进程,只需要将新的目标流写入其中。我认为使用套接字或其他轻量级通信流将是下一个最好的选择,但我希望srd标准输出的简单性。在这种情况下,它听起来就像您正在寻找的fopen和fprintf,或者我误解了什么?如果你实际上问的是一个流程是否可以从其父流程中获得多个输出或多个输入,那么答案是肯定的;一个exec可以携带任意数量的文件描述符。我很好奇您认为一个进程有多个stdout意味着什么。例如,printf的输出会去哪里?我会想象某种方式,通过重载方法选择要打印到的特定通道。我在看websocketd守护进程时,想知道是否可以将actor实现为一个长时间运行的进程,只需要将新的目标流写入其中。我认为使用套接字或其他轻量级通信流将是下一个最好的选择,但我希望srd标准输出的简单性。在这种情况下,它听起来就像您正在寻找的fopen和fprintf,或者我误解了什么?如果你实际上问的是一个流程是否可以从其父流程中获得多个输出或多个输入,那么答案是肯定的;一个exec上可以携带任意数量的文件描述符。