epoll
- 리눅스에서 select 대신 사용 가능한 I/O subscription 모델
- FD를 등록하여 해당 FD를 계속 확인하거나 일정 시간 확인하여 요청된 이벤트를 처리하는 메케니즘
int epoll_create(int size);
- fd들의 입출력 이벤트 저장을 위한 공간 할당
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)
- op 값으로 EPOLL_CTL_ADD, EPOLL_CTL_MOD, EPOLL_CTL_DEL 이 들어 올 수 있음
- EPOLL_CTL_ADD: epoll에 fd를 등록 (fd로 처리 할 이벤트 종류 등록) [종류: EPOLLIN, EPOLLOUT, EPOLLPRI 등]
int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);
- timeout 값으로 -1 이 오면 blocking 으로, 계속 fd를 보고 있음
- timeout 값으로 0 이 오면, 즉시 fd 조사하고 리턴함
- timeout 값으로 10 이 오면 10ms 당 fd 체크 및 처리
'개발 관련 기타 > C++' 카테고리의 다른 글
C++) std::bind 와 std::placeholders (std::placeholders::_1, std::placeholders::_2, ...) (0) | 2020.06.24 |
---|---|
C++) RAII 디자인 패턴 (0) | 2020.05.28 |
[프로그래머스] (C++) 점프와 순간이동 (0) | 2019.12.02 |
[프로그래머스] (C++) 최댓값과 최솟값 (0) | 2019.11.28 |
[프로그래머스] (C++) 단체사진 찍기 예제 테스트 방법 (0) | 2019.11.28 |