std::system
| Определено в заголовочном файле <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
Смотрите также
Документация C по system
|