strerror 2 C -funksjon

strerror 2 C -funksjon
Systemfeil oppstår. Så snart programmet ditt prøver å nå operativsystemet, går noe galt. Hvis dette skjer, returnerer funksjonen -1, og koden din må stole på vår pålitelige errno for å finne ut hva som gikk galt og kanskje avgi en lærerik feilmelding. C -biblioteket kaller char *strerror (int errnum), som gir en referanse til en streng som består av feilmeldingen, og søker i en intern gruppe etter feilnummeret feil. Avhengig av kompilatoren og plattformen som brukes til utvikling, genererer Strorror feilstrenger, og konverterer en rekke feilmeldinger til feilnummeret i Errnum.

Errno -verdier med riktige errnums er påkrevd. En lokal spesifikk feilmeldingsstreng produseres ikke av denne funksjonen. Biblioteket inneholder variabler og funksjoner som er ment å gjøre det enkelt for programmet ditt å gi detaljert feilmeldingssvikt fra en bibliotekanrop i det vanlige formatet. Du kan få standard feilmelding for en viss feilkode ved å bruke strermetodene, og du kan raskt få navnet på programmet som gjorde feilen ved å bruke variabelen på innkalling med kort navn. La oss undersøke C -språkets strekkfunksjon mer detaljert.

Syntaks av strekkfunksjonen på C -språk

Vi bruker følgende syntaks av funksjonen strekk () på C -språket. Strengen som forklarer feilen oppnås ved hjelp av denne strekksyntaks.

char *strerror (int errnum);

Vi har bare ett argument som strekkfunksjonen tar. Argumentet er errnum: en spesifikk feil som du vil motta feilmeldingen. Hvis runtime -feilen er ukjent, gir strerror () -funksjonen en ukjent feilmelding. Ellers gir det relevant feilbeskrivelsesstreng.

Verdien av errno forblir uendret hvis operasjonen er vellykket; Hvis ikke, endres det til en ikke -verdisk verdi. Videre genererer strekkfunksjonen to feil, einval og erange. Hvis errnums verdi er et ugyldig feilnummer, kastes einval -feilen. Når feilbeskrivelsesstrengen ikke kunne lagres på den medfølgende lagringen, er feilen som genereres erange.

Eksempel 1

Her har vi demonstrert bruken av strerrorfunksjonen. Vi vil bruke dette i vårt C -program for å generere feilen ved utførelsen. La oss diskutere implementeringen for denne strekkfunksjonen. Vi må inkludere noen bibliotekoverskriftsfiler av C, som er nødvendige for denne kodeimplementeringen.

Først har vi satt inn stdio.H headerfil. Vi må inkludere overskriftsfilen stdio.h for å legge til inngangs-/utgangsrelaterte metoder i programmet vårt. Deretter strengen.h legges til etter stdio.H headerfil. Headeren for C Standard Library kalles streng.h. Imidlertid er navnet litt villedende fordi det omfatter makrodeklarasjoner, konstanter og erklæringer om metoder og typer, disse brukes til å håndtere flere minnehåndteringsfunksjoner i tillegg til å håndtere strenger. Siden dette er koden til strekkfunksjonen for å få tilgang til denne funksjonen, må vi importere en feil.H -fil for denne funksjonen.

C -programmeringsspråkets standardbibliotek inneholder toppfilen errno.h. Den definerer makroer med Errno -symbolet for å rapportere og hente feilforhold (forkortelse for “Feilnummer”). Enkelte bibliotekfunksjoner som oppdager feil, sparer en verdi slik at feilnummeret er i Errno -variabelen. De eneste verdiene som bibliotekfunksjonene lagrer er de som er større enn null.

Uansett om de merker feil, kan enhver bibliotekfunksjon endre verdien som er lagret før du kommer tilbake. Flertallet av funksjonene rapporterer feil ved å returnere en spesifikk verdi, vanligvis null for metoder som returnerer pekere og -1 for metoder som returnerer heltall. Innringeren av noen få funksjoner må sette errno til 0 og undersøke den etterpå for å sjekke om det ble funnet en feil.

#inkludere
#inkludere
#inkludere
int main ()
Fil *fp;
fp = fopen ("fil.txt "," r ");
if (fp == null)
printf ("feil: %s \ n", strerror (errno));

return (0);

Etter å ha inkludert overskriftsfilen, har vi hovedfunksjonserklæringen. Innenfor hovedfunksjonsseksjonen har vi opprettet filpekeren “FP” med filobjektet. Filen tildeles et filnavn med lesemodus inne i FOPEN -funksjonen hvis tilstanden blir brukt på FP -pekervariabelen. Hvis FP blir funnet null, blir Printf -setningen utført som har strerrorfunksjonen. Strerrorfunksjonen tar feilen som et argument og returnerer dette i en strengform.

Fordi vi prøver å åpne en fil som ikke er til stede, la oss sammenstille og kjøre programmet som er nevnt ovenfor, noe som vil resultere i følgende utfall:

Eksempel 2

Ettersom den forrige koden genererer selve feilstrengen når dette skjer. Vi kan også definere strengfeilen selv. Vi må definere feilstrengen først med errno.

int main (int argc, char *argv [])

Fil *fout;
int last_error = 0;
if ((fout = fopen (argv [1], "w")) == null)
last_error = errno;
errno = 0;

if (last_error)
fprintf (stderr, "Fopen: kunne ikke åpne %s for skriving: %s",
argv [1], strerror (last_error));
fputs ("fortsett ... \ n", stderr);

return exit_success;

Vi har satt inn flere overskriftsfiler for denne eksempelkoden, og hver og en har sin funksjonalitet og formål. Deretter har vi etablert hovedfunksjonen. Fout er opprettet som pekervariabelen og Last_Error er også erklært som variabelen, som er tilordnet med verdien 0. De nestede hvis uttrykk brukes her. Hvis Last_errror -tilstanden er matchet med Erorno, kan vi spesifisere Last_Error i strerrorfunksjonen.

Strengfeilen definert av brukeren produseres når den forrige koden blir utført, som vist nedenfor:

Konklusjon

Guideens hovedformål er å utdanne deg om strerror på C -språket. Ved å bruke feilen.h headerfil i koden, vi kan enkelt få tilgang til strerrorfunksjonen. Syntaksen er veldig lett å forstå. Her diskuterte vi to eksempler som vil forklare bruken av strerror på C -språket. Vi kan også opprette eller definere feilen i strengfeilen som vi vil vise.