다음을 통해 공유


_spawnvpe, _wspawnvpe

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

중요

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

intptr_t _spawnvpe(
   int mode,
   const char *cmdname,
   const char *const *argv,
   const char *const *envp 
);
intptr_t _wspawnvpe(
   int mode,
   const wchar_t *cmdname,
   const wchar_t *const *argv,
   const wchar_t *const *envp 
);

매개 변수

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

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

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

  • envp
    환경 설정에 대한 포인터 배열입니다.

반환 값

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

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

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

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

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

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

이러한 반환 코드와 다른 반환코드에 대한 자세한 정보는 _doserrno, errno, _sys_errlist, and _sys_nerr 를 참조하십시오.

설명

각각의 이러한 함수는 새 프로세스를 만들고 실행합니다, 명령줄 인수 포인터 배열과 환경 설정 포인터 배열을 실행합니다. 이러한 함수는 PATH 환경 변수를 사용하여 실행할 파일을 찾습니다.

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

요구 사항

루틴

필수 헤더

_spawnvpe

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

_wspawnvpe

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

추가 호환성 정보는 호환성을 참조하십시오.

예제

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

해당 .NET Framework 항목

참고 항목

참조

abort

atexit

_exec, _wexec 함수

exit, _exit

_flushall

_getmbcp

_onexit, _onexit_m

_setmbcp

system, _wsystem