包裹函数
2018-05-15 本文已影响0人
戴宏鹏
对于“包裹函数”UNP给出的解释是:
既然发生错误时终止程序的运行是普遍的情况,我们可以通过定义包裹函数(wrapper function)来缩短程序。每个包裹函数完成实际的函数调用,检查返回值,并在发生错误时终止进程。我们约定包裹函数名是实际函数名的首字母大写形式。
对于这个包裹函数,理解是:
自己封装一个函数,这个函数的参数和要引用的函数是一样的,但是在要引用的函数的基础上加入了错误判断的功能。
书中给出的例子是:
int Socket(int family,int type,int protocol)
{
int n;
if((n = socket(family,type,protocol)) < 0)
err_sys("socket error");
return (n);
}
这样一来,以后我们再要调用socket函数时,可以直接使用我们自己封装的包裹函数Socket(),好处是不用每次调用都要对是否socket成功做判断了。