bfs_mount的实现
文件随机写
因为BFS当前不支持随机写和对已经存在的文件进行写打开(Open for write), 所以在bfs_mount中进行了模拟实现, 将写操作分为了三种模式:
- 创建新文件, 并顺序写
实现: 直接调用bfs的sdk::Write.
- 创建新文件,在写的过程中有向后(offset>文件大小)的seek操作.
实现: 将跳过的区间全部填0, 调用bfs的sdk::Write.
- 创建新的文件,在写的过程中有向前的seek, 或者写打开一个旧的文件.
实现: 将整个文件读入内存buffer中进行读写, 在调用sync的时候, 将旧文件删除, 并将内存buffer写入同名新文件. 然后删除内存buffer, 跳转回模式1.