包裹函数

举报
debugzhang 发表于 2021/03/17 18:59:40 2021/03/17
【摘要】 在现实程序中,我们必须检查每个函数调用是否返回错误。由于碰到错误时终止程序执行是个惯例,因此我们可以通过定义包裹函数(wrapper function)来缩短程序的长度。包裹函数执行实际的函数调用,测试其返回值,并在碰到错误时终止进程。

GitHub: https://github.com/storagezhang

Emai: debugzhang@163.com

本文摘自《UNIX 网络编程 卷2:进程间通信》 1.6 节


在现实程序中,我们必须检查每个函数调用是否返回错误。由于碰到错误时终止程序执行是个惯例,因此我们可以通过定义包裹函数(wrapper function)来缩短程序的长度。包裹函数执行实际的函数调用,测试其返回值,并在碰到错误时终止进程。

这里使用的命名约定是将函数名第一个字母改为大写字母,例如:

void
Sem_post(sem_t *sem)
{
  	if (sem_post(sem) == -1) {
      err_sys("sem_post error");
    }
}

我们可改用宏代替函数,从而稍稍提高运行效率,不过即使有的话,包裹函数也很少是程序性能的瓶颈所在。

除了选择将函数名第一个字母大写外,还有许多其他方法:

  • e 作为函数名的前缀
  • _e 作为函数名的后缀
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。