C Standard Library har en rekke funksjoner og variabler som kobler en programmerer til operativsystemet hun utvikler sine programmer i. Fordi C er først og fremst et system programmeringsspråk , disse bibliotekene tillate programmereren å sende kommandoer direkte til et operativsystem. "Systemet "-funksjonen i bestemte lar programmereren å utføre system - spesifikke kommandoer , uten referanse til C -programmering fra der funksjonen kommer . Systemet ( ) Funksjon
system ( )-funksjonen representerer en kommando i standard C-bibliotek som tar som argument sin en konstant karakter array. I hovedsak representerer argument et C - stil streng, som i sin tur representerer en kommando for å sende til operativsystemet . Så en programmerer vil bruke funksjonen kaller utføre en katalogoppføring på en Windows /DOS datamaskin , som i følgende eksempel : en
# include
int main ( ) {
int i = system ( "dir " ), //"i" mottar avkastningen av kommandoen
Returner resultater
system . ( ) -funksjonen returnerer et heltall som representerer status for systemet samtalen . Hva denne statusen representerer avhenger av hva slags argument til system () . Hvis systemet ( ) mottar et tegn peker til ingenting ( NULL) , deretter system ( ) vil returnere en ikke-null heltall for å signalisere at en kommando -prosessor er tilgjengelig. Hvis ingen prosessor er tilgjengelig , returnerer funksjonen 0 . Hvis systemet ( )-funksjonen mottar en faktisk streng, da system () sender denne kommandoen til systemet , og returnerer en oppsigelse status verdi fra det programmet.
System ( ) bærbarhet
resultatet av system () avhenger først og fremst operativsystemet som programmerer utvikler på . Som et resultat varierer den måte på hvilken programmerer påkaller system . Et program som sender "pause "-kommandoen til en Windows- system vil ikke motta de samme resultatene hvis henrettet på et Linux-system . Linux-systemer vanligvis ikke har en innebygd "pause "-kommandoen . Derfor , et C-program skrevet for å utføre et "system ( " PAUSE ") "-kommandoen ikke vil faktisk pause kode.
Varianter
å utføre et program i C koden , kan en programmerer i stedet velger å bruke execl ( )-funksjonen . Mens han fortsatt plattform avhengig, kan programmereren kontrollere gjennomføringen av programmet litt nærmere. Også er det mindre system overhead når programmet ikke trenger å ringe til systemet, men utfører kommandoer selv. Følgende eksempel illustrerer hvordan programmereren kan kalle execl ()-funksjonen til å liste en katalog på et Linux-system : en
# include
int main ( ) {
execl ("/bin /ls ", " /bin /ls ", " - en" , ( char * ) 0 ) ;
}