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

C++ 通过读取功能而不是fread读取标准输出,c++,c,linux,pipe,C++,C,Linux,Pipe,我想让我的程序读取另一个应用程序生成的标准输出。我知道我可以使用popen来实现这一点,并使用fread来读取该输出 您知道是否可以使用读取(以及可能的打开)?我在LINUX中使用C/C++您可以通过调用int-fd=fileno(fp)来获取read()的文件描述符,该文件描述符来自popen()。但是请注意,不能将调用read()和fread()混用在一起 编辑 如果你想避免使用popen(),你必须使用pipe(),fork(),exec..()和dup2(),就像使用shell那样如何处

我想让我的程序读取另一个应用程序生成的标准输出。我知道我可以使用
popen
来实现这一点,并使用
fread
来读取该输出


您知道是否可以使用
读取
(以及可能的
打开
)?我在LINUX中使用C/C++

您可以通过调用
int-fd=fileno(fp)
来获取
read()
的文件描述符,该文件描述符来自
popen()
。但是请注意,不能将调用
read()
fread()混用在一起

编辑


如果你想避免使用
popen()
,你必须使用
pipe()
fork()
exec..()
dup2()
,就像使用shell那样

如何处理你的shell
$/program1 |/program2
,这将连接progam1的stdout和program2的stdin。如果你使用pipe,你不需要打开,只需阅读(pipe[],buffer,len)为什么你不想使用
popen
?@Jan…读得更好我的问题,你是对的。使用popen是可以的(也因为我可以给出我想要运行的命令和参数),但我更喜欢使用open而不是fread。很棒的东西!谢谢。