Ach, effectivement je suis un boulet, c'est dans l'execve() que le buffering se met en place...
Je pense que pour être tranquille il faudrait utiliser une paire de pty et bricoler l'esclave en mode non canonical pour qu'il renvoie ses données sans faire de buffering, mais là c'est un peu plus compliqué à écrire que mon petit programme bidon de tout à l'heure.
[^] # Re: je ne sais pas si j'ai bien saisi ton problème, mais bon ....
Posté par JaguarWan . En réponse au message comment realiser une GUI ?. Évalué à 2.
Je pense que pour être tranquille il faudrait utiliser une paire de pty et bricoler l'esclave en mode non canonical pour qu'il renvoie ses données sans faire de buffering, mais là c'est un peu plus compliqué à écrire que mon petit programme bidon de tout à l'heure.
Je laisse donc ça en exercice aux lecteurs :]
Voilà qui pourra t'être utile:
http://www.tnt.uni-hannover.de/soft/case/lang/c/libc/libc_17(...)
Allocation de pseudo terminaux:
http://www.tnt.uni-hannover.de/soft/case/lang/c/libc/libc_to(...)
Un bout de code pour mettre un terminal en mode non canonique, sans echo et qui lit caractères par caractères:
http://www.tnt.uni-hannover.de/soft/case/lang/c/libc/libc_to(...)
Si tu te fous de la portabilité, l'appel:
int forkpty (int *amaster, char *name, struct termios *termp, struct winsize *winp)
fait un peu le café.
(http://www.tnt.uni-hannover.de/soft/case/lang/c/libc/libc_to(...) )