2011-01-31 157 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本身:)