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 поддерживали большие файлы.
Современные системы поддерживают.
[Ответ]
Спасибо за советы. Скорее всего прийдется делать две программы: одну под винды, вторую под юникс
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 Это конечно хоршо, но разбираться проще в двух отдельных небольших файликах, чем в одном таком кроссплатформенном, где сам черт ногу сломит...
[Ответ]