• Linux C/C++ 系统错误


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

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

    #include 
    

    strerror()库函数(在中声明)

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

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

    举例

    #include
    #include
    #include
    #include
    using namespace std;
    
    int main()
    {
        int iret = mkdir("/tmp/aaa",0755);
    
        cout<<"iret="<
    [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()库函数

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

    void perror(const char*s);
    

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


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

  • 相关阅读:
    JavaScript对象的增强知识
    Java基础38 面向对象三大特征之多态
    Linux安装MongoDB超详细
    Rc与Arc实现1vN所有权机制
    深入理解heap
    B2B企业如何做好谷歌Google广告推广营销布局?
    distroless 镜像介绍及 基于cbl-mariner的.NET distroless 镜像的容器
    Django-(7)
    【CV知识点汇总与解析】| 参数初始化篇
    Leetcode 239 滑动窗口最大值
  • 原文地址:https://blog.csdn.net/qq_40135848/article/details/139395493