Namespaces
Variants

std::system

С сайта ru.cppreference.net
 
 
Библиотека утилит
Поддержка языка
Поддержка типов (базовые типы, RTTI)
Макросы проверки возможностей библиотеки (C++20)
Программные утилиты
Функции с переменным числом аргументов
Поддержка корутин (C++20)
Поддержка контрактов (C++26)
Трёхстороннее сравнение
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Общие утилиты
Операторы отношений (устарело в C++20)
 
 
Определён в заголовке <cstdlib>
int system( const char* command );

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

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

Параметры

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

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

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

Примечания

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

Соответствующая функция POSIX popen делает вывод, сгенерированный command доступным для вызывающей стороны.

Явный сброс 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

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