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

POSIX C Discussion :

gestion des chemins


Sujet :

POSIX C

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 100
    Points : 49
    Points
    49
    Par défaut gestion des chemins
    Bonjour

    Est-ce qu'il existe une fonction de la librarie standard qui permet diviser un chemin absolu en nom de fichier et chemin

    exemple

    chemin="/var/lock/test" => path="/var/lock/", et file="test"

    Merci pour toute information

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    strrchr te donne la derniere occurence d'un caractere (donc tu l'utilises avec '/')
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    Tu as les fonctions basename et dirname. Toutefois, ce n'est pas défini dans la norme mais on les retrouve un peu partout.
    http://man.developpez.com/man3/basename.3.php

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par aoyou Voir le message
    Tu as les fonctions basename et dirname. Toutefois, ce n'est pas défini dans la norme mais on les retrouve un peu partout.
    http://man.developpez.com/man3/basename.3.php
    C'est POSIX.1

    http://www.opengroup.org/onlinepubs/.../basename.html
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 230
    Points : 250
    Points
    250
    Par défaut
    au pire ca prend moins de temps de la recoder que chercher comment faire avec des choses deja existante ^^

  6. #6
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Non, je ne crois pas... pas pour cette fonction en tous cas.
    When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.

  7. #7
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 230
    Points : 250
    Points
    250
    Par défaut
    booo pour recuperer le dernier index d'un char et apres copier avec strncpy ...

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    booo... Ne jamais réinventer la roue. Les fonctions basename et dirname sont là pour être utilisées, pas pour qu'on les laisse dormir. Quelqu'un s'est déjà penché sur le problème et en mieux. Autant en profiter.
    Au passage une implémentation possible de basename. Pas si trivial...
    http://www.koders.com/c/fid3E2920A5B...s=basename#L28

  9. #9
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 230
    Points : 250
    Points
    250
    Par défaut
    ouais mais la pour le coup tu perds plus de temps en recherche que tu en gagnes en le recodant ^^

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    bah....

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    void AnalyzeName (char *Name, char **Basename, char **FileName )
    {
       char *p=NULL ;
     
       *BaseName = NULL ;
       *FileName = NULL ;
     
       if ( Name != NULL )
      {
          p = strrchr(Name, '/' );
          if ( p != NULL )
            {
               *p= '\0' ;
                 *BaseName = strdup(Name);
                 *FileName = strdup ((p+1));
                 *p = '/' ;
            }
         else
          {
              *FileName = strdup ( Name);
          }
      }
    }
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

Discussions similaires

  1. créer un shell : gestion des chemins
    Par boboss123 dans le forum C
    Réponses: 0
    Dernier message: 29/03/2011, 10h19
  2. Gestion des chemins et fichiers hors charset ascii
    Par PatriK-b dans le forum C++Builder
    Réponses: 5
    Dernier message: 18/12/2009, 15h33
  3. Gestion des chemins dans les JSPs
    Par schneidb dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 26/09/2008, 19h12
  4. Réponses: 5
    Dernier message: 07/08/2008, 14h36
  5. Gestion des chemins des images avec une base de données...
    Par Nean dans le forum Bases de données
    Réponses: 4
    Dernier message: 27/07/2005, 08h08

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