クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
Visual Studio 2005
Visual Studio ドキュメント
Visual C++
リファレンス
ライブラリ リファレンス
ランタイム ライブラリ
 _makepath、_wmakepath

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2005/.NET Framework 2.0

その他のバージョンについては、以下の情報を参照してください。
ランタイム ライブラリ リファレンス
_makepath、_wmakepath

パス名の要素からパス名を作成します。セキュリティが強化されたバージョンが使用可能になったので、これらの関数は使用されなくなりました。「_makepath_s、_wmakepath_s」を参照してください。

void _makepath(
   char *path,
   const char *drive,
   const char *dir,
   const char *fname,
   const char *ext 
);
void _wmakepath(
   wchar_t *path,
   const wchar_t *drive,
   const wchar_t *dir,
   const wchar_t *fname,
   const wchar_t *ext 
);

パラメータ

path

完全パスのバッファ。_makepath は、path_MAX_PATH を超えていないかどうかをチェックしません。

drive

ドライブ名。

dir

ディレクトリ パス。

fname

ファイル名。

ext

ファイル名の拡張子。

_makepath 関数は、1 つのパスを作成し、path に格納します。パスには、ドライブ名、ディレクトリのパス、ファイル名、およびファイル名の拡張子が含まれます。ワイド文字を扱う場合は、_makepath ではなく _wmakepath を使用します。この場合、_wmakepath の引数にはワイド文字列を指定します。引数の指定以外では、_wmakepath_makepath の動作は同じです。

Security noteセキュリティに関するメモ :

null で終わる文字列を使用します。null で終わる文字列のサイズが、対象のバッファのサイズを超えないようにしてください。詳細については、「Avoiding Buffer Overruns」を参照してください。

汎用テキスト ルーチンのマップ
Tchar.h のルーチン _UNICODE および _MBCS が未定義の場合 _MBCS が定義されている場合 _UNICODE が定義されている場合

_tmakepath

_makepath

_makepath

_wmakepath

パスの要素を含むバッファを指す引数は次のとおりです。

drive

目的のドライブに対応する文字 (A、B など) を指定します。後続のコロンは省略できます。コロンを省略した場合、_makepath によって、コロンが自動的にパス名に挿入されます。drive が null 文字または空の文字列の場合、作成される path 文字列にドライブ名とコロンは含まれません。

dir

ドライブ指定子と実際のファイル名を除いて、ディレクトリのパスを指定します。後続のスラッシュまたは円記号は省略できます。1 つの dir 引数には、スラッシュ (/) か円記号 (\)、またはその両方を使用することもできます。後続のスラッシュ (/) または円記号 (\) は、指定しなくても自動的に挿入されます。dir が null 文字または空の文字列の場合、作成される path 文字列にスラッシュや円記号は挿入されません。

fname

拡張子の付いていない基本のファイル名を指定します。fnameNULL の場合、または空の文字列を指す場合、作成される path 文字列にファイル名は挿入されません。

ext

実際のファイル名の拡張子を指定します。先頭のピリオド (.) は省略できます。ext にピリオドがない場合、_makepath によって自動的にピリオドが挿入されます。ext が null 文字または空の文字列の場合、作成される path 文字列にピリオドは挿入されません。

path 引数は、絶対パスを保持するのに十分な大きさの空きバッファを指す必要があります。path を構成するフィールドにサイズ制限はありませんが、作成される path の長さは、Stdlib.h に定義されている _MAX_PATH 定数以下にする必要があります。_MAX_PATH 定数は、現在のオペレーティング システムで処理できる長さを超えることがあります。

Visual C++ 2005 では、これらの関数が path パラメータを検証します。パスが NULL の場合は、「パラメータの検証」に説明されているように、無効なパラメータ ハンドラが呼び出されます。さらに、errnoEINVAL に設定されます。NULL 値は他のパラメータにも使用できます。

ルーチン 必須ヘッダー 互換性

_makepath

<stdlib.h>

Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition、Windows NT 4.0、Windows 2000、Windows XP Home Edition、Windows XP Professional、Windows Server 2003、Windows Server 2003

_wmakepath

<stdlib.h> または <wchar.h>

Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition、Windows NT 4.0、Windows 2000、Windows XP Home Edition、Windows XP Professional、Windows Server 2003、Windows Server 2003

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

// crt_makepath.c
// compile with: /W3
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char path_buffer[_MAX_PATH];
   char drive[_MAX_DRIVE];
   char dir[_MAX_DIR];
   char fname[_MAX_FNAME];
   char ext[_MAX_EXT];

   _makepath( path_buffer, "c", "\\sample\\crt\\", "makepath", "c" ); // C4996
   // Note: _makepath is deprecated; consider using _makepath_s instead
   printf( "Path created with _makepath: %s\n\n", path_buffer );
   _splitpath( path_buffer, drive, dir, fname, ext ); // C4996
   // Note: _splitpath is deprecated; consider using _splitpath_s instead
   printf( "Path extracted with _splitpath:\n" );
   printf( "  Drive: %s\n", drive );
   printf( "  Dir: %s\n", dir );
   printf( "  Filename: %s\n", fname );
   printf( "  Ext: %s\n", ext );
}

出力

Path created with _makepath: c:\sample\crt\makepath.c

Path extracted with _splitpath:
  Drive: c:
  Dir: \sample\crt\
  Filename: makepath
  Ext: .c
コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker