码迷,mamicode.com
首页 > 其他好文 > 详细

c 错误处理

时间:2015-03-11 18:45:47      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:

UNIX函数出错时,常常返回一个负值,而且整型变量errno被赋值为一个含有附加信息的编码。

 errno 作为一个整型左值,可以是一个整型变量,也可以是一个返回整型指针的函数。

 多线程环境中用 

  extern int *__errno_localtion();

   #define errno (*__errno_location())

 

取代了早期的

 

 extern int errno;

 

 我们可以用 

 char *strerror(int errnum)

函数获取错误信息字符串形式。

 很多C模块的错误提示都继承了这一思路,这里提供了一个小DEMO

enum add_error{

  add_error_success,

  add_error_invalid,

  add_error_overflow,

};

 

 

static int errno_add;

 

static const char *add_error_str[] = {

  "success",

  "the param is invalid",

  "the result is overflow"

};

 

int add(int a,int b)

{

  if(a < 0|| b < 0){

    errno_add = add_error_invalid;

    return -1;

  }  

  if(a > 100 || b > 100){

    errno_add = add_error_overflow;

    return -1;

  }

  return a+b;

}

 

int add_error_get()

{

  return errno_add;

}

 

const char *add_error_desc(int err)

{

  return add_error_str[err];

}

 

关于错误处理

  致命错误: 打印错误日志,结束进程。

  资源性非致命错误:过一段时间,重试。

 

c 错误处理

标签:

原文地址:http://www.cnblogs.com/qianlihu/p/4330210.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!