_searchenv_s, _wsearchenv_s
환경 경로 사용 하 여 파일을 검색 합니다.이러한 버전의 있습니다 _searchenv, _wsearchenv 에 설명 된 대로 보안 향상 기능을 CRT의 보안 기능.
중요 |
---|
이 API는 Windows 런타임에서 실행 되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /zw에 지원 되는 CRT 함수. |
errno_t _searchenv_s(
const char *filename,
const char *varname,
char *pathname,
size_t numberOfElements
);
errno_t _wsearchenv_s(
const wchar_t *filename,
const wchar_t *varname,
wchar_t *pathname,
size_t numberOfElements
);
template <size_t size>
errno_t _searchenv_s(
const char *filename,
const char *varname,
char (&pathname)[size]
); // C++ only
template <size_t size>
errno_t _wsearchenv_s(
const wchar_t *filename,
const wchar_t *varname,
wchar_t (&pathname)[size]
); // C++ only
매개 변수
[in] filename
검색할 파일 이름입니다.[in] varname
검색 하는 환경입니다.[out] pathname
전체 경로 저장 하는 버퍼입니다.[in] numberOfElements
크기는 pathname 버퍼.
반환 값
성공 하는 경우에 0입니다. 실패 시 오류 코드입니다.
경우 filename 가 빈 문자열인 경우 반환 값은 ENOENT.
오류 조건
filename |
varname |
pathname |
numberOfElements |
반환 값 |
내용pathname |
---|---|---|---|---|---|
any |
any |
NULL |
any |
EINVAL |
n/a |
NULL |
any |
any |
any |
EINVAL |
변경 되지 않음 |
any |
any |
any |
< = 0 |
EINVAL |
변경 되지 않음 |
이러한 오류 조건이 발생 하는 경우 잘못 된 매개 변수 처리기를의 설명에 따라 호출 됩니다 매개 변수 유효성 검사.실행을 계속 허용 되 면 이러한 함수를 설정 errno 에 EINVAL 를 반환 하 고 EINVAL.
설명
_searchenv_s 지정 된 도메인의 대상 파일에 대 한 일상적인 검색 합니다.varname 변수는 환경 또는 같은 디렉터리 경로의 목록을 지정 하는 사용자 정의 변수 수 PATH, LIB, 및 INCLUDE.때문에 _searchenv_s 소문자 varname 환경 변수는 대/소문자가 일치 해야 합니다.경우 varname 환경 변수 이름을 정의 하는 프로세스의 환경에서 일치 하는 이름이 아니라 함수에서 0을 반환 하는 pathname 변수는 변경 되지 않습니다.
현재 작업 디렉토리에 있는 파일에 대 한 루틴을 먼저 검색합니다.파일을 찾을 경우 다음 환경 변수에서 지정한 디렉터리를 찾습니다.이러한 디렉터리 중 하나에서 대상 파일이 있으면 새로 만든된 경로에 복사 pathname.경우는 filename 파일을 찾을 수 없습니다 pathname 빈 null로 끝나는 문자열을 포함 합니다.
pathname 버퍼 적어도 있어야 _MAX_PATH 자 생성 된 경로 이름의 전체 길이 맞게.그렇지 않으면 _searchenv_s 오버런 수는 pathname 예기치 않은 동작이 발생 하는 버퍼입니다.
_wsearchenv_s와이드 문자 버전인 _searchenv_s. 인수를 _wsearchenv_s 와이드 문자 문자열입니다._wsearchenv_s및 _searchenv_s 그렇지를 동일 하 게 동작 합니다.
C + +에서는 이러한 함수를 사용 하 여 템플릿 오버 로드에 의해 단순화 됩니다. 오버 로드에서 버퍼 길이 자동으로 유추할 수 있습니다 (size 인수를 지정할 필요가 없도록) 및 해당 최신, 안전한 이미지와 이전, 안전 하지 않은 함수가 자동으로 바꿀 수 있습니다.자세한 내용은 보안 템플릿 오버 로드을 참조하십시오.
일반 텍스트 루틴 매핑
Tchar.h 루틴 |
_UNICODE 및 _mbcs가 정의 되어 있지 않습니다 |
_Mbcs가 정의 |
_Unicode가 정의 |
---|---|---|---|
_tsearchenv_s |
_searchenv_s |
_searchenv_s |
_wsearchenv_s |
요구 사항
루틴 |
필수 헤더 |
---|---|
_searchenv_s |
<stdlib.h> |
_wsearchenv_s |
<stdlib.h> 또는 <wchar.h> |
자세한 호환성에 대 한 내용은 호환성 소개에서 합니다.
예제
// crt_searchenv_s.c
/* This program searches for a file in
* a directory 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";
errno_t err;
/* Search for file in PATH environment variable: */
err = _searchenv_s( searchfile, envvar, pathbuffer, _MAX_PATH );
if (err != 0)
{
printf("Error searching the path. Error code: %d\n", err);
}
if( *pathbuffer != '\0' )
printf( "Path for %s:\n%s\n", searchfile, pathbuffer );
else
printf( "%s not found\n", searchfile );
}
해당 .NET Framework 항목
해당 사항 없음. 표준 C 함수를 호출 하려면 PInvoke. 자세한 내용은 플랫폼 호출 예제.