Skip to main content

리눅스 / 유닉스 명령에 관한 모든 것 : execvp

[SWTT] Unix 명령어 기초 (4 월 2025)

[SWTT] Unix 명령어 기초 (4 월 2025)
Anonim

그만큼임원 함수 계열은 현재 프로세스 이미지를 새 프로세스 이미지로 바꿉니다. 여기에 설명 된 함수는 함수의 프론트 엔드입니다.execve(2).

이 함수의 초기 인수는 실행될 파일의 ​​경로 이름입니다.

그만큼 const char * arg 그 다음 타원은execl, execlp, 및사형 집행 함수는 다음과 같이 생각할 수 있습니다. arg0 , arg1 , …, argn . 그들은 함께 실행 된 프로그램에서 사용할 수있는 인수 목록을 나타내는 하나 이상의 null 종료 문자열에 대한 포인터 목록을 설명합니다. 규칙에 따라 첫 번째 인수는 실행중인 파일과 관련된 파일 이름을 가리켜 야합니다. 인수 목록 절대로 필요한 것 ~에 의해 종결되다없는 바늘.

그만큼execvexecvp 함수는 새 프로그램에서 사용할 수있는 인수 목록을 나타내는 널 (null)로 끝나는 문자열에 대한 포인터 배열을 제공합니다. 규칙에 따라 첫 번째 인수는 실행중인 파일과 관련된 파일 이름을 가리켜 야합니다. 포인터의 배열 절대로 필요한 것 ~에 의해 종결되다없는 바늘.

그만큼사형 집행 함수는 또한 다음을 수행하여 실행 된 프로세스의 환경을 지정합니다.없는매개 변수 목록에있는 인수 목록 또는 추가 매개 변수가있는 argv 배열에 대한 포인터를 종료하는 포인터. 이 추가 매개 변수는 널 종료 문자열에 대한 포인터의 배열이며 절대로 필요한 것 ~에 의해 종결되다없는 바늘. 다른 함수는 외부 변수에서 새 프로세스 이미지를위한 환경을 가져옵니다. 환경 현재 프로세스에서.

이러한 함수 중 일부는 특별한 의미 체계를 가지고 있습니다.

함수들execlpexecvp 지정된 파일 이름에 슬래시 (/) 문자가 없으면 실행 파일을 검색 할 때 쉘의 조치를 복제합니다. 검색 경로는 환경에 지정된 경로입니다.통로 변하기 쉬운. 이 변수를 지정하지 않으면 기본 경로 인`: / bin : / usr / bin '이 사용됩니다. 또한 특정 오류는 특별히 처리됩니다.

파일에 대한 사용 권한이 거부 된 경우 (시도한execve 반환 된EACCES)이 함수는 나머지 검색 경로를 계속 검색합니다. 그러나 다른 파일이 없으면 전역 변수와 함께 반환됩니다 오류 로 설정EACCES.

파일의 헤더가 인식되지 않으면 (시도한execve 반환 된ENOEXEC),이 함수는 파일의 경로를 첫 번째 인수로 사용하여 쉘을 실행합니다. 이 시도가 실패하면 더 이상의 검색이 수행되지 않습니다.

반환 값

만약임원 함수가 반환되면 오류가 발생합니다. 반환 값은 -1이며 전역 변수 오류 오류를 나타내도록 설정됩니다.

중대한: 사용 남자 명령 ( % man )를 사용하여 특정 컴퓨터에서 명령이 어떻게 사용되는지 확인하십시오.

이름

execl, execlp, execle, execv, execvp - 파일 실행

개요

#포함

extern char ** 환경;

int execl (const char * 통로 , const char * arg , …); int execlp (const char * 파일 , const char * arg , …); int execle (const char * 통로 , const char * arg , …, char * const envp ); int execv (const char * 통로 , char * const argv ); int execvp (const char * 파일 , char * const argv );