IT박스

C와 C ++에서 사용되는 exec의 다른 버전은 무엇입니까?

itboxs 2020. 10. 5. 07:45
반응형

C와 C ++에서 사용되는 exec의 다른 버전은 무엇입니까?


이들은 C (및 C ++)에서 사용할 수있는 모든 exec 버전입니다.

execl
execle
execlp
execv
execve
execvp

그들 사이의 차이점은 무엇입니까? 어떤 것을 사용할지 어떻게 알 수 있습니까?


차이점은 다음의 조합입니다.

  1. L vs V : 매개 변수를 실행 된 프로그램에 다음과 같이 전달할지 여부

    • L : 통화 개별 파라미터 (변수 인수리스트) execl(), execle(), execlp(), 및execlpe()
    • V : 숯 *의 배열로서 execv(), execve(), execvp()execvpe()

    배열 형식은 실행 된 프로세스로 보낼 매개 변수의 수가 가변적 일 때 유용합니다. 사전에 알려지지 않았기 때문에 함수 호출에 고정 된 수의 매개 변수를 넣을 수 없습니다.

  2. E : 끝에 'e'가있는 버전을 사용하면 실행 된 프로그램이 시작되기 전에 생성 된 프로세스 환경에 추가 된 문자열 집합 인 char * 배열을 추가로 전달할 수 있습니다. 매개 변수를 전달하는 또 다른 방법입니다.

  3. P : 'p'가있는 버전은 환경 경로 변수를 사용하여 실행할 이름의 실행 파일을 검색합니다. 'p'가없는 버전은 현재 작업 디렉토리에없는 경우 실행 파일의 파일 이름 앞에 절대 또는 상대 파일 경로를 추가해야합니다.


Opengroup은 핵심 c / c ++ 함수에 대한 최고의 일반 참조 중 하나입니다.

exec *에 대한 문서는 여기에 있습니다 : http://pubs.opengroup.org/onlinepubs/009695399/functions/environ.html


C 런타임 라이브러리의 Posix 확장입니다. 공식 Posix 문서가 불충분하다면 나는 그 질문을 다루고있는 Samuel P. Harbison, Guy L.Steele, 2002 "CA Reference"페이지 # 416-책을 추천 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/5769734/what-are-the-different-versions-of-exec-used-for-in-c-and-c

반응형