C 错误处理

C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据。在发生错误时,大多数的 C 或 UNIX 函数调用返回 1 或 NULL,同时会设置一个错误代码 errno,该错误代码是全局变量,表示在函数调用期间发生了错误。您可以在 头文件中找到各种各样的错误代码。想要一起学习C++的可以加企鹅裙五六七六二五六六八,裙内有各种资料满足大家,欢迎加裙

所以,C 程序员可以通过检查返回值,然后根据返回值决定采取哪种适当的动作。开发人员应该在程序初始化时,把 errno 设置为 0,这是一种良好的编程习惯。0 值表示程序中没有错误。C/C ++学习交流群:五六七六二五六六八,学习的小伙伴可以加哦

errno、perror() 和 strerror()

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

perror() 函数显示您传给它的字符串,后跟一个冒号、一个空格和当前 errno 值的文本表示形式。

strerror() 函数,返回一个指针,指针指向当前 errno 值的文本表示形式。

让我们来模拟一种错误情况,尝试打开一个不存在的文件。您可以使用多种方式来输出错误消息,在这里我们使用函数来演示用法。另外有一点需要注意,您应该使用 stderr 文件流来输出所有的错误。

#include #include #include extern int errno ;int main (){

当上面的代码被编译和执行时,它会产生下列结果:

错误号: 2通过 perror 输出错误: No such file or directory打开文件错误: No such file or directory

被零除的错误

在进行除法运算时,如果不检查除数是否为零,则会导致一个运行时错误。

为了避免这种情况发生,下面的代码在进行除法运算前会先检查除数是否为零:

#include #include main(){

当上面的代码被编译和执行时,它会产生下列结果:C/C ++学习交流群:五六七六二五六六八,学习的小伙伴可以加哦

除数为 0 退出运行...

程序退出状态

通常情况下,程序成功执行完一个操作正常退出的时候会带有值 EXIT_SUCCESS。在这里,EXIT_SUCCESS 是宏,它被定义为 0。

如果程序中存在一种错误情况,当您退出程序时,会带有状态值 EXIT_FAILURE,被定义为 -1。所以,上面的程序可以写成:

#include #include main(){

当上面的代码被编译和执行时,它会产生下列结果:

quotient 变量的值为 : 4

最后还是要推荐下小编的C/C ++学习交流群:五六七六二五六六八,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2017最新的C/C ++和0基础入门教程,欢迎初学和进阶中的小伙伴。

每天晚上20:00群里都有免费的课程给大家分享C/C ++知识和路线方法,群里会不定期更新最新的教程和学习方法(进群送2017C/C ++学习教程),大家都是学习C/C 游戏编程的,或是转行,或是大学生,还有工作中想提升自己能力的C/C 党,如果你是正在学习C/C 游戏编程的小伙伴可以加入学习。最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实,非常适合新手学习,有不懂的问题可以随时问我,工作不忙的时候希望可以给大家解惑。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180109A00UNH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券