J'essaie d'enrouler ma tête autour de epoll sous Linux.
Le fonctionnement normal semble être:opérations de descripteur de fichier 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
...
Ma question est la suivante: compte tenu de la epoll_fd
semble être un descripteur de fichier normal, sont-il d'autres opérations de fichiers que je peux faire avec elle, outre les trois fonctions epoll appels?
Avant d'utiliser 'epoll' vous devriez vraiment vous demander * pourquoi * vous l'utilisez. C'est complètement non-standard et non-portable et n'a aucun avantage mesurable dans la grande majorité des endroits où les gens l'utilisent. Sauf si vous avez augmenté la limite de fichier ouvert de 1024 à quelque chose comme 50000 ou plus, tout ce que vous faites, c'est de rendre votre code non portable sans raison. –