C Standard Library innehåller en mängd funktioner och variabler som ansluter en programmerare till operativsystemet hon utvecklar sina program i. Eftersom C är främst ett system programmeringsspråk , dessa bibliotek tillåter programmeraren att skicka kommandon direkt till ett operativsystem. Det "system " -funktionen i synnerhet tillåter programmeraren att verkställa systemet - specifika kommandon , utan hänvisning till C -programmering från där funktionen har sitt ursprung . Systemet ( ) Funktion
systemet ( ) funktionen representerar ett kommando i standard C-bibliotek som tar som argument en konstant karaktär array . I huvudsak representerar argumentet en C- stil sträng, som i sin tur utgör ett kommando för att skicka till operativsystemet . Så en programmerare skulle använda funktionen ringa exekvera en katalog notering på en Windows /DOS dator , som i följande exempel :
# include
main int ( ) {
int i = systemet ( " dir " ) , //" jag " får returen resultatet av kommandot
Returnera resultat
systemet . () returnerar ett heltalsvärde som representerar systemets status samtalet. Vad denna status representerar beror på vilken typ av argument som skickas till systemet ( ) . Om systemet ( ) tar emot ett tecken pekare till ingenting (null) , sedan systemet ( ) returnerar ett icke - noll heltal för att signalera att ett kommando processorn är tillgänglig . Om ingen processor är tillgänglig returnerar funktionen 0 . Om systemet ( ) funktionen tar emot en verklig sträng , då systemet ( ) skickar detta kommando till systemet , och returnerar ett värde uppsägning status från det programmet .
System ( ) Portabilitet
resultatet av systemet ( ) beror främst på vilket operativsystem som programmeraren utvecklas vidare. Som ett resultat , varierar det sätt på vilket programmeraren anropar systemet. Ett program som skickar " paus " -kommandot till ett Windows -system kommer inte att få samma resultat om de utförs på ett Linux-system . Linux-system vanligtvis inte har en inbyggd " paus " -kommandot . Därför , ett C-program skrivas för att köra ett "system ( " PAUSE " ) " -kommandot inte kommer faktiskt pausa kod .
Varianter
att köra ett program i C kod , kan en programmerare väljer istället att använda execl ( ) funktionen . Medan han fortfarande plattform beroende , kan programmeraren kontrollera genomförandet av programmet lite närmare . Dessutom finns det mindre systemresurser när programmet inte behöver ringa till systemet utan kör kommandon själv . Följande exempel visar hur programmeraren kan kalla execl ( ) funktionen för att lista en katalog på ett Linux-system :
# include
int main ( ) {
execl ( " /bin /ls " , " /bin /ls " , " - a " , ( char * ) 0 ) ,
}