Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix /dev/uradom最大大小_Unix - Fatal编程技术网

Unix /dev/uradom最大大小

Unix /dev/uradom最大大小,unix,Unix,如果您想从/dev/uradom读取N个字节,执行一次读取调用并保证获得N个字节是否安全?或者是否有一些操作系统不提供这种保证,并且可能从/dev/uradom生成一个短读取?为了安全起见,我不会假设保证完全读取,而是反复阅读,直到你有足够的数据。你永远不知道什么时候某个实现会决定从/dev/uradom进行短读是可以的。如果被信号中断,从/dev/uradom进行的读操作可能会在完全满足之前返回。正在讨论的代码(os.py:uradom)正是这样做的,这导致应用程序挂起在配置错误的系统上(请参

如果您想从/dev/uradom读取N个字节,执行一次读取调用并保证获得N个字节是否安全?或者是否有一些操作系统不提供这种保证,并且可能从/dev/uradom生成一个短读取?

为了安全起见,我不会假设保证完全读取,而是反复阅读,直到你有足够的数据。你永远不知道什么时候某个实现会决定从
/dev/uradom
进行短读是可以的。

如果被信号中断,从
/dev/uradom
进行的读操作可能会在完全满足之前返回。

正在讨论的代码(os.py:uradom)正是这样做的,这导致应用程序挂起在配置错误的系统上(请参阅)。如果一个正确配置的系统能够提供我所要求的保证,它将有助于可靠地检测配置错误的系统。正如在该问题中所提到的,在某个时候进行检查以确定
/dev/uradom
是否为常规文件可能是值得的。可能是在Python安装期间,但可能不是每次调用
os.uradom()
。我倾向于同意“配置错误的系统”意味着“未定义的行为”。尽管如此:我还是希望对我的问题有某种形式的回答,例如,以“我确信这五个系统满足这些urandom期望”的形式,或者(也许更好):“我确信XYZ有来自/dev/urandom的短读”@Martin:不管你从哪个文件/设备/套接字/管道读取数据(当然不包括数据报),最好假设任何读取都可能是短的@Hasturkun:为什么读取会短?你能在一些系统上演示一下/dev/uradom的功能吗?