gpt4 book ai didi

c - 无法实现从文件中检索 n 字节的(稳定)方法

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:18 25 4
gpt4 key购买 nike

我正在开发的库的目的之一是从文件中检索指定数量的字节,在这种特定情况下,我希望访问 /dev/random 以检索基于熵的随机序列。

我对 fread 的主要问题是它会在等待更多熵时无限期挂起,这是不需要的。我的下一个选择是用 feof 包装 fread 以获取 block 中的字节,然后我至少可以提供完成百分比以获得更好的体验,尽管从我可以收集到的迭代 1、2、3、4.. 的字节将是很难追踪到恰好等于所需的数量。

C 标准中是否有一种方法允许我正在寻找的东西、所需的确切数量和 block ?如果我要寻找超时时间,线程化数据请求是否是一个不错的选择?

最佳答案

定义“标准”。你的意思是ISO C标准? POSIX? Linux 标准库 (LSB)?对于 POSIX,read调用允许您指定您尝试读取的缓冲区的大小。您可以使用 pselectpoll确定是否有字节可供读取,超时而不是阻塞。在 Linux 上,可以使用“FIONREAD”ioctl调用以获取可用于读取的确切字节数。

也就是说,您应该问问自己是否需要那个级别的熵。您可能(或可能不会)能够从“/dev/urandom”中读取信息。当然,您必须确定是否属于这种情况。

关于c - 无法实现从文件中检索 n 字节的(稳定)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5508437/

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