• 错误处理:包裹函数


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

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

    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;
    }

  • 相关阅读:
    编写登陆认证程序
    模拟实现一个ATM + 购物商城程序
    三级菜单
    12 场景制造
    11 Unity Editor界面
    3.7练习题
    Coolite 弹窗妙用
    Nginx反向代理 实现Web负载均衡
    MySQL 架构
    Lnmmp
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/4730167.html
Copyright © 2020-2023  润新知