IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Problème a l'affichage dans la console (printf)


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    décembre 2002
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 45
    Points : 20
    Points
    20
    Par défaut Problème a l'affichage dans la console (printf)
    J'ai fais un programme en C qui tout au long de son exécution affiche des messages sur son flux de sortie (à savoir la console MS-DOS), l'exécution se déroule correctement, mais lorsque le message contient le chemin d'un fichier l'affichage est :

    commande éxécutée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf ("Chemin : %s\n", path);
    où path représente : \\server\rep1\rep2\fichier


    affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Chemin : \\server\rep1\rep2\fichier 
    CMD.EXE was started with '\\server\rep11\rep22\rep33' as the current directory path. UNC paths are not supported. Defaulting to Windows directory
    J'ai essayé de contourner le probleme en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("echo \"Chemin : \\\\server\\rep1\\rep2\\fichier\"");
    toujours la meme erreur, meme en redirigeant le flux de sortie d'erreur

    Quelqu'un saurait'il résoudre ce problème ?

    Merci

  2. #2
    Membre du Club
    Inscrit en
    novembre 2002
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : novembre 2002
    Messages : 51
    Points : 57
    Points
    57
    Par défaut
    qu'est que fait ton prog si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf ("Chemin : %s\nTEST\n", path);
    car j'ai l'impression que ce qui s'affiche a la suite du path est independant du printf et correpsond a un probleme dans la suite du programme...

  3. #3
    Membre à l'essai
    Inscrit en
    décembre 2002
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    effectivement c possible, l'affichage est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Chemin : \\server\rep1\rep2\fichier
    TESTCMD.EXE was started with '\\server\rep11\rep22\rep33' as the current directory path. UNC paths are not supported. Defaulting to Windows directory
    mais, si j'enleve le printf, le message n'apparait plus, je pense donc ke cela ne vient pas de la suite .... la je suis perdu !

  4. #4
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    mars 2002
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2002
    Messages : 52
    Points : 43
    Points
    43
    Par défaut
    et si tu fais un printf bidon?
    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("toto\n");
    parfois le printf \n va te vider un buffer et révéler un bug dormant...
    quand on voit ce qu'on voit et quand on entend ce qu'on entend on a bien raison de penser ce qu'on pense
    Coluche

  5. #5
    Membre à l'essai
    Inscrit en
    décembre 2002
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    Beh dans ce cas la l'affichage est correct ! cela affiche :

    toto

    le probleme ne se pose qu'avec les UNC path (\\server\...)

    le fait que le \n soit present ou pas, ne change rien !

    J'ai bo cherché ... rien .... sniffff

    merci qd meme

  6. #6
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    mars 2002
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2002
    Messages : 52
    Points : 43
    Points
    43
    Par défaut
    pose ta question dans le forum Windows peut -etre?
    quand on voit ce qu'on voit et quand on entend ce qu'on entend on a bien raison de penser ce qu'on pense
    Coluche

  7. #7
    Membre à l'essai
    Inscrit en
    décembre 2002
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    je l'ai posé avant dans les forums windows ... pas de réponse qui résolvent le probleme ! tan pis !

    Merci quand meme !

    bonne continuation !

  8. #8
    Membre du Club
    Inscrit en
    novembre 2002
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : novembre 2002
    Messages : 51
    Points : 57
    Points
    57
    Par défaut
    Si le prog n'est pas trop long et qu'il n'est pas confidentiel, tu peux me l'envoyer a l'adresse suivante : ########@free.fr
    et je ferait quelque tests.

    Peux tu nous donner des details sur ta config (version de win, conpilateur...)

  9. #9
    Membre à l'essai
    Inscrit en
    décembre 2002
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    Je suis désolé, mais c un soft pour une grosse boite et je n'ai pas le droit de donner les source, je vais essayer de t'envoyer un bout de code reproduisant le problème, c'est trés gentil de ta part en tout cas !

    J'utilise Windows 2000 avec Visual Studio 6.

    Merci

  10. #10
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    juin 2003
    Messages
    10 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2003
    Messages : 10 241
    Points : 93 242
    Points
    93 242
    Billets dans le blog
    1
    Par défaut Re: Problème a l'affichage dans la console (printf)
    Citation Envoyé par PhoneKilleR
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CMD.EXE was started with '\\server\rep11\rep22\rep33' as the current directory path. UNC paths are not supported. Defaulting to Windows directory
    Si, au lieu d'utiliser directement les chemins UNC, tu associais une lettre de lecteur au dossier de ton programme (ou un dossier parent), et que tu lançais cmd.exe à partir de ce nouveau lecteur, ça résoudrait peut-être le problème... Ça a l'air lié à ça et pas à ton programme
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

  11. #11
    Membre à l'essai
    Inscrit en
    décembre 2002
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    Le problème est que le programme traite des documents sur le réseau, il m'est impossible d'y associer une lettre ... je possède des fichiers de config où les chemin sont UNC, le script récupère ces chemins et effectue les traitements avec.
    Le soft est destiné à etre utilisé dans plusieurs pays,les configurations ne seront pas les memes et il doit pouvoir etre utilisé depuis n'importe quelle machine sans disque a monter ou autre.
    Le script est lancé depuis un batch qui utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    start /min /HIGH \\server\...\script "%1" "%2" "%3"
    Ce qui ouvre une console MS-DOS et exécute le programme ...

    : J'essaye de trouver des contournements, mais franchement la ... j'ai du mal !

    Merci quand même !

  12. #12
    Membre à l'essai
    Inscrit en
    décembre 2002
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    En résumant le problème : je n'exécute rien sur la console MS-DOS avec des UNC path .... je cherche juste a afficher une chaine de caractère !!

  13. #13
    Membre averti
    Homme Profil pro
    Inscrit en
    avril 2002
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2002
    Messages : 290
    Points : 322
    Points
    322
    Par défaut
    J'ai souvenance d'un bug que je ne retrouve pas... où un simple printf plantait les Windows NT et Win2000 à tel point qu'un reboot était indispensable: le printf faisait des /b et des /t pas bcp plus...

    désolé de ne pas avoir pu t'aider mais a mon avis le bug est dans la console de Windows...

  14. #14
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    juin 2003
    Messages
    10 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2003
    Messages : 10 241
    Points : 93 242
    Points
    93 242
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Gandalf
    J'ai souvenance d'un bug que je ne retrouve pas... où un simple printf plantait les Windows NT et Win2000 à tel point qu'un reboot était indispensable: le printf faisait des /b et des /t pas bcp plus...
    Cela s'applique aussi à WinXP et Microsoft n'a pas envie de corriger le bug. Boah c'est pas bien grave : si le serveur est planté par un utilisateur malin connaissant le bug, y'a qu'a le rebooter. Bref... Le but était d'effectivement d'envoyer des backspaces au terminal. Mais là, ça n'a visiblement rien à voir.
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

  15. #15
    Membre à l'essai
    Inscrit en
    décembre 2002
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    Je ne pense pas effectivement que cela ai quelque chose a voir avec ce bug ...

    Je continu les recherche ....

    Si quelqu'un a quelque chose a proposer !!

    Merci d'avance !

  16. #16
    Membre averti
    Homme Profil pro
    Inscrit en
    avril 2002
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2002
    Messages : 290
    Points : 322
    Points
    322
    Par défaut
    Anomaly > Au contraire, je trouve que cela a parfaitement à voir avec le cas que je mentionne : dans les deux cas il semble que ce qui est envoyé au terminal au moyen d'un printf soit (mal) interprété et non simplement affiché...
    Certes les conséquences ne sont pas du meme ordre, mais la cause est bien toujours la meme : un printf d'un texte que l'on souhaite simplement afficher et qui est somme toute bien anodin...

    Voici un exemple de ce met Windows dans tout ses états...
    sauvegardez tous vos documents avant d'executer ce prog...
    et ne l'envoyez pas à des collégues sans les prevenir...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
    int main &#40;&#41;
    &#123;
       int i;
       for&#40;i=1;i<10;i++&#41;
           printf&#40;"Planté!\t\b\b\b\b\b\b"&#41;;
    &#125;

  17. #17
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    juin 2003
    Messages
    10 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2003
    Messages : 10 241
    Points : 93 242
    Points
    93 242
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Gandalf
    Certes les conséquences ne sont pas du meme ordre...
    Oui, mais dans son cas il tente d'exécuter un programme depuis un chemin réseau. Or, la ligne de commande de WinNT est connue pour ne pas supporter les chemins réseaux UNC, d'où la nécessité d'attribuer un lecteur (quelle c... qd même cette ligne de commande).

    PS: Merci pour le programme.
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

  18. #18
    Membre averti
    Homme Profil pro
    Inscrit en
    avril 2002
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2002
    Messages : 290
    Points : 322
    Points
    322
    Par défaut
    Citation Envoyé par Anomaly
    Citation Envoyé par Gandalf
    Certes les conséquences ne sont pas du meme ordre...
    Oui, mais dans son cas il tente d'exécuter un programme depuis un chemin réseau. Or, la ligne de commande de WinNT est connue pour ne pas supporter les chemins réseaux UNC, d'où la nécessité d'attribuer un lecteur (quelle c... qd même cette ligne de commande).

    PS: Merci pour le programme.
    Ce n'est pas ce que j'ai compris !
    je pensais qu'il voulait simplement afficher un chemin UNC :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf&#40;"\\\\server\\toto\\titi"&#41;;
    par contre sur mon NT ca passe sans Pb...
    déjà essayer de reproduire le Pb simplement ce serait bien...

  19. #19
    Membre à l'essai
    Inscrit en
    décembre 2002
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    Aprés plusieurs test dans un programme fait pour cela (avec construction et affichage un UNC path), il s'avère que l'affichage est correct ! Je n'arrive pas a comprendre ce qui peu générer cette erreur dans le soft. Le déroulement résumé est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //Récupération du chemins
    ...
    //affichage de celui-ci
    printf &#40;"Chemin &#58; %s\n\n", path&#41;;
    //execution d'une commande DOS
    system&#40;"dir /b path | find ".htm" /v > path\liste.txt"&#41;;
    //avec construction préalable de cette commande !
    //parcour du fichier liste.txt
    while &#40;fgets....&#41;
    printf&#40;"Fichier &#58; %s\n", nom_fich&#41;;
    Le résultat de cette exécution dans la console est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Chemin &#58; \\serveur\...
     
    CMD.EXE was started with '\\server\rep11\rep22\rep33' as the current directory path. UNC paths are not supported. Defaulting to Windows directory
    Fichier &#58; fichier1
    CMD.EXE was started with '\\server\rep11\rep22\rep33' as the current directory path. UNC paths are not supported. Defaulting to Windows directory 
    ...etc...
    Plus je cherche, moins je comprend !
    Si une âme charitable a une idée a me proposer, je prend !

    Merci d'avance ! (déjà pour avoir lut le sujet jusqu'à la)

  20. #20
    Membre à l'essai
    Inscrit en
    décembre 2002
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    Et oui effectivement je veu juste afficher :

    Chemin : \\toto\tata\titi

    sur la machine ou est exécutée le script (le serveur)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème affichage dans la console
    Par el_harrathi dans le forum Persistance des données
    Réponses: 0
    Dernier message: 19/06/2009, 17h41
  2. Problème d'affichage dans la console d'Eclipse
    Par My_Sic dans le forum Eclipse C & C++
    Réponses: 1
    Dernier message: 27/10/2007, 03h19
  3. Eclipse problème d'affichage dans la console
    Par barako dans le forum Eclipse C & C++
    Réponses: 1
    Dernier message: 08/07/2007, 17h07
  4. [Applet]problème de d'affichage dans la console
    Par ederf dans le forum Langage
    Réponses: 1
    Dernier message: 19/07/2006, 18h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo