2012-09-30 10 views
8

Wie kann ich Fehlermeldung für Fehlernummer (C-Sprache) erhalten? Zum Beispiel kann ich eine solche Datei (errno_messages.h) schreiben:Wie kann ich Fehlermeldung für Fehlernummer (C-Sprache) erhalten?

#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; 
    } 
} 

Aber vielleicht solche Funktion ist bereits vorhanden?

Mit freundlichen Grüßen

Antwort

13

Ich denke, was Sie suchen ist strerror().

+0

Vielen Dank! –

3

Abgesehen von strerror() ist eine nützliche Funktion der Fehler, der den Fehler auch direkt mit einem gegebenen Präfix ausgibt. Oft möchten Sie so etwas wie

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

Vielen Dank! –