2011-01-31 114 views
2

我试图在Linux环绕epoll的头部。
正常运行似乎是:epoll文件描述符操作

// Create the epoll_fd 
int epoll_fd = epoll_create(10); 

... 

// Add file descriptors to it 
struct epoll_event ev = {0}; 
ev.events |= EPOLLIN; 
ev.data.ptr = ...; 

/* for brevity, I don't do error checking here */ 
epoll_ctl(epoll_fd, EPOLL_CTL_ADD, some_fd, &ev); 

... 

// Wait for IO events 
struct epoll_event events[10]; 
int num_events = epoll_wait(epoll_fd, events, 10, -1); 

// Now handle the events 
... 

我的问题是:鉴于epoll_fd似乎是一个普通的文件描述符,还有没有其他文件操作,我可以用它做,除了三个epoll的功能电话?

+3

您使用之前`epoll`你应该问自己,为什么* *你使用它poll(2)。它完全不标准,不便携,并且在绝大多数人使用它的地方没有任何可衡量的好处。除非你将开放文件限制从1024增加到50000或更多,否则你所做的只是让你的代码无缘无故地移植。 – 2011-02-01 01:14:15

回答

2

man page

Q3是对epoll的FD本身 民意测验/ epoll的/可选?

A3是的。

+0

是的,但是这是做什么的?什么,说,读取select() - 通过该文件描述符呢?如果我读了它会怎么样? – 2011-01-31 23:51:23

2

您可以将epoll_fd本身:)