在c程序中执行一个Linux命令

我正在尝试使用系统系统调用在c程序中执行Linux命令,但不希望它转储terminal上的输出或错误日志。 我该怎么办? 有没有其他方法可以做到这一点?

Solutions Collecting From Web of "在c程序中执行一个Linux命令"

由于system()调用使用shell来执行命令,因此可以将stdout和stderr重定向到/ dev / null,例如

system("ls -lh >/dev/null 2>&1"); 

popen是另一种可以做同样的事情的方法:

 void get_popen() FILE *pf; char command[20]; char data[512]; // Execute a process listing sprintf(command, "ps aux wwwf"); // Setup our pipe for reading and execute our command. pf = popen(command,"r"); // Error handling // Get the data from the process execution fgets(data, 512 , pf); // the data is now in 'data' if (pclose(pf) != 0) fprintf(stderr," Error: Failed to close command stream \n"); return; } 

显示你的代码。

试试例如:

系统( “LS”);