Да, это возможно. Есть и другие возможные подходы к этому.
Первый, самый чистый, состоит в том, чтобы сохранить второй буфер, как предлагается, длины искомого слова, где вы сохраняете последний кусок старого буфер. (Это должно быть точно по длине искомого слова, потому что вы храните wordLength - 1
символов + NULL
терминатор). Тогда самый быстрый способ - добавить к этому сохраненному фрагменту из старого буфера первые wordLen - 1
символов из нового буфера и искать здесь свое слово. Затем продолжите поиск в обычном режиме. - Конечно, вы можете создать буфер, который может содержать оба фрагмента (последние байты из старого буфера и первые байты из нового).
Другой подход (который я не рекомендую, но можно включить быть немного проще с точки зрения кода) будет на fseek
wordLen - 1
байтов назад в прочитанном файле. Это «переместит» фрагмент, сохраненный в предыдущем подходе, в следующий буфер. Это немного грязнее, так как вы дважды прочитаете часть содержимого файла. Хотя это не является чем-то заметным с точки зрения производительности, я снова не рекомендую этого и использовать что-то вроде первого описанного подхода.