gpt4 book ai didi

c++ - fflush - 如何检查最后一个操作是否为输出操作

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:44 26 4
gpt4 key购买 nike

来自 std::fflush 文档(http://en.cppreference.com/w/cpp/io/c/fflush):

Causes the output file stream to be synchronized with the actual contents of the file. The behavior is undefined if the given stream is of the input type or if the given stream is of the update type, but the last I/O operation was not an output operation.

我需要对一个文件调用 fflush 才能获得它在磁盘上的大小,但我不知道最后一个操作是输入还是输出。有没有办法检查 FILE 上的最后一个操作是否是输出操作以防止未定义的行为?

最佳答案

来自 documentation :

In files open for update (i.e., open for both reading and writting), the stream shall be flushed after an output operation before performing an input operation. This can be done either by repositioning (fseek, fsetpos, rewind) or by calling explicitly fflush

然后 IMO,您应该简单地避免调用 fflush(即使它应该对于为 I/O 打开的文件是安全的)并使用 fseek移动光标。

关于c++ - fflush - 如何检查最后一个操作是否为输出操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20613659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com