什麼是執行此命令的最佳方式:|我的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