Provided by: manpages-es_1.55-10_all bug

NOMBRE

       dirname, basename - Analiza los componentes de un nombre de ruta

SINOPSIS

       #include <libgen.h>

       char *dirname(char *path);
       char *basename(char *path);

DESCRIPCI'ON

       Las  funciones  dirname  y  basename  descomponen  un  nombre  de  ruta
       terminado en null en un directorio y un nombre de fichero.  En el  caso
       habitual,  dirname  devuelve la cadena que precede, pero no incluye, al
       ultimo caracter '/', y basename devuelve el  componente  que  sigue  al
       ultimo  caracter  '/'.  Los caracteres '/' del final no se cuentan como
       parte del nombre de ruta.

       Si path no contiene una barra, dirname devuelve la cadena "."  mientras
       que  basename  devuelve  una  copia de path.  Si path es la cadena "/",
       entonces tanto dirname como basename devuelven la cadena "/".  Si  path
       es  un  puntero  a  NULL  o  apunta  a una cadena vacia, entonces tanto
       dirname como basename devuelven la cadena ".".

       Concatenando la cadena devuelta por dirname,  un  caracter  "/",  y  la
       cadena devuelta por basename se obtiene el nombre de ruta completo.

       Tanto  dirname como basename pueden modificar el contenido de path, asi
       que si necesita preservar la cadena pathname, deberia pasar  una  copia
       de  ella  a estas funciones. Ademas, dirname y basename pueden devolver
       punteros a memoria estatica que  puede  ser  sobreescrita  en  llamadas
       posteriores.

       La siguiente lista de ejemplos (extraidos de SUSv2) muestra las cadenas
       devueltas por dirname y basename para diferentes rutas:

       ruta           dirname        basename
       "/usr/lib"     "/usr"         "lib"
       "/usr/"        "/"            "usr"
       "usr"          "."            "usr"
       "/"            "/"            "/"
       "."            "."            "."
       ".."           "."            ".."

EJEMPLO

       char *dirc, *basec, *bname, *dname;
       char *path = "/etc/passwd";

       dirc = strdup(path);
       basec = strdup(path);
       dname = dirname(dirc);
       bname = basename(basec);
       printf("dirname=%s, basename=%s\n", dname, bname);
       free(dirc);
       free(basec);

VALOR DEVUELTO

       Tanto dirname como basename devuelven punteros a cadenas terminadas  en
       null.

FALLOS

       En  versiones de glibc anteriores a 2.2.1 (incluida), dirname no maneja
       correctamente los nombres de  ruta  con  caracteres  '/'  al  final,  y
       provoca una violacion de segmento si se le pasa un argumento NULL.

CONFORME A

       SUSv2

V'EASE TAMBI'EN

       dirname(1), basename(1),