다음을 통해 공유


_lsearch_s

값에 대한 선형 검색을 수행합니다. _lsearch 의 버젼은 보안 향상과 관련된CRT의 보안 기능로 설명됩니다.

void *_lsearch_s(
   const void *key,
   void *base,
   unsigned int *num,
   size_t size,
   int (__cdecl *compare)(void *, const void *, const void *),
   void * context
);

매개 변수

  • key
    검색할 개체입니다.

  • base
    검색될 기본 배열을 가리키는 포인터입니다.

  • num
    요소 수 입니다.

  • size
    바이트에서 각 배열 요소의 크기입니다.

  • compare
    비교 루틴을 가리키는 포인터입니다. 두 번째 매개 변수는 검색에 대한 키에 대한 포인터입니다. 세 번째 매개 변수는 키와 비교된 배열 요소를 가리키는 포인터입니다.

  • context
    비교 함수에서 액세스될 수 있는 개체에 대한 포인터입니다.

반환 값

만일 key 를 찾은 경우, _lsearch_s 는 key 와 매치되는 base 에서 배열의 요소에 대한 포인터를 반환합니다. 만일 key 가 발견되지 않으면, _lsearch_s 는 배열의 끝에 새롭게 추가된 항목을 가리키는 포인터를 반환합니다.

만일 잘못된 매개변수가 함수에 전달된 경우, 매개 변수 유효성 검사 에 나타난 것처럼 이 함수는 잘못된 매개변수 처리기를 호출합니다. 만일 계속해서 실행하도록 허용된 경우, errno 를 EINVAL 로 설정하고 이 함수는 NULL 를 반환합니다. 자세한 내용은 errno, _doserrno, _sys_errlist 및 _sys_nerr을 참조하십시오.

오류 조건

key

base

compare

num

size

errno

NULL

any

any

any

any

EINVAL

any

NULL

any

!= 0

any

EINVAL

any

any

any

any

0

EINVAL

any

any

NULL

입니다.

any

EINVAL

설명

이 _lsearch_s 함수는 key 값을 위한 선형 검색을 num 요소에 대하여 실행합니다. 이는 각각 width 바이트입니다. 이 bsearch_s 와 달리, _lsearch_s 는 배열이 저장되는 것을 필요로 하지 않습니다. key가 발견되지 않으면, _lsearch_s는 그것을 배열의 끝에 추가하고 num을 증가시킵니다.

이 compare 함수는 사용자가 공급한 루틴의 포인터입니다. 이는 두 배열 요소를 비교하고 그때 그것의 관계를 명시하는 값을 반환합니다. compare 함수 역시 첫번째 인수로써 컨텍스트에 대한 포인터를 사용합니다. _lsearch_s 는 각 호출에서 두 배열 원소들에 대한 포인터를 전달하여 검색하는 동안 compare 을 한번 이상 호출합니다. 이 compare 루틴은 요소를 비교하고, 0이 아닌 값을 반환하거나(요소가 다르단 의미) 0을(요소가 동일하단 의미) 반환합니다.

이 context 포인터는 매우 유용합니다. 만일 검색된 데이터 구조는 개체의 파트일 경우, compare 함수는 개체 멤버에 접근할 필요가 있습니다. 예를 들어, compare 함수에서 코드는 보이드 포인터를 적절한 개체 형식에 캐스팅할 수 있고, 객체의 멤버에 접근할 수 있습니다. 이 context 포인터의 추가는 _lsearch_s 를 더욱더 안전하게 만듭니다. 왜냐하면 추가적인 컨텍스트는 재진입 버그들을 피할 수 있습니다. 이는 compare 함수를 데이터가 사용할 수 있게 만드는 정적 변수를 사용하는 것과 연관되어 있습니다.

요구 사항

루틴

필수 헤더

_lsearch_s

<검색>

호환성에 대한 자세한 내용은 소개 단원의 호환성 부분을 참조하십시오.

해당 .NET Framework 항목

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제을 참조하십시오.

참고 항목

참조

검색 및 정렬

bsearch_s

_lfind_s

_lsearch