0
我运行在Linux中的可执行文件在终端像这样的输出:不能重定向系统()
./foo 1 2 3 >output.txt
结果没有输出到OUTPUT.TXT,即使该文件被创建,但做&>output.txt
而不是诀窍。所以我猜测./foo的响应被定义为stderr?
但在继续讨论..我的目标是要调用C多次内./foo程序,但我不管理,以获得输出到文件时,我这样做:
status=system("./foo 1 2 3 &>output.txt")
输出只出现在Eclipse控制台中,但该文件确实已创建,但仍为空。 (我也试过>
只)
任何想法我做错了什么?
您需要提供有关正在使用的命令解释器或shell的信息 - system()调用的工作方式因工作方式而异(这符合正在实现的system()的效果) 。然而,假设你使用的是unix系统,你最好使用'fork()'和'exec()'函数系列之一来执行你的程序。如果你这样做,一个重定向输出的方法是在http://stackoverflow.com/questions/2605130/redirecting-exec-output-to-a-buffer-or-file – Peter
这是一个程序没有做我模仿一个LIDAR相机。它返回如下形式: 'LIDAR 最小值= 0.000000弧度,最大值= 2弧度' –
这实际上是无关紧要的。 'system()'通常启动一个本地shell,然后执行你的程序。 – Peter