我正在尝试将一些数据插入文件的中间。我已以追加模式打开文件:
file = fopen(msg->header.filename, "ab");
然后我尝试在文件中寻找所需的偏移量,如下所示:
fseek(file, msg->header.offset, SEEK_SET);
但是,当我尝试 fwrite 时,如下所示:
int bytesWritten = fwrite(msg->message, 1, msg->header.length, file);
所有数据都写入文件末尾而不是文件中间。
这是因为我使用的是附加模式吗?我会以写入模式打开,但我需要保留文件中的现有内容。
查看 ANSI C 函数 fopen 对于“a”(APPEND)模式的规范:All写操作发生在文件末尾。
你的 fseek 将被忽略。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)