我需要运行一个 Linux CLI 命令并从 C 中获取它的标准输出。
我可以使用 pipe() 创建一个管道,然后 fork/exec,在调用 exec() 之前将子级的标准输出描述符重定向到管道中,并从父级的管道中读取。另外,我需要等孩子。
是否有一个简单的调用来做 fork + redirect + exec + wait,就像 system() 做 fork + exec + wait 一样,只有 system() 不做重定向。
有 popen(),它执行 fork + redirect + exec,但不执行等待,所以我无法获得退出状态。