#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을 리턴
한다.
1장. epoll_ctl(2)
epoll 파일지정자를 제어한다.
1.1. 사용법
1.2. 설명
이 함수는 epoll 파일지정자인 epfd를 제어한다. 제어는 제어하고자 하는 파일지정자fd에 대해서 op를 이용해서 명령을 내리는 것으로 이루어 진다. 또한 event구조체의 사용자 정의 데이터를 변경함으로 써 나중에 이벤트가 발생했을때 이벤트에 대한 정보로 사용할 수 있다. 다음은 정의된 events구조체이다.
events멤버변수를 이용해서 파일지정자 fd가 어떤 이벤트에 반응할 것인지를 결정할 수 있다. 다음과 같은 이벤트 종류들이 있다.
1.3. 반환값
성공했을 경우 이벤트가 발생한 파일 지정자의 갯수를 리턴한다. timeout시간 동안 이벤트가 발생하지 않았을 경우 0을, 에러가 발생했을 경우에는 -1을 리턴 한다.
epfd가 유요한 파일 지정자가 아니다.
1.4. 에러
epfd가 유요한 파일 지정자가 아니다.
epfd가 유요한 파일 지정자가 아니다.
잘못된 메모리 영역을 가리키고 있다.
1.5. 예제
epoll 연구 위키 의 예제를 참고하기 바란다.
1.6. 참고문헌
epoll 연구 위키
epoll_ctl(2)
epoll_create(2)
close(2)
Recent Posts
Archive Posts
Tags