 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Vincent Courcelle Guest
|
Posted: Sat Feb 05, 2005 9:12 am Post subject: Pipe non bloquant |
|
|
Bonjour,
malgré toutes mes recherches, je n'arrive pas à créer un pipe non blocant,
c'est à dire que quand le consommateur n'a rien à lire, je ne veux pas qu'il
reste bloqué sur le read mais qu'il passe aux instructions suivantes
exemple :
int fd[2];
pipe(fd);
read(fd[0],&buffer,sizeof(char));
printf("c'est pas bloquant ! y a juste rien dans le pipe et buffer est vide
!!");
suis-je obligé de passer par un thread qui regarde mes pipe et met à jour
une variable partagée avec son père quand il lit quelque chose ?
merci de votre aide !
--
Vincent Courcelle
http://www.tubededentifrice.com et http://www.france-jeunes.net
|
|
| Back to top |
|
 |
Olivier Azeau Guest
|
Posted: Sat Feb 05, 2005 11:21 am Post subject: Re: Pipe non bloquant |
|
|
Vincent Courcelle wrote:
| Quote: | Bonjour,
malgré toutes mes recherches, je n'arrive pas à créer un pipe non blocant,
c'est à dire que quand le consommateur n'a rien à lire, je ne veux pas qu'il
reste bloqué sur le read mais qu'il passe aux instructions suivantes
exemple :
int fd[2];
pipe(fd);
read(fd[0],&buffer,sizeof(char));
printf("c'est pas bloquant ! y a juste rien dans le pipe et buffer est vide
!!");
|
Cette question aurait plus sa place dans un fr.comp.os.* car les
comportements des appels systèmes dépendent des plateformes...
Cherche probablement du coté d'un flag O_NONBLOCK à positionner avec fcntl
| Quote: | suis-je obligé de passer par un thread qui regarde mes pipe et met à jour
une variable partagée avec son père quand il lit quelque chose ?
merci de votre aide !
|
Non, mais une question à se poser c'est pourquoi aller lire dans un pipe
alors que l'on n'est pas sûr d'y trouver quelque chose (typiquement,
utilisation de "select")
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|