getrandom(2) System Calls Manual getrandom(2) getrandom - (libc -lc) #include ssize_t getrandom(size_t size; void buf[size], size_t size, unsigned int flags); getrandom() buf size . . getrandom() urandom ( /dev/urandom). flags. urandom 256 . . EINTR. urandom getrandom() GRND_NONBLOCK flags. flags OR: GRND_RANDOM random ( /dev/random) urandom. random . random size . GRND_NONBLOCK flags. GRND_NONBLOCK random getrandom() urandom . GRND_NONBLOCK getrandom() -1 errno EAGAIN. getrandom() buf. size GRND_RANDOM flags random . -1 errno . EAGAIN getrandom() GRND_NONBLOCK. EFAULT buf . EINTR read(2) "" SA_RESTART signal(7). EINVAL flags. ENOSYS glibc getrandom() . . Linux 3.17, glibc 2.25. random(7). /dev/random /dev/urandom getrandom() . getrandom() chroot(2) /dev ( ) . Linux 3.19 : o urandom getrandom() 32Mi-1 int 32 . o random 512 . urandom ( GRND_RANDOM) getrandom() ( GRND_NONBLOCK). ( 256) getrandom() buf. random ( GRND_RANDOM) getrandom() ( GRND_NONBLOCK). getrandom() urandom size. EINTR. (size > 256) EINTR. (size <= 256) getrandom() EINTR. . random ( EINTR). getrandom() (<= 256 ) urandom . size getentropy(3) OpenBSD glibc . getrandom() . GRND_RANDOM size 256 ! Linux 3.19 : o getrandom() . getentropy(3) random(4) urandom(4) random(7) signal(7) 3 . . : . 6.18 8 2026 getrandom(2)