epoll_create(2) - wariua/manpages-ko GitHub Wiki

NAME

epoll_create, epoll_create1 - epoll 파일 λ””μŠ€ν¬λ¦½ν„° μ—΄κΈ°

SYNOPSIS

#include <sys/epoll.h>

int epoll_create(int size);
int epoll_create1(int flags);

DESCRIPTION

epoll_create()λŠ” μƒˆ epoll(7) μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“ λ‹€. λ¦¬λˆ…μŠ€ 2.6.8λΆ€ν„°λŠ” size 인자λ₯Ό λ¬΄μ‹œν•˜λ˜ 0λ³΄λ‹€λŠ” 컀야 ν•œλ‹€. μ•„λž˜ NOTES μ°Έκ³ .

epoll_create()λŠ” μƒˆ epoll μΈμŠ€ν„΄μŠ€λ₯Ό κ°€λ¦¬ν‚€λŠ” 파일 λ””μŠ€ν¬λ¦½ν„°λ₯Ό λ°˜ν™˜ν•œλ‹€. μ΄ν›„μ˜ epoll μΈν„°νŽ˜μ΄μŠ€ 호좜 λͺ¨λ‘μ— 이 파일 λ””μŠ€ν¬λ¦½ν„°κ°€ 쓰인닀. epoll_create()κ°€ λ°˜ν™˜ν•œ 파일 λ””μŠ€ν¬λ¦½ν„°κ°€ 더 이상 ν•„μš”μΉ˜ μ•ŠμœΌλ©΄ close(2)둜 λ‹«μ•„μ•Ό ν•œλ‹€. epoll μΈμŠ€ν„΄μŠ€λ₯Ό κ°€λ¦¬ν‚€λŠ” λͺ¨λ“  파일 λ””μŠ€ν¬λ¦½ν„°κ°€ λ‹«ν˜”μ„ λ•Œ μ»€λ„μ—μ„œ κ·Έ μΈμŠ€ν„΄μŠ€λ₯Ό νŒŒκΈ°ν•˜κ³  κ΄€λ ¨ μžμ›μ„ μž¬μ‚¬μš©ν•  수 있게 ν•΄μ œν•œλ‹€.

epoll_create1()

flagsκ°€ 0인 κ²½μš°μ—λŠ” ꡬ식 size μΈμžκ°€ μ—†μ–΄μ‘Œλ‹€λŠ” 점을 λΉΌκ³  epoll_create1()이 epoll_create()와 λ™μΌν•˜λ‹€. flags에 λ‹€μŒ 값을 ν¬ν•¨μ‹œμΌœμ„œ λ‹€λ₯Έ λ™μž‘ 방식을 얻을 수 μžˆλ‹€.

EPOLL_CLOEXEC
μƒˆ 파일 λ””μŠ€ν¬λ¦½ν„°μ— 'execμ—μ„œ λ‹«κΈ°'(FD_CLOEXEC) ν”Œλž˜κ·Έλ₯Ό μ„€μ •ν•œλ‹€. 이게 μœ μš©ν•  수 μžˆλŠ” μ΄μœ μ— λŒ€ν•΄μ„  open(2)의 O_CLOEXEC ν”Œλž˜κ·Έ μ„€λͺ…을 보라.

RETURN VALUE

성곡 μ‹œ 이 μ‹œμŠ€ν…œ ν˜ΈμΆœλ“€μ€ 음수 μ•„λ‹Œ 파일 λ””μŠ€ν¬λ¦½ν„°λ₯Ό λ°˜ν™˜ν•œλ‹€. 였λ₯˜ μ‹œ -1을 λ°˜ν™˜ν•˜λ©° 였λ₯˜λ₯Ό λ‚˜νƒ€λ‚΄λ„λ‘ errnoλ₯Ό μ„€μ •ν•œλ‹€.

ERRORS

EINVAL
sizeκ°€ μ–‘μˆ˜κ°€ μ•„λ‹ˆλ‹€.
EINVAL
(epoll_create1()) flags에 μœ νš¨ν•˜μ§€ μ•Šμ€ 값을 μ§€μ •ν–ˆλ‹€.
EMFILE
/proc/sys/fs/epoll/max_user_instances에 λ”°λ₯Έ epoll μΈμŠ€ν„΄μŠ€ κ°œμˆ˜μ— λŒ€ν•œ μ‚¬μš©μžλ³„ μ œν•œμ— κ±Έλ Έλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ epoll(7) μ°Έκ³ .
EMFILE
μ—΄λ¦° 파일 λ””μŠ€ν¬λ¦½ν„° κ°œμˆ˜μ— λŒ€ν•œ ν”„λ‘œμ„ΈμŠ€λ³„ μ œν•œμ— λ„λ‹¬ν–ˆλ‹€.
ENFILE
μ—΄λ¦° 파일 μ΄κ°œμˆ˜μ— λŒ€ν•œ μ‹œμŠ€ν…œ μ „μ—­ μ œν•œμ— λ„λ‹¬ν–ˆλ‹€.
ENOMEM
컀널 객체λ₯Ό μƒμ„±ν•˜κΈ°μ— λ©”λͺ¨λ¦¬κ°€ μΆ©λΆ„ν•˜μ§€ μ•Šμ•˜λ‹€.

VERSIONS

컀널 버전 2.6μ—μ„œ epoll_create()이 μΆ”κ°€λ˜μ—ˆλ‹€. glibc 버전 2.3.2λΆ€ν„° 라이브러리 지원을 μ œκ³΅ν•œλ‹€.

컀널 버전 2.6.27μ—μ„œ epoll_create1()이 μΆ”κ°€λ˜μ—ˆλ‹€. glibc 버전 2.9λΆ€ν„° 라이브러리 지원을 μ œκ³΅ν•œλ‹€.

CONFORMING TO

epoll_create()은 λ¦¬λˆ…μŠ€ μ „μš©μ΄λ‹€.

NOTES

초기 epoll_create() κ΅¬ν˜„μ—μ„œ size μΈμžλŠ” ν˜ΈμΆœμžκ°€ κ·Έ epoll μΈμŠ€ν„΄μŠ€μ— μΆ”κ°€ν•˜λ¦¬λΌ μ˜ˆμƒν•˜λŠ” 파일 λ””μŠ€ν¬λ¦½ν„° 수λ₯Ό μ»€λ„μ—κ²Œ μ•Œλ €μ£ΌκΈ° μœ„ν•œ κ²ƒμ΄μ—ˆλ‹€. μ»€λ„μ—μ„œλŠ” λ‚΄λΆ€μ˜ 이벀트 μ§‘ν•© 자료 ꡬ쑰λ₯Ό 처음 ν• λ‹Ήν•  λ•Œ 크기에 λŒ€ν•œ 힌트둜 κ·Έ 정보λ₯Ό μ‚¬μš©ν–ˆλ‹€. (ν˜ΈμΆœμžκ°€ μ‹€μ œ μ‚¬μš©μ—μ„œ size둜 μ€€ 힌트λ₯Ό μ΄ˆκ³Όν•˜λ©΄ μ»€λ„μ—μ„œ μΆ”κ°€λ‘œ 곡간을 ν• λ‹Ήν–ˆλ‹€.) μš”μ¦˜μ€ (힌트 없이도 μ»€λ„μ—μ„œ ν•„μš”ν•œ 자료 ꡬ쑰 크기λ₯Ό λ™μ μœΌλ‘œ μ‘°μ •ν•˜λ―€λ‘œ) κ·Έ νžŒνŠΈκ°€ 더 이상 ν•„μš”μΉ˜ μ•Šλ‹€. ν•˜μ§€λ§Œ sizeκ°€ μ—¬μ „νžˆ 0보닀 컀야 ν•˜λŠ”λ°, μƒˆ epoll μ‘μš©μ΄ 이전 μ»€λ„μ—μ„œ 돌 λ•Œ ν•˜μœ„ ν˜Έν™˜μ„±μ„ 보μž₯ν•˜κΈ° μœ„ν•΄μ„œμ΄λ‹€.

SEE ALSO

close(2), epoll_ctl(2), epoll_wait(2), epoll(7)


2017-09-15

⚠️ **GitHub.com Fallback** ⚠️