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

Réseau C Discussion :

Ouvrir un fichier via réseau


Sujet :

Réseau C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Ouvrir un fichier via réseau
    Bonjour,

    Je suis débutant sous Linux.
    Je voudrais réécrire un logiciel que j'avais conçu pour Windows afin qu'il fonctionne maintenant sous Linux.
    J'utilise un PC avec Debian 6.0.7 et langage C avec Codeblocks.

    Voici les 4 façons d'ouvrir le fichier toto.txt que j'ai essayées successivement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    FILE *fG;
    fG = fopen("smb://portable/partage/toto.txt",  "r+b" );		// Cas #1 Correspond au chemin donné par l'explorateur de fichiers
    fG = fopen("smb://192.168.1.200/partage/toto.txt",  "r+b" );	// Cas #2 Correspond au chemin possible firefox
    fG = fopen("\\\\portable\\c:\\partage\\toto.txt", "r+b" );	// Cas #3 Correspond au chemin touvé sur les forums
    fG = fopen("\\\\192.168.1.200\\C:\\partage\\toto.txt", "r+b" );	// Cas #4 Correspond au chemin touvé sur les forums
     
    if(fG == NULL)
    	Printf("Erreur ouverture toto.txt \r\n");
    else
    	fclose(fG);
    Dans ces 4 cas, fG = NULL.
    Les essais ont toujours été faits en root.
    Ces essais ont été faits d'une part sous l'IDE Codeblocks mais aussi directement avec l'exécutable (./mon_executable) d'autre part.

    Pourtant le fichier toto.txt est :
    - Visible depuis Nautilus,
    - Le fichier est éditable avec gedit,
    - Le fichier est visible avec Firefox.

    En revanche, en ligne de commande :
    - root$ gedit smb://portable/partage/toto.txt et autres cas echoue toujours.
    - root$ nano smb://portable/partage/toto.txt et autres cas echoue toujours.


    Mes compétences s'arrêtent là, mais j'espère avoir été clair.
    Quelqu'un aurait il une solution pour sauver mon projet ?

    Par avance, merci
    Unbleu.

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Dans ces 4 cas, fG = NULL.
    Rassure-moi : ce n'est pas avec le code que tu montres que as vérifié cela ?

    root$ gedit smb://portable/partage/toto.txt et autres cas echoue toujours.
    Tu travailles en root ?

    Ce chemin n'est pas un chemin valable sous Linux. D'ailleurs, aucun des chemins que tu montres n'est correct sous Linus si je ne m'abuse. Il faut trouver un chemin correct, pour que gedit soit capable de l'ouvrir en ligne de commande. Avec Nautilus, vas à ton fichier, clic-droit dessus et regarde l'adresse dans les propriétés.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Précisions sur "ouverture d'un fichier via réseau"
    Bonjour et merci de m'avoir lu et répondu,

    Tout d'abord, si, c'est bien avec le code que je montre que j'ai vérifié cela :
    Voir la portion de code fournie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(fG == NULL)
    	Printf("Erreur ouverture toto.txt \r\n");
    else
    	fclose(fG);

    Pour ce qui est de "root $" c'est pour montrer que la commande a été effectuée en root (chez moi : root@unbleu:/home par exemple)

    Pour ce qui est des propriétés du fichier cible, à partir de Nautilus, la boîte de dialogue des propriétés, onglet permission dit "Les permissions de toto.txt ne peuvent pas être déterminées".

    Pour information, le fichier toto.txt est sur une machine Windows et a vocation à y rester.
    Je trouve curieux qu'à partir de Nautilus, je puisse ouvrir ce fichier avec Gedit, l'éditer, le sauver, alors que mon logiciel, dans des conditions identiques ne puisse pas en faire autant.
    Getdit utilisé depuis Nautilus aurait il des pouvoirs magiques ?

    Bien cordialement
    Unbleu

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fG = fopen("smb://portable/partage/toto.txt",  "r+b" );
    Il semble que la librairie C (ou plutôt les couches basse du noyau Windows) fassent le travail pour ouvrir ce fichier à travers SMB (j'en suis le premier surpris mais pourquoi pas, si tu dis que cela marche sous Windows, je te crois).

    Par contre, il y a peu de chance que sur Linux/Unix, ce travail d'interprétation et de redirection soit fait. Avec fopen() sur Linux, tu ne pourras ouvrir qu'un fichier sur un file system local ou alors monté localement (montage NFS, SAMBA, ...).

    Au fait, tu es sûr que c'est Printf() et pas printf() ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Printf ou printf
    Bonjour ram-0000,

    Oui, bien sur, c'est printf. De toutes façons, Printf ne passerait pas l'analyse syntaxique du compilateur sauf à avoir créé Printf();.

    Lorsque j'écris, j'ai un penchant pour les majuscules.

    Je confirme que ma version précédente pour Windows fonctionne de façon irréprochable.
    Ma version Windows va être abandonnées pour des raisons dont je ne suis pas maître.

    Je confirme également qu'aujourd'hui, à partir de ma machine Linux, je peux voir toto.txt avec l'explorateur et que je peux l'éditer avec Gedit.
    De plus, j'ai sur le bureau le dossier contenant le fichier toto.txt.
    Bizarre non?

    Cordialement
    Unbleu

  6. #6
    Membre expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Points : 3 352
    Points
    3 352
    Par défaut
    Bonjour,
    apparemment tu utilises Gnome. Gnome permet d'accéder d'une façon transparente à des ressources réseaux grâce à GVFS (gnome virtual filesystem) à ne pas confondre avec VFS (virtual filesystem du kernel).
    Soit tu développes une application qui va tourner dans l'environnement gnome et dans ce cas utilise les bibliothèques proposées par l'environnement comme GIO.
    Soit tu développes une application qui pourra ne pas trouver gnome dans son environnement d'exécution, dans ce cas il va falloir avant de lancer l'application proprement dite monter la ressource réseau en premier (via smbmount) pour pouvoir retrouver tes fichier dans ton arborescence classique.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Accès fichiers via réseau
    Bonjour kwariz,

    Merci beaucoup, voilà qui éclaire ce qui me paraissait inexplicable : les ressources (GVFS) nécessaires et actives sont incluses dans Gnome.
    (Bien que débutant et si je peux donner mon avis, les dites ressources seraient bien mieux situées si elles étaient à un niveau plus bas, c'est à dire sans le système d'exploitation, mais là ...)

    Je vais donc étudier le lien (via smbmount) et voir ce que je peux faire car, en effet, a terme, mon logiciel doit fonctionner sans clavier ni écran ni environnement graphique.
    Je ne suis pas rendu !


    Bien cordialement
    Unbleu

Discussions similaires

  1. [Débutant] Ouvrir un fichier via une interface
    Par amicostar dans le forum MATLAB
    Réponses: 5
    Dernier message: 18/02/2010, 11h41
  2. Demander à l'utilisateur d'ouvrir un fichier via une macro
    Par frisou65 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/08/2008, 11h03
  3. ouvrir un fichier via ftp?
    Par mbouzouita dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 26/06/2007, 16h20
  4. Ouvrir un fichier sur réseau
    Par stigma dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/10/2006, 12h54
  5. [C# 2.0] Comment ouvrir un fichier via son application?
    Par arasium dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/10/2006, 12h33

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