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

我正在开发的库的目的之一是从文件中检索指定数量的字节,在这种特定情况下,我希望访问/ dev / random来检索基于熵的随机序列。 我对fread的主要问题是它会在等待更多熵时无限期挂起,这是不必要的。我的下一个选择就是用feof包装fread来获取块中的字节,然后我至少可以提供完整的百分比以获得更好的体验,尽管我可以收集迭代1,2,3,4 ..的字节将是难以跟踪到完全等于所需的数量。 在C标准中是否有一种方法允许我正在寻找的东西,确切的数量需要和大块?如果我要寻找超时,那么线程化数据请求是一个很好的选择吗?     
已邀请:
定义“标准”。你的意思是ISO C标准吗? POSIX? Linux标准基础(LSB)?对于POSIX,读取调用允许您指定要尝试读取的缓冲区的大小。您可以使用pselect或poll来确定是否有可读取的字节,超时而不是阻塞。在Linux上,可以使用“FIONREAD”ioctl调用来获取可用于读取的确切字节数。 也就是说,你应该问自己是否需要这种程度的熵。您可能(或可能不)能够从“/ dev / urandom”中读取内容。当然,你必须确定是否是这种情况。     
试试这个 这是我认为可以解决您的问题的函数的手册页。 http://www.manpagez.com/man/3/fgets/ 我刚刚看到fread没有工作,fgets从文件流中读取一定数量的字节到缓冲区     

要回复问题请先登录注册