2

在我的 C 程序中执行此命令的最佳方法是什么:“sudo cat /var/log/auth.log | grep Accepted”?我尝试使用:

sprintf(command_result,"sudo cat /var/log/auth.log | grep Accepted"); 

但这显然不起作用。

4

2 回答 2

1

sprintf()system()至少无法执行命令

使固定:

sprintf(command_result, "sudo cat /var/log/auth.log | grep Accepted");
system(command_result);
于 2013-03-22T10:35:26.070 回答
0

您可以使用管道执行命令

FILE *fp;
fp=popen(command_result,"r");

然后你可以从管道中读取命令输出,fp就像从文件中读取fgets()or fread()...

顺便说一句,如果 sudo 命令中需要密码,则不能执行 sudo 命令

于 2013-03-22T10:55:36.113 回答