我最近编写了这段代码来执行C语言中的系统命令。我只是想测量这个系统命令执行的时间。
但是,我不希望在执行此程序时显示输出结果。
#include <stdio.h>
int main(int argc, char* argv[])
{
system("ls");
return 0;
}
如何丢弃系统命令的输出?
答案 0 :(得分:2)
当您从C调用system
时,会调用shell来解释您的命令。这意味着您可以使用shell重定向:
system()
并且如果您希望也可以抑制错误
system("ls > /dev/null");
但是,由于运行shell的开销和构造shell命令的脆弱性,最好尽可能避免使用system("ls > /dev/null 2>&1");
。
答案 1 :(得分:0)
如果要通过系统命令测量时间,可以在系统调用中重定向standout和stderr。不确定这是最优雅的,但它确实有效:
#include <stdlib.h>
#include <stdio.h>
int main() {
system("ls >/dev/null 2>&1");
}
请注意,您需要<stdlib.h>
的{{1}}标题。