【发布时间】:2016-01-15 02:03:26
【问题描述】:
我正在终端中的 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()系列函数之一来执行您的程序。如果你这样做,重定向输出的方法是stackoverflow.com/questions/2605130/… -
模拟激光雷达相机的程序不是我做的。它返回如下内容:` LIDAR 最小值 = 0.000000 弧度,最大值 = 2 弧度`
-
实际上,这无关紧要。
system()通常会启动一个本地 shell,而后者又会执行您的程序。
标签: c