프로세스 및 환경 제어
프로세스 제어 루틴을 사용하여 프로그램 내에서 프로세스를 시작, 중지 및 관리합니다. 환경 제어 루틴을 사용하여 운영 체제 환경에 대한 정보를 가져오고 변경합니다.
프로세스 및 환경 제어 함수
루틴에서 반환된 값 | 사용할 용어 |
---|---|
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
함수에서 새 프로세스는 호출 프로세스를 오버레이하므로 새 프로세스 실행을 시작할 때 오류가 발생하지 않는 한 컨트롤이 호출 프로세스로 돌아갈 수 없습니다.
함수와 _spawn
패밀리의 차이점 _exec
에는 새 프로세스로 실행할 파일을 찾는 방법, 인수가 새 프로세스에 전달되는 형식 및 다음 표와 같이 환경을 설정하는 메서드가 포함됩니다. 인수 개수가 일정하거나 컴파일 타임에 알려질 경우 인수 목록을 전달하는 함수를 사용합니다. 인수 개수가 런타임에 결정될 경우에는 인수를 포함하는 배열에 대한 포인터를 전달하는 함수를 사용합니다. 다음 표의 정보는 _spawn
및 _exec
함수의 와이드 문자 방식에도 적용됩니다.
_spawn
및 _exec
함수 패밀리
함수 | 변수를 사용하여 PATH 파일 찾기 |
인수 전달 규칙 | 환경 설정 |
---|---|---|---|
_execl , _spawnl |
아니요 | List | 호출하는 프로세스에서 상속됨 |
_execle , _spawnle |
아니요 | List | 마지막 인수로 전달되는 새 프로세스의 환경 테이블에 대한 포인터 |
_execlp , _spawnlp |
예 | List | 호출하는 프로세스에서 상속됨 |
_execvpe , _spawnvpe |
예 | 배열 | 마지막 인수로 전달되는 새 프로세스의 환경 테이블에 대한 포인터 |
_execlpe , _spawnlpe |
예 | List | 마지막 인수로 전달되는 새 프로세스의 환경 테이블에 대한 포인터 |
_execv , _spawnv |
아니요 | 배열 | 호출하는 프로세스에서 상속됨 |
_execve , _spawnve |
아니요 | 배열 | 마지막 인수로 전달되는 새 프로세스의 환경 테이블에 대한 포인터 |
_execvp , _spawnvp |
예 | 배열 | 호출하는 프로세스에서 상속됨 |