我想用hdr
文件中的数据填充in.wav
(struct)变量,我想将in.wav
文件的前64个字节复制到另一个文件({{1 }})。
但是!当第二次使用out.wav
时,它会在第一次使用fread()
时从其完成的位置复制in.wav
。为什么呢?
fread()
怎么回事?
答案 0 :(得分:2)
这是有意的。 fread
始终从文件的当前读指针读取并推进相同的指针,因此您可以在顺序块中创建文件而无需显式搜索。
您不必连续两次读取相同的块。您正在检查的方式是,其他进程是否在此期间更改了文件,如果有,则您的程序将错误地报告副本失败。
答案 1 :(得分:1)
移动文件指针。在此处阅读更多相关信息:Does fread move the file pointer?。您可以使用fseek或倒带来定位文件的开头。