_spawnve
, _wspawnve
새 프로세스를 만들고 실행합니다.
Important
이 API는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다. 자세한 내용은 유니버설 Windows 플랫폼 앱에서 지원되지 않는 CRT 함수를 참조하세요.
구문
intptr_t _spawnve(
int mode,
const char *cmdname,
const char *const *argv,
const char *const *envp
);
intptr_t _wspawnve(
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
환경 설정에 대한 포인터 배열입니다.
반환 값
동기 _spawnve
또는 _wspawnve
(mode
에 대해 지정된 _P_WAIT
)에서 반환되는 값은 새 프로세스의 종료 상태입니다. 비동기 _spawnve
또는 _wspawnve
(_P_NOWAIT
에 대해 지정된 _P_NOWAITO
또는 mode
)에서 반환되는 값은 프로세스 핸들입니다. 프로세스가 정상적으로 종료되는 경우 종료 상태는 0입니다. 생성된 프로세스가 0이 아닌 인수를 가진 exit
루틴을 호출하는 경우에만 종료 상태를 0이 아닌 값으로 설정할 수 있습니다. 새 프로세스가 명시적으로 양수 종료 상태를 설정하지 않은 경우 양수 종료 상태는 중단 또는 인터럽트가 있는 비정상적인 종료를 나타냅니다. 반환 값 -1은 오류를 나타냅니다(새 프로세스가 시작되지 않음). 이 경우 errno
는 다음 값 중 하나로 설정됩니다.
값 | 설명 |
---|---|
E2BIG |
인수 목록이 1024바이트를 초과합니다. |
EINVAL |
mode 인수가 잘못되었습니다. |
ENOENT |
파일 또는 경로를 찾을 수 없습니다. |
ENOEXEC |
지정된 파일이 실행 가능하지 않거나 실행 파일 형식이 잘못되었습니다. |
ENOMEM |
메모리가 부족하여 새 프로세스를 실행할 수 없습니다. |
이러한 코드 및 기타 반환 코드에 대한 자세한 내용은 , _doserrno
및 _sys_nerr
_sys_errlist
를 참조하세요.errno
설명
이러한 각 함수는 새 프로세스를 작성 및 실행하고, 명령줄 인수에 대한 포인터 배열 및 환경 설정에 대한 포인터 배열을 전달합니다.
이러한 함수는 해당 함수 매개 변수의 유효성을 검사합니다. cmdname
null 포인터이거나 argv
null 포인터 argv[0]
이거나 빈 문자열인 경우 argv
매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용된 경우, 이러한 함수는 errno
를 EINVAL
로 설정하고 -1을 반환합니다. 새로운 프로세스가 생성되지 않습니다.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
_spawnve |
<stdio.h> 또는 <process.h> |
_wspawnve |
<stdio.h> 또는 <wchar.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
함수 _wspawn
의 _spawn
예제를 참조하세요.
참고 항목
프로세스 및 환경 제어
_spawn
, _wspawn
함수
abort
atexit
_exec
, _wexec
함수
exit
, , _Exit
_exit
_flushall
_getmbcp
_onexit
, _onexit_m
_setmbcp
system
, _wsystem