C 错误处理

简介: C 错误处理。

C 错误处理
C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据。在发生错误时,大多数的 C 或 UNIX 函数调用返回 1 或 NULL,同时会设置一个错误代码 errno,该错误代码是全局变量,表示在函数调用期间发生了错误。您可以在 errno.h 头文件中找到各种各样的错误代码。

所以,C 程序员可以通过检查返回值,然后根据返回值决定采取哪种适当的动作。开发人员应该在程序初始化时,把 errno 设置为 0,这是一种良好的编程习惯。0 值表示程序中没有错误。

errno、perror() 和 strerror()
C 语言提供了 perror() 和 strerror() 函数来显示与 errno 相关的文本消息。

perror() 函数显示您传给它的字符串,后跟一个冒号、一个空格和当前 errno 值的文本表示形式。
strerror() 函数,返回一个指针,指针指向当前 errno 值的文本表示形式。
让我们来模拟一种错误情况,尝试打开一个不存在的文件。您可以使用多种方式来输出错误消息,在这里我们使用函数来演示用法。另外有一点需要注意,您应该使用 stderr 文件流来输出所有的错误。

目录
相关文章
R语言用ARIMA模型,ARIMAX模型预测冰淇淋消费时间序列数据
R语言用ARIMA模型,ARIMAX模型预测冰淇淋消费时间序列数据
R语言用ARIMA模型,ARIMAX模型预测冰淇淋消费时间序列数据
|
网络协议 Python
在python中利用TCP协议编写简单网络通信程序,要求服务器端和客户端进行信息互传。 - 蓝易云
在这个示例中,服务器端创建一个socket并监听本地的12345端口。当客户端连接后,服务器发送一条欢迎消息,然后关闭连接。客户端创建一个socket,连接到服务器,接收消息,然后关闭连接。
170 0
|
安全 Java Linux
ElasticSearch6.8.4&kibana6.8.4 安装教程
ElasticSearch6.8.4&kibana6.8.4 安装教程
562 0
|
数据可视化 Java Linux
手把手教你安装Zookeeper 及可视化插件ZooInspector、ZKUI
手把手教你安装Zookeeper 及可视化插件ZooInspector、ZKUI
2269 0
|
JSON 资源调度 前端开发
Nest集成Swagger并部署至YAPI
Nest集成Swagger并部署至YAPI
Nest集成Swagger并部署至YAPI
|
弹性计算 Kubernetes 监控
Kubernetes 稳定性保障手册:洞察+预案
稳定性保障是个复杂的话题,需要有效、可迭代、可持续保障集群的稳定性,系统性的方法或许可以解决该问题。
Kubernetes 稳定性保障手册:洞察+预案
|
安全 Java 编译器
删除list集合中特定元素的正确姿势
删除list集合中特定元素的正确姿势
634 0
|
2天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1083 0
|
11天前
|
人工智能 运维 安全