다음을 통해 공유


_spawnvp, _wspawnvp

프로세스를 만들고 실행합니다.

중요

이 API는 Windows 런타임에서 실행되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /ZW에서 지원하지 않는 CRT 함수를 참조하십시오.

intptr_t _spawnvp(
   int mode,
   const char *cmdname,
   const char *const *argv 
);
intptr_t _wspawnvp(
   int mode,
   const wchar_t *cmdname,
   const wchar_t *const *argv 
);

매개 변수

  • mode
    프로세스 호출의 실행 모드입니다.

  • cmdname
    실행할 파일의 경로입니다.

  • argv
    인수에 대한 포인터 배열입니다. 인수 argv[0]은 일반적으로 리얼 모드에서 경로를 가리키는 포인터거나 보호 모드에서 프로그램 이름을 가리키는 포인터입니다. 그리고 argv[n]을 통한 argv[1]은 새로운 인수 목록을 구성하는 문자열을 가리키는 포인터입니다. 인수 argv[n +1]은 인수 목록의 끝을 표시하는 NULL 포인터여야 합니다.

반환 값

_spawnvp 로부터 동기화된 반환 값 또는 _wspawnvp 은 (__P_WAIT 지정된 mode) 새 프로세스의 종료 상태입니다. 비동기 작업의 반환 값 _spawnvp 또는 _wspawnvp 은 (_P_NOWAIT 또는 _P_NOWAITO 지정된 mode) 프로세스 핸들입니다. 프로세스가 정상적으로 종료되는 경우 종료 상태는 0입니다. 생성된 프로세스가 0이 아닌 인수를 exit 루틴을 호출하기 위해 사용하는 경우에만 종료 상태를 0이 아닌 값으로 설정할 수 있습니다. 새 프로세스가 양수 값의 종료 상태를 명시적으로 설정하지 않은 경우, 양수 값의 종료 상태는 중단되거나 인터럽트된 비정상적인 종료를 나타냅니다. 반환 값 -1은 새 프로세스가 시작되지 않은 오류를 나타냅니다. 이 경우 errno 는 다음 값 중 하나로 설정됩니다.

  • E2BIG
    인수 목록이 1024바이트를 초과합니다.

  • EINVAL
    mode 인수가 잘못되었습니다.

  • ENOENT
    파일 또는 경로를 찾을 수 없습니다.

  • ENOEXEC
    지정한 파일이 실행할 수 없거나 실행 파일 형식이 잘못되었습니다.

  • ENOMEM
    메모리가 부족하여 새 프로세스를 실행할 수 없습니다.

이러한 반환 코드 및 기타 반환 코드에 대한 자세한 내용은 errno, _doserrno, _sys_errlist 및 _sys_nerr을 참조하십시오.

설명

각 함수는 새로운 프로세스를 생성하고 실행합니다. 그리고 포인터 배열을 명령줄 인수에 넘기고, 실행할 파일을 찾기 위해 PATH 환경 변수를 사용합니다.

이러한 함수는 해당 함수 매개 변수의 유효성을 검사합니다. cmdname 또는 argv 가 null 포인터인 경우 argv null 포인터를 가르키는 경우, 또는 argv[0] 이 빈 문자열인 경우, 설명된 대로 매개 변수 유효성 검사 는 잘못 된 매개변수 처리기를 호출합니다. 계속해서 실행하도록 허용된 경우, 이러한 함수는 errno를 EINVAL 로 설정하고 -1을 반환합니다. 새로운 프로세스가 생성되지 않습니다.

요구 사항

루틴

필수 헤더

_spawnvp

<stdio.h> 또는 <process.h>

_wspawnvp

<stdio.h> 또는 <wchar.h>

호환성에 대한 자세한 내용은 호환성을 참조하십시오.

예제

_spawn, _wspawn 함수의 예제를 참조하십시오.

해당 .NET Framework 항목

참고 항목

참조

프로세스 및 환경 제어

_spawn, _wspawn 함수

abort

atexit

_exec, _wexec 함수

exit, _exit

_flushall

_getmbcp

_onexit, _onexit_m

_setmbcp

system, _wsystem