Linux C/C++ 系统错误

简介: Linux C/C++ 系统错误

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

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

#include <errno.h>

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

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()库函数

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

void perror(const char*s);

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



相关文章
|
5天前
|
存储 JSON Linux
|
2天前
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
|
2天前
|
JavaScript 前端开发 Linux
【好玩的开源项目】Linux系统之部署捕鱼达人经典小游戏
【7月更文挑战第20天】Linux系统之部署捕鱼达人经典小游戏
13 6
|
4天前
|
Linux 测试技术 网络安全
【好玩的开源项目】Linux系统之部署吃豆人经典小游戏
【7月更文挑战第18天】Linux系统之部署吃豆人经典小游戏
27 1
|
6天前
|
Linux 测试技术 网络安全
【好玩的开源项目】Linux系统之部署跳一跳经典小游戏
【7月更文挑战第16天】Linux系统之部署跳一跳经典小游戏
27 6
|
7天前
|
Linux 测试技术 网络安全
【好玩的开源项目】Linux系统之部署adarkroom文字风格冒险小游戏
【7月更文挑战第15天】Linux系统之部署adarkroom文字风格冒险小游戏
26 4
|
5天前
|
JavaScript Linux 测试技术
【好玩的开源项目】Linux系统之部署proxx扫清黑洞小游戏
【7月更文挑战第17天】Linux系统之部署proxx扫清黑洞小游戏
17 1
|
8天前
|
存储 固态存储 Linux
systemd-analyze:Linux系统启动性能分析的利器
`systemd-analyze`是Linux下分析systemd启动性能的工具,它提供启动时间统计、服务耗时、依赖关系及图形化展示。通过`blame`查看服务启动时间,`critical-chain`显示关键路径,`plot`生成启动时间线图。使用时注意日志完整性,优化服务顺序,并结合最佳实践提升启动效率。
|
1天前
|
监控 Linux Shell
Linux系统中如何查看磁盘情况
【7月更文挑战第11天】在Linux中,`df -h`展示文件系统磁盘使用概览;`du -sh /path`估计特定目录的磁盘占用;`fdisk -l`列出磁盘分区详情;`lsblk`以树状展示块设备信息。这些命令帮助监控磁盘状态,适时管理空间。
|
1天前
|
安全 Linux 数据安全/隐私保护
入职必会-开发环境搭建33-VMWare虚拟机安装Linux系统
CentOS(Community ENTerprise Operating System)是一个基于Linux的开源操作系统,它是由社区志愿者团队从Red Hat Enterprise Linux(RHEL)源代码重新编译而成。CentOS致力于提供一个稳定、可靠且免费的企业级Linux发行版,适用于服务器和工作站环境。