Provided by: manpages-es-dev_4.13-4_all bug

NOMBRE

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

SINOPSIS

       #include <libgen.h>

       char *dirname(char *path);

       char *basename(char *path);

DESCRIPCIÓN

       Warning: there are two different functions basename()  - see below.

       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
       último carácter '/', y basename() devuelve el componente que sigue al último carácter '/'. Los carácteres
       '/' 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 vacía, entonces tanto dirname() como basename()
       devuelven la cadena ".".

       Concatenando la cadena devuelta por dirname(), un carácter "/", y la cadena devuelta  por  basename()  se
       obtiene el nombre de ruta completo.

       Both  dirname()   and  basename()  may modify the contents of path, so it may be desirable to pass a copy
       when calling one of these functions.

       These functions may return pointers to statically allocated memory which may be overwritten by subsequent
       calls.  Alternatively, they may return a pointer to some part of path, so that the string referred to  by
       path should not be modified or freed until the pointer returned by the function is no longer required.

       La  siguiente  lista  de  ejemplos  (extraídos  de  SUSv2)  muestra las cadenas devueltas por dirname() y
       basename() para diferentes rutas:
              ruta       dirname   basename
              /usr/lib   /usr      lib
              /usr/      /         usr
              usr        .         usr
              /          /         /
              .          .         .
              ..         .         ..

VALOR DEVUELTO

       Both dirname()  and basename()  return pointers to null-terminated strings.  (Do not pass these  pointers
       to free(3).)

ATRIBUTOS

       Para obtener una explicación de los términos usados en esta sección, véase attributes(7).
       ┌───────────────────────┬────────────────────┬───────────────────┐
       │ InterfazAtributoValor             │
       ├───────────────────────┼────────────────────┼───────────────────┤
       │ basename(), dirname() │ Seguridad del hilo │ Multi-hilo seguro │
       └───────────────────────┴────────────────────┴───────────────────┘

CONFORME A

       POSIX.1-2001, POSIX.1-2008.

NOTAS

       There are two different versions of basename()  - the POSIX version described above, and the GNU version,
       which one gets after

               #define _GNU_SOURCE         /* Véase feature_test_macros(7) */
           #include <string.h>

       The GNU version never modifies its argument, and returns the empty string when path has a trailing slash,
       and in particular also when it is "/".  There is no GNU version of dirname().

       With  glibc,  one  gets the POSIX version of basename()  when <libgen.h> is included, and the GNU version
       otherwise.

ERRORES

       In the glibc implementation, the POSIX versions of these functions modify the path argument, and segfault
       when called with a static string such as "/usr/".

       Before glibc 2.2.1, the glibc version of dirname()  did not correctly handle pathnames with trailing  '/'
       characters, and generated a segfault if given a NULL argument.

EJEMPLOS

       The following code snippet demonstrates the use of basename()  and dirname():
           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);

VÉASE TAMBIÉN

       basename(1), dirname(1)

COLOFÓN

       Esta página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar una descripción del
       proyecto,   información   sobre   cómo   informar   errores  y  la  última  versión  de  esta  página  en
       https://www.kernel.org/doc/man-pages/.

TRADUCCIÓN

       La traducción al español de esta página del manual fue creada por Miguel Pérez Ibars <mpi79470@alu.um.es>

       Esta traducción es documentación libre;  lea  la  GNU General Public License Version 3  o  posterior  con
       respecto a las condiciones de copyright.  No existe NINGUNA RESPONSABILIDAD.

       Si  encuentra  algún  error  en  la  traducción  de esta página del manual, envíe un correo electrónico a
       debian-l10n-spanish@lists.debian.org.

GNU                                               9 Junio 2020                                       BASENAME(3)