Interaktionen mit dem Betriebsystem¶
system()
– Externe Programme aufrufen¶
Mittels der Funktion system()
aus der Standard-Bibliothek stdlib.h können Programme des Betriebsystems, beispielsweise
Shell-Programme, aus einem C-Programm heraus
aufgerufen werden. Als Argument wird der Funktion dabei eine Zeichenkette
übergeben, die den Namen des aufzurufenden Programms mitsamt aller Argumente
und Optionen enthält, beispielsweise "ls -lh"
:
#include <stdlib.h>
// ...
system("ls -lh");
// ...
Wenn das externe Programm beendet ist, wird das C-Programm weiter ausgeführt.
exit()
und atexit()
– Programme ordentlich beenden¶
Mittels der Funktion exit()
kann ein Programm in geordneter Weise beendet
werden. Als Argument wird beim Aufruf der Funktion ein int
-Wert angegeben,
der als Rückgabewert an das System dient. Der Wert 0
gilt dabei für ein
normales Programmende, der Wert 1
wird üblicherweise im Falle eines Fehlers
zurück gegeben.
Trifft das Programm auf eine exit()
-Funktion, so werden automatisch alle
noch nicht geschriebenen Ausgabe-Streams geschrieben, alle offenen Dateien
geschlossen sowie alle mittels tmpfile()
angelegten temporären Dateien
gelöscht.
Zusätzlich können im vorangehenden Teil des Codes, häufig in der Funktion
main()
, mittels atexit()
Pointer auf Funktionen angegeben werden, die
bei einem Aufruf von exit()
ausgeführt werden, bevor das Programm beendet
wird. Das Besondere dabei ist, dass die Funktionen von hinten nach vorne
durchlaufen werden, d.h. die zuletzt angegebene atexit()
-Funktion wird als
erstes aufgerufen, die als erstes angegebene atexit()
-Funktion zuletzt.