GETENTROPY - Linux手册页

Linux程序员手册 第3部分
更新日期: 2017-09-15

版本

getentropy()函数首先出现在glibc 2.25中。

名称

getentropy-用随机字节填充缓冲区

语法

#包括

int getentropy(void * buffer,size_t长度);

glibc的功能测试宏要求(请参阅feature_test_macros(7)):

getentropy():

_DEFAULT_SOURCE

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

说明

getentropy()函数从缓冲区所指向的位置开始,将高质量随机数据的长度字节写入缓冲区。 length参数的最大允许值为256。

成功调用getentropy()始终会提供请求的熵字节数。

备注

getentropy()函数是使用getrandom(2)实现的。

glibc包装器将getrandom(2)用作取消点,而getentropy()则不是取消点。

getentropy()也在中声明。 (无需定义功能测试宏即可从该头文件中获取声明。)

如果系统刚刚启动并且内核尚未收集到足够的随机性来初始化熵池,则对getentropy()的调用可能会阻塞。在这种情况下,即使已处理信号,getentropy()仍将保持阻塞状态,并且仅在初始化熵池后才返回。

返回值

成功时,此函数返回零。如果出错,则返回-1,并正确设置errno。

另外参见

getrandom(2),urandom(4),random(7)

错误说明

EFAULT
缓冲区和长度指定的部分或全部缓冲区不在有效的可寻址内存中。
EIO
长度大于256。
EIO
尝试用随机数据覆盖缓冲区时发生未指定的错误。
ENOSYS
此内核版本未实现实现此功能所需的getrandom(2)系统调用。

遵循规范

此功能是非标准的。它也存在于OpenBSD中。

日期:2019-08-20 18:00:27 来源:oir作者:oir