Il sistema ( ) funzione rappresenta un comando nella libreria standard C che prende come argomento un array di caratteri costante. In sostanza , l'argomento rappresenta una stringa di tipo C , che a sua volta rappresenta un comando da inviare al sistema operativo . Quindi un programmatore avrebbe usato la funzione chiamata eseguire un elenco di directory su un computer Windows /DOS , come il seguente esempio :
# include
int main ( ) { < br
int i = sistema > ( "dir" ) ; //"i" riceve il risultato di ritorno del comando
Restituisce risultati
il sistema . () restituisce un valore intero che rappresenta lo stato della chiamata di sistema . Che cosa rappresenta questo stato dipende dalla natura dell'argomento passato a system () . Se il sistema ( ) riceve un puntatore a carattere niente ( NULL ) , allora il sistema ( ) restituirà un intero diverso da zero per segnalare che un processore di comando è disponibile . Se nessun processore è disponibile , la funzione restituisce 0 . Se il sistema () la funzione riceve una stringa effettiva , allora il sistema () invia il comando al sistema, e restituisce un valore di stato di terminazione da quel programma .
System ( ) Portabilità
il risultato del sistema ( ) dipende principalmente dal sistema operativo su cui il programmatore si sviluppa su . Come risultato , il modo in cui il programmatore invoca sistema varia . Un programma che invia il comando di "pausa" per un sistema Windows non riceverà gli stessi risultati se eseguito su un sistema Linux . Sistemi Linux in genere non hanno un comando built-in "pausa" . Pertanto , un programma C scritto per eseguire un " system (" PAUSE " ) " comando non è in realtà l'esecuzione di codice in pausa.
Varianti
Per eseguire un programma in C codice , un programmatore potrebbe invece scegliere di utilizzare la funzione execl ( ) . Mentre ancora dipendente dalla piattaforma , il programmatore può controllare l'esecuzione del programma più da vicino . Inoltre , c'è meno overhead del sistema quando il programma non ha bisogno di effettuare chiamate al sistema, ma esegue i comandi in sé . L'esempio seguente illustra come il programmatore potrebbe chiamare la funzione execl ( ) per elencare una directory su un sistema Linux :
# include int main ( ) { execl ( " /bin /ls" , " /bin /ls" , "-a" , ( char * ) 0 ) ; }
Informazioni correlate
Programmazione © www.354353.com