[devel] Полтергейст в gcc/i586

Ivan A. Melnikov iv на altlinux.org
Вт Июл 5 09:48:37 MSK 2016


2016-07-04 17:09 GMT+03:00 Sergey Afonin <asy на altlinux.ru>:
> Да, работает правильно, если сделать size_t bufsz вместо off_t. Но, вроде
> как, есть off64_t же ? Хотя фиг с ним, дальше пусть апстрим разбирается.
> Спасибо.

off_t и off64_t -- синонимы если определён макрос __USE_FILE_OFFSET64.
У нас это так, и это очень правильно в современном мире. Проблемный
код мог быть написан в системе, где этот макрос не определён, и тогда
off_t был 32-битен и код работал правильно.

Btw, правильно распечатать off_t printf-подобными функциями это то ещё
веселье. В C99 рекомендуют что-то вроде

  printf("%jd\n", (intmax_t)bufsz);

Для застрявших на C89 жизнь ещё печальнее.

-- 
WBR,
Ivan A. Melnikov


Подробная информация о списке рассылки Devel