◐ Shell
clean mode source ↗

std::system — cppreference.com

Материал из cppreference.com

<tbody> </tbody>

Определено в заголовочном файле <cstdlib>

int system( const char* command );

Вызывает командный процессор среды хоста (например, /bin/sh, cmd.exe) с параметром command. Возвращает значение, определённое реализацией (обычно значение, которое возвращает вызванная программа).

Если command является нулевым указателем, проверяет, есть ли в среде хоста командный процессор, и возвращает ненулевое значение тогда и только тогда, когда командный процессор существует.

Параметры

command строка символов, идентифицирующая команду, которая должна быть запущена в командном процессоре. Если задан нулевой указатель, командный процессор проверяется на существование

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

Определённое реализацией значение. Если command является нулевым указателем, возвращает ненулевое значение тогда и только тогда, когда существует командный процессор.

Примечание

В системах POSIX возвращаемое значение можно разложить с помощью WEXITSTATUS и WSTOPSIG

Аналогичная POSIX-функция popen позволяет также прочитать вывод, которая сделала вызванная программа.

Явный сброс std::cout также необходим перед вызовом std::system, если порождённый процесс выполняет какой-либо экранный ввод-вывод.

Пример

#include <cstdlib>
#include <fstream>
#include <iostream>

int main()
{
    std::system("ls -l >test.txt"); // выполняет UNIX-команду "ls -l >test.txt"
    std::cout << std::ifstream("test.txt").rdbuf();
}

Возможный вывод:

total 16
-rwxr-xr-x 1 2001 2000 8859 Sep 30 20:52 a.out
-rw-rw-rw- 1 2001 2000  161 Sep 30 20:52 main.cpp
-rw-r--r-- 1 2001 2000    0 Sep 30 20:52 test.txt

Смотрите также