А проверить, что у вас буфера хватает?
И почему long, если offset гарантировано int?