이름
memchr, memrchr, rawmemchr – 메모리에 대한 문자 스캔
개요
#include < string.h >
void * memchr (const void * s , int c , size_t n );
void * memrchr (const void * s , int c , size_t n );
void * rawmemchr (const void * s , int c );
glibc에 대한 기능 테스트 매크로 요구 사항 ( feature_test_macros (7) 참조) :
memrchr (), rawmemchr () : _GNU_SOURCE
기술
memchr () 함수는 c 의 첫 번째 인스턴스에 대해 s가 가리키는 메모리 영역의 처음 n 바이트를 스캔합니다. c 및 s 가 가리키는 메모리 영역의 바이트는 모두 unsigned char 로 해석됩니다.
memrchr () 함수는 처음부터 forward 대신 s가 가리키는 n 바이트의 끝에서 뒤로 검색한다는 점을 제외하고는 memchr () 함수와 같습니다.
rawmemchr () 함수는 memchr ()과 유사합니다. 즉, c 의 인스턴스가 s가 가리키는 위치에서 시작하는 메모리 영역의 어딘가에 있다고 가정합니다 (즉 프로그래머가 확실하게 알고 있음). c (즉, 검색 범위를 제한하기 위해 count 인수를 사용하지 마십시오). c 의 인스턴스가 없으면 결과를 예측할 수 없습니다. 다음의 호출은 문자열의 종료 널 바이트를 찾는 빠른 방법입니다.
char * p = rawmemchr (s, ‘\ 0’);
반환 값
memchr () 및 memrchr () 함수는 일치하는 바이트에 대한 포인터를 반환하거나 문자가 지정된 메모리 영역에없는 경우 NULL을 반환합니다.
rawmemchr () 함수는 일치하는 바이트 (있는 경우)에 대한 포인터를 반환합니다. 일치하는 바이트가 없으면 결과는 지정되지 않습니다.
버전
rawmemchr ()은 버전 2.1에서 glibc에 처음 등장했습니다.
memrchr ()은 버전 2.2의 glibc에서 처음 등장했습니다.
준수
memchr () 함수는 SVr4, 4.3BSD, C89, C99, POSIX.1-2001을 준수합니다.
memrchr () 함수는 GNU 확장이며, glibc 2.1.91부터 사용 가능합니다.
rawmemchr () 함수는 GNU 확장이며, glibc 2.1부터 사용 가능합니다.
참고 사항
(3), strstr (3), strstr (3), strspr (3), strspr (3), strstr (3), wmemchr (3), ffs (3), 인덱스
참조 인
bstring (3), strrstr (3), strtok_r (3)