Bonjour,
voila j'aimerai disposer d'un programme qui me permette de détourner le flux stdin via un fichier (je developpe en c)

Je fais donc ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
FILE * strmin = freopen("stdin.txt", "rt", stdin);
if (strmin == NULL)
#error
else
#c'est ok !
Et plus loin dans le code lorsque je désire attendre des données sur l'entrée standard (stdin) qui est détournée je fais:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
while ( (c = (char) getc(stdin) ) < 0)
{
//On attend car nous lisons le caracteres de FIN de fichier (EOF)
}
//On sort de la boucle et on peut traiter le char. (genre putchar)
Le probleme que j'ai, c'est que lorsque je vais ouvrir mon fichier "stdin.txt" avec un editeur de texte (emacs par exemple) et que j'y ajoute des données (du texte) JAMAIS je ne sors de cette maudite boucle !!

(J'ai aussi essayé en passant par un select c'est la même chose)

Pourtant cette solution fonctionne très bien sous Windows !
Alors pourquoi ne fonctionne t'elle pas sous Linux ? (Red hat 9)

Je suis impacient de connaitre vos remarques sur mon problème !!

Merci d'avance