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