August 2, 2019 - No Comments!

execvp 함수 예제

위에 표시된 구문에는 위의 모든 임원 멤버, 즉 char * const envp[]와 같은 하나의 다른 인수가 있습니다: 호출자가 인수 envp를 통해 실행된 프로그램의 환경을 지정할 수 있도록 합니다. envp:이 인수는 null-종단 문자열에 대한 포인터 의 배열이며 null 포인터로 종료되어야 합니다. 다른 함수는 호출 프로세스의 외부 변수 환경으로부터 새 프로세스 이미지에 대한 환경을 가져옵니다. [THR] 스레드가 두 개 이상 인 프로세스의 모든 exec 함수를 호출하면 모든 스레드가 종료되고 새 실행 이미지가 로드되고 실행됩니다. 소멸자 함수 또는 정리 처리기를 호출할 수 없습니다. [AIO] 미해결 비동기 I/O 작업은 취소될 수 있습니다. 취소되지 않은 비동기 I/O 작업은 exec 함수가 아직 발생하지 않은 것처럼 완료되지만 관련 신호 알림은 억제됩니다. exec 함수 자체가 이러한 I/O 완료를 기다리는 동안 차단되는지 여부는 지정되지 않습니다. 그러나 어떠한 경우에도 exec 함수가 생성한 새 프로세스 이미지는 exec 함수가 호출될 때 뛰어난 비동기 I/O 작업의 존재에 의해 영향을 받습니다.

I/O가 취소되고 임원이 취소될 수 있는 I/O가 구현 정의되어 있는지 여부입니다. 다음 예제에서는 실행 할 수 있는 경로 이름을 지정 하는 ls 명령을 실행 (/bin/ls) 단일 열 출력을 생성 하기 위해 명령에 직접 제공 하는 인수를 사용 하 여. 호출 프로세스 이미지의 기본 동작(SIG_DFL)으로 설정된 신호는 새 프로세스 이미지의 기본 동작으로 설정되어야 합니다. SIGCHLD를 제외하고 호출 프로세스 이미지에 의해 무시하도록 설정된 신호(SIG_IGN)는 새 프로세스 이미지에서 무시하도록 설정되어야 합니다. 호출 프로세스 이미지에 의해 잡힐 수 있도록 설정된 신호는 새 프로세스 이미지의 기본 동작으로 설정되어야 합니다(참조). 호출 프로세스 이미지에서 SIGCHLD 신호를 무시하도록 설정된 경우 SIGCHLD 신호가 무시되거나 새 프로세스 이미지의 기본 동작으로 설정되어 있는지 지정되지 않습니다. 【XSI】 exec 함수를 성공적으로 호출한 후에는 대체 신호 스택이 유지되지 않으며 모든 신호에 대해 SA_ONSTACK 플래그가 지워집니다. 기능의 임원 제품군은 현재 프로세스 이미지를 새 프로세스 이미지로 대체해야 합니다. 새 이미지는 새 프로세스 이미지 파일이라는 일반 실행 파일로 구성됩니다. 호출 프로세스 이미지가 새 프로세스 이미지에 의해 오버레이되기 때문에 성공적인 exec에서 반환되지 않습니다.

또한 execle 함수는 매개 변수 목록의 인수 목록을 종료하는 NULL 포인터 또는 추가 매개 변수가 있는 argv 배열에 대한 포인터를 따라 실행된 프로세스의 환경을 지정합니다. 이 추가 매개 변수는 null-종료된 문자열에 대한 포인터 배열이며 NULL 포인터로 종료되어야 합니다. 다른 함수는 현재 프로세스의 외부 변수 환경으로부터 새 프로세스 이미지에 대한 환경을 가져옵니다. exec 함수 중 어느 것이라도 반환하면 오류가 발생합니다. 반환 값은 -1이며 전역 변수 errno는 오류를 나타내도록 설정됩니다. exec 함수 중 하나를 사용하는 프로그램에서 지정한 인수는 해당 main() 인수의 새 프로세스 이미지로 전달됩니다.

Published by: gianni57

Comments are closed.