programing

C와 C++에서 사용되는 다른 버전의 Exec은 무엇인가?

prostudy 2022. 5. 14. 22:30
반응형

C와 C++에서 사용되는 다른 버전의 Exec은 무엇인가?

C(및 C++)에서 사용할 수 있는 모든 실행 버전

execl
execle
execlp
execv
execve
execvp

두 사람의 차이점이 뭐야?어떤 것을 사용해야 하는지 어떻게 아십니까?

차이점은 다음과 같은 조합:

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

    • L: 호출의 개별 매개 변수(변수 인수 목록): execl(),execle(),execlp()그리고execlpe()
    • V: 문자의 배열로*execv(),execve(),execvp()그리고execvpe()

    배열 형식은 미리 알 수 없는 것처럼, 실행된 프로세스에 보낼 매개변수 수가 가변적이어서 함수 호출에 고정된 수의 매개변수를 넣을 수 없을 때 유용하다.

  2. E: 마지막에 'E'가 있는 버전을 사용하면 실행 프로그램이 실행되기 전에 생성된 프로세스 환경에 추가된 문자열 집합인 char* 배열을 추가로 통과할 수 있다.하지만 매개 변수를 전달하는 또 다른 방법은, 정말로.

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

opengroup은 핵심 c/c++ 기능에 대한 가장 좋은 일반 참조 자료 중 하나이다.

executive*에 대한 설명: http://pubs.opengroup.org/onlinepubs/009695399/functions/environ.html

C 런타임 라이브러리의 Posix 확장이다.만약 공식적인 Posix 문서가 불충분하다면, 나는 Samuel P라는 책을 추천할 수 있다.하비슨, 가이 엘스틸, 2002 "C A Reference" 페이지# 416 - 이 질문을 다룬다.

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

반응형