2012-09-30 26 views
8

Làm thế nào tôi có thể nhận được thông báo lỗi cho giá trị errno (ngôn ngữ C)? Ví dụ: tôi có thể viết tệp đó (errno_messages.h):Làm cách nào để nhận được thông báo lỗi cho giá trị errno (ngôn ngữ 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; 
    } 
} 

Nhưng có thể chức năng này đã tồn tại?

Trân trọng

Trả lời

13

Tôi nghĩ điều bạn đang tìm kiếm là strerror().

+0

Cảm ơn bạn rất nhiều! –

3

Ngoài strerror(), một hàm hữu ích là lỗi cũng trực tiếp in ra lỗi với tiền tố đã cho. Thông thường, bạn sẽ muốn làm điều gì đó như

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

Cảm ơn bạn rất nhiều! –

Các vấn đề liên quan