这是一个双缓冲区誊抄的程序
要运行本程序,请先在终端中用make进行编译
然后先运行creat程序,创建/a.txt和/b.txt,分别作为源文件和目标文件
最后运行main程序
main程序将新建进程,分别运行get,copy,put
get负责数据从源文件到第一个缓冲区的读取
copy负责数据从第一个缓冲区到第二个缓冲区的转移
put负责数据从第二个缓冲区到目标文件的写入
缓冲区使用共享内存实现,一次传输一个字节,使用信号灯实现进程的同步
如果运行正常,你将看到的输出为
made by fantasy_melody
made by fantasy_melody
这两行输出,第一行是get程序的输出
第二行是put程序的输出
具体实现见源文件及其注释