相关疑难解决方法(0)

fseek在写入值时返回到文件末尾

我试图在文件中的位置4覆盖4个字节,但fseek似乎没有工作.

我的代码:

int r = fseek(cacheStream, 4, SEEK_SET);
std::cout << "fseek returns " << r << std::endl;
std::cout << "ftell " << ftell(cacheStream) << std::endl;
r = fwrite(&chunckSize, sizeof(uint32_t), 1, cacheStream);
std::cout << "fwrite returns " << r << std::endl;
std::cout << "ftell " << ftell(cacheStream) << std::endl;
Run Code Online (Sandbox Code Playgroud)

cacheStream以"ab"打开.输出是:

fseek returns 0
ftell 4
fwrite returns 1
ftell 2822716
Run Code Online (Sandbox Code Playgroud)

该值未被覆盖,而是写在文件末尾.什么可能导致与fseek的奇怪行为?

c c++ fseek

2
推荐指数
2
解决办法
2914
查看次数

标签 统计

c ×1

c++ ×1

fseek ×1