包裹函数

GitHub: https://github.com/storagezhang

Emai: debugzhang@petalmail.com

华为云社区:https://bbs.huaweicloud.com/blogs/249262

本文摘自《UNIX 网络编程 卷2:进程间通信》 1.6 节

在现实程序中,我们必须检查每个函数调用是否返回错误。由于碰到错误时终止程序执行是个惯例,因此我们可以通过定义包裹函数(wrapper function)来缩短程序的长度。包裹函数执行实际的函数调用,测试其返回值,并在碰到错误时终止进程。

这里使用的命名约定是将函数名第一个字母改为大写字母,例如:

void
Sem_post(sem_t *sem)
{
  	if (sem_post(sem) == -1) {
      err_sys("sem_post error");
    }
}

我们可改用宏代替函数,从而稍稍提高运行效率,不过即使有的话,包裹函数也很少是程序性能的瓶颈所在。

除了选择将函数名第一个字母大写外,还有许多其他方法:

  • e 作为函数名的前缀
  • _e 作为函数名的后缀
上一篇:多线程安全-iOS开发要注意咯!


下一篇:多线程安全-iOS开发要注意咯!