_fullpath
, _wfullpath
Crea un nombre de ruta de acceso absoluta o completa para el nombre de ruta de acceso relativa especificado.
Sintaxis
char *_fullpath(
char *absPath,
const char *relPath,
size_t maxLength
);
wchar_t *_wfullpath(
wchar_t *absPath,
const wchar_t *relPath,
size_t maxLength
);
Parámetros
absPath
Puntero al búfer que contiene el nombre de ruta de acceso absoluta o completa, o bien NULL
.
relPath
Nombre de ruta de acceso relativa.
maxLength
Longitud máxima del búfer de nombre de ruta de acceso absoluta (absPath
). Esta longitud se muestra en bytes para _fullpath
y en caracteres anchos (wchar_t
) para _wfullpath
.
Valor devuelto
Cada una de estas funciones devuelve un puntero a un búfer que contiene el nombre de ruta de acceso absoluta (absPath
). Si se produce un error (por ejemplo, si el valor pasado incluye relPath
una letra de unidad que no es válida o no se encuentra, o si la longitud del nombre de ruta de acceso absoluta creado (absPath
) es mayor que maxLength
), la función devuelve NULL
.
Comentarios
La _fullpath
función expande el nombre de ruta de acceso relativa en relPath
a su ruta de acceso completa o absoluta y almacena este nombre en absPath
. Si absPath
es NULL
, se usa malloc
para asignar un búfer de longitud suficiente para contener el nombre de ruta de acceso. Es responsabilidad del autor de llamada liberar este búfer. Un nombre de ruta de acceso relativa especifica una ruta de acceso a otra ubicación desde la ubicación actual (como el directorio de trabajo actual: .
). Un nombre de ruta de acceso absoluta es la expansión de un nombre de ruta de acceso relativa que indica toda la ruta de acceso necesaria para llegar a la ubicación que se quiere desde la raíz del sistema de archivos. A diferencia de _makepath
, _fullpath
se puede usar para obtener el nombre de ruta de acceso absoluta para rutas de acceso relativas (relPath
) que incluyen ./
o ../
en sus nombres.
Por ejemplo, para usar rutinas en tiempo de ejecución de C, la aplicación debe incluir los archivos de encabezado que contienen las declaraciones de las rutinas. Cada directiva #include
de archivo de encabezado hace referencia a la ubicación del archivo de forma relativa (desde el directorio de trabajo de la aplicación):
#include <stdlib.h>
cuando la ruta de acceso absoluta (ubicación real del sistema de archivos) del archivo podría ser:
\\machine\shareName\msvcSrc\crt\headerFiles\stdlib.h
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
_fullpath
controla automáticamente argumentos de cadenas de caracteres multibyte según corresponda, reconociendo secuencias de caracteres multibyte según la página de códigos multibyte actualmente en uso. _wfullpath
es una versión con caracteres anchos de _fullpath
; los argumentos de cadena para _wfullpath
son cadenas de caracteres anchos. _wfullpath
y _fullpath
se comportan de manera idéntica, salvo que _wfullpath
no controla las cadenas de caracteres multibyte.
Si _DEBUG
y _CRTDBG_MAP_ALLOC
se definen, las llamadas a _fullpath
y _wfullpath
se reemplazan por llamadas a _fullpath_dbg
y _wfullpath_dbg
, para permitirle depurar asignaciones de memoria. Para más información, vea _fullpath_dbg
, _wfullpath_dbg
.
Esta función invoca al controlador de parámetros no válidos, como se describe en Validación de parámetros, si maxlen
es menor o igual que 0. Si la ejecución puede continuar, la función establece errno
en EINVAL
y devuelve NULL
.
Asignaciones de rutinas de texto genérico
Rutina Tchar.h |
_UNICODE and _MBCS no definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tfullpath |
_fullpath |
_fullpath |
_wfullpath |
Si el búfer absPath
es NULL
, _fullpath
llama a malloc
para asignar un búfer y omite el argumento maxLength
. Es responsabilidad del autor de la llamada desasignar este búfer (mediante free
) según corresponda. Si el argumento relPath
especifica una unidad de disco, el directorio actual de esta unidad se combina con la ruta de acceso.
Requisitos
Función | Encabezado necesario |
---|---|
_fullpath |
<stdlib.h> |
_wfullpath |
<stdlib.h> o <wchar.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// crt_fullpath.c
// This program demonstrates how _fullpath
// creates a full path from a partial path.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <direct.h>
void PrintFullPath( char * partialPath )
{
char full[_MAX_PATH];
if( _fullpath( full, partialPath, _MAX_PATH ) != NULL )
printf( "Full path is: %s\n", full );
else
printf( "Invalid path\n" );
}
int main( void )
{
PrintFullPath( "test" );
PrintFullPath( "\\test" );
PrintFullPath( "..\\test" );
}
Full path is: C:\Documents and Settings\user\My Documents\test
Full path is: C:\test
Full path is: C:\Documents and Settings\user\test
Consulte también
Control de archivos
_getcwd
, _wgetcwd
_getdcwd
, _wgetdcwd
_makepath
, _wmakepath
_splitpath
, _wsplitpath