在 Linux 系统下对常见的错误做了一个编号,每一个编号都代表着每一种不同的错误类型,当函数执行发生错误的时候,操作系统会将这个错误所对应的编号赋值给 errno 变量,每一个进程(程序)都维护了自己的 errno 变量,它是程序中的全局变量,该变量用于存储就近发生的函数执行错误编号。
描述:该函数可以将对应的 errno 转换成适合我们查看的字符串信息。
#include <string.h>
char *strerror(int errnum);

errnum:错误编号 errno。
返回值:对应错误编号的字符串描述信息。

示例代码:

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <errno.h>#include <string.h>/*
#include <string.h>char *strerror(int errnum);errnum:错误编号 errno。
返回值:对应错误编号的字符串描述信息。描述 :该函数可以将对应的 errno 转换成适合我们查看的字符串信息
*/int main(void)
{int fd;/* 打开文件 */fd = open("./test_file", O_RDONLY);if (-1 == fd){printf("Error: %s\n", strerror(errno));return -1;}close(fd);return 0;
}

编译测试结果:

从打印信息可以知道,strerror 返回的字符串是"No such file or directory",所以从打印信息可知,我们就 可以很直观的知道 open 函数执行的错误原因是文件不存在!

Linux 应用编程之strerror函数相关推荐

  1. linux读取文件修改时间函数,Linux服务器编程之utime()函数修改文件存取时间

    Linux服务器编程之utime()函数修改文件存取时间 C语言utime()函数:修改文件的存取时间和更改时间 头文件: #include #include 定义函数: int utime(cons ...

  2. linux ioctl网络参数设置,Linux 网络编程之ioctl函数

    1.介绍 Linux网络程序与内核交互的方法是通过ioctl来实现的,ioctl与网络协议栈进行交互,可得到网络接口的信息,网卡设备的映射属性和配置网络接口.并且还能够查看,修改,删除ARP高速缓存的 ...

  3. Linux 应用编程之stat 函数

    Linux 下可以使用 stat 命令查看文件的属性,其实这个命令内部就是通过调用 stat()函数来获取文件属性的,stat 函数是 Linux 中的系统调用,用于获取文件相关的信息.(可通过&qu ...

  4. Linux应用编程之dup函数和dup2函数

    在 Linux 系统中,open 返回得到的文件描述符 fd 可以进行复制,复制成功之后可以得到一个新文件描述符,使用新的文件描述符和旧的文件描述符都可以对文件进行 IO 操作,复制得到的文件描述符和 ...

  5. linux网络编程之Listen函数参数介绍

    1.listen()函数介绍 listen函数使用主动连接套接口变为被连接套接口,使得一个进程可以接受其它进程的请求,从而成为一个服务器进程.在TCP服务器编程中listen函数把进程变为一个服务器, ...

  6. linux网络编程之setsockopt()函数来设置socket状态以及getsockopt函数只用总结

    1.setsockopt函数 头文件:#include <sys/types.h> #include <sys/socket.h>定义函数:int setsockopt(int ...

  7. Linux应用编程之perror函数

    调用此函数不需要传入 errno,函数内部会自己去获取 errno 变量的值,调用此函数会直接将错误提示字符 串打印出来,而不是返回字符串,除此之外还可以在输出的错误提示字符串之前加入自己的打印信息. ...

  8. linux编程之pthread_create函数

    linux编程之pthread_create函数UNIX环境创建线程函数, 具体格式: #include<pthread.h> int pthread_create(pthread_t * ...

  9. linux c编程之fcntl

    fcntl可实现对指定文件描述符的各种操作,其函数原型如下: int fcntl(int fd, int cmd, ... /* arg */ ); 其中,操作类型由cmd决定.cmd可取如下值: F ...

最新文章

  1. asp.net学习之Repeater控件
  2. HOWTO:InstallShield中如何制作应用程序的卸载快捷方式
  3. 临河天气预报软件测试,临河天气预报15天
  4. mysql 升级 openssl_升级openssl
  5. linux 搭建github,github在linux上的环境搭建-Go语言中文社区
  6. Vivado抓取信号
  7. C/C++ strtol 函数 - C语言零基础入门教程
  8. 做购物车系统时利用到得几个存储过程
  9. 2017 年十大网页设计趋势
  10. C Tricks(十七)—— 对角线元素的屏蔽、二维数组(矩阵)的遍历
  11. java安卓模拟器和电脑通信_Android 模拟器(JAVA)与C++ socket 通讯 分享
  12. Linux查看文件内容的6种命令
  13. 机器学习入门06 - 训练集和测试集 (Training and Test Sets)
  14. ZOJ - 2865 A very easy task
  15. 台式计算机显卡是哪个好,台式电脑显卡排行榜
  16. 积分-钉钉考勤-加分
  17. NGFW——安全策略的处理流程
  18. python的秘密_Shamir秘密共享方案 (Python)
  19. 上网日志留存_日志留存系统
  20. html手机端在线制作,HTML5制作,手机H5页面制作,H5炫酷效果,前端制作 | 纬博赛特...

热门文章

  1. 值得收藏的十个销售类网站(整理),给想做销售的人用
  2. 经典算法案例001-08:如何使用质数设计扫雷(Minesweeper)游戏
  3. 最近发现室友看电脑鬼鬼祟祟,利用python几行代码窥探室友电脑
  4. cocos2d-x 3.0 数据结构(3/3) cocos2d::Value
  5. 微信小程序 - 发送视频弹幕
  6. 坐标系与右手定则(OpenInventor使用的坐标系统)
  7. matlab用数据画热力图,Web数据可视化-手把手教你实现热力图
  8. 【预测模型-GRNN预测】基于有限增量进化广义回归神经网络LIEV-GRNN实现数据回归预测附matlab代码
  9. RK3588S Android12修改boot.img分区大小
  10. CNN主报道:凤凰生态新链游即将上线