什么是执行此命令的最佳方式:|我的C程序中“sudo的猫/var/log/auth.log的grep接受”? 我试着使用:在C程序中使用sudo执行shell命令
sprintf(command_result,"sudo cat /var/log/auth.log | grep Accepted");
但它并没有明显的工作。
什么是执行此命令的最佳方式:|我的C程序中“sudo的猫/var/log/auth.log的grep接受”? 我试着使用:在C程序中使用sudo执行shell命令
sprintf(command_result,"sudo cat /var/log/auth.log | grep Accepted");
但它并没有明显的工作。
你可以用管道
FILE *fp;
fp=popen(command_result,"r");
执行该命令,然后就可以读取命令输出从管道fp
像你从fgets()
或fread()
...
顺便提一下,如果在sudo命令中需要密码,则无法执行sudo命令。
感谢它的工作:) – TheForbidden 2013-03-22 13:46:41
你不能用sprintf()
执行该命令,你需要system()
ATLEAST
修复:
sprintf(command_result, "sudo cat /var/log/auth.log | grep Accepted");
system(command_result);
好吧,它没有工作(虽然系统是正确的功能当然),但我想也许sudo访问是需要的。我不知道该怎么做?! – TheForbidden 2013-03-22 10:44:52
你是什么意思,它没有工作。发生了什么? – 2013-03-22 10:48:47
什么也没有发生。就好像我没有放任何东西。 那么它适用于那些不需要sudo访问命令,但使用sudo有一个问题显然是:( – TheForbidden 2013-03-22 10:50:44
您可以使用system();函数,只是作为i/p参数给出命令.. – linuxD 2013-03-25 05:05:08