Что вам нужно, так это функция strstr, написанная для файловых дескрипторов. Это общая реализация strstr. Вы можете довольно легко изменить его, чтобы использовать файловые буферы вместо другой строки, поэтому я не буду выполнять вашу работу за вас: P
char *
strstr(const char *haystack, const char *needle)
{
char c, sc;
size_t len;
if ((c = *needle++) != '\0') {
len = strlen(needle);
do {
do {
if ((sc = *haystack++) == '\0')
return (NULL);
} while (sc != c);
} while (strncmp(haystack, needle, len) != 0);
haystack--;
}
return ((char *)haystack);
}