gpt4 book ai didi

C++ istream::peek - 它不应该是非阻塞的吗?

转载 作者:太空宇宙 更新时间:2023-11-03 10:24:22 24 4
gpt4 key购买 nike

istream::peek 操作阻塞似乎被广泛接受。

该标准虽然可以说有点模棱两可,但倾向于非阻塞行为。 peek依次调用sgetc,其行为为:

"受控输入序列当前位置的字符,为int类型的值。如果没有更多字符可从受控输入序列中读取,该函数将返回文件结束值 (EOF)。”

它没有说“如果没有更多的字符......等到有”

我是不是漏掉了什么?还是我们使用的 peek 实现有点错误?

最佳答案

受控输入序列是您正在阅读的文件(或其他任何文件)。所以如果你在文件末尾,它返回 EOF。否则它返回文件中的下一个字符。

我看不出这里有任何歧义——如果它需要一个尚未从文件中读取的字符,那么它需要读取它(并等到它被读取,然后返回它)。

如果您正在从诸如套接字之类的东西中读取数据,那么它会一直等到数据到达(或者网络堆栈检测到 EOF,例如对等方断开连接)。

关于C++ istream::peek - 它不应该是非阻塞的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44149714/

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