【发布时间】:2018-01-05 23:40:18
【问题描述】:
我最近用C写了这段代码来执行系统命令。我只是想测量这个系统命令执行的时间。
但是,我不希望在执行此程序时显示输出结果。
#include <stdio.h>
int main(int argc, char* argv[])
{
system("ls");
return 0;
}
如何丢弃系统命令的输出?
【问题讨论】:
-
如果你不想打印结果,你想让他们去哪里?
-
用
ls列出文件有什么意义?运行 ls 的全部目的是将文件和文件夹列表放在终端上。如果您不想这样做,请不要运行 ls。这是一个 XY 问题 - 我做错了事情来完成某件事,但现在它给我带来了第二个问题。我该如何解决第二个问题? 你没有;修复第一个,第二个消失。 -
如果您想获取目录中的文件列表以在程序中对其进行操作,请使用
DIR类型。见这里stackoverflow.com/questions/612097/… -
重定向输出到 >/dev/null
-
@user9179677:为什么不直接运行
time ls >/dev/null,然后跳过包装? C 中的包装是做什么的(除了通过将ls的单个进程启动更改为三个,一个用于您的程序,一个用于运行ls的 shell 以及一个用于ls的进程来增加开销)?
标签: c linux output-redirect