getentropy(3) - wariua/manpages-ko GitHub Wiki
getentropy - ๋ฒํผ๋ฅผ ๋์ ๋ฐ์ดํธ๋ก ์ฑ์ฐ๊ธฐ
#include <unistd.h>
int getentropy(void *buffer, size_t length);
glibc ๊ธฐ๋ฅ ํ์ธ ๋งคํฌ๋ก ์๊ฑด (feature_test_macros(7) ์ฐธ๊ณ ):
-
getentropy()
: _DEFAULT_SOURCE
getentropy()
ํจ์๋ buffer
๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์์ ์์ํ๋ ๋ฒํผ์ length
๊ฐ ๋ฐ์ดํธ์ ๊ณ ํ์ง ๋์ ๋ฐ์ดํฐ๋ฅผ ์จ๋ฃ๋๋ค. length
์ ํ์ฉ๋๋ ๊ฐ์ฅ ํฐ ๊ฐ์ 256์ด๋ค.
์ฑ๊ณต์ ์ธ getentropy()
ํธ์ถ์ ํญ์ ์์ฒญํ ๋ฐ์ดํธ ์๋งํผ์ ์ํธ๋กํผ๋ฅผ ์ ๊ณตํ๋ค.
์ฑ๊ณต ์ ์ด ํจ์๋ 0์ ๋ฐํํ๋ค. ์ค๋ฅ ์ -1์ ๋ฐํํ๋ฉฐ errno
๋ฅผ ์ ์ ํ ์ค์ ํ๋ค.
EFAULT
-
buffer
๋ฐlength
๋ก ์ง์ ํ ๋ฒํผ์ ์ผ๋ถ ๋ด์ง ์ ์ฒด๊ฐ ์ ํจํ ์ ๊ทผ ๊ฐ๋ฅ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์์ง ์๋ค. EIO
-
length
๊ฐ 256๋ณด๋ค ํฌ๋ค. EIO
-
buffer
๋ฅผ ๋์ ๋ฐ์ดํฐ๋ก ๋ฎ์ด์ฐ๋ ค๋ ๋์ ๋ช ์ธ๋์ด ์์ง ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ENOSYS
- ์ด ํจ์ ๊ตฌํ์ ํ์ํ getrandom(2) ์์คํ ํธ์ถ์ ์ด ์ปค๋ ๋ฒ์ ์์ ๊ตฌํํ๊ณ ์์ง ์๋ค.
glibc 2.25์์ getentropy()
ํจ์๊ฐ ์ฒ์ ๋ฑ์ฅํ๋ค.
์ด ํจ์๋ ๋นํ์ค์ด๋ค. OpenBSD์๋ ์ด ํจ์๊ฐ ์๋ค.
getentropy()
ํจ์๋ getrandom(2)์ ์ด์ฉํด ๊ตฌํ๋์ด ์๋ค.
glibc ๋ํผ๊ฐ getrandom(2)๋ฅผ ์ทจ์์ ์ผ๋ก ๋ง๋ค์ง๋ง getentropy()
๋ ์ทจ์์ ์ด ์๋๋ค.
getentropy()
๋ <sys/random.h>
์๋ ์ ์ธ๋์ด ์๋ค. (์ด ํค๋ ํ์ผ์์ ์ ์ธ์ ์ป๋ ๋ฐ์๋ ์ด๋ค ๊ธฐ๋ฅ ํ์ธ ๋งคํฌ๋ก๋ ์ ์๋์ด ์์ ํ์๊ฐ ์๋ค.)
์์คํ
์ด ๋ฐฉ๊ธ ๋ถํ
ํ์ฌ ์ปค๋์ด ์ํธ๋กํผ ํ์ ์ด๊ธฐํ ํ ๋์์ฑ์ ์์ง ์ถฉ๋ถํ ์์งํ์ง ๋ชปํ๋ค๋ฉด getentropy()
ํธ์ถ์ด ๋ธ๋ก ํ ์๋ ์๋ค. ์ด ๊ฒฝ์ฐ์๋ ์๊ทธ๋์ ์ฒ๋ฆฌํ์ฌ๋ ๊ณ์ ๋ธ๋ก ํ๊ฒ ๋๋ฉฐ ์ํธ๋กํผ ํ์ด ์ด๊ธฐํ ๋๊ณ ๋์์ผ ๋ฐํํ๊ฒ ๋๋ค.
getrandom(2), urandom(4), random(7)
2017-09-15