2

我正试图在 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 函数调用之外,我还可以使用它执行其他文件操作吗?

4

2 回答 2

4

手册页

Q3 epoll fd本身是否可以poll/epoll/selectable?

A3 是的。

于 2011-01-31T22:33:51.820 回答
3

你可以poll(2)自己做epoll_fd:)

于 2012-10-19T10:39:30.503 回答