Bonsoir !
Je suis en train de programmer un pseudo-FTP en C.
Pour l'instant tout marche bien : le client peut lancer les commandes put et get, et ça fonctionne.
Pendant l'exécution, le serveur affiche quelques traces sur la sortie standard (avec printf).
Maintenant je souhaite passer en multi-clients, avec des fork. Tout a l'air de fonctionner correctement, à un détail près : lors d'un put, tout ce que le serveur devrait écrire dans stdout (avec des printf) est écrit dans le fichier ouvert en écriture par le serveur (et qui devrait être l'exacte copie du fichier envoyé par le client) !!! Ainsi si le fichier envoyé par le client contient du texte, les traces du serveur sont mélangées avec le contenu du fichier envoyé. Et bien sûr, rien ne s'affiche sur la sortie standard du serveur.
Entre l'appel à fork et la création du fichier, rien ne s'affiche, et dès que le fichier est crée, les sorties sont redirigées dans ce fichier. Lorsque le fichier est fermé, rien ne s'affiche à nouveau.
J'aimerais bien savoir par quel prodige la sortie standard est redirigée vers un autre fichier à cause du fork... Et si possible, donnez moi une piste pour me sortir de cet embêtant problème..
Notez que c'est la première fois que j'utilise fork en C, donc je galère un peu.
Merci beaucoup pour votre aide !
Message édité par Docteur_Cube le 22-01-2008 à 23:44:41