Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
option O_NDELAY pour la fonction open
Envoyé par: networkman

Bonjour,

Actuellement je suis en train de porter une application de Solaris8 vers Linux. Dans mon application, la communication inter-processus se fait par tubes. L'accès en lecture au tube par les processus se fait grâce à la fonction read en mode bloquant pendant un certain temps (utilisation O_NDELAY dans la fonction open). Lorsque je passe sur Linux, la lecture ne se comporte pas de la même manière: la lecture est non bloquante sans délai.

En fait je cherche un équivalent de O_NDELAY sur Linux.

Ensuite, sur Unix lorsqu'il n'y a aucune données dans le tube la fonction read renvoie la valeur 0. Sous Linux, la fonction read renvoie la valeur -1 (errno = EAGAIN), c'est a dire aucune données disponibles dans le tube.

J'ai l'impression que sous Linux la fonction read ne fait aucune distinction entre aucune données à lire et aucune données disponibles alors que sous Unix on fait bien la distinction.

Voila j'aimerais avoir quelques infos sur tout ça.

Poste le Wednesday 15 August 2007 15:27:41
Répondre     Citer    
Re: option O_NDELAY pour la fonction open
Envoyé par: Sve@r

Citation
networkman
Bonjour, Actuellement je suis en train de porter une application de Solaris8 vers Linux. Dans mon application, la communication inter-processus se fait par tubes. L'accès en lecture au tube par les processus se fait grâce à la fonction read en mode bloquant pendant un certain temps (utilisation O_NDELAY dans la fonction open).
Le flag "O_NDELAY" demande que les read soient non bloquants !!!

Citation
networkman
Lorsque je passe sur Linux, la lecture ne se comporte pas de la même manière: la lecture est non bloquante sans délai.
Ce qui est normal avec le flag O_NDELAY

Citation
networkman
En fait je cherche un équivalent de O_NDELAY sur Linux.
O_NONBLOCK

Citation
networkman
Voila j'aimerais avoir quelques infos sur tout ça.
[fr.lang.free.fr]
[www-igm.univ-mlv.fr]





L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Sunday 26 August 2007 21:07:04
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
option O_NDELAY pour la fonction open
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons