Bagikan melalui


_fullpath, _wfullpath

Membuat nama jalur absolut atau lengkap untuk nama jalur relatif yang ditentukan.

Sintaks

char *_fullpath(
   char *absPath,
   const char *relPath,
   size_t maxLength
);
wchar_t *_wfullpath(
   wchar_t *absPath,
   const wchar_t *relPath,
   size_t maxLength
);

Parameter

absPath
Penunjuk ke buffer yang berisi nama jalur absolut atau lengkap, atau NULL.

relPath
Nama jalur relatif.

maxLength
Panjang maksimum buffer nama jalur absolut (absPath). Panjang ini dalam byte untuk _fullpath tetapi dalam karakter lebar (wchar_t) untuk _wfullpath.

Nilai hasil

Masing-masing fungsi ini mengembalikan penunjuk ke buffer yang berisi nama jalur absolut (absPath). Jika ada kesalahan (misalnya, jika nilai yang diteruskan relPath menyertakan huruf drive yang tidak valid atau tidak dapat ditemukan, atau jika panjang nama jalur absolut yang dibuat (absPath) lebih besar dari maxLength), fungsi mengembalikan NULL.

Keterangan

Fungsi ini _fullpath memperluas nama relPath jalur relatif ke jalur yang sepenuhnya memenuhi syarat atau absolut dan menyimpan nama ini di absPath. Jika absPath adalah NULL, malloc digunakan untuk mengalokasikan buffer dengan panjang yang cukup untuk menahan nama jalur. Ini adalah tanggung jawab pemanggil untuk membebaskan buffer ini. Nama jalur relatif menentukan jalur ke lokasi lain dari lokasi saat ini (seperti direktori kerja saat ini: .). Nama jalur absolut adalah perluasan nama jalur relatif yang menyatakan seluruh jalur yang diperlukan untuk mencapai lokasi yang diinginkan dari akar sistem file. Tidak seperti _makepath, _fullpath dapat digunakan untuk mendapatkan nama jalur absolut untuk jalur relatif (relPath) yang menyertakan ./ atau ../ dalam namanya.

Misalnya, untuk menggunakan rutinitas run-time C, aplikasi harus menyertakan file header yang berisi deklarasi untuk rutinitas. Setiap direktif file #include header mereferensikan lokasi file dengan cara yang relatif (dari direktori kerja aplikasi):

#include <stdlib.h>

ketika jalur absolut (lokasi sistem file aktual) file mungkin:

\\machine\shareName\msvcSrc\crt\headerFiles\stdlib.h

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

_fullpath secara otomatis menangani argumen string multibyte-character yang sesuai, mengenali urutan karakter multibyte sesuai dengan halaman kode multibyte yang saat ini digunakan. _wfullpath adalah versi _fullpathkarakter lebar ; argumen string untuk _wfullpath adalah string karakter lebar. _wfullpath dan _fullpath bertingkah identik kecuali yang _wfullpath tidak menangani string multibyte-character.

Jika _DEBUG dan _CRTDBG_MAP_ALLOC keduanya didefinisikan, panggilan ke _fullpath dan _wfullpath digantikan oleh panggilan ke _fullpath_dbg dan _wfullpath_dbg, untuk memungkinkan Anda men-debug alokasi memori. Untuk informasi selengkapnya, lihat _fullpath_dbg, _wfullpath_dbg.

Fungsi ini memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter, jika maxlen kurang dari atau sama dengan 0. Jika eksekusi diizinkan untuk melanjutkan, fungsi ini diatur errno ke EINVAL dan mengembalikan NULL.

Pemetaan rutin teks generik

Tchar.h Rutin _UNICODE and _MBCS tidak ditentukan _MBCS Didefinisikan _UNICODE Didefinisikan
_tfullpath _fullpath _fullpath _wfullpath

absPath Jika buffer adalah NULL, _fullpath panggilan malloc untuk mengalokasikan buffer dan mengabaikan maxLength argumen. Pemanggil bertanggung jawab untuk membatalkan alokasi buffer ini (menggunakan free) sebagaimana mewajibkan. relPath Jika argumen menentukan drive disk, direktori drive ini saat ini dikombinasikan dengan jalur.

Persyaratan

Function Header yang diperlukan
_fullpath <stdlib.h>
_wfullpath <stdlib.h> atau <wchar.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

// 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

Baca juga

Penanganan file
_getcwd, _wgetcwd
_getdcwd, _wgetdcwd
_makepath, _wmakepath
_splitpath, _wsplitpath