Compartir a través de


_splitpath, _wsplitpath

Divida un nombre de ruta en componentes. Hay disponibles versiones más seguras de estas funciones; 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
    Nombre de archivo base (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 multibyte- carácter según corresponda, reconociendo secuencias de multibyte- carácter según la página de códigos multibyte actualmente en uso. _wsplitpath es una versión con caracteres anchos de _splitpath; los argumentos a _wsplitpath son cadenas de caracteres anchos. Por lo demás, estas funciones se comportan exactamente igual.

Nota de seguridad    Estas funciones representan una posible amenaza por un problema de saturación del búfer. Los problemas de saturación del búfer son un método frecuente de ataque del sistema, que produce una elevación de privilegios no justificada. Para obtener más información, vea Evitar saturaciones del búfer. Versiones más seguras de estas funciones están disponibles; vea _splitpath_s, _wsplitpath_s.

Asignaciones de rutina de texto genérico

Rutina TCHAR.H

_UNICODE y _MBCS no definidos

_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 path que no necesite.

Si path es NULL, se invoca el controlador de parámetros no válidos, 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, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

Vea también

Referencia

Control de archivos

_fullpath, _wfullpath

_getmbcp

_makepath, _wmakepath

_setmbcp

_splitpath_s, _wsplitpath_s