Die C Standard Library besitzt eine Vielzahl von Funktionen und Variablen, die einen Programmierer Verbindung zum Betriebssystem entwickelt sie ihre Programme in. Weil C ist in erster Linie ein System- Programmiersprache , erlauben diese Bibliotheken der Programmierer Befehle direkt an ein Betriebssystem. Das "System "-Funktion ermöglicht insbesondere dem Programmierer, System -spezifische Befehle ausführen , ohne Bezug auf die Programmiersprache C , von wo aus die Funktion stammt . Das System ()-Funktion
system () -Funktion stellt einen Befehl in der Standard-C- Bibliothek, die als Argument eine konstante Zeichen-Array . Im Wesentlichen stellt das Argument einen C-String , der wiederum ein Befehl, um das Betriebssystem zu senden. So würde ein Programmierer nutzen die Funktion aufrufen, führen Sie eine Verzeichnisliste auf einem Windows /DOS -Computer , wie im folgenden Beispiel :
# include
int main () {
int i = system ( "dir" ); //"i" erhält die Rückkehr Ergebnis des Befehls
Return Ergebnisse
das System . ()-Funktion gibt einen Integer- Wert, der den Status des Systems Anruf darstellt. Was dies bedeutet Status hängt von der Art des Arguments übergeben system () . Wenn system () erhält einen Charakter Zeiger auf nichts (NULL) , dann System () gibt eine ganze Zahl ungleich Null , um zu signalisieren , dass ein Kommando-Prozessor zur Verfügung steht. Wenn kein Prozessor verfügbar ist, gibt die Funktion 0 zurück. Wenn das System ()-Funktion erhält eine tatsächliche Zeichenfolge , dann system () -Befehl sendet diese an das System und gibt eine Kündigung Status Wert aus diesem Programm .
-System ( ) Portabilität
das Ergebnis der system () hängt in erster Linie von dem Betriebssystem , auf dem die Programmierer entwickelt sich auf . Als Ergebnis variiert die Art und Weise , in der der Programmierer ruft System . Ein Programm, das die " Pause "-Befehl sendet an einem Windows-System nicht erhalten die gleichen Ergebnisse , wenn sie auf einem Linux-System ausgeführt. Linux-Systeme in der Regel nicht über eine eingebaute " Pause "-Befehl. Daher ein C-Programm geschrieben , um ein "System ( " PAUSE " ) " Befehl ausführen wird nicht wirklich Pause Codeausführung .
Varianten
Um ein Programm in C ausführen Code , könnte ein Programmierer stattdessen die execl ()-Funktion verwenden . Während noch Plattform abhängig , kann der Programmierer die Ausführung des Programms ein wenig genauer zu steuern. Auch gibt es weniger System-Overhead , wenn das Programm nicht braucht, um Anrufe mit dem System zu machen, aber selbst führt Befehle . Das folgende Beispiel zeigt, wie der Programmierer nennen könnte die execl ()-Funktion , um ein Verzeichnis auf einem Linux-System Liste :
# include
int main () {
execl ( "/bin /ls ", " /bin /ls ", " -a" , (char *) 0); }