在c程序中使用sudo执行shell命令

时间:2013-03-22 10:33:22

标签: c shell command-line system execute

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

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

但它显然不起作用。

2 个答案:

答案 0 :(得分:1)

您无法使用sprintf()至少<{1}}执行命令

修正:

system()

答案 1 :(得分:0)

您可以使用pipe

执行命令
FILE *fp;
fp=popen(command_result,"r");

然后您可以从管道fp读取命令输出,就像您从fgets()fread() ...

的文件中读取一样

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