Descrizione della funzione C Sistema

June 3

La libreria standard C detiene una serie di funzioni e variabili che si collegano un programmatore per il sistema operativo che sviluppa i suoi programmi in. A causa C è principalmente un linguaggio di programmazione di sistemi, queste librerie consentono al programmatore di inviare comandi direttamente a un sistema operativo. La funzione di "sistema", in particolare, permette al programmatore di eseguire comandi specifici del sistema, senza alcun riferimento alla programmazione C da dove la funzione di origine.

Il sistema () Funzione

La funzione di sistema () rappresenta un comando nella libreria standard C che prende come argomento un array di caratteri costante. In sostanza, l'argomento rappresenta una stringa stile C, che a sua volta rappresenta un comando da inviare al sistema operativo. Quindi, un programmatore potrebbe utilizzare la chiamata di funzione eseguire un elenco di directory su un computer Windows / DOS, come il seguente esempio:

includere <stdlib.h>

int main () {

int i = sistema ( "dir"); // "I" riceve il risultato di ritorno del comando.

Risultati return

La funzione di sistema () restituisce un valore intero che rappresenta lo stato della chiamata di sistema. Che questo stato rappresenta dipende dalla natura dell'argomento passato a system (). Se il sistema () riceve un puntatore a carattere di niente (NULL), allora il sistema () restituirà un intero diverso da zero per segnalare che un processore comando è disponibile. Se nessun processore è disponibile, la funzione restituisce 0. Se la funzione di sistema () riceve una stringa effettiva, allora il sistema () invia il comando al sistema, e restituisce un valore di stato di terminazione da quel programma.

Sistema () Portabilità

Il risultato del sistema () dipende principalmente dal sistema operativo in cui il programmatore sviluppa su. Come risultato, il modo in cui il programmatore invoca sistema varia. Un programma che invia il comando "pausa" per un sistema Windows non riceverà gli stessi risultati se eseguito su un sistema Linux. sistemi Linux in genere non hanno un comando "pausa" built-in. Pertanto, un programma C scritto per eseguire un "sistema (" PAUSE ")" comando non sarà effettivamente mettere in pausa l'esecuzione di codice.

varianti

Per eseguire un programma in codice C, un programmatore potrebbe invece scegliere di utilizzare la funzione execl (). Mentre la piattaforma ancora dipendente, il programmatore può controllare più da vicino l'esecuzione del programma. Inoltre, c'è meno overhead di sistema quando il programma non ha bisogno di effettuare chiamate al sistema, ma si esegue i comandi. L'esempio seguente illustra come il programmatore potrebbe chiamare la funzione execl () per elencare una directory su un sistema Linux:

includere <unistd.h>

int main () {

execl ( "/ bin / ls", "/ bin / ls", "-a", (char *) 0);

}