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
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
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
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
au pire ca prend moins de temps de la recoder que chercher comment faire avec des choses deja existante ^^
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.
booo pour recuperer le dernier index d'un char et apres copier avec strncpy ...
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
ouais mais la pour le coup tu perds plus de temps en recherche que tu en gagnes en le recodant ^^
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager