在截断模式下打开文件时的行为
Behavior when opening file in truncate mode
我正在使用C文件描述符处理文件IO。问题是我正在尝试创建一个可以容纳以下事件序列的通用类:
截- 断模式下的现有文本文件(即清除其当前内容)。
- 文本写入此文件
- 刚刚编写的文本被清除。
- 此后,新文本将写入文件。
问题的简化重现编码如下:
//1.
int fd = open("/path/to_file/file.txt", O_RDWR | O_CREAT | O_TRUNC, 0666);
//2.
const char* text = "12345";
write(fd, static_cast<const void*>(text), 5);
//3.
ftruncate(fd, 0);
//4.
const char* new_text = "678";
write(fd, static_cast<const void*>(new_text), 3);
输出是文件开头有 5 个