_searchenv, _wsearchenv
Bir dosyayı aramak için ortam yolları kullanır.Bu işlevlerin daha güvenli sürümlerinde kullanılabilir; see _searchenv_s, _wsearchenv_s.
Önemli |
---|
Bu API yürütün uygulamalarda kullanılamaz Windows Çalışma Zamanı.Daha fazla bilgi için bkz: /zw ile desteklenmeyen crt işlevlerinin. |
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
Aramak için ortamı.pathname
Tam yol depolamak için arabellek.
Notlar
_searchenv Yordamı belirtilen etki alanındaki hedef dosya arar.varname Herhangi bir ortam veya kullanıcı tanımlı değişken değişken olabilir — örneğin, PATH, LIB, veya INCLUDE— dizin yolların listesini belirtir.Çünkü _searchenv duyarlıdır, varname ortam değişkeni harf eşleşmesi gerekir.
İlk yordam geçerli çalışma dizini dosyasında arar.Dosyayı bulamazsa, ortam değişkeni tarafından belirtilen dizinler içinde arar.Hedef dosya, bu dizinlerden biri ise, yeni oluşturulan yol kopyalanır pathname.filename Dosya bulunamadı, pathname boş sonlandırılmış bir dize içerir.
pathname Arabellek en az olması _MAX_PATH karakter uzunluğunda yapılandırılmış yol adı uzunluğu tam uyum sağlayacak.Aksi halde, _searchenv Taşması pathname arabellek ve beklenmeyen davranışlara neden olabilir.
_wsearchenvgeniş karakter sürümü _searchenvve bağımsız _wsearchenv geniş karakter dizeleridir._wsearchenvve _searchenv Aksi takdirde aynı şekilde davranır.
filename Bu işlevler dönmek boş bir dize olan ENOENT.
filename Veya pathname olan bir NULL işaretçisi geçersiz parametre işleyici çağrıldığında, açıklandığı gibi Parametre Doğrulama.Yürütülmesine devam etmek için izin verilirse, bu işlevler -1 döndürür ve errno için EINVAL.
Hakkında daha fazla bilgi için errno ve hata kodlarý errno Sabitleri.
Bu işlevleri C++'da, bu işlevlerin daha yeni ve daha güvenli karşılıkları çağırmak şablon aşırı yükleme vardır.Daha fazla bilgi için bkz. Güvenli Şablon Aşırı Yüklemeleri.
Genel metin eşlemeleri yordamına girildi
Tchar.h yordamına girildi |
_UNICODE ve _mbcs tanımlanmamış |
Tanımlanan _mbcs |
Tanımlanan _UNICODE |
---|---|---|---|
_tsearchenv |
_searchenv |
_searchenv |
_wsearchenv |
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
_searchenv |
<stdlib.h> |
_wsearchenv |
<stdlib.h> veya <wchar.h> |
Daha fazla uyumluluk bilgileri 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 );
}
.NET Framework Eşdeğeri
Yoktur. Standart c işlevi çağırmak için kullanın PInvoke. Daha fazla bilgi için bkz. Platform Çağırma Örnekleri.