프로세스 및 환경 제어

프로세스 제어 루틴을 사용하여 프로그램 내에서 프로세스를 시작, 중지 및 관리합니다. 환경 제어 루틴을 사용하여 운영 체제 환경에 대한 정보를 가져오고 변경합니다.

프로세스 및 환경 제어 함수

루틴 기능
abort 버퍼를 플러시하거나 atexit_onexit에 의해 등록된 함수를 호출하지 않고 프로세스를 중단합니다.
assert 논리 오류를 테스트합니다.
_ASSERT, _ASSERTE 매크로 assert와 유사하지만 런타임 라이브러리의 디버그 버전에서만 사용할 수 있습니다.
atexit 프로그램 종료 시 실행 루틴을 예약합니다.
_beginthread, _beginthreadex Windows 운영 체제 프로세스에서 새 스레드를 만듭니다.
_cexit exit 종료 프로시저(예: 버퍼 플러시)를 수행한 후 프로세스를 종료하지 않고 호출 프로그램으로 제어권을 반환합니다.
_c_exit _exit 종료 프로시저를 수행한 후 프로세스를 종료하지 않고 호출 프로그램으로 제어권을 반환합니다.
_cwait 다른 프로세스가 종료될 때까지 기다립니다.
_endthread, _endthreadex Windows 운영 체제 스레드를 종료합니다.
_execl, _wexecl 인수 목록을 사용하여 새 프로세스를 실행합니다.
_execle, _wexecle 인수 목록 및 지정된 환경을 사용하여 새 프로세스를 실행합니다.
_execlp, _wexeclp PATH 변수 및 인수 목록을 사용하여 새 프로세스를 실행합니다.
_execlpe, _wexeclpe PATH 변수, 지정된 환경 및 인수 목록을 사용하여 새 프로세스를 실행합니다.
_execv, _wexecv 인수 배열을 사용하여 새 프로세스를 실행합니다.
_execve, _wexecve 인수 배열 및 지정된 환경을 사용하여 새 프로세스를 실행합니다.
_execvp, _wexecvp PATH 변수 및 인수 배열을 사용하여 새 프로세스를 실행합니다.
_execvpe, _wexecvpe PATH 변수, 지정된 환경 및 인수 배열을 사용하여 새 프로세스를 실행합니다.
exit atexit_onexit에 의해 등록된 함수를 호출하고, 모든 버퍼를 플러시하고, 열려 있는 모든 파일을 닫고, 프로세스를 종료합니다.
_exit atexit 또는 _onexit를 호출하지 않고 버퍼도 플러시하지 않고 프로세스를 즉시 종료합니다.
getenv, _wgetenv, getenv_s, _wgetenv_s 환경 변수 값을 가져옵니다.
_getpid 프로세스 ID 번호를 가져옵니다.
longjmp 저장된 스택 환경을 복원하고 비로컬 goto를 실행하는 데 사용합니다.
_onexit 프로그램 종료 시 실행 루틴을 예약합니다. Microsoft C/C++ 버전 7.0 및 이전 버전과의 호환성을 위해 사용합니다.
_pclose 새 명령 프로세서가 실행될 때까지 기다렸다가 연결된 파이프에서 스트림을 닫습니다.
perror, _wperror 오류 메시지를 출력합니다.
_pipe 읽기 및 쓰기용 파이프를 만듭니다.
_popen, _wpopen 파이프를 만들고 명령을 실행합니다.
_putenv, _wputenv, _putenv_s, _wputenv_s 환경 변수의 값을 추가하거나 변경합니다.
raise 호출 프로세스로 신호를 보냅니다.
setjmp 스택 환경을 저장하고 비로컬 goto를 실행하는 데 사용합니다.
signal 인터럽트 신호를 처리합니다.
_spawnl, _wspawnl 새 프로세스를 만들고 지정된 인수 목록을 사용하여 실행합니다.
_spawnle, _wspawnle 새 프로세스를 만들고 지정된 인수 목록 및 환경을 사용하여 실행합니다.
_spawnlp, _wspawnlp 새 프로세스를 만들고 PATH 변수 및 지정된 인수 목록을 사용하여 실행합니다.
_spawnlpe, _wspawnlpe 새 프로세스를 만들고 PATH 변수, 지정된 환경 및 인수 목록을 사용하여 실행합니다.
_spawnv, _wspawnv 새 프로세스를 만들고 지정된 인수 배열을 사용하여 실행합니다.
_spawnve, _wspawnve 새 프로세스를 만들고 지정된 환경 및 인수 배열을 사용하여 실행합니다.
_spawnvp, _wspawnvp 새 프로세스를 만들고 PATH 변수 및 지정된 인수 배열을 사용하여 실행합니다.
_spawnvpe, _wspawnvpe 새 프로세스를 만들고 PATH 변수, 지정된 환경 및 인수 배열을 사용하여 실행합니다.
system, _wsystem 운영 체제 명령을 실행합니다.

Windows 운영 체제에서 생성된 프로세스는 생성하는 프로세스와 동급입니다. 모든 프로세스에서 _cwait를 사용하여 프로세스 ID가 알려진 다른 프로세스를 대기할 수 있습니다.

_exec_spawn 패밀리 간의 차이는 _spawn 함수가 새 프로세스에서 호출 프로세스로 제어권을 반환할 수 있다는 것입니다. _spawn 함수에서 호출 프로세스 및 새 프로세스는 _P_OVERLAY가 지정되지 않는 한, 둘 다 메모리에 위치합니다. _exec 함수에서 새 프로세스는 호출하는 프로세스를 오버레이하므로 새 프로세스의 실행을 시작하려는 시도 중에 오류가 발생하지 않는 한, 제어권이 호출하는 프로세스로 반환될 수 없습니다.

_exec 제품군의 함수와 _spawn 제품군의 함수 간 차이는 다음 표에 나온 것처럼 새 프로세스로 실행될 파일을 찾는 방법, 인수가 새 프로세스로 전달되는 방식 및 환경을 설정하는 방법과 관련이 있습니다. 인수 개수가 일정하거나 컴파일 타임에 알려질 경우 인수 목록을 전달하는 함수를 사용합니다. 인수 개수가 런타임에 결정될 경우에는 인수를 포함하는 배열에 대한 포인터를 전달하는 함수를 사용합니다. 다음 표의 정보는 _spawn_exec 함수의 와이드 문자 방식에도 적용됩니다.

_spawn 및 _exec 함수 패밀리

함수 PATH 변수를 사용하여 파일 찾기 인수 전달 규칙 환경 설정
_execl, _spawnl 아니요 목록 호출하는 프로세스에서 상속됨
_execle, _spawnle 아니요 목록 마지막 인수로 전달되는 새 프로세스의 환경 테이블에 대한 포인터
_execlp, _spawnlp 목록 호출하는 프로세스에서 상속됨
_execlpe, _spawnlpe 목록 마지막 인수로 전달되는 새 프로세스의 환경 테이블에 대한 포인터
_execv, _spawnv 아니요 배열 호출하는 프로세스에서 상속됨
_execve, _spawnve 아니요 배열 마지막 인수로 전달되는 새 프로세스의 환경 테이블에 대한 포인터
_execvp, _spawnvp 배열 호출하는 프로세스에서 상속됨
_execvpe, _spawnvpe 배열 마지막 인수로 전달되는 새 프로세스의 환경 테이블에 대한 포인터

참고 항목

범주별 런타임 루틴