包裹函数
GitHub: https://github.com/storagezhang
Emai: debugzhang@163.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
作为函数名的后缀