Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
С помощью подпрограмм для управления процессами можно запускать и останавливать процессы из программы, а также управлять ими, а с помощью подпрограмм для управления средой — получать и изменять сведения о среде операционной системы.
Функции управления процессами и средой
| Маршрут | Использование |
|---|---|
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, , _wgetenvgetenv_s_wgetenv_s |
Получает значение переменной среды. |
_getpid |
Получает идентификатор процесса. |
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 для ожидания любого другого процесса с известным идентификатором.
Разница между семействами _exec и _spawn заключается в том, что функция _spawn может переключить управление из нового процесса к вызывающему. В функции _spawn вызывающий и новый процесс находятся в памяти, если не указано _P_OVERLAY. _exec В функции новый процесс накладывает вызывающий процесс, поэтому элемент управления не может вернуться в вызывающий процесс, если в попытке начать выполнение нового процесса не возникает ошибка.
Различия между функциями в _exec и _spawn семействах включают метод определения файла, выполняемого в качестве нового процесса, формы, в которой аргументы передаются в новый процесс, и метод настройки среды, как показано в следующей таблице. Используйте функцию, передающую список аргументов, когда число аргументов является постоянным или известно в момент компиляции. Используйте функцию, передающую указатель в массив, содержащий аргументы, когда число аргументов определяется во время выполнения. Сведения в следующей таблице также применимы к аналогам функции _spawn и _exec с расширенными символами.
_spawn и _exec семейства функций
| Функции | Использование PATH переменной для поиска файла |
Соглашение о передаче аргументов | Параметры среды |
|---|---|---|---|
_execl, _spawnl |
No | List | Унаследовано от вызывающего процесса |
_execle, _spawnle |
No | List | Указатель на таблицу среды для нового процесса, переданного в качестве последнего аргумента |
_execlp, _spawnlp |
Да | List | Унаследовано от вызывающего процесса |
_execvpe, _spawnvpe |
Да | Массив | Указатель на таблицу среды для нового процесса, переданного в качестве последнего аргумента |
_execlpe, _spawnlpe |
Да | List | Указатель на таблицу среды для нового процесса, переданного в качестве последнего аргумента |
_execv, _spawnv |
No | Массив | Унаследовано от вызывающего процесса |
_execve, _spawnve |
No | Массив | Указатель на таблицу среды для нового процесса, переданного в качестве последнего аргумента |
_execvp, _spawnvp |
Да | Массив | Унаследовано от вызывающего процесса |