_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
絶対パス名または完全パス名を格納しているバッファーへのポインター、または NULLPointer 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.

解説Remarks

_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. AbspathNULL の場合、 malloc は、パス名を保持するのに十分な長さのバッファーを割り当てるために使用されます。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):

By default, this function's global state is scoped to the application. To change this, see [Global state in the CRT](../global-state.md).

#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 の場合、 _fullpathmallocを呼び出してバッファーを割り当て、 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>
_wfullpath_wfullpath <stdlib.h> または <wchar.h><stdlib.h> or <wchar.h>

互換性について詳しくは、「 Compatibility」をご覧ください。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