_searchenv、_wsearchenv_searchenv, _wsearchenv

ファイルを検索するために環境パスを使用します。Uses environment paths to search for a file. これらの関数にはセキュリティが強化されたバージョンがあります。「_searchenv_s、_wsearchenv_s」をご覧ください。More secure versions of these functions are available; see _searchenv_s, _wsearchenv_s.

重要

この API は、Windows ランタイムで実行するアプリケーションでは使用できません。This API cannot be used in applications that execute in the Windows Runtime. 詳細については、「ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数」を参照してください。For more information, see CRT functions not supported in Universal Windows Platform apps.

構文Syntax

void _searchenv(
   const char *filename,
   const char *varname,
   char *pathname
);
void _wsearchenv(
   const wchar_t *filename,
   const wchar_t *varname,
   wchar_t *pathname
);
template <size_t size>
void _searchenv(
   const char *filename,
   const char *varname,
   char (&pathname)[size]
); // C++ only
template <size_t size>
void _wsearchenv(
   const wchar_t *filename,
   const wchar_t *varname,
   wchar_t (&pathname)[size]
); // C++ only

パラメーターParameters

ファイル名filename
検索するファイルの名前。Name of the file to search for.

varnamevarname
検索する環境。Environment to search.

pathnamepathname
完全パスを格納するバッファー。Buffer to store the complete path.

RemarksRemarks

_Searchenv日常的な指定したドメインでターゲット ファイルを検索します。The _searchenv routine searches for the target file in the specified domain. Varname変数は、任意の環境またはユーザー定義変数を指定できます: たとえば、パスLIB、またはINCLUDE-を指定する、ディレクトリ パスの一覧です。The varname variable can be any environment or user-defined variable—for example, PATH, LIB, or INCLUDE—that specifies a list of directory paths. _Searchenvと小文字は区別varname環境変数の大文字と小文字が一致する必要があります。Because _searchenv is case-sensitive, varname should match the case of the environment variable.

このルーチンは最初に現在の作業ディレクトリでファイルを検索します。The routine first searches for the file in the current working directory. ファイルが見つからなかった場合、環境変数で指定されているディレクトリを検索します。If it does not find the file, it looks through the directories that are specified by the environment variable. 新しく作成されたパスをコピーする場合は、対象のファイルは、これらのディレクトリのいずれかでは、 pathnameします。If the target file is in one of those directories, the newly created path is copied into pathname. 場合、 filenameファイルが見つからないpathname null で終わる空の文字列が含まれています。If the filename file is not found, pathname contains an empty null-terminated string.

Pathnameバッファーは以上である必要があります _MAX_PATH作成されるパス名の長さを格納します。The pathname buffer should be at least _MAX_PATH characters long to accommodate the full length of the constructed path name. それ以外の場合、 _searchenvオーバーランの可能性があります、 pathnameバッファーし、予期しない動作が発生します。Otherwise, _searchenv might overrun the pathname buffer and cause unexpected behavior.

_wsearchenvのワイド文字バージョンは、 _searchenvと引数を _wsearchenvはワイド文字列です。_wsearchenv is a wide-character version of _searchenv, and the arguments to _wsearchenv are wide-character strings. _wsearchenv_searchenv動作は同じです。_wsearchenv and _searchenv behave identically otherwise.

場合filename空の文字列は、これらの関数が返すENOENTします。If filename is an empty string, these functions return ENOENT.

場合filenameまたはパス名は、 NULL 」の説明に従って、ポインター、無効なパラメーター ハンドラーが呼び出されるパラメーターの検証です。If filename or pathname is a NULL pointer, the invalid parameter handler is invoked, as described in Parameter Validation. 実行の継続が許可された場合、これらの関数は-1 を返し設定とerrnoEINVALします。If execution is allowed to continue, these functions return -1 and set errno to EINVAL.

詳細についてはerrno 、エラー コードを参照してくださいとerrno 定数します。For more information about errno and error codes, see errno Constants.

C++ では、これらの関数にテンプレートのオーバーロードがあります。このオーバーロードは、これらの関数に対応するセキュリティを強化された新しい関数を呼び出します。In C++, these functions have template overloads that invoke the newer, more secure counterparts of these functions. 詳細については、「 Secure Template Overloads」を参照してください。For more information, see Secure Template Overloads.

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

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

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header
_searchenv_searchenv <stdlib.h><stdlib.h>
_wsearchenv_wsearchenv <stdlib.h> または <wchar.h><stdlib.h> or <wchar.h>

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

Example

// crt_searchenv.c
// compile with: /W3
// This program searches for a file in
// a directory that's specified by an environment variable.

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char pathbuffer[_MAX_PATH];
   char searchfile[] = "CL.EXE";
   char envvar[] = "PATH";

   // Search for file in PATH environment variable:
   _searchenv( searchfile, envvar, pathbuffer ); // C4996
   // Note: _searchenv is deprecated; consider using _searchenv_s
   if( *pathbuffer != '\0' )
      printf( "Path for %s:\n%s\n", searchfile, pathbuffer );
   else
      printf( "%s not found\n", searchfile );
}
Path for CL.EXE:
C:\Program Files\Microsoft Visual Studio 8\VC\BIN\CL.EXE

関連項目See also

ディレクトリ制御Directory Control
getenv、 _wgetenvgetenv, _wgetenv
_putenv、_wputenv_putenv, _wputenv
_searchenv_s、_wsearchenv_s_searchenv_s, _wsearchenv_s