|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre du Club
![]() Inscription : mai 2007 Messages : 84 ![]() |
Bonjour,
je suis nouveau sur ce forum, je le connais depuis assez longtemps mais je ne sais pas si j'ai posté mon message au bon endroit Voici mon problème : J'ai un programme prog qui lit sur le fichier standard d'entrée, numdescripteur 0,un nom (que l'utilisateur tape sur le clavier) puis il l'affiche sur l'écran donc numdescripteur 1. J'ai un deuxième programme qui créer un fils via fork() puis le fils doit exécuter "prog" en redirigeant son entrée vers un fichier "Donnees.txt" (par exemple) puis sa sortie vers un autre fichier "Resultat.txt" (par exemple). Donc plus clairement : Le pere créer un fils, le fils redirige les fichiers standard d'entrée et sortie du prog qui l'éxécute via execlp. J'ai deja fait un le programme : Contenu du prog.C Code :
Code :
A l'éxécution je n'ai aucun message, je regarde le contenu de résultat.Txt : VIDE Contenu de donnees : lol voila j'espère que j'ai été assez clair pour que vous puissiez m'aider, merci d'avance AllyKo |
||||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() |
Salut et bienvenue,
Essayes avec execlp("./prog","prog",NULL); au lieu de execlp("prog","prog",NULL); Sinon mets des printf un peu partout pour suivre l' état des variables et les codes de retour de toutes les fonctions. Tu repèreras vite ce qui coince. PS: #include <iostream> est du C++ pas du C. |
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : avril 2007 Messages : 24 ![]() |
Ca semble le plus simple en effet...
Met un printf court (genre printf("1"); dans ton if(pid=-1) et a la place de tes dup2 + close et avant et apres ton wait. Tu devrais pouvoir voir le souci assez facilement. Quand tu mets du fork, ca devient vite un peu le souk pour voir d'ou viennent les problemes, le père et le fils pouvant écrire en meme temps sur le stdout, mais pour débugguer le mieux reste malgrè tout le printf en étant bien carré et avec des printf très courts. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com