如何获取errno值的错误信息(C语言)?

14

我该如何获取errno值的错误消息(C语言)?例如,我可以编写这样的文件(errno_messages.h):

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

也许已经存在这样的函数了吗?

最好的问候

2个回答

22

5

除了strerror()之外,另一个有用的函数是perror,它可以直接打印带有给定前缀的错误。通常,您会想要执行以下操作:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接