December 23, 200519 yr 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
December 23, 200519 yr 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
December 24, 200519 yr 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 :)
December 26, 200519 yr Author 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
January 3, 200619 yr Au pire, faire un select avec un timeout non? Sinon le O_NONBLOCK devrait marcher en effet.
Archived
This topic is now archived and is closed to further replies.