2012-09-30 20 views
8

¿Cómo puedo obtener un mensaje de error para el valor errno (lenguaje C)? Por ejemplo, puedo escribir como archivo (errno_messages.h):¿Cómo puedo obtener un mensaje de error para el valor errno (lenguaje 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; 
    } 
} 

Pero tal vez ya es que existe tal función?

Saludos

Respuesta

13

creo que lo que estás buscando es strerror().

+0

¡Muchas gracias! –

3

Aparte de strerror(), una función útil es perror que también imprime directamente el error con un prefijo dado. A menudo, querrá hacer algo como

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

¡Muchas gracias! –

Cuestiones relacionadas