/myCopy

通过共享缓存构建环形缓冲区以实现文件拷贝

Primary LanguageC++

myCopy

Linux下通过共享内存构建环形缓冲区以实现文件拷贝

环形缓冲示意图

采用三个进程实现,父进程进行复制进度的显示,writebuf进程读入文件并写进缓冲区,readbuf从缓冲区读出文件并写入文件。

使用到的进程之间通信方式有:

 1.管道,子进程通过管道将文件读写的字节数通知父进程,便于显示复制进度。

 2.信号灯,对writebuf与readbuf在读写缓冲区的行为上进行同步。

 3.共享内存,构建环形缓冲区。

将上层目录中的video拷贝到本层目录 运行效果如下:

运行效果

结果验证:

结果验证

通过diff命令比较两个文件,可知两文件相同