_fullpath、_wfullpath
指定した相対パス名の絶対位置または完全パス名を作成します。
char *_fullpath(
char *absPath,
const char *relPath,
size_t maxLength
);
wchar_t *_wfullpath(
wchar_t *absPath,
const wchar_t *relPath,
size_t maxLength
);
パラメーター
absPath
格納するバッファーへのポインター絶対位置または完全パス名または NULL。relPath
相対パス名。maxLength
絶対パス名のバッファー ()absPath の最大長。この長さは _fullpath のバイトには _wfullpath のワイド文字 wchar_t() にあります。
戻り値
これらの関数は格納しているバッファーへのポインターを絶対パス名 (absPath) を返します。relPath で渡される値が無効または見つからないまたは作成された絶対パス名 (absPath) の長さが maxLength より大きい場合) ドライブ文字が含まれる場合は関数の戻り値 NULL エラーがある場合 (たとえば。
解説
_fullpath の関数は完全修飾パスまたは絶対パスに relPath の相対パス名を展開しabsPath でこの名前が格納されます *。*が null の場合 absPath パス名を格納するために十分な長さのバッファーを割り当てるとmalloc が使用されます。これはこのバッファーを解放は呼び出し元が保証します。相対パス名は現在の場所から別の場所へのパスを指定します (現在の作業ディレクトリなど): 「。」)。絶対パス名はファイル システムのルートから目的の場所にアクセスするために必要なパス全体を参照する相対パス名の配置があります。_makepath とは異なり 「含む相対パス ()relPath の絶対パス名を取得するには_fullpath を使用できます。/ 」または 「。という名前です。
たとえばC のランタイム ルーチンを使用するようにアプリケーションをルーチンの宣言を含むヘッダー ファイルを含める必要があります。各ヘッダー ファイルは相対的な方法でステートメントの参照をファイルの場所が含まれます (アプリケーションの作業ディレクトリから):
#include <stdlib.h>
ファイルの絶対パス (実際のファイル システムの場所) が次のように見えます場合 :
\\machine\shareName\msvcSrc\crt\headerFiles\stdlib.h
_fullpath は現在使用中のマルチバイト コード ページに従ってマルチバイト文字列を認識し、必要に応じてマルチバイト文字列引数を自動的に処理します。_wfullpath はのワイド文字バージョンです _fullpath; _wfullpath する文字列引数はワイド文字列です。_wfullpath と _fullpath はまったく同じように動作しますが_wfullpath はマルチバイト文字を処理しません。
_DEBUG と _CRTDBG_MAP_ALLOC の両方が定義されている場合_fullpath の呼び出しと _wfullpath は _fullpath_dbg と _wfullpath_dbg の呼び出しとメモリ割り当てをデバッグを許可するように置き換えられます。詳細については_fullpath_dbg_wfullpath_dbg を参照してください。
この関数は パラメーターの検証 に説明されているように maxlen が 0 以下の場合無効なパラメーター ハンドラーを呼び出します。実行の継続が許可された場合関数のセット errno は NULL を返しEINVALこの。
汎用テキスト ルーチンのマップ
Tchar.h のルーチン |
_UNICODE および _MBCS が未定義の場合 |
_MBCS が定義されている場合 |
_UNICODE が定義されている場合 |
---|---|---|---|
_tfullpath |
_fullpath |
_fullpath |
_wfullpath |
absPath のバッファーが NULL 場合_fullpath はバッファーを割り当てるに malloc を呼び出しmaxLength の引数を無視します。必要に応じてこのバッファー (フリー (R) を使用して) に解放は呼び出し元が保証します。relPath の引数がディスク ドライブを指定するとこのドライブの現在のディレクトリがパスと結合されます。
必要条件
Function |
必須ヘッダー |
---|---|
_fullpath |
<stdlib.h> |
_wfullpath |
<stdlib.h> または <wchar.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
// 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" );
}