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 fopen et espace


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 50
    Points : 9
    Points
    9
    Par défaut Problème fopen et espace
    Bonjour à tous,

    Me revoilà avec un nouveau problème dans ma quête de portabilité
    Toujours pour ce même programme, le cap difficile de la compilation a été passé avec succès.
    Quelques programmes ont même passer le test ultime de l'exécution .

    Mais me voila face à un problème, mon fopen refuse d'ouvrir un fichier contenant un espace. Alors que sous windows, ce même fopen l'ouvre sans problème.

    Après vérification, même avec un _ il refuse alors que sans espace le fichier est ouvert et lu.
    J'ai essayer plusieurs manière de l'ouvrir,
    "Fichier avec espace"
    "\"Fichier avec espace\""
    "Fichier_avec_espace"
    "./Fichier avec espace"
    "./Fichier_avec_espace"
    "./\"Fichier_avec_espace\""
    "\"./Fichier_avec_espace\""

    Mais rien n'y fais, à chaque fois j'obtiens une erreur sur l'ouverture du fichier.
    Alors ma question:
    Comment ouvrir un fichier contenant des espaces avec fopen sous linux?

    Cordialement.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 397
    Points : 23 761
    Points
    23 761
    Par défaut
    Citation Envoyé par Maniack Crudelis Voir le message
    Mais rien n'y fais, à chaque fois j'obtiens une erreur sur l'ouverture du fichier.
    Alors ma question:
    Comment ouvrir un fichier contenant des espaces avec fopen sous linux?
    Chez moi, ça marche (gcc 4.3.0). Fais voir ton code.
    Es-tu sûr d'être dans le bon répertoire à l'ouverture ?

    Edit: vérifie également que l'espace de ton nom de fichier ne soit pas en fait un espace insécable. Chez moi, il était mappé par défaut sur Ctrl-Barre Espace, et chaque fois que je saisissais un pipe, un fois sur cinq, j'avais un faux espace à la suite.

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 896
    Points : 219 548
    Points
    219 548
    Billets dans le blog
    125
    Par défaut
    Je ne connais pas ton programme , mais je vais faire sans :p

    Je voudrai savoir , le nom du fichier tu le passe par paramètre au programme ou pas
    ( exemple au cas ou : ./tonProgramme non_du_fichier )
    Si oui , fais bien attention que ton fichier avec espace soit ecrit comme cela : fichier\ avec\ espaces.

    Ou sinon , le problème vient peut être d'un autre point
    Le nom de fichier que tu passe à fopen , est ce que c'est le fichier directement , ou est ce que tu lui indique un répertoire
    ( dans le sens fopen("fichier") ; ou fopen("../fichier") ; ou encore fopen("MyDiretory/fichier")

    Car là peut être aussi le problème car si tu utilise un changement de répertoire ... et que tu veux faire un programme portable entre windows et linux ( entre autre ) tu vas avoir un problème sur le nom du fichier car sous windows les changement de répertoire s'indique par : '\'
    alors que sous linux c'est par : '/'
    Vérifie donc au cas ou

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 397
    Points : 23 761
    Points
    23 761
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Je voudrai savoir , le nom du fichier tu le passe par paramètre au programme ou pas ( exemple au cas ou : ./tonProgramme non_du_fichier )
    Bonne remarque. Mais il a essayé avec des guillemets, ce qui devrait marcher, en théorie.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 50
    Points : 9
    Points
    9
    Par défaut
    Bonjour,
    Et merci de vous préoccuper de mon problème.

    Pour vous éclairer, le contexte est des plus simple (ce qui complique de fait le problème).
    Le fichier à ouvrir s'appelle Menu principal.ini, et se trouve dans le dossier courant. L'ouverture fonctionne si je change le nom en Menuprincipal.ini
    Ceci se fait dans le programme lui même, pas en argument.

    Donc de fait, on écarte l'idée de mise en cause du chemin en / ou \ (a savoir que je gère cette possible erreur en amont de l'ouverture de fichier) et le problème du répertoire courant.

    Par contre à savoir si mon espace est un espace insécable... Eh ben j'en ai pas la moindre idée!!!
    Mais il serait peut-être intéressant de creuser l'idée car je viens de rencontrer un second problème avec les espaces.
    Un autre programme rencontre une erreur sur un appel system de cd à cause d'un dossier contenant un espace (évidemment j'ai mis les guillemets!). Le cd fonctionne si je supprime l'espace .

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 896
    Points : 219 548
    Points
    219 548
    Billets dans le blog
    125
    Par défaut
    Le seul truc que je vois c'est ça ;

    fopen ( "Menu\ principal.ini");

    J'ai vraiment pas d'autre solution , avec tout ce que tu as dis ... Tu as essayé de passer le programme au debuggeur , en surveillent les données ?

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 50
    Points : 9
    Points
    9
    Par défaut
    Je viens de retester le programme incriminé depuis mon serveur (l'erreur étant survenue sur le portable) et ça ne fonctionne toujours pas.
    J'ai court-circuité ma fonction d'ouverture de fichier pour utiliser direct fopen. Et ça a fonctionné!
    Donc j'ai vérifier ma fonction, qui semble être responsable. Après avoir décommenté toutes les lignes potentiellement gênante, puis recommentée graduellement.
    Il s'avère qu'au final, me revoila avec la fonction d'origine sans aucun changement mais maintenant ça fonctionne!!!
    Et de même sur le portable.

    C'était donc une de ces surprises de la programmation, ça marche pas! pourquoi? Pour rien en fait ça marche!

    Désolé donc de vous avoir dérangé inutilement. Mais au moins j'ai la certitude que l'ouverture de fichier avec des espaces doit fonctionner.

  8. #8
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 896
    Points : 219 548
    Points
    219 548
    Billets dans le blog
    125
    Par défaut
    Donc je pense que tu peut mettre résolu ... si c'est pas déjà fait...

    Au sinon , il y a surement une raison ... et le truc que je penserai c'est tu as oublié de recompiler :p

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Configuration] problème fopen fichier
    Par Skeud007 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 07/07/2006, 09h46
  2. Problème de menu: espaces entre les images
    Par nmathon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 30/05/2006, 14h16
  3. [Winsock] Problème avec les espaces
    Par Fiquet dans le forum Développement
    Réponses: 3
    Dernier message: 12/01/2006, 18h06
  4. [XSL] problème avec copy espace de nom
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 11/10/2005, 15h18
  5. Problème Locate avec espaces
    Par Clezio dans le forum Bases de données
    Réponses: 2
    Dernier message: 10/03/2004, 19h06

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