描述
popen
子例程在调用程序和要执行的 shell 命令之间创建管道。
注:
popen
子例程仅运行
sh
shell 命令。 如果
Command
参数不是有效的
sh
shell 命令,那么结果不可预测。 如果终端处于可信状态,那么将运行
tsh
shell 命令。
如果先前对
popen
子例程的调用所打开的流在父进程中保持打开状态,那么
popen
子例程将在子进程中关闭这些流。
popen
子例程返回指向流的
FILE
结构的指针。
注意:
如果原始进程和使用
popen
子例程启动的进程同时读取或写入公共文件,那么这两个进程都不应使用缓冲 I/O。 如果这样做,那么结果是不可预测的。
通过使用
fflush
子例程清空缓冲区,可以防止输出过滤器出现一些问题。