epoll文件描述符操作

时间:2011-01-31 22:27:35

标签: c linux file-io linux-kernel epoll

我正试图在Linux中围绕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函数调用之外,还有其他任何文件操作可以用吗?

2 个答案:

答案 0 :(得分:3)

来自man page

  

Q3是epoll fd本身   轮询/ epoll的/可选择的?

     

A3是的。

答案 1 :(得分:2)

您可以poll(2) epoll_fd本身:)