我想让我的程序读取另一个应用程序产生的标准输出。我知道我可以使用popen
来做到这一点,并使用fread
来读取输出。通过读取函数读取标准输出而不是fread
你知道是否可以使用read
(也可能是open
)?我在LINUX正与C/C++
我想让我的程序读取另一个应用程序产生的标准输出。我知道我可以使用popen
来做到这一点,并使用fread
来读取输出。通过读取函数读取标准输出而不是fread
你知道是否可以使用read
(也可能是open
)?我在LINUX正与C/C++
你可以通过调用为FILE *fp
您从popen()
了获得read()
文件描述符。但请注意,您不能混合拨打read()
和fread()
!
编辑
如果你想避免popen()
,你必须使用pipe()
,fork()
,exec..()
和dup2()
像它这样做here
@basile Starynkevitch:感谢您的编辑! –
好东西!非常感谢。 –
怎么样用你的shell'$ /程序1。| 。/ program2',这将progam1的stdout连接到program2的stdin。 – hetepeperfan
如果你使用管道,你不需要打开,只需要读取(pipe [],buffer,len) – Alexis
为什么你不想使用'popen'? –