對(duì)于“包裹函數(shù)”UNP給出的解釋是:
既然發(fā)生錯(cuò)誤時(shí)終止程序的運(yùn)行是普遍的情況,我們可以通過(guò)定義包裹函數(shù)(wrapper function)來(lái)縮短程序拌阴。每個(gè)包裹函數(shù)完成實(shí)際的函數(shù)調(diào)用,檢查返回值拂盯,并在發(fā)生錯(cuò)誤時(shí)終止進(jìn)程实束。我們約定包裹函數(shù)名是實(shí)際函數(shù)名的首字母大寫(xiě)形式。
對(duì)于這個(gè)包裹函數(shù)歉备,理解是:
自己封裝一個(gè)函數(shù)傅是,這個(gè)函數(shù)的參數(shù)和要引用的函數(shù)是一樣的,但是在要引用的函數(shù)的基礎(chǔ)上加入了錯(cuò)誤判斷的功能蕾羊。
書(shū)中給出的例子是:
int Socket(int family,int type,int protocol)
{
int n;
if((n = socket(family,type,protocol)) < 0)
err_sys("socket error");
return (n);
}
這樣一來(lái)喧笔,以后我們?cè)僖{(diào)用socket函數(shù)時(shí),可以直接使用我們自己封裝的包裹函數(shù)Socket()龟再,好處是不用每次調(diào)用都要對(duì)是否socket成功做判斷了书闸。