项目中使用了RamDisk。趁着今天晚上学习下RamDisk的知识。
RamDisk的介绍:
来自维基百科:
RAM disk是通过使用软件将RAM模拟当做硬盘来使用的一种技术。
相对于传统的硬盘文件访问来说,这种技术可以极大的提高在其上进行的文件访问的速度。但是RAM的易失性也意味着当关闭电源后的数据将会丢失。某些时候这不是问题,比如说对于一个加密文档的明文来说。但是在大多数情况下,传递到RAM disk上的数据都是其他在别处有永久性存贮文件的一个拷贝,当系统重启后可以重新建立。
http://zh.wikipedia.org/wiki/RAM_disk
简单来说,RamDisk就是一块当硬盘用的内存空间。
项目中使用RamDisk的方法很简单。在里面写图片。删除图片。
这里使用了statfs函数:
#include <sys/vfs.h> /* 或者 <sys/statfs.h> */
int statfs(const char *path, struct statfs *buf);
ps:关于statfs的介绍,如下一篇博客写的非常详细。请参考,不一一尽诉。http://blog.csdn.net/mociml/article/details/5335474
每次插入图片前通过该函数获取RamDisk的剩余空间。剩余空间满足要求即写入图片,不满足则删除废弃的图片,直到剩余空间满足要求。