Comment replacer la sortie standard sur l'écran ? - C - Programmation
Marsh Posté le 04-03-2008 à 23:02:15
Je crois avoir trouvé une solution, mais je ne sais pas si c'est propre ?
Code :
|
Marsh Posté le 05-03-2008 à 11:45:38
euh je comprends pas ce que tu veux faire: tu fork, tu changes stdin, stdout, etc comme tu veux, tu exec et basta. Ca n'impacte pas les descripteurs de ton shell.
Marsh Posté le 05-03-2008 à 18:43:39
Salut, euh si ça a un impacte sur mon shell. Mon shell c'est mon programme en C que je suis entrain de coder. En fait je voudrais changer les descripteurs du processus fils uniquement, là ma solution est plus "brutale" car elle change aussi celle du père. c'est pour ça que lorsque j'exécutais une commande, à son retour, le descripteur stdout restait dans le fichier. Ma solution proposée rétabli ce problème.
Mais ma question est : comment ne changer que les descripteurs du fils ?
Marsh Posté le 06-03-2008 à 09:40:02
abaddon2002 a écrit : Mais ma question est : comment ne changer que les descripteurs du fils ? |
Et bien tu fais le changement dans le fils
Marsh Posté le 06-03-2008 à 11:40:12
abaddon2002 a écrit : Salut, euh si ça a un impacte sur mon shell. Mon shell c'est mon programme en C que je suis entrain de coder. En fait je voudrais changer les descripteurs du processus fils uniquement, là ma solution est plus "brutale" car elle change aussi celle du père. c'est pour ça que lorsque j'exécutais une commande, à son retour, le descripteur stdout restait dans le fichier. Ma solution proposée rétabli ce problème. |
bah tu forks
Marsh Posté le 04-03-2008 à 22:31:05
Bonjour,
dans le cadre de réalisation d'un mini shell, je dois pouvoir modifier le descripteur de la sortie, erreur et entrée standard.
Mon problème est identique dans les trois cas. Prenons par exemple la sortie standard. J'arrive à la redirigier, mais une fois mon traitement achevé, comment la refaire aller sur l'écran ?
J'ai trouvé un code classique pour la rediriger :
Message édité par abaddon2002 le 04-03-2008 à 22:40:33