Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[POSIX] Notification de l'arrivée de données

4 réponses
Avatar
Vincent Richard
Bonjour,

Existe-t-il une fonction POSIX qui permet d'être notifié quand des données
arrivent sur un descripteur (fichier, socket, pipe, etc...). Par exemple,
une fonction callback serait appelée par le système.

Sinon, connaissez-vous un moyen pour faire ça ? (sans utiliser de thread)

Merci d'avance pour vos réponses.

Vincent

--
SL> Au fait elle est mieux ma signature maintenant ?
Oui. T'enlève encore les conneries que t'as écrit dedans et c'est bon.
-+- JB in <http://www.le-gnu.net> : Le neuneuttoyage par le vide -+-

4 réponses

Avatar
Laurent Wacrenier
Vincent Richard écrit:
Existe-t-il une fonction POSIX qui permet d'être notifié quand des données
arrivent sur un descripteur (fichier, socket, pipe, etc...). Par exemple,
une fonction callback serait appelée par le système.

Sinon, connaissez-vous un moyen pour faire ça ? (sans utiliser de thread)


Faire un select() ou un poll() sur le descripteur ou une lecture non
bloquante de temps en temps.

Avatar
Jean-Marc Bourguet
Vincent Richard writes:

Bonjour,

Existe-t-il une fonction POSIX qui permet d'être notifié quand des données
arrivent sur un descripteur (fichier, socket, pipe, etc...). Par exemple,
une fonction callback serait appelée par le système.


Les fonctions callbacks, c'est des signaux je suppose.

Il y a les aio et SIGPOOL pour les STREAMs mais je ne me suis servis
d'aucun des deux.

A+
--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Avatar
DINH Viêt Hoà

Vincent Richard écrit:
Existe-t-il une fonction POSIX qui permet d'être notifié quand des données
arrivent sur un descripteur (fichier, socket, pipe, etc...). Par exemple,
une fonction callback serait appelée par le système.

Sinon, connaissez-vous un moyen pour faire ça ? (sans utiliser de thread)


Faire un select() ou un poll() sur le descripteur ou une lecture non
bloquante de temps en temps.


Il existe également aio_read(), moins évident à utiliser, qui enverra un
signal lorsque les données seront complètement lues.

--
DINH V. Hoa,

"Il faut savoir arrêter l'alcool de temps en temps" -- MAB


Avatar
Vincent Richard

Vincent Richard écrit:
Existe-t-il une fonction POSIX qui permet d'être notifié quand des
données arrivent sur un descripteur (fichier, socket, pipe, etc...). Par
exemple, une fonction callback serait appelée par le système.

Sinon, connaissez-vous un moyen pour faire ça ? (sans utiliser de thread)


Faire un select() ou un poll() sur le descripteur ou une lecture non
bloquante de temps en temps.


Justement, je ne veux pas tester manuellement la disponibilité des données.
Je voudrais que le système me prévienne.

Vincent

--
SL> Au fait elle est mieux ma signature maintenant ?
Oui. T'enlève encore les conneries que t'as écrit dedans et c'est bon.
-+- JB in <http://www.le-gnu.net> : Le neuneuttoyage par le vide -+-