다음을 통해 공유


_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. 자세한 내용은 플랫폼 호출 예제.

참고 항목

참조

디렉터리 제어

_searchenv, _wsearchenv

getenv, _wgetenv

_putenv, _wputenv