toxic_cortex Posted December 23, 2005 Share Posted December 23, 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 Link to comment Share on other sites More sharing options...
lorinc Posted December 23, 2005 Share Posted December 23, 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 Link to comment Share on other sites More sharing options...
tuXXX Posted December 23, 2005 Share Posted December 23, 2005 Section programmation, non? Link to comment Share on other sites More sharing options...
jackinow Posted December 24, 2005 Share Posted December 24, 2005 effectivement Link to comment Share on other sites More sharing options...
Baldurien Posted December 24, 2005 Share Posted December 24, 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 :) Link to comment Share on other sites More sharing options...
toxic_cortex Posted December 26, 2005 Author Share Posted December 26, 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 Link to comment Share on other sites More sharing options...
Baldurien Posted December 27, 2005 Share Posted December 27, 2005 tente toujours ça http://www.chez.com/vidalc/lf/socket.html Link to comment Share on other sites More sharing options...
naparuba Posted January 3, 2006 Share Posted January 3, 2006 Au pire, faire un select avec un timeout non? Sinon le O_NONBLOCK devrait marcher en effet. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.