프로세스 및 환경 제어Process and Environment Control

프로세스 제어 루틴을 사용하여 프로그램 내에서 프로세스를 시작, 중지 및 관리합니다.Use the process-control routines to start, stop, and manage processes from within a program. 환경 제어 루틴을 사용하여 운영 체제 환경에 대한 정보를 가져오고 변경합니다.Use the environment-control routines to get and change information about the operating-system environment.

프로세스 및 환경 제어 함수Process and Environment Control Functions

루틴Routine 기능Use
abortabort 버퍼를 플러시하거나 atexit_onexit에 의해 등록된 함수를 호출하지 않고 프로세스를 중단합니다.Abort process without flushing buffers or calling functions registered by atexit and _onexit
assertassert 논리 오류를 테스트합니다.Test for logic error
_ASSERT, _ASSERTE 매크로_ASSERT, _ASSERTE macros assert와 유사하지만 런타임 라이브러리의 디버그 버전에서만 사용할 수 있습니다.Similar to assert, but only available in the debug versions of the run-time libraries
atexitatexit 프로그램 종료 시 실행 루틴을 예약합니다.Schedule routines for execution at program termination
_beginthread, _beginthreadex_beginthread, _beginthreadex Windows 운영 체제 프로세스에서 새 스레드를 만듭니다.Create a new thread on a Windows operating system process
_cexit_cexit exit 종료 프로시저(예: 버퍼 플러시)를 수행한 후 프로세스를 종료하지 않고 호출 프로그램으로 제어권을 반환합니다.Perform exit termination procedures (such as flushing buffers), then return control to calling program without terminating process
_c_exit_c_exit _exit 종료 프로시저를 수행한 후 프로세스를 종료하지 않고 호출 프로그램으로 제어권을 반환합니다.Perform _exit termination procedures, then return control to calling program without terminating process
_cwait_cwait 다른 프로세스가 종료될 때까지 기다립니다.Wait until another process terminates
_endthread, _endthreadex_endthread, _endthreadex Windows 운영 체제 스레드를 종료합니다.Terminate a Windows operating system thread
_execl, _wexecl_execl, _wexecl 인수 목록을 사용하여 새 프로세스를 실행합니다.Execute new process with argument list
_execle, _wexecle_execle, _wexecle 인수 목록 및 지정된 환경을 사용하여 새 프로세스를 실행합니다.Execute new process with argument list and given environment
_execlp, _wexeclp_execlp, _wexeclp PATH 변수 및 인수 목록을 사용하여 새 프로세스를 실행합니다.Execute new process using PATH variable and argument list
_execlpe, _wexeclpe_execlpe, _wexeclpe PATH 변수, 지정된 환경 및 인수 목록을 사용하여 새 프로세스를 실행합니다.Execute new process using PATH variable, given environment, and argument list
_execv, _wexecv_execv, _wexecv 인수 배열을 사용하여 새 프로세스를 실행합니다.Execute new process with argument array
_execve, _wexecve_execve, _wexecve 인수 배열 및 지정된 환경을 사용하여 새 프로세스를 실행합니다.Execute new process with argument array and given environment
_execvp, _wexecvp_execvp, _wexecvp PATH 변수 및 인수 배열을 사용하여 새 프로세스를 실행합니다.Execute new process using PATH variable and argument array
_execvpe, _wexecvpe_execvpe, _wexecvpe PATH 변수, 지정된 환경 및 인수 배열을 사용하여 새 프로세스를 실행합니다.Execute new process using PATH variable, given environment, and argument array
exitexit atexit_onexit에 의해 등록된 함수를 호출하고, 모든 버퍼를 플러시하고, 열려 있는 모든 파일을 닫고, 프로세스를 종료합니다.Call functions registered by atexit and _onexit, flush all buffers, close all open files, and terminate process
_exit_exit atexit 또는 _onexit를 호출하지 않고 버퍼도 플러시하지 않고 프로세스를 즉시 종료합니다.Terminate process immediately without calling atexit or _onexit or flushing buffers
getenv, _wgetenv, getenv_s, _wgetenv_sgetenv, _wgetenv, getenv_s, _wgetenv_s 환경 변수 값을 가져옵니다.Get value of environment variable
_getpid_getpid 프로세스 ID 번호를 가져옵니다.Get process ID number
longjmplongjmp 저장된 스택 환경을 복원하고 비로컬 goto를 실행하는 데 사용합니다.Restore saved stack environment; use it to execute a nonlocal goto
_onexit_onexit 프로그램 종료 시 실행 루틴을 예약합니다. Microsoft C/C++ 버전 7.0 및 이전 버전과의 호환성을 위해 사용합니다.Schedule routines for execution at program termination; use for compatibility with Microsoft C/C++ version 7.0 and earlier
_pclose_pclose 새 명령 프로세서가 실행될 때까지 기다렸다가 연결된 파이프에서 스트림을 닫습니다.Wait for new command processor and close stream on associated pipe
perror, _wperrorperror, _wperror 오류 메시지를 출력합니다.Print error message
_pipe_pipe 읽기 및 쓰기용 파이프를 만듭니다.Create pipe for reading and writing
_popen, _wpopen_popen, _wpopen 파이프를 만들고 명령을 실행합니다.Create pipe and execute command
_putenv, _wputenv, _putenv_s, _wputenv_s_putenv, _wputenv, _putenv_s, _wputenv_s 환경 변수의 값을 추가하거나 변경합니다.Add or change value of environment variable
raiseraise 호출 프로세스로 신호를 보냅니다.Send signal to calling process
setjmpsetjmp 스택 환경을 저장하고 비로컬 goto를 실행하는 데 사용합니다.Save stack environment; use to execute non local goto
signalsignal 인터럽트 신호를 처리합니다.Handle interrupt signal
_spawnl, _wspawnl_spawnl, _wspawnl 새 프로세스를 만들고 지정된 인수 목록을 사용하여 실행합니다.Create and execute new process with specified argument list
_spawnle, _wspawnle_spawnle, _wspawnle 새 프로세스를 만들고 지정된 인수 목록 및 환경을 사용하여 실행합니다.Create and execute new process with specified argument list and environment
_spawnlp, _wspawnlp_spawnlp, _wspawnlp 새 프로세스를 만들고 PATH 변수 및 지정된 인수 목록을 사용하여 실행합니다.Create and execute new process using PATH variable and specified argument list
_spawnlpe, _wspawnlpe_spawnlpe, _wspawnlpe 새 프로세스를 만들고 PATH 변수, 지정된 환경 및 인수 목록을 사용하여 실행합니다.Create and execute new process using PATH variable, specified environment, and argument list
_spawnv, _wspawnv_spawnv, _wspawnv 새 프로세스를 만들고 지정된 인수 배열을 사용하여 실행합니다.Create and execute new process with specified argument array
_spawnve, _wspawnve_spawnve, _wspawnve 새 프로세스를 만들고 지정된 환경 및 인수 배열을 사용하여 실행합니다.Create and execute new process with specified environment and argument array
_spawnvp, _wspawnvp_spawnvp, _wspawnvp 새 프로세스를 만들고 PATH 변수 및 지정된 인수 배열을 사용하여 실행합니다.Create and execute new process using PATH variable and specified argument array
_spawnvpe, _wspawnvpe_spawnvpe, _wspawnvpe 새 프로세스를 만들고 PATH 변수, 지정된 환경 및 인수 배열을 사용하여 실행합니다.Create and execute new process using PATH variable, specified environment, and argument array
system, _wsystemsystem, _wsystem 운영 체제 명령을 실행합니다.Execute operating-system command

Windows 운영 체제에서 생성된 프로세스는 생성하는 프로세스와 동급입니다.In the Windows operating system, the spawned process is equivalent to the spawning process. 모든 프로세스에서 _cwait를 사용하여 프로세스 ID가 알려진 다른 프로세스를 대기할 수 있습니다.Any process can use _cwait to wait for any other process for which the process ID is known.

_exec_spawn 패밀리 간의 차이는 _spawn 함수가 새 프로세스에서 호출 프로세스로 제어권을 반환할 수 있다는 것입니다.The difference between the _exec and _spawn families is that a _spawn function can return control from the new process to the calling process. _spawn 함수에서 호출 프로세스 및 새 프로세스는 _P_OVERLAY가 지정되지 않는 한, 둘 다 메모리에 위치합니다.In a _spawn function, both the calling process and the new process are present in memory unless _P_OVERLAY is specified. _exec 함수에서 새 프로세스는 호출하는 프로세스를 오버레이하므로 새 프로세스의 실행을 시작하려는 시도 중에 오류가 발생하지 않는 한, 제어권이 호출하는 프로세스로 반환될 수 없습니다.In an _exec function, the new process overlays the calling process, so control cannot return to the calling process unless an error occurs in the attempt to start execution of the new process.

_exec 제품군의 함수와 _spawn 제품군의 함수 간 차이는 다음 표에 나온 것처럼 새 프로세스로 실행될 파일을 찾는 방법, 인수가 새 프로세스로 전달되는 방식 및 환경을 설정하는 방법과 관련이 있습니다.The differences among the functions in the _exec family, as well as among those in the _spawn family, involve the method of locating the file to be executed as the new process, the form in which arguments are passed to the new process, and the method of setting the environment, as shown in the following table. 인수 개수가 일정하거나 컴파일 타임에 알려질 경우 인수 목록을 전달하는 함수를 사용합니다.Use a function that passes an argument list when the number of arguments is constant or is known at compile time. 인수 개수가 런타임에 결정될 경우에는 인수를 포함하는 배열에 대한 포인터를 전달하는 함수를 사용합니다.Use a function that passes a pointer to an array containing the arguments when the number of arguments is to be determined at run time. 다음 표의 정보는 _spawn_exec 함수의 와이드 문자 방식에도 적용됩니다.The information in the following table also applies to the wide-character counterparts of the _spawn and _exec functions.

_spawn 및 _exec 함수 패밀리_spawn and _exec Function Families

함수Functions PATH 변수를 사용하여 파일 찾기Use PATH variable to locate file 인수 전달 규칙Argument-passing convention 환경 설정Environment settings
_execl, _spawnl 아니요No 목록List 호출하는 프로세스에서 상속됨Inherited from calling process
_execle, _spawnle 아니요No 목록List 마지막 인수로 전달되는 새 프로세스의 환경 테이블에 대한 포인터Pointer to environment table for new process passed as last argument
_execlp, _spawnlp Yes 목록List 호출하는 프로세스에서 상속됨Inherited from calling process
_execlpe, _spawnlpe Yes 목록List 마지막 인수로 전달되는 새 프로세스의 환경 테이블에 대한 포인터Pointer to environment table for new process passed as last argument
_execv, _spawnv 아니요No 배열Array 호출하는 프로세스에서 상속됨Inherited from calling process
_execve, _spawnve 아니요No 배열Array 마지막 인수로 전달되는 새 프로세스의 환경 테이블에 대한 포인터Pointer to environment table for new process passed as last argument
_execvp, _spawnvp Yes 배열Array 호출하는 프로세스에서 상속됨Inherited from calling process
_execvpe, _spawnvpe Yes 배열Array 마지막 인수로 전달되는 새 프로세스의 환경 테이블에 대한 포인터Pointer to environment table for new process passed as last argument

참고 항목See Also

범주별 런타임 루틴Run-Time Routines by Category