2012-09-30 4 views
8

Come posso ottenere un messaggio di errore per il valore errno (linguaggio C)? Ad esempio, posso scrivere tale file (errno_messages.h):Come posso ottenere un messaggio di errore per il valore errno (linguaggio C)?

#include <errno.h> 

char* get_errno_message(void){ 
    switch (errno) { 
    case 0: 
     return ""; 
     break; 
    case EPERM: 
     return "Operation not permitted"; 
     break; 
    case ENOENT: 
     return "No such file or directory"; 
     break; 
    case ESRCH: 
     return "No such process"; 
     break; 
     /* e.t.c. */ 
    default:   
     break; 
    } 
} 

Ma forse tale funzione è già esiste?

migliori saluti

risposta

13

Penso che quello che stai cercando è strerror().

+0

Grazie mille! –

3

Oltre a strerror(), una funzione utile è perror che stampa anche direttamente l'errore con un prefisso specificato. Spesso, vorrete fare qualcosa come

 
int fd = open(filename, O_READ); 
if (fd < 0) { 
    perror(filename); 
    exit(EXIT_FAILURE); 
} 
+0

Grazie mille! –

Problemi correlati