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

错误处理:包裹函数

时间:2015-08-17 21:39:48      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

既然发生错误时终止程序的运行是普遍的情况,我们可以通过定义 包裹函数 来缩短程序。每个包裹函数完成实际的函数调用,检查返回值,并在发生错误时终止进程。

我们约定包裹函数名是实际函数名的首字母大写形式。

 

void Pthread_mutex_lock(pthread_mutex_t *mptr)

{

  int n;

  n = pthread_mutex_lock(mptr);

  if(0 == n)

  {

    return;

  }

  errno =  n;

  err_sys("pthread_mutex_lock error");

 

}

只要一个unix函数中有错误发生,函数本身通常返回-1,全局变量errno就被置为一个指明该错误类型的正值。

int main()
{
  int i_r;

  i_r = open("./a",  O_RDWR);//打开一个不存在的文件

  printf("i_r = %d\n",  i_r);

  printf("errno = %d\n",  errno);

  printf("%s\n",  strerror(errno));

  return 0;
}

 

错误处理:包裹函数

标签:

原文地址:http://www.cnblogs.com/zhangxuan/p/4730167.html

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