美文网首页
代码健壮性——资源管理

代码健壮性——资源管理

作者: XDgbh | 来源:发表于2018-07-04 18:29 被阅读7次

可管理的资源类型

malloc/new的动态堆内存,文件描述符,文件指针,临时文件,同步对象等等

管理资源流程

  • 步骤1:申请分配资源
  • 步骤2:检查资源分配是否成功,若失败则函数返回非0退出码,成功则继续
  • 步骤3:正常处理流程
  • 步骤4:若流程失败要提前退出,则应该先释放前面申请的所有资源,再退出
  • 步骤5:流程处理完毕,释放资源,函数返回(一般返回0退出码表示正常)

举例

char *ReadFromFile(const char *filename, size_t length)
{
  char *buffer = new char[length];  //步骤1:申请分配资源
  if(!buffer)                        // 步骤2:检查资源分配是否成功
  {
    return NULL;
  }
  int fd = open(filename, O_RDONLY);    //申请文件描述符资源,只读打开文件
  if(fd == -1)                      //检查是否申请成功
  {
    delete [] buffer;
    buffer = NULL;
    return NULL;
  }
  size_t bytes_read = read(fd, bufffer, length);  //读取文件也可能失败,也要处理
  if(bytes_read != length)      //或者发生错误返回-1 == bytes_read
  {
    delete [] buffer;
    buffer = NULL;
    close(fd);
    return NULL;
  }
  close(fd);                //正常退出前关闭文件
  return buffer;
}

相关文章

  • 代码健壮性——资源管理

    可管理的资源类型 malloc/new的动态堆内存,文件描述符,文件指针,临时文件,同步对象等等 管理资源流程 步...

  • 代码健壮性的思考

    通俗地讲,代码的健壮性越好,系统越不容易崩溃。 系统的运行,肯定会基于很多基础设施,如:操作系统、数据库、异步队列...

  • 字符串比大小

    代码健壮性和性能都不怎么好,只是为了锻炼思维,嘻嘻?

  • CodeReview--提高代码健壮性

    前言 没实习之前,不怎么用到版本管理工具。顶多就是用Git把写的一些代码上传到github上,基本上不会涉及到某一...

  • 2020总结

    2020总结 优点 工作心态可以写不出最优秀的代码,但一定要写出最规范的代码。编码开始注意代码的健壮性,开始理解设...

  • typing模块的使用

    参考博客 python模块分析之typing(三) python3.5以上版本,typing模块提高代码健壮性 一...

  • 【集】- 好文收集

    提升你的 Python 项目代码健壮性和性能 -by 知乎 MG的编程小屋用 Type Annotation 提升...

  • 3分钟短文:Laravel模型作用域,为你“节省”更多代码

    引言 原则上代码写一次,处处是引用,不需要大量的冗余代码,这是一种趋势,也是提高代码健壮性的努力方向。larave...

  • 你不得不知的重试神器-Retryer

    一、前言 好的代码应该具备健壮性,比如代码里面调用了一个http请求,如果当时网络抖了下,http就调用失败了,这...

  • 怎样编写健壮的代码

    怎样编写健壮的代码 代码的几种特性 鲁棒性Robust(健壮性) 系统在异常和危险情况下生存的关键 容错性 可移植...

网友评论

      本文标题:代码健壮性——资源管理

      本文链接:https://www.haomeiwen.com/subject/mgzeuftx.html