C ÇÔ¼ö¿¡¼ ¹®ÀÚ¿À» °Ë»ö ÇÏ´Â ÇÔ¼ö´Â Ç¥ÁØ ¶óÀ̺귯¸®·Î Á¦°ø µÇ°í ÀÖÀ¸³ª, ÀÌÁø ¹è¿¿¡¼ ÀÌÁø ¹è¿À» ã´Â
°æ¿ìµµ Á¾Á¾
ÀÖ½À´Ï´Ù.
LINUX¿¡¼ Á¦°ø ÇÏ´Â GCC¿¡¼´Â memmemÀ̶ó´Â ÇÔ¼ö°¡ ÀÖ½À´Ï´Ù. ÇѸ¶µð·Î strstr°ú ºñ½ÁÇÑ
¿ªÇÒÀ» ÇÏ´Â
°ÍÀ¸·Î ´Ù¸¥ Á¡À̶ó¸é, ¹®ÀÚ¿°ú ÀÌÁø¹è¿À̶ó´Â Â÷ÀÌÀÔ´Ï´Ù.
¼Ò½º°¡ ªÀ¸´Ï °¢ÀÚ ºÐ¼®ÇØ ÁÖ¼¼¿ä......
void *memmem(const void *buf, const void
*pattern, size_t buflen, size_t len)
{
char *bf =
(char *)buf, *pt = (char *)pattern, *p =
bf ;
while (len <= (buflen - (p -
bf)))
{
if (NULL != (p =
memchr(p, (int)(*pt), buflen - (p -
bf))))
{
if (!memcmp(p, pattern,
len))
return
p;
else ++p;
}
else
break;
}
return
NULL;
}
buf: ãÀ»
¹è¿
pattern ã°í ½ÍÀº
¹è¿
buflen ãÀ» ¹è¿ÀÇ
Å©±â
len
ã°í ½ÍÀº ¹è¿ÀÇ Å©±â