_searchenv, _wsearchenv
stdlib.h:インデックス への移動
ヘッダーファイル
stdlib.h
カテゴリ
その他のルーチン
プロトタイプ
char *_searchenv(const char *file, const char *varname, char *buf);
char *_wsearchenv(const wchar_t *file, const wchar_t *varname, wchar_t *buf);
説明
検索パスとして環境変数を使用して,ファイルを検索します。
_searchenv は,オペレーティングシステムの環境変数 varname で指定されたパスにしたがってファイルを検索します。パスを含む一般的な環境変数には,PATH,LIB,および INCLUDE があります。
_searchenv は,最初に現在のドライブの現在のディレクトリでファイルを検索します。そこにファイルが見つからなければ,環境変数 varname を取得し,ファイルが見つかるか,すべてのパスを調べ終わるまで,環境変数で指定されたパス内の各ディレクトリを順番に検索します。
ファイルが検索された場合は,buf が指すバッファに絶対パス名が格納されます。この文字列は,ファイルにアクセスするための呼び出し(fopen,exec... など)で使用できます。このバッファは,考えられるファイル名を格納できるだけの十分な大きさがあると仮定されます。ファイルが検索されなかった場合は,(1 つのヌル文字からなる)空の文字列が buf に格納されます。
戻り値
なし。
例
#include <stdio.h> #include <stdlib.h> char buf[_MAX_PATH]; int main(void) { /* インストールディレクトリで ILINK32 を検索します */ _searchenv("ILINK32.EXE","PATH",buf); if (buf[0] == '\0') printf("ILINK32.EXE not found\n"); else printf("ILINK32.EXE found in %s\n", buf); /* 存在しないファイルを検索します */ _searchenv("NOTEXIST.FIL","PATH",buf); if (buf[0] == '\0') printf("NOTEXIST.FIL not found\n"); else printf("NOTEXIST.FIL found in %s\n", buf); return 0; }
移植性
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
_searchenv |
+ |
|||
_wsearchenv |
NT のみ |