Errno i c

Errno i c
C -språk tillater ikke direkte feilstyring, men det muliggjør tilgang på et mindre nivå via returverdier. I tilfelle unøyaktigheter, samtaler flertallet av C eller kanskje til og med Linux -funksjonen avkastning -1 eller ugyldig og angir feilkoden errno. Det er en universell konstant som viser når en funksjonsanrop har mislyktes. I overskriftsfilen finner du en liste over forskjellige feilkoder. Som et resultat kan en C -utvikler undersøke de leverte verdiene og, basert på dem, ta nødvendige tiltak. Det ser ut til å ikke være noen problemer i programmet hvis resultatet er 0. Innenfor denne artikkelen i dag vil vi diskutere bruken av "Errno" -variabelen for å få feilkoder og meldinger på vårt Linux -miljø (i.e., Ubuntu 20.0.4 System.) La oss komme i gang med åpningen av et terminalskall i Ubuntu 20.04 Linux operativsystem og installere GCC -kompilatoren til C.

Før vi går mot opprettelsen av en C -kode, trenger vi en C -fil i Linux -systemet vårt. Dermed har vi brukt berøringsinstruksjonen for å lage en. Denne filen må inneholde en "c" -forlengelse på slutten. Som du kan finne ut, har vi bygget en fil som heter “Errno.C ”. Listekommandoen har blitt brukt til å liste opp alle filene og mappene i vår nåværende arbeidskatalog i Linux. Den nyopplagte C -filen “Errno.C ”er også oppført her. For å opprette C -kode i filen, må vi åpne den i noen redaktør som en tekstredigerer, Vim Editor eller GNU Nano Editor. Så vi har åpnet den inne i GNU Nano -redaktøren med bruk av “Nano” -kommandoen i skallet. Denne filen vil bli åpnet i en terminallignende redigering.

Eksempel 01

La oss begynne med det første eksemplet på denne artikkelen. La oss si, du vil åpne og lese dataene fra en spesifikk tekstfil som er bosatt i samme gjeldende katalog ved hjelp av arkiveringen i C -koden. For dette må vi bruke standard inngangsutgangsbiblioteket til en C i koden vår. Så vi har inkludert det på åpningslinjen som bruker nøkkelordet "#include".

Etter det må vi bruke “Errno.H ”-overskrift i denne C-koden slik at vi kan bruke den innebygde variabelen“ Errno ”for å få feilkoden og meldingen. Den viktigste utførelsen vil bli startet fra "Main ()" -funksjonen til C -programmet. Innenfor dette hovedprogrammet har vi brukt "filen" -variabelen for å initialisere filbeskrivelsen "F" av pekertypen. Denne filbeskrivelsen har blitt brukt til å åpne filen “Ny.txt ”i et skrivebeskyttet format ved hjelp av" fopen "-funksjonen til arkivering i C. If-ests-setningen er her for å sjekke om filen er åpnet med suksess eller ikke. Den "hvis" -delen av uttalelsen vil sjekke om det returnerte resultatet av filbeskrivelsen er lik 0 eller ikke. Hvis 0, betyr det at filen mangler eller ikke åpnes. Dermed vil Printf -setningen bruke "Errno" -variabelen for å vise feilkoden.

På den annen side vil "ellers" -delen bli brukt når tilstanden ikke tilfredsstiller filbeskrivelsesverdien annet enn. Printf -setningen vil vise at åpningen er vellykket.

Vi har samlet denne koden med "GCC" -kompilatoren og deretter utført den med "./en.ut ”instruksjon. Denne kodeutførelsen returnerer feilkoden nummer 2 der ingen fil er funnet.

For å fjerne denne feilen, må vi opprette en ny tekstfil med "berøringsinstruksjonen og legge til noen data til den med" ekko "-uttalelsen som vist. "Cat" -instruksjonen viser at filen inneholder de nylig lagt tekstdataene i den.

Nå, når du sammenstiller og kjører den samme koden i skallet, vil den utføre "ellers" -delen og vise meldingen "vellykket" (i.e., Filen ble funnet nå.)

Hvis du vil vise feilmeldingen sammen med feilkoden, må du bruke "strerror" -funksjonen i programmet. For det må du bruke “Strengen.H ”header i koden også. Så vi har lagt til overskriften og oppdatert "if" -komponenten i "if-elv" -uttalelsen. Strerror () -funksjonen har saksøkt "errno" for å få feilmeldingen med feilkoden.

Når filen din mangler, vil du bli vist med feilmeldingen “Ingen slik fil eller katalog” på skallet som vist.

Eksempel 02

La oss sjekke feilnummeret for et annet feileksempel. Vi har brukt standardbibliotekene i programmet, og Main () -funksjonen inneholder initialiseringen av en variabel "val" og funksjonsanrop til "sjekk" -funksjonen ved å sende den "val" -variabelen. Check () -funksjonen vil være å bruke "if-elv" -uttalelsen for å sjekke om verdien "val" er null eller ikke, og derfor kan den andre verdien være delbar med den eller ikke. Ettersom verdien “val” er 7, kan den være delbar med 8. Så den "ellers" delen av sjekk () -funksjonen vil bli utført for å beregne delingsresultatet og vise den på skallet.

Etter samlingen og utførelsen har vi funnet ut at divisjonen er mulig. Den andre delen har beregnet og vist divisjonsverdien mellom 89 og verdien “7” for variabel “val”.

La oss oppdatere koden igjen og legge til 0 som en verdi til variabelen "val" i hoved () -funksjonen for å snu resultatene. Så vi har oppdatert "val" -verdien til 0 som angitt på bildet nedenfor. De resterende koden forble uberørt.

Etter å ha kjørt denne oppdaterte koden, har vi feilkoden 0 og feilmeldingen.

Konklusjon

Dette handler om bruken av "Errno" -variabelen i artikkelen for å få feilkodene til forskjellige unntak ved å bruke "Errno.h ”header. Vi har også diskutert bruken av "strerror" -funksjon for å vise feilmeldingen sammen med kodenummeret. Vi har innlemmet to tilfeller i denne guiden for å bedre forklare ideen om errno.