epoll_create, epoll_create1 - Ouvrir un descripteur de fichier epoll
Bibliothèque C standard (
libc,
-lc)
#include <sys/epoll.h>
int epoll_create(int size);
int epoll_create1(int flags);
epoll_create() crée une nouvelle instance
epoll(7). Depuis
Linux 2.6.8, le paramètre
size est ignoré, mais
doit être strictement positif. Consultez
NOTES.
epoll_create() renvoie un descripteur de fichier
référençant la nouvelle instance epoll. Ce descripteur de
fichier est utilisé pour tous les appels à l'interface
epoll. Lorsqu'il n'est plus nécessaire, le descripteur de
fichier renvoyé par
epoll_create() devrait être
fermé avec
close(2). Lorsque tous les descripteurs de fichier
faisant référence à une instance epoll sont
fermés, le noyau détruit l'instance et libère les
ressources associées pour une nouvelle utilisation.
Si
flags vaut 0, alors, en plus du fait que le paramètre
obsolète
size n'est plus précisé,
epoll_create1() est identique à
epoll_create(). La valeur
suivante peut être incluse dans
flags pour obtenir un
comportement différent :
- EPOLL_CLOEXEC
- Placer l'attribut
« close-on-exec » ( FD_CLOEXEC) sur le
nouveau descripteur de fichier. Consultez la description de l'attribut
O_CLOEXEC dans open(2) pour savoir pourquoi cela peut
être utile.
S'il réussissent, ces appels système renvoient un descripteur de
fichier (un entier non négatif). En cas d'erreur, ils renvoient -1 et
positionnent
errno pour indiquer l'erreur.
- EINVAL
-
size est négatif ou nul.
- EINVAL
- (epoll_create1()) flags contient une valeur
incorrecte.
- EMFILE
- La limite par utilisateur du nombre d'instances epoll
imposée par /proc/sys/fs/epoll/max_user_instances a
été atteinte. Consultez epoll(7) pour plus de
détails.
- EMFILE
- La limite du nombre de descripteurs de fichiers par
processus a été atteinte.
- ENFILE
- La limite du nombre total de fichiers ouverts pour le
système entier a été atteinte.
- ENOMEM
- Il n'y a pas assez de mémoire pour que le noyau
crée les objets nécessaires.
epoll_create a été introduite dans Linux 2.6. La
prise en charge de la bibliothèque est fournie dans la
glibc 2.3.2.
epoll_create1 a été introduite dans Linux 2.6.27. La
prise en charge de la bibliothèque est fournie dans la
glibc 2.9.
epoll_create() et
epoll_create1() sont spécifiques à
Linux.
Dans l'implémentation initiale d'
epoll_create(), le
paramètre
size informait le noyau du nombre de descripteurs de
fichier que l'appelant s'attend à ajouter à l'instance
epoll. Le noyau utilisait ce renseignement comme indice pour la
quantité d'espace à allouer initialement dans les structures de
données internes décrivant les événements (si
nécessaire, le noyau allouerait plus d'espace si l'utilisation de
l'appelant dépasse l'indice donné en
size). Maintenant,
cet indice n'est plus nécessaire (le noyau dimensionne dynamiquement
les structures de données sans avoir besoin de cet indice), mais
size doit toujours être strictement positif, par
compatibilité ascendante, si de nouvelles applications
epoll
sont exécutées sur d'anciens noyaux.
close(2),
epoll_ctl(2),
epoll_wait(2),
epoll(7)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]> et
Jean-Philippe MENGUAL <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]