Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

epoll_ctl(2)

1장. epoll_ctl(2)

차례
1.1. 사용법
1.2. 설명
1.3. 반환값
1.4. 에러
1.5. 예제
1.6. 참고문헌

epoll 파일지정자를 제어한다.


1.1. 사용법

#include <sys/epoll.h>

int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)
		


1.2. 설명

이 함수는 epoll 파일지정자인 epfd를 제어한다. 제어는 제어하고자 하는 파일지정자fd에 대해서 op를 이용해서 명령을 내리는 것으로 이루어 진다. 또한 event구조체의 사용자 정의 데이터를 변경함으로 써 나중에 이벤트가 발생했을때 이벤트에 대한 정보로 사용할 수 있다. 다음은 정의된 events구조체이다.

	
typedef union epoll_data {
     void *ptr;
     int fd;
     __uint32_t u32;
     __uint64_t u64;
} epoll_data_t;

struct epoll_event {
     __uint32_t events;  /* Epoll 이벤트 */
     epoll_data_t data;  /* 유저 설정 값 */
};
		

events멤버변수를 이용해서 파일지정자 fd가 어떤 이벤트에 반응할 것인지를 결정할 수 있다. 다음과 같은 이벤트 종류들이 있다.


1.3. 반환값

성공했을 경우 이벤트가 발생한 파일 지정자의 갯수를 리턴한다. timeout시간 동안 이벤트가 발생하지 않았을 경우 0을, 에러가 발생했을 경우에는 -1을 리턴 한다.

EPOLLIN

epfd가 유요한 파일 지정자가 아니다.


1.4. 에러

EBADF

epfd가 유요한 파일 지정자가 아니다.

EBADF

epfd가 유요한 파일 지정자가 아니다.

EFAULT

잘못된 메모리 영역을 가리키고 있다.


1.5. 예제

epoll 연구 위키 의 예제를 참고하기 바란다.


1.6. 참고문헌

  1. epoll 연구 위키

  2. epoll_ctl(2)

  3. epoll_create(2)

  4. close(2)