memchr(3) - wariua/manpages-ko GitHub Wiki
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()
ํจ์๋ s
๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ฒ์ n
๊ฐ ๋ฐ์ดํธ์์ c
์ ์ฒซ ๋ฒ์งธ ์ธ์คํด์ค๋ฅผ ํ์ํ๋ค. s
๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ฐ์ดํธ๋ค๊ณผ c
๋ชจ๋ unsigned char
๋ก ํด์ํ๋ค.
memrchr()
ํจ์๋ memchr()
๊ณผ ๋น์ทํ๋ s
๊ฐ ๊ฐ๋ฆฌํค๋ n
๊ฐ ๋ฐ์ดํธ์ ์์๋ถํฐ ์๋ฐฉํฅ์ด ์๋๋ผ ๋๋ถํฐ ์ญ๋ฐฉํฅ์ผ๋ก ํ์ํ๋ค.
rawmemchr()
ํจ์๋ memchr()
๊ณผ ๋น์ทํ๋ s
๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์์ ์์ํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ ๋ด์ ์ด๋๊ฐ์ c
์ ์ธ์คํด์ค๊ฐ ์๋ค๊ณ ์์ ํ๋ค. (์ฆ, ๊ทธ๋ ๋ค๋ ๊ฒ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ํ์คํ ์๊ณ ์๋ค.) ๊ทธ๋์ c
์ ๋ํ ์ต์ ํ๋ ํ์(๊ฐ๋ น ํ์ ๋ฒ์ ์ ํํ๋ ์นด์ดํธ ์ธ์ ์ฌ์ฉํ์ง ์๊ธฐ)์ ์ํํ๋ค. c
์ ์ธ์คํด์ค๋ฅผ ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ ๊ทธ ๊ฒฐ๊ณผ๋ ์์ธก ๋ถ๊ฐ๋ฅ์ด๋ค. ๋ค์ ํธ์ถ์ ๋ฌธ์์ด์ ์ข
๋ฃ์ฉ ๋ ๋ฐ์ดํธ ์์น๋ฅผ ์ฐพ๋ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ด๋ค.
char *p = rawmemchr(s, '\0');
memchr()
๋ฐ memrchr()
ํจ์๋ ์ผ์นํ๋ ๋ฐ์ดํธ์ ๋ํ ํฌ์ธํฐ๋ฅผ ๋ฐํํ๋ค. ์ฃผ์ด์ง ๋ฉ๋ชจ๋ฆฌ ์์ญ ๋ด์ ๊ทธ ๋ฌธ์๊ฐ ์์ผ๋ฉด NULL์ ๋ฐํํ๋ค.
rawmemchr()
ํจ์๋ ์ผ์นํ๋ ๋ฐ์ดํธ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ๊ทธ์ ๋ํ ํฌ์ธํฐ๋ฅผ ๋ฐํํ๋ค. ์ผ์นํ๋ ๋ฐ์ดํธ๋ฅผ ์ฐพ์ง ๋ชปํ๋ฉด ๊ทธ ๊ฒฐ๊ณผ๊ฐ ๋ช
์ธ๋์ด ์์ง ์๋ค.
glibc ๋ฒ์ 2.1์์ rawmemchr()
์ด ์ฒ์ ๋ฑ์ฅํ๋ค.
glibc ๋ฒ์ 2.2์์ memrchr()
์ด ์ฒ์ ๋ฑ์ฅํ๋ค.
์ด ์ ์์ ์ฌ์ฉํ๋ ์ฉ์ด๋ค์ ๋ํ ์ค๋ช ์ attributes(7)๋ฅผ ๋ณด๋ผ.
์ธํฐํ์ด์ค | ์์ฑ | ๊ฐ |
---|---|---|
memchr() , memrchr() , rawmemchr()
|
์ค๋ ๋ ์์ ์ฑ | MT-Safe |
memchr()
: POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
memrchr()
ํจ์๋ GNU ํ์ฅ์ด๋ฉฐ glibc 2.1.91๋ถํฐ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
rawmemchr()
ํจ์๋ GNU ํ์ฅ์ด๋ฉฐ glibc 2.1๋ถํฐ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
bstring(3), ffs(3), index(3)
, memmem(3), rindex(3)
, strchr(3)
, strpbrk(3)
, strrchr(3)
, strsep(3), strspn(3)
, strstr(3)
, wmemchr(3)
2019-03-06