_fullpath、_wfullpath_fullpath, _wfullpath

指定された相対パス名の絶対または完全パス名を作成します。Creates an absolute or full path name for the specified relative path name.

構文Syntax

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

パラメーターParameters

absPathabsPath
絶対または完全パス名を格納するバッファーへのポインターまたはNULLします。Pointer to a buffer containing the absolute or full path name, or NULL.

relPathrelPath
相対パス名。Relative path name.

maxLengthmaxLength
絶対パス名のバッファーの最大長 (absPath)。Maximum length of the absolute path name buffer (absPath). この長さはバイト単位、 _fullpathがワイド文字 (wchar_t) の _wfullpathします。This length is in bytes for _fullpath but in wide characters (wchar_t) for _wfullpath.

戻り値Return Value

これらの各関数の絶対パス名を格納するバッファーへのポインターを返します (absPath)。Each of these functions returns a pointer to a buffer containing the absolute path name (absPath). エラーがある場合 (値が渡された場合など、 relPathが正しくないか、見つからないドライブ文字が含まれます場合、または作成された絶対パス名の長さ (absPath) より大きいmaxLength)、関数を返しますNULLします。If there is an error (for example, if the value passed in relPath includes a drive letter that is not valid or cannot be found, or if the length of the created absolute path name (absPath) is greater than maxLength), the function returns NULL.

RemarksRemarks

_Fullpath関数内の相対パス名を展開するrelPathその完全修飾パスまたは絶対パスとこの名前を格納するabsPathします。The _fullpath function expands the relative path name in relPath to its fully qualified or absolute path and stores this name in absPath. 場合absPathNULLmallocパス名を保持するために十分な長さのバッファーを確保するために使用します。If absPath is NULL, malloc is used to allocate a buffer of sufficient length to hold the path name. このバッファーを解放するのは、呼び出し元の役目です。It is the responsibility of the caller to free this buffer. 相対パス名は、現在の場所から別の場所 (現在の作業ディレクトリ "." など) にパスを指定します。A relative path name specifies a path to another location from the current location (such as the current working directory: "."). 絶対パス名は、ファイル システムのルートから目的の位置に到達するために必要なパス全体を示す相対パス名の拡張です。An absolute path name is the expansion of a relative path name that states the entire path required to reach the desired location from the root of the file system. 異なり _makepath_fullpath相対パスの絶対パス名を取得するために使用できます (relPath) が含まれる"./「または」../"の名前にします。Unlike _makepath, _fullpath can be used to obtain the absolute path name for relative paths (relPath) that include "./" or "../" in their names.

たとえば、C ランタイム ルーチンを使用するには、アプリケーションに、ルーチンの宣言を含むヘッダー ファイルを含める必要があります。For example, to use C run-time routines, the application must include the header files that contain the declarations for the routines. 各ヘッダー ファイルは、(アプリケーションの作業ディレクトリから) 相対的な方法でファイルの場所を参照するステートメントを含んでいます。Each header file include statement references the location of the file in a relative manner (from the application's working directory):

#include <stdlib.h>

ファイルの絶対パス (実際のファイル システムの場所) は次のようになります。when the absolute path (actual file system location) of the file might be:

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

_fullpath自動的に現在使用中のマルチバイト コード ページに従ってマルチバイト文字シーケンスを認識し、必要に応じてマルチバイト文字の文字列引数を処理します。_fullpath automatically handles multibyte-character string arguments as appropriate, recognizing multibyte-character sequences according to the multibyte code page currently in use. _wfullpathのワイド文字バージョンは、 _fullpath; への文字列引数 _wfullpathはワイド文字列です。_wfullpath is a wide-character version of _fullpath; the string arguments to _wfullpath are wide-character strings. _wfullpath_fullpath動作は同じことを除いて _wfullpathマルチバイト文字の文字列を処理しません。_wfullpath and _fullpath behave identically except that _wfullpath does not handle multibyte-character strings.

場合 _DEBUG_CRTDBG_MAP_ALLOCの両方が定義されている場合、呼び出しを _fullpath_wfullpath への呼び出しによって置き換えられます _fullpath_dbg_wfullpath_dbgデバッグのメモリ割り当てを許可します。If _DEBUG and _CRTDBG_MAP_ALLOC are both defined, calls to _fullpath and _wfullpath are replaced by calls to _fullpath_dbg and _wfullpath_dbg to allow for debugging memory allocations. 詳細については、「_fullpath_dbg、_wfullpath_dbg」を参照してください。For more information, see _fullpath_dbg, _wfullpath_dbg.

」の説明に従って、この関数は、無効なパラメーター ハンドラーを呼び出しますパラメーターの検証場合は、 maxlenが 0 未満です。This function invokes the invalid parameter handler, as described in Parameter Validation, if maxlen is less than or equal to 0. 実行の継続が許可された場合に、この関数が設定errnoEINVAL返しますNULLします。If execution is allowed to continue, this function sets errno to EINVAL and returns NULL.

汎用テキスト ルーチンのマップGeneric-Text Routine Mappings

Tchar.h のルーチンTchar.h routine _UNICODE および _MBCS が未定義の場合_UNICODE and _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_tfullpath_tfullpath _fullpath_fullpath _fullpath_fullpath _wfullpath_wfullpath

場合、 absPathバッファーがNULL_fullpath呼び出しmallocバッファーを割り当てることを無視し、 maxLength引数。If the absPath buffer is NULL, _fullpath calls malloc to allocate a buffer and ignores the maxLength argument. このバッファーを (free を使用して) 適切に解放するのは、呼び出し元の責任です。It is the caller's responsibility to deallocate this buffer (using free) as appropriate. 場合、 relPath引数をディスク ドライブを指定します、このドライブの現在のディレクトリがパスに結合します。If the relPath argument specifies a disk drive, the current directory of this drive is combined with the path.

必要条件Requirements

関数Function 必須ヘッダーRequired header
_fullpath_fullpath <stdlib.h><stdlib.h>
_wfullpath_wfullpath <stdlib.h> または <wchar.h><stdlib.h> or <wchar.h>

互換性の詳細については、「 互換性」を参照してください。For more compatibility information, see Compatibility.

Example

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

関連項目See also

ファイル処理File Handling
_getcwd、_wgetcwd_getcwd, _wgetcwd
_getdcwd、_wgetdcwd_getdcwd, _wgetdcwd
_makepath、_wmakepath_makepath, _wmakepath
_splitpath、_wsplitpath_splitpath, _wsplitpath