Большой Воронежский Форум
» Программирование>Обработать файл > 4Gb на Си
Santec 16:03 03.01.2004
Кто-нить реализовывал Сабж? Какими путями делали? [Ответ]
RomanPshenichny 12:40 04.01.2004
MSDN:
GetFileSizeEx
SetFilePointerEx

работают с LARGE_INTEGER (64-bit). [Ответ]
Santec 13:12 04.01.2004
RomanPshenichny Спасибо, а других путей нет? Я пользуюсь DJGPP компилятором как в нем эти функции вызвать? В Unix этих функций вообще не будет? [Ответ]
RomanPshenichny 18:58 04.01.2004
Тебе для какой платформы нужно?
Какая файловая система?

GetFileSizeEx, SetFilePointerEx находятся в <windows.h> [Ответ]
Santec 10:24 05.01.2004
Две платформы: Win и FreeBSD, поскольку работу с большими файлами нужно выполнять и там и там. Поэтому я и стремился сделать прогу, которую несложно было бы откомпилировать под обе платформы, отсюда и выбор компиляторов.
Ну а файловая система в Виндах NTFS, а во Фре соответственно ее файловая система. [Ответ]
netwind 15:17 05.01.2004
Нужно определить define :
_FILE_OFFSET_BITS=64 и _LARGEFILE_SOURCE.
После этого станут доступными функции fseeko(3) и сам тип off_t станет 64 битным.
Еще нужно чтобы ядро и libc поддерживали большие файлы.
Современные системы поддерживают. [Ответ]
Unforgiven 16:38 05.01.2004
Можно спросить тут: http://www.opennet.ru/cgi-bin/openfo...mID9&conf=misc [Ответ]
Santec 17:02 19.01.2004
Спасибо за советы. Скорее всего прийдется делать две программы: одну под винды, вторую под юникс
1)DJGPP не поддерживает _FILE_OFFSET_BITS=64 и _LARGEFILE_SOURCE
2)Под юниксом соответственно не будет GetFileSizeEx и т.п. [Ответ]
netwind 17:37 19.01.2004
Б-же, а для кого придумали препроцессор ?
При написании кроссплатформенных программ обычно пользуются #ifdef, не говоря уже о всевозможных autoconf, а лучше механизмами абстракции.
Например не мешает взглянуть на system abstraction level от Книжника : http://www.garret.ru/~knizhnik/sal.html
(хотя, насколько, я вижу поддержку
больших файлов он не реализовал ) [Ответ]
Santec 18:07 19.01.2004
netwind Это конечно хоршо, но разбираться проще в двух отдельных небольших файликах, чем в одном таком кроссплатформенном, где сам черт ногу сломит... [Ответ]
Вверх