通过读取功能而不是fread读取标准输出

时间:2013-07-31 09:22:49

标签: c++ c linux pipe

我希望我的程序读取另一个应用程序生成的标准输出。我知道我可以使用popen来执行此操作并使用fread来读取该输出。

您知道是否可以使用read(可能还有open)?我在LINUX中使用C / C ++

1 个答案:

答案 0 :(得分:2)

您可以通过read()int fd = fileno(fp)获取FILE *fp来获取popen()的文件描述符。但请注意,您不得混淆调用read()fread()

修改

如果您想避免popen(),则必须使用pipe()fork()exec..()dup2(),就像它已完成here < / p>