system()

Выполнить системную команду

Прототип:

#include <stdlib.h>
int system( const char *command );

Аргументы:

command
NULL или системная команда для исполнения.

Библиотека:

libc

Описание:

Поведение функции system() зависит от значения аргумента command:


Note: В качестве командного интерпретатора всегда используется /bin/sh, независимо от значения переменной окружения SHELL, поскольку приложение может полагаться на стандартные функции определенного командного интерпретатора, а не переопределенного переменной окружения.

Это означает, что любая команда, которую можно ввести в командном интерпретаторе, может быть исполнена, включая: программы и утилиты, а также скрипты. Функциями exec*() и spawn*(), например, можно исполнить только программы и утилиты.


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

Подробнее о макросах, позволяющих извлекать информацию из возвращаемого значения функции system() см. Макросы статуса и описание функции wait().

Если возникла ошибка, errno будет содержать соответствующий код ошибки.

Примеры:

#include <stdlib.h>
#include <stdio.h>
#include <sys/wait.h>
int main( void )
{
int rc;
rc = system( "ls" );
if ( rc == -1 )
{
printf( "shell could not be run\n" );
} else {
printf( "result of running command is %d\n", WEXITSTATUS( rc ) );
}
return (EXIT_SUCCESS);
}

Классификация:

ANSI, POSIX 1003.1

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

abort(), atexit(), close(), errno, execl(), execle(), execlp(), execlpe(), execv(), execve(), execvp(), execvpe(), exit(), _exit(), getenv(), main(), putenv(), sigaction(), signal(), spawn(), spawnl(), spawnle(), spawnlp(), spawnlpe(), spawnp(), spawnv(), spawnve(), spawnvp(), spawnvpe(), wait(), waitpid()




Предыдущий раздел: Описание API системной библиотеки