C语言错误代码errno |
您所在的位置:网站首页 › 空气能错误代码15 › C语言错误代码errno |
errno 是记录系统的最后一次错误代码。代码是一个int型的值,在errno.h中定义。查看错误代码errno是调试程序的一个重要方法。当linux C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。在实际编程中用这一招解决了不少原本看来莫名其妙的问题。 函数执行出错的原因有很多种,在C语言中定义了一个全局的整型变量errno来区分究竟发生了什么类型的错误; 在Linux系统中,可以使用man帮助查看errno的相关帮助文档 1、errno定义在errno.h文件中,该文件放在linux下的/usr/include/errno.h 注:值得注意的是,errno的错误值都不等于0,在C语言中0代表无错误errno.h文件部分内容展示: #define EPERM 1 /* Operation not permitted */ #define ENOENT 2 /* No such file or directory */ #define ESRCH 3 /* No such process */ #define EINTR 4 /* Interrupted system call */ #define EIO 5 /* I/O error */ #define ENXIO 6 /* No such device or address */ #define E2BIG 7 /* Argument list too long */ #define ENOEXEC 8 /* Exec format error */ #define EBADF 9 /* Bad file number */ #define ECHILD 10 /* No child processes */ #define EAGAIN 11 /* Try again */ #define ENOMEM 12 /* Out of memory */ #define EACCES 13 /* Permission denied */ #define EFAULT 14 /* Bad address */ #define ENOTBLK 15 /* Block device required */ #define EBUSY 16 /* Device or resource busy */ #define EEXIST 17 /* File exists */ #define EXDEV 18 /* Cross-device link */ #define ENODEV 19 /* No such device */ #define ENOTDIR 20 /* Not a directory */ #define EISDIR 21 /* Is a directory */ #define EINVAL 22 /* Invalid argument */ #define ENFILE 23 /* File table overflow */ #define EMFILE 24 /* Too many open files */ #define ENOTTY 25 /* Not a typewriter */ #define ETXTBSY 26 /* Text file busy */ #define EFBIG 27 /* File too large */ #define ENOSPC 28 /* No space left on device */ #define ESPIPE 29 /* Illegal seek */ #define EROFS 30 /* Read-only file system */一、想得到errno的值,需引入头文件 二、获得错误代码对应的错误信息 在C标准中定义了两个函数帮助打印输出errno的对应错误原因,一个是strerror,另一个是perror 1、strerror——包含在头文件中 //函数原型 /* *功能:将某个错误代码转换成对应的错误信息 */ char *strerror(int errnuum);函数的简单使用: #include #include int main(void) { printf("errno5= %s\n", strerror(5)); return 0; }2、perror——包含在头文件中 //函数原型 /* *功能:根据error打印对应的错误信息 *参数:s: 用户自定义信息字符串,一般是出错的函数名 */ void perror(const char *s);函数的简单使用: #include #include int main(void) { printf("error = %d\n", errno); if(fopen("any", "r") == NULL) { perror("fopen"); } return 0; }提示:在编写程序时,要注意适当地设置函数的返回值来指明函数执行是否成功,并在返回值前给出恰当的提示。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |