toxic_cortex Posté(e) le 23 décembre 2005 Partager Posté(e) le 23 décembre 2005 j'ai un petit prob je veut fair un programe qui lit et ecrit sur le port serie (rs232) le problème est que si il n'y a plus d'entrer sur le port le programe s'arette car il atent une entré alor je voulait savoir si s'est posible de fair que la comande read(fd,c,1) renvoi une ereur si il n'y a pas d'entrer durant un certain temps sa serait simpa de me répondre si vous pouvez Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 23 décembre 2005 Partager Posté(e) le 23 décembre 2005 essaye d'ouvrir le descripteur de fichier en non-blocant : O_NONBLOCK ou O_NDELAY Le fichier est ouvert en mode A<< non-bloquant A>>. Ni la fonction open ni aucune autre opération ultérieure sur ce fichier ne laissera le processus appelant en attente. Pour la manipulation des FIFO (tubes nommA©s), voir A©galement fifo(4). Ce mode n'a pas nécessaire- ment d'effet sur autre chose que les FIFO. comme ça, tes appels vont échouer si une lecture est impossible Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 23 décembre 2005 Partager Posté(e) le 23 décembre 2005 Section programmation, non? Lien vers le commentaire Partager sur d’autres sites More sharing options...
jackinow Posté(e) le 24 décembre 2005 Partager Posté(e) le 24 décembre 2005 effectivement Lien vers le commentaire Partager sur d’autres sites More sharing options...
Baldurien Posté(e) le 24 décembre 2005 Partager Posté(e) le 24 décembre 2005 Je sais plus, mais me semble que select/poll (voire recv) te permettent de mettre un timeout. Evidemment bien plus pratique qu'une attente bloquante :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
toxic_cortex Posté(e) le 26 décembre 2005 Auteur Partager Posté(e) le 26 décembre 2005 merci de vos réponce le select/poll me semble une solution trè interesante mais j'ai un peut de penne a comprendre coment sa marche si vous avez de la bonne doc sa serait simpa mais je vait encor chercher sur google et merci d'avoir déplacer le topique je devait un peut dormir Lien vers le commentaire Partager sur d’autres sites More sharing options...
Baldurien Posté(e) le 27 décembre 2005 Partager Posté(e) le 27 décembre 2005 tente toujours ça http://www.chez.com/vidalc/lf/socket.html Lien vers le commentaire Partager sur d’autres sites More sharing options...
naparuba Posté(e) le 3 janvier 2006 Partager Posté(e) le 3 janvier 2006 Au pire, faire un select avec un timeout non? Sinon le O_NONBLOCK devrait marcher en effet. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.