Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1650 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Redirection des I/O et lecture du clavier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Redirection des I/O et lecture du clavier

n°629177
glacote
Posté le 31-01-2005 à 14:44:28  profilanswer
 

Bonjour, j'ai écrit un script qui lit une chaîne au clavier mais s'interrompt au bout de 30s d'attente.
Ca marche comme je le veux, sauf si je redirige la sortie standard (avec un pipe | ou des back-quotes ``).
 
Ce que j'ai fait: passer le terminal en "raw":

Code :
  1. struct termios termio;
  2.   if (fcntl(1, F_SETFL,  fcntl(1,F_GETFL) | O_NONBLOCK ) < 0) fprintf(stderr, "WARNING: failed to open terminal in non-blocking mode\n" );
  3.   if ( tcgetattr(1, &termio) < 0) fprintf(stderr, "WARNING: failed to get terminal mode\n" );
  4.   cfmakeraw(&termio);
  5.   if ( tcsetattr(1, TCSAFLUSH, &termio)  < 0) fprintf(stderr, "WARNING: failed to set terminal into flushing mode\n" );


puis je lis caractère par caractère

Code :
  1. char* c = buffer;
  2.   while ( (! has_timed_out) && (c < buffer + length) ) {
  3.     struct pollfd pollee;
  4.     pollee.fd = in;
  5.     pollee.events = POLLIN;
  6.     poll(&pollee, 1, -1);
  7.     read(in, c, 1);
  8.     if ( '\r' == *c) /* Return pressed; '\r' will be overwritten by a '\0' */
  9.       break;
  10.     else
  11.       ++c;
  12.   }


et enfin je restaure les paramètres du terminal

Code :
  1. tcsetattr(in, TCSAFLUSH, &original_termio);


 
Pourquoi est-ce que ça fonctionne quand je fait

Code :
  1. ./random-hash


mais pas quand je fais

Code :
  1. ./random-hash >> fichier
  2. ./random-hash | cat
  3. echo `./random-hash`

mood
Publicité
Posté le 31-01-2005 à 14:44:28  profilanswer
 

n°629237
glacote
Posté le 31-01-2005 à 16:19:13  profilanswer
 

up

n°629241
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 31-01-2005 à 16:24:37  profilanswer
 

mauvaise cat, prog est plus adaptée :)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°629245
glacote
Posté le 31-01-2005 à 16:39:56  profilanswer
 

black_lord a écrit :

mauvaise cat, prog est plus adaptée :)


Merci, j'ai reposté ici.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Redirection des I/O et lecture du clavier

 

Sujets relatifs
Lecture numérique des cd audio et xmmsProblème de Lecture des midi sous Linux
freebox+redirection flux video sur PCPb Lecture DVD saccadé sous Mandrake 10.1
[FreeBSD] pas de clavier :(XStringToKeysym faire un raccourci clavier
[Samba] Autorisation public lecture, user écritureproblème lecture de vidéos .mp4
Clavier avec touches multimédia: ça marche sous Linux ? Oui !Pb clavier avec Linux Slackware
Plus de sujets relatifs à : Redirection des I/O et lecture du clavier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR