= Сообщение: 78 из 1947 =========================================== RU.BINKD = От : Pavel Gulchouck 2:463/68 02 Nov 13 00:54:52 Кому : Roman Trunov 02 Nov 13 00:54:52 Тема : То ли лыжи не едут... FGHI : area://RU.BINKD?msgid=2:463/68+527435d2 На : area://RU.BINKD?msgid=2:5022/2+526ebbe0 = Кодировка сообщения определена как: CP866 ================================== Ответ: area://RU.BINKD?msgid=2:5022/2+52790f84 ============================================================================== Hi Roman!
28 Oct 13, Roman Trunov ==> Max Vasilyev:
MV>> а 4-гиговые файлы можешь запилить, чтобы работали? MV>> сейчас binkd глючит по всякому, но не работает
RT> Сейчас 4+ гиговые файлы имеют шанс заработать, если binkd собрать компилятором, в котором:
RT> 1) определяется тип [u]intmax_t, причем как 64-битный; RT> 2) есть функция strtoumax RT> 3) есть #define PRIuMAX для печати 64-битных значений RT> 4) есть функции ftello, fseeko и 64-битный тип off_t и как-то можно перейти на этот тип (через #define RT> _FILE_OFFSET_BITS=64, __LARGE64_FILES и т.п.).
RT> ну и если никаких багов при вкорячивании всего этого добра не вкосячили :)
Под linux и freebsd 4G-файлы давно и уверенно передаются/принимаются. Собственно, под них и писалось, и тестировалось. Там всё перечисленное выполняется. Кажется, mingw-сборка тоже поддерживает (хотя в этом не уверен).
Btw, условия слишком жёсткие. Если [u]long есть, и он 64-битный, то всё будет работать и без [u]intmax_t, strtoumax, PRIuMAX и пр.
RT> Если какого-то пункта нет - binkd сейчас откатывается ПО ЭТОМУ ПУHКТУ на стандартные 32-битные типы и API, что приводит RT> с разнообразным непредсказуемым результатам от "получилась обычная 32-битная сборка" до "тут 64, а тут 32, и веселые RT> глюки в комплекте".
Используются стандартные fseek()/ftell(). Это не API, и они не обязательно 32-битные. Там используется long.
RT> т.е. всякие лиунксовые сборки под современными gcc имеют шанс заработать, если правильно makefile или configure RT> написать (хотя бы 64-битное файловое API включить). Для всего остального (включая разные версии того же msvc) надо RT> рисовать набор костылей: где-то достаточно в makefile поиграться, где-то - компиляторно-платформенные куски дописывать.
Да, хорошо бы, чтобы кто-нибудь доделал это как минимум под windows.