Namensräume
Varianten
Aktionen

std::system

Von cppreference.com
< cpp‎ | utility‎ | program
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
 
Definiert in Header <cstdlib>
int system( const char* command );

Ruft den Kommandozeilenprozessor der Host-Umgebung auf (z. B. /bin/sh, cmd.exe) mit dem Parameter command. Gibt einen implementierungsdefinierten Wert zurück (normalerweise den Wert, den das aufgerufene Programm zurückgibt).

Wenn command ein Nullzeiger ist, wird geprüft, ob die Host-Umgebung einen Kommandozeilenprozessor hat, und ein Wert ungleich Null zurückgegeben, wenn und nur wenn der Kommandozeilenprozessor existiert.

Inhalt

[bearbeiten] Parameter

command - Zeichenkette, die den auszuführenden Befehl im Kommandozeilenprozessor identifiziert. Wenn ein Nullzeiger übergeben wird, wird die Existenz des Kommandozeilenprozessors geprüft.

[bearbeiten] Rückgabewert

Implementierungsdefinierter Wert. Wenn command ein Nullzeiger ist, wird ein Wert ungleich Null zurückgegeben, wenn und nur wenn der Kommandozeilenprozessor existiert.

[bearbeiten] Hinweise

Auf POSIX-Systemen kann der Rückgabewert mit WEXITSTATUS und WSTOPSIG zerlegt werden.

Die verwandte POSIX-Funktion popen macht die vom command generierte Ausgabe für den Aufrufer verfügbar.

Ein explizites Flushen von std::cout ist ebenfalls vor einem Aufruf von std::system erforderlich, wenn der gestartete Prozess eine Bildschirmausgabe durchführt.

[bearbeiten] Beispiel

#include <cstdlib>
#include <fstream>
#include <iostream>
 
int main()
{
    std::system("ls -l >test.txt"); // executes the UNIX command "ls -l >test.txt"
    std::cout << std::ifstream("test.txt").rdbuf();
}

Mögliche Ausgabe

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

[bearbeiten] Siehe auch

C-Dokumentation für system