Поделиться через


system, _wsystem

Выполняет команду.

Внимание

Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.

Синтаксис

int system(
   const char *command
);
int _wsystem(
   const wchar_t *command
);

Параметры

command
Команда для выполнения.

Возвращаемое значение

Если параметр command имеет значение NULL и найден интерпретатор команд, возвращает ненулевое значение. Если интерпретатор команды не найден, возвращает значение 0 и задает errno значение ENOENT. Если command это не NULLтак, system возвращает значение, возвращаемое интерпретатором команд. Она возвращает значение 0, только если интерпретатор команд возвращает значение 0. Возвращаемое значение -1 указывает на ошибку и errno имеет одно из следующих значений:

значение Описание
E2BIG Список аргументов (который зависит от системы) слишком велик.
ENOENT Не удается найти интерпретатор команд.
ENOEXEC Невозможно выполнить файл интерпретатора команд, так как формат недействителен.
ENOMEM Недостаточно памяти доступно для выполнения команды; или доступная память повреждена; или недопустимый блок существует, который указывает, что вызывающий процесс был выделен неправильно.

Дополнительные сведения о кодах возврата см. в разделе errno, _doserrno_sys_errlistи _sys_nerr.

Замечания

Функция system передает параметр command интерпретатору команд, который выполняет эту строку как команду операционной системы. Для поиска файла интерпретатора команд CMD.exe функция system использует переменные среды COMSPEC и PATH. Если параметр command имеет значение NULL, функция только проверяет, существует ли интерпретатор команд.

Перед вызовом systemнеобходимо явно очистить или fflush _flushallзакрыть любой поток.

_wsystem — это версия systemс расширенными символами; аргумент command для _wsystem — строка расширенных символов. В остальном эти функции ведут себя одинаково.

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Сопоставления подпрограмм универсального текста

TCHAR.H рутина _UNICODE и _MBCS не определен _MBCS Определенные _UNICODE Определенные
_tsystem system system _wsystem

Требования

Маршрут Обязательный заголовок
system <process.h> или <stdlib.h>
_wsystem <process.h> или <stdlib.h> или <wchar.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Пример

В этом примере функция system используется для печати (TYPE) текстового файла.

// crt_system.c

#include <process.h>

int main( void )
{
   system( "type crt_system.txt" );
}

Входные данные: crt_system.txt

Line one.
Line two.

Выходные данные

Line one.
Line two.

См. также

Управление процессами и средой
_exec, _wexec функции
exit, , _Exit_exit
_flushall
_spawn, _wspawn функции