次の方法で共有


_searchenv、_wsearchenv

環境のパスをファイルの検索に使用します。これらの関数のセキュリティを強化したバージョンについては、「_searchenv_s、_wsearchenv_s」を参照してください。

重要 : 重要

この API は Windows ランタイムで実行されるアプリケーションで使用することはできません。詳細については、でサポート /ZW CRT 関数" "を参照してください。

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

パラメーター

  • filename
    検索するファイルの名前。

  • varname
    検索する環境。

  • pathname
    完全パスを格納するバッファー。

解説

_searchenv ルーチンは、指定したドメインのターゲット ファイルを検索します。varname の変数はのディレクトリ パスのリストを指定する変数の環境またはユーザー定義例、PATH、LIB、または INCLUDE場合があります。_searchenv は大文字と小文字が区別されるため、varname は、環境変数の例と一致する必要があります。

ルーチンが現在の作業ディレクトリのファイルを検索します。ファイルを検索、環境変数で指定されたディレクトリを調べます。ターゲット ファイルがそれらのディレクトリの 1 にある場合は、新しく作成されたパスは pathnameにコピーします。filename ファイルがない場合、pathname は空の null で終わる文字列が含まれます。

pathname のバッファーが作成されるパス名のおよびに対応する以上の文字 _MAX_PATH 必要があります。それ以外 _searchenv は pathname のバッファー オーバーランが発生し、予期しない動作が発生する可能性があります。

_wsearchenv は _searchenvのワイド文字バージョンであり、_wsearchenv への引数はワイド文字列です。それ以外では、_wsearchenv と _searchenv の動作は同じです。

filename が空の文字列の場合、これらの関数の戻り値 ENOENT。

filename または pathname が NULL の場合は、「パラメーターの検証」に説明されているように、無効なパラメーター ハンドラーが呼び出されます。実行の継続が許可された場合、これらの関数は -1 を返し、errno を EINVAL に設定します。

errno とエラー コードの詳細については、errno 定数"を参照してください。

C++ では、これらの関数にこれらの関数には最初から作成するテンプレート オーバーロードは、より安全な等価になります。詳細については、「セキュリティ保護されたテンプレート オーバーロード」を参照してください。

汎用テキスト ルーチンのマップ

Tchar.h のルーチン

_UNICODE および _MBCS が未定義の場合

_MBCS が定義されている場合

_UNICODE が定義されている場合

_tsearchenv

_searchenv

_searchenv

_wsearchenv

必要条件

ルーチン

必須ヘッダー

_searchenv

<stdlib.h>

_wsearchenv

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

互換性の詳細については、互換性を参照してください。

使用例

// 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 );
}
  

同等の .NET Framework 関数

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

関連項目

ディレクトリ制御

getenv、_wgetenv

_putenv、_wputenv

_searchenv_s、_wsearchenv_s