Пространства имён
Варианты
Действия

std::system

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
Утилиты поддержки программ
Прерывание программы
(C++11)
(C++11)
Недостижимый поток управления
Взаимодействие с окружением
Сигналы
Типы сигналов
Нелокальные переходы
Типы
 
<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

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