I recently wrote this code to execute system command in C. I just want to measure time performed by this system command.
However, I don't want the output results to be displayed upon executing this program.
#include <stdio.h>
int main(int argc, char* argv[])
{
system("ls");
return 0;
}
How do I discard the output from the system command?
If you want to measure time by the system command, you can redirect standout and stderr in the system call. Not sure this is the most elegant, but it works:
Note that you need the
<stdlib.h>
headers forsystem
.When you call
system()
from C, a shell is invoked to interpret your command. This means you can use shell redirects:and if you want errors to also be suppressed
However, due to the overhead of running a shell and the fragility of constructing shell commands, it's better to avoid
system()
when you can.