Linux C/C++ 系统错误

在C++中,如果调用了库函数,可以通过函数的返回值判断调用是否成功。其实还有一个整型的全局变量errno,存放了函数调用过程中产生的错误代码。

如果调用库函数失败,可以通过errno的值来查找原因

#include <errno.h>

strerror()库函数(在<string.h>中声明)

char *strerror(int errnum);		//非线程安全
int strerror_r(int errnum,char *buf,size_t buflen);		//线程安全

gcc8.3.1版本一共有133个错误代码

举例

#include<iostream>
#include<string.h>
#include<errno.h>
#include<sys/stat.h>
using namespace std;

int main()
{
    int iret = mkdir("/tmp/aaa",0755);

    cout<<"iret="<<iret<<endl;
    cout<<"error="<<strerror(errno)<<endl;
}

[root@localhost 06demoerror]# g++ -o demo_error demo_error.cpp 
[root@localhost 06demoerror]# ./demo_error 
iret=0
error=Success
[root@localhost 06demoerror]# ./demo_error 
iret=-1
error=File exists

perror()库函数

在<stdio.h>中声明,用于在控制台显示最近一次系统错误消息

void perror(const char*s);

调用库函数不一定设置errno,errno不能作为调用库函数失败的标准


推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/3Zqhgt

相关推荐
TeYiToKu1 小时前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
dsywws1 小时前
Linux学习笔记之时间日期和查找和解压缩指令
linux·笔记·学习
互联网打工人no11 小时前
每日一题——第一百二十四题
c语言
爱吃生蚝的于勒1 小时前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
yeyuningzi1 小时前
Debian 12环境里部署nginx步骤记录
linux·运维·服务器
羊小猪~~1 小时前
数据结构C语言描述2(图文结合)--有头单链表,无头单链表(两种方法),链表反转、有序链表构建、排序等操作,考研可看
c语言·数据结构·c++·考研·算法·链表·visual studio
上辈子杀猪这辈子学IT1 小时前
【Zookeeper集群搭建】安装zookeeper、zookeeper集群配置、zookeeper启动与关闭、zookeeper的shell命令操作
linux·hadoop·zookeeper·centos·debian
洋2401 小时前
C语言常用标准库函数
c语言·开发语言
minihuabei1 小时前
linux centos 安装redis
linux·redis·centos
脉牛杂德2 小时前
多项式加法——C语言
数据结构·c++·算法