2

このコマンドを実行するための最良の方法は何ですか:私のCプログラム内で「sudocat /var/log/auth.log | grepAccepted」?私は使用しようとしました:

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()fread()

ところで、sudoコマンドでパスワードが必要な場合はsudoコマンドを実行できません

于 2013-03-22T10:55:36.113 に答える