在现实程序中,我们必须检查每个函数调用是否返回错误。由于碰到错误时终止程序执行是个惯例,因此我们可以通过定义包裹函数(wrapper function)来缩短程序的长度。包裹函数执行实际的函数调用,测试其返回值,并在碰到错误时终止进程。
这里使用的命名约定是将函数名第一个字母改为大写字母,例如:
Copy
void
Sem_post(sem_t *sem)
{
if (sem_post(sem) == -1) {
err_sys(“sem_post error”);
}
}
我们可改用宏代替函数,从而稍稍提高运行效率,不过即使有的话,包裹函数也很少是程序性能的瓶颈所在。
除了选择将函数名第一个字母大写外,还有许多其他方法:
用 e 作为函数名的前缀
用 _e 作为函数名的后缀