|
|
1
6
是否有用 一般来说 取决于实施情况。C和C++并没有指定这样的操作必须成功,尽管POSIX确实如此,正如您所知。然而,即使在非POSIX C中,
( C2011 7.21.9.2/2 ),和
(
C2011 7.21.9.2/5
). 这些副作用可能是可取的,即使
表明你可能认为
制作
|
|
2
5
如您所知,在可写文件的结尾之外查找,然后写入,会扩展文件。我想你的问题是,你不想扩展一个只开放阅读的文件,因为扩展是一种修改。 但是仅仅在一个可写文件的末尾之外寻找并不能扩展它--它正在寻找 然后写 . 查找只设置读/写点。 因此,在读取时查找文件末尾以外的内容会设置读取点,这只是数据结构中的一个数字,所以我想没有人担心检查它的有效性。如果您在可读文件的结尾之外进行查找,然后尝试写入,则会出现错误(“文件未打开以进行写入”),如果您在可读文件的结尾之外进行查找,然后进行读取,则只会得到EOF。在这两种情况下,您都不会扩展或更改文件。 (您可能还想知道,如果您在某个其他进程正在写入的可读文件的结尾之外进行查找,然后该其他进程再写入一些内容以“填充”到您想要的位置,会发生什么情况,以及 然后 你想读书吗?这是一个有趣的问题。我怀疑它会起作用,但我还没有试过。) |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |