C 将新进程的标准输出作为文件描述符打开

C 将新进程的标准输出作为文件描述符打开,c,linux,pipe,C,Linux,Pipe,我在某处见过一种方法,它可以让你像打开文件一样打开程序的输出。我模模糊糊地记得,它涉及到打开一个包含管道|符号的伪文件名,但我在互联网上找不到它。我想是这样的: int fd = open("| some_program", O_RDONLY); read(fd, buffer, 100); // read 100 bytes of some_program output 这将: 作为一个新流程启动一些程序 创建一个新管道,连接到some\u程序的stdout 将管道的另一端作为文件描述符返

我在某处见过一种方法,它可以让你像打开文件一样打开程序的输出。我模模糊糊地记得,它涉及到打开一个包含管道
|
符号的伪文件名,但我在互联网上找不到它。我想是这样的:

int fd = open("| some_program", O_RDONLY);
read(fd, buffer, 100);  // read 100 bytes of some_program output
这将:

  • 作为一个新流程启动一些程序
  • 创建一个新管道,连接到
    some\u程序的
    stdout
  • 将管道的另一端作为文件描述符返回

  • 这个方法是否存在于某个地方(可能只存在于一种特定的语言中,而不是C语言中),或者我只是虚构出来的?

    这看起来更像是在Perl之类的脚本语言中看到的。你的意思是
    popen
    ?你的梦想在这里::-)