2013-07-31 94 views
0

我想让我的程序读取另一个应用程序产生的标准输出。我知道我可以使用popen来做到这一点,并使用fread来读取输出。通过读取函数读取标准输出而不是fread

你知道是否可以使用read(也可能是open)?我在LINUX正与C/C++

+0

怎么样用你的shell'$ /程序1。| 。/ program2',这将progam1的stdout连接到program2的stdin。 – hetepeperfan

+0

如果你使用管道,你不需要打开,只需要读取(pipe [],buffer,len) – Alexis

+0

为什么你不想使用'popen'? –

回答

2

你可以通过调用为FILE *fp您从popen()了获得read()文件描述符。但请注意,您不能混合拨打read()fread()

编辑

如果你想避免popen(),你必须使用pipe()fork()exec..()dup2()像它这样做here

+0

@basile Starynkevitch:感谢您的编辑! –

+0

好东西!非常感谢。 –