_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.