Compartir a través de


_splitpath, _wsplitpath

Divida un nombre de ruta en componentes.Versiones más seguras de estas funciones están disponibles, vea _splitpath_s, _wsplitpath_s.

void _splitpath(
   const char *path,
   char *drive,
   char *dir,
   char *fname,
   char *ext 
);
void _wsplitpath(
   const wchar_t *path,
   wchar_t *drive,
   wchar_t *dir,
   wchar_t *fname,
   wchar_t *ext 
);

Parámetros

  • path
    ruta de acceso completa.

  • drive
    Letra de unidad, seguida de dos puntos (:).Puede pasar NULL para este parámetro si no necesita la letra de unidad.

  • dir
    Ruta de acceso del directorio, incluida la barra diagonal final.Las barras diagonales ( / ), las barras diagonales inversas ( \ ), o ambas pueden utilizar.Puede pasar NULL para este parámetro si no necesita la ruta del directorio.

  • fname
    base el nombre de archivo (ninguna extensión).Puede pasar NULL para este parámetro si no necesita el nombre de archivo.

  • ext
    Extensión de nombre de archivo, incluido el punto principal (.).Puede pasar NULL para este parámetro si no necesita la extensión de nombre de archivo.

Comentarios

La función de _splitpath interrumpe una ruta en los cuatro componentes._splitpath controla automáticamente argumentos de cadena de caracteres multibyte según corresponda, reconociendo secuencias de caracteres multibyte según la página de códigos multibyte actualmente en uso._wsplitpath es una versión con caracteres anchos de _splitpath; los argumentos de _wsplitpath son cadenas de caracteres.Estas funciones se comportan exactamente igual de otra manera.

Las funciones de Thesede la Nota de seguridadincurren en una amenaza potencial causada por un problema de saturación del búfer.Los problemas de saturación del búfer es un método frecuente de ataque del sistema, lo que da como resultado una elevación de privilegios injustificable.Para obtener más información, vea Para evitar las saturaciones del búfer.Versiones más seguras de estas funciones están disponibles; vea _splitpath_s, _wsplitpath_s.

Asignaciones de la rutina de texto genérico

rutina de TCHAR.H

_UNICODE y _MBCS no definido

_MBCS definido

_UNICODE definido

_tsplitpath

_splitpath

_splitpath

_wsplitpath

Almacena en cada componente de la ruta de acceso completa en un búfer independiente; las constantes del manifiesto _MAX_DRIVE, _MAX_DIR, _MAX_FNAME, y _MAX_EXT (definido en STDLIB.H) especifica el tamaño máximo para cada componente del archivo.Los componentes de los archivos que son mayores que las constantes de manifiesto correspondientes producen daños en la pila.

Cada búfer debe ser tan grande como la constante de manifiesto correspondiente evitar la saturación del búfer potencial.

La tabla siguiente se enumeran los valores de las constantes del manifiesto.

Name

Valor

_MAX_DRIVE

3

_MAX_DIR

256

_MAX_FNAME

256

_MAX_EXT

256

Si la ruta de acceso completa no contiene un componente (por ejemplo, un nombre de archivo), _splitpath asigna cadenas vacías a los búferes correspondientes.

Puede pasar NULL a _splitpath para cualquier parámetro distinto de pathque no necesite.

Si path es NULL, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros.Si la ejecución puede continuar, errno se establece en EINVAL y la función devuelve EINVAL.

Requisitos

rutina

Encabezado necesario

_splitpath

<stdlib.h>

_wsplitpath

<stdlib.h> o <wchar.h>

Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.

Ejemplo

Vea el ejemplo para _makepath.

Equivalente en .NET Framework

No es aplicable Para llamar a la función estándar de C, utilice PInvoke. Para obtener más información, vea La invocación de plataforma ejemplos.

Vea también

Referencia

El control de archivo

_fullpath, _wfullpath

_getmbcp

_makepath, _wmakepath

_setmbcp

_splitpath_s, _wsplitpath_s