funzione Strerror 2 C

funzione Strerror 2 C
Si verificano errori di sistema. Non appena il tuo programma cerca di raggiungere il sistema operativo, qualcosa va storto. Se ciò si verifica, la funzione restituisce -1 e il tuo codice deve fare affidamento sul nostro fidato Errno per capire cosa è andato storto e forse emettere un messaggio di errore istruttivo. La libreria C chiama char *Strerror (int ernum), che produce un riferimento a una stringa composta dal messaggio di errore e cerca un array interno per il numero di errore ernum. A seconda del compilatore e della piattaforma utilizzati per lo sviluppo, Strerror genera stringhe di errore e converte una stringa di messaggi di errore al numero di errore in ERRNUM.

Sono richiesti valori di errno con ernum adeguati. Una stringa di messaggi di errore specifica della localizzazione non è prodotta da questa funzione. La libreria contiene variabili e funzioni destinate a rendere semplice per il programma fornire un fallimento dettagliato del messaggio di errore da parte di una chiamata di biblioteca nel formato normale. È possibile ottenere il messaggio di errore predefinito per un determinato codice di errore utilizzando i metodi Strerror e è possibile ottenere rapidamente il nome del programma che ha effettuato l'errore utilizzando il nome corto di invocazione del programma variabile. Investighiamo in modo più dettagliato la funzione Strerror della lingua C.

Sintassi della funzione Strerror in C lingua

Usiamo la seguente sintassi della funzione Strerror () nella lingua C. La stringa che spiega l'errore si ottiene usando questa sintassi di Strerror.

char *Strerror (int ernum);

Abbiamo un solo argomento che la funzione Strerror prende. L'argomento è ernum: un errore specifico per il quale desideri ricevere il messaggio di errore. Se l'errore di runtime è sconosciuto, la funzione Strerror () fornisce un messaggio di errore sconosciuto. Altrimenti, fornisce la stringa di descrizione dell'errore pertinente.

Il valore di Errno rimane invariato se l'operazione ha esito positivo; In caso contrario, viene modificato in un valore diverso da zero. Inoltre, la funzione Strerror genera due errori, Einval ed Erange. Se il valore di Errnum è un numero di errore non valido, viene lanciato l'errore Einval. Quando la stringa di descrizione dell'errore non può essere memorizzata nell'archiviazione fornita, l'errore generato è eliminazione.

Esempio 1

Qui, abbiamo dimostrato l'utilizzo della funzione Strerror. Lo utilizzeremo nel nostro programma C per generare l'errore dopo l'esecuzione. Discutiamo dell'implementazione per questa funzione Strerror. Siamo tenuti a includere alcuni file di intestazione della libreria di C, che sono richiesti per questo codice implementazione.

Innanzitutto, abbiamo inserito lo stdio.File di intestazione H. Dobbiamo includere il file di intestazione stdio.H per aggiungere i metodi relativi all'ingresso/output nel nostro programma. Quindi, la stringa.H viene aggiunto dopo lo stdio.File di intestazione H. L'intestazione per la libreria standard C si chiama stringa.H. Tuttavia, il nome è un po 'ingannevole perché comprende dichiarazioni macro, costanti e dichiarazioni di metodi e tipi, vengono utilizzate per gestire più funzioni di gestione della memoria oltre a gestire le stringhe. Poiché questo è il codice della funzione Strerror per accedere a questa funzione, dobbiamo importare un errore.file h per questa funzione.

La libreria standard del linguaggio di programmazione C contiene il file di intestazione Errno.H. Definisce le macro con il simbolo Errno per segnalare e recuperare circostanze di errore (abbreviazione per "numero di errore"). Alcune funzioni della libreria che rilevano errori salvano un valore in modo tale che il numero di errore sia nella variabile ERRNO. Gli unici valori che le funzioni della libreria archiviano sono quelli più grandi di zero.

Indipendentemente dal fatto che notino errori, qualsiasi funzione di libreria può modificare il valore salvato prima di restituire. La maggior parte delle funzioni riporta errori restituendo un valore specifico, generalmente nullo per i metodi che restituiscono puntatori e -1 per metodi che restituiscono interi. Il chiamante di alcune funzioni deve impostare errno su 0 ed esaminarlo in seguito per verificare se è stato trovato un errore.

#includere
#includere
#includere
int main ()
File *fp;
fp = fopen ("file.txt "," r ");
if (fp == null)
printf ("Errore: %s \ n", Strerror (errno));

restituzione (0);

Dopo aver incluso il file di intestazione, abbiamo la dichiarazione della funzione principale. All'interno della sezione Funzione principale, abbiamo creato il puntatore del file "FP" con l'oggetto file. Al file viene assegnato un nome file con la modalità di lettura all'interno della funzione Fopen se la condizione viene applicata alla variabile puntatore FP. Se l'FP viene trovato null, viene eseguita l'istruzione printf che ha la funzione Strerror. La funzione Strerror prende l'errno come argomento e restituisce questo in una forma di stringa.

Poiché stiamo tentando di aprire un file che non è presente, compiliamo ed eseguiamo il programma sopra menzionato, il che comporterà il seguente risultato:

Esempio 2

Poiché il codice precedente genera la stringa di errore stessa quando si verifica. Possiamo anche definire l'errore di stringa da soli. Dobbiamo definire prima la stringa di errore con Errno.

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

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

if (last_error)
fprintf (Stderr, "fopen: non potrebbe aprire %s per la scrittura: %s",
argv [1], Strerror (last_error));
fputs ("Continua ... \ n", stderr);

restituire exit_success;

Abbiamo inserito diversi file di intestazione per questo codice di esempio e ognuno ha la sua funzionalità e scopo. Quindi, abbiamo stabilito la funzione principale. Il fout viene creato come variabile puntatore e l'ultimo_error viene anche dichiarato come variabile, che è assegnata con il valore 0. Le espressioni nidificate sono utilizzate qui. Se la condizione Last_errror è abbinata a errorno, allora possiamo specificare l'ultimo_error nella funzione Strerror.

L'errore di stringa definito dall'utente viene prodotto quando viene eseguito il codice precedente, come mostrato di seguito:

Conclusione

Lo scopo principale della guida è quello di educarti sulla lingua S Strerror. Utilizzando l'errore.H File di intestazione nel codice, possiamo facilmente accedere alla funzione Strerror. La sintassi è molto facile da capire. Qui, abbiamo discusso di due esempi che spiegheranno l'uso di Strerror in C lingua. Possiamo anche creare o definire l'errore nell'errore di stringa che vogliamo visualizzare.