2016-09-23 4 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는 두 개의 인수 만 허용합니까? – Jarvis

+0

그래, 간과했다. 답변을 수정했습니다. –

-1

이것은 작동하지 않습니다 :? execvp ("/ usr/bin/sudo", "./a.out arg1 erg2").

+0

여기서 첫 번째 논의는 정확히 무엇입니까? – Jarvis