_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 _fullpath
karakter 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk