包裹函数(Wrapper function)
简单表现:就是函数名的第一个字母为大写,其它的全部字母为小写。
主要功能:执行实际的函数调用,测试其返回值,碰到错误时终止程序。在现实程序中,我们是检查每个函数的调用是否返回错误,这样做会增加程序的长度。通过定义包裹函数,可以缩短程序的长度。
实现方式:执行包裹函数时,它调用一个名字相同但以相应小写字母开头的实际函数,当碰到错误时,包裹函数总是在输出一个出错消息后终止。
例子:Sem_post(ptr);为包裹函数。其实现如下
void Sem_post(sem_t *sem)
{
if (sem_post(sem) == -1)
err_sys("sem_post error");
}