Вычислять offset
Вычислять ничего не нужно. Сравнивайте по символьно, не используя strcmp (или memcmp) и offsetом у вас будет текущий индекс. Кроме того для текстового варианта вам не нужен "глобальный" offset, т.к. вы будете сравнивать построчно. Т.е. offset только внутри данной конкретной строки.
Для бинарного сравнения - все то же самое, но offset будет глобальный, тут уже сиволы CR и LF роли не играют.
Имейте ввиду, что в винде перевод строки это CRLF (0x0D 0x0A), а в никсах LF (0x0A)