2016-09-23 14 views

答えて

0
char *args[5]; 

args[0]="sudo"; 
args[1]="./a.out"; 
args[2]="arg1"; 
args[3]="arg2"; 
args[4]=NULL; 
execvp("sudo", args); 

シェルは、指定されたコマンドを空白で区切られた単語に分割します。最初の単語はPATHで検索され、すべての単語がパラメータとしてコマンドに渡されます。

Sinec execvp()あなたのためにPATHを検索します。コマンドにsudoを渡して、コマンドに引数を渡してください。コマンドの最初の引数はコマンドの名前です。

実行しているコマンドは "sudo"なので、これが最初の引数です。残りの単語は個々の引数として配列として渡されます。

+0

しかし、execvpは2つの引数しか受け付けませんか? – Jarvis

+0

うん、それを見落とした。答えを訂正しました。 –

-1

これは機能しません:? execvp( "/ usr/bin/sudo"、 "./a.out arg1 erg2")。

+0

最初の引数は正確には何ですか? – Jarvis

関連する問題