I denne artikkelen skal jeg snakke om eksekutive funksjoner og vise deg hvordan du bruker hver enkelt av disse exec -familiefunksjonen i C. Så la oss komme i gang.
C Systemfunksjoner i EXEC -familie:
Exec -funksjonen familier er definert i overskriften Unistd.h. Så du må bruke denne overskriften på C -programmet der du vil bruke disse funksjonene.
De tilgjengelige EXEC -funksjonene sammen med deres funksjonsparametere er gitt nedenfor:
La oss se hva hver av disse funksjonene gjør og hvordan du bruker dem.
Execl () Systemfunksjon:
I execl () systemfunksjon tar banen til den kjørbare binære filen (i.e. /bin/ls) som første og andre argument. Deretter argumentene (jeg.e. -LH, /hjem) at du vil gå over til den kjørbare etterfulgt av NULL. Deretter kjører System -funksjonsfunksjonen kommandoen og skriver ut utgangen. Hvis det oppstår feil, returnerer execl () -1. Ellers returnerer det ingenting.
Et eksempel på execl () -systemfunksjonen er gitt nedenfor:
#inkludereJeg kjørte ls -lh /Home Kommando ved hjelp av execl () systemfunksjon. Som du ser vises riktig resultat.
EXECLP () Systemfunksjon:
execl () bruker ikke STI miljøvariabel. Så den fullstendige banen til den kjørbare filen er nødvendig for å kjøre den med execl (). execlp () bruker banemiljøvariabelen. Så hvis en kjørbar fil eller kommando er tilgjengelig i banen, er ikke kommandoen eller filnavnet nok til å kjøre den, er ikke full vei nødvendig.
Vi kan omskrive Execl () -eksemplet ved å bruke SECTLP () systemfunksjonen som følger:
#inkludereJeg passerte bare kommandonavnet ls, ikke hele veien /bin/ls. Som du ser, fikk jeg den samme produksjonen som før.
execv () Systemfunksjon:
I Execl () -funksjonen sendes parametrene til den kjørbare filen til funksjonen som forskjellige argumenter. Med execv () kan du passere alle parametrene i en null avsluttet matrise Argv. Det første elementet i matrisen skal være banen til den kjørbare filen. Ellers fungerer execv () -funksjonen akkurat som execl () -funksjonen.
Vi kan omskrive Execl () -eksemplet som følger:
#inkludereSom du ser, får jeg riktig produksjon.
EXECVP () Systemfunksjon:
Fungerer på samme måte som execv () systemfunksjon. Men banemiljøvariabelen brukes. Så den fullstendige banen til den kjørbare filen er ikke påkrevd akkurat som i execlp ().
Vi kan omskrive Execv () -eksemplet som følger:
#inkludereSom du ser vises riktig utgang.
ExecLe () Systemfunksjon:
Fungerer akkurat som execl (), men du kan gi dine egne miljøvariabler sammen med den. Miljøvariablene sendes som en matrise Envp. Det siste elementet i Envp Array skal være null. Alle de andre elementene inneholder nøkkelverdiparene som streng.
Et eksempel på execle () -systemfunksjonen er gitt nedenfor:
#inkludereJeg passerte to miljøvariabler Vertsnavn og HAVN til execle () -funksjonen. Som du kan se, kan jeg få tilgang til dem fra den kjørbare /bin/bash.
Execve () Systemfunksjon:
Akkurat som execle () kan du tilby dine egne miljøvariabler sammen med execve (). Du kan også passere argumenter som matriser som du gjorde i execv ().
Execle () -eksemplet kan skrives om som følger:
#inkludereSom du kan se, får vi samme utgang som i Execle () -eksemplet.
Så det er slik du bruker Exec -funksjonen i C for systemprogrammering i Linux. Takk for at du leste denne artikkelen.