问题是我正在使用
//现在将备份复制到原始文件中
fseek
在文件中间,下一步存在长度为m
的一些字节,我想用长度为n
的字节替换它们。简单的write
会保留m-n
个字节。如果m > n
,如果m < n
,一些(n-m
)我不想改变的字节将被覆盖。
我只想用可变长度的字节替换已知的startPos到endPos
字节流。最好的解决方案是什么?
--编辑-- 虽然可以通过备份来完成,但是否存在直接解决方案? 这太混乱了?而且编码质量很差。
o = fopen(original, 'r')
b = fopen(backup, 'w')
while(fpos(o) <= startPos){
buffer += fgetc(o)
}
fwrite(b, buffer)
fwrite(b, replaceMentBytes)
buffer = ""
fseek(o, endPos)
while(!feof(o)){
buffer += fgetc(o)
}
fwrite(b, buffer)
//现在将备份复制到原始文件中