std::system
| 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
|