Posté(e) le 23 décembre 200519 a 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
Posté(e) le 23 décembre 200519 a 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
Posté(e) le 23 décembre 200519 a Section programmation, non? Modifié le 24 décembre 200519 a par jackinow
Posté(e) le 24 décembre 200519 a 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 :)
Posté(e) le 26 décembre 200519 a Auteur 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
Posté(e) le 3 janvier 200619 a Au pire, faire un select avec un timeout non? Sinon le O_NONBLOCK devrait marcher en effet.
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.