_searchenv
, _wsearchenv
Bir dosyayı aramak için ortam yollarını kullanır. Bu işlevlerin daha güvenli sürümleri mevcuttur; bkz. _searchenv_s
, _wsearchenv_s
.
Önemli
Bu API, Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz. Daha fazla bilgi için bkz. Evrensel Windows Platformu uygulamalarında desteklenmeyen CRT işlevleri.
Sözdizimi
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
Parametreler
filename
Aranacak dosyanın adı.
varname
Aranacak ortam.
pathname
Tam yolu depolamak için arabellek.
Açıklamalar
Yordam, _searchenv
belirtilen etki alanındaki hedef dosyayı arar. Değişken varname
, dizin yollarının listesini belirten herhangi bir ortam veya kullanıcı tanımlı değişken (örneğin, PATH
, LIB
veya INCLUDE
) olabilir. Büyük _searchenv
/küçük harfe duyarlı olduğundan ortam varname
değişkeninin büyük/küçük harfle eşleşmesi gerekir.
Yordam ilk olarak geçerli çalışma dizinindeki dosyayı arar. Dosyayı bulamazsa, ortam değişkeni tarafından belirtilen dizinleri arar. Hedef dosya bu dizinlerden birindeyse, yeni oluşturulan yol içine pathname
kopyalanır. filename
Dosya bulunamazsa boş pathname
bir null ile sonlandırılan dize içerir.
Arabellek, pathname
oluşturulacak yol adının tam uzunluğuna uyum sağlamak için en az _MAX_PATH
karakter uzunluğunda olmalıdır. Aksi takdirde, _searchenv
arabellek taşabilir pathname
ve beklenmeyen davranışlara neden olabilir.
_wsearchenv
, öğesinin _searchenv
geniş karakterli bir sürümüdür ve için _wsearchenv
bağımsız değişkenler geniş karakterli dizelerdir. _wsearchenv
ve _searchenv
aksi takdirde aynı şekilde davran.
Boş bir dizeyse filename
, bu işlevler döndürür ENOENT
.
veya pathname
bir işaretçiysefilename
, parametre doğrulamasında açıklandığı gibi geçersiz parametre işleyicisi NULL
çağrılır. Yürütmenin devam etmesi için izin verilirse, bu işlevler -1 döndürür ve olarak EINVAL
ayarlanırerrno
.
ve hata kodları hakkında errno
daha fazla bilgi için bkz errno
. sabitler.
C++'ta, bu işlevlerin daha yeni ve daha güvenli karşılıklarını çağıran şablon aşırı yüklemeleri vardır. Daha fazla bilgi için bkz . Güvenli şablon aşırı yüklemeleri.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Genel metin yordamı eşlemeleri
Tchar.h yordamı | _UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
---|---|---|---|
_tsearchenv |
_searchenv |
_searchenv |
_wsearchenv |
Gereksinimler
Yordam | Gerekli başlık |
---|---|
_searchenv |
<stdlib.h> |
_wsearchenv |
<stdlib.h> veya <wchar.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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
Ayrıca bkz.
Dizin denetimi
getenv
, _wgetenv
_putenv
, _wputenv
_searchenv_s
, _wsearchenv_s