Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
Обработать файл > 4Gb на Си |
Философия, технологии, алгоритмы! |
|
Опции темы |
04.01.2004, 12:40 | #2 |
Форумец
Сообщений: 334
Регистрация: 14.04.2003
Возраст: 42
Не в сети |
MSDN:
GetFileSizeEx SetFilePointerEx работают с LARGE_INTEGER (64-bit). |
04.01.2004, 18:58 | #4 |
Форумец
Сообщений: 334
Регистрация: 14.04.2003
Возраст: 42
Не в сети |
Тебе для какой платформы нужно?
Какая файловая система? GetFileSizeEx, SetFilePointerEx находятся в <windows.h> |
05.01.2004, 10:24 | #5 |
Форумец
Сообщений: 23
Регистрация: 29.12.2003
Не в сети |
Две платформы: Win и FreeBSD, поскольку работу с большими файлами нужно выполнять и там и там. Поэтому я и стремился сделать прогу, которую несложно было бы откомпилировать под обе платформы, отсюда и выбор компиляторов.
Ну а файловая система в Виндах NTFS, а во Фре соответственно ее файловая система. |
05.01.2004, 15:17 | #6 |
Registered User
Сообщений: 1,905
Регистрация: 25.03.2003
Не в сети |
Нужно определить define :
_FILE_OFFSET_BITS=64 и _LARGEFILE_SOURCE. После этого станут доступными функции fseeko(3) и сам тип off_t станет 64 битным. Еще нужно чтобы ядро и libc поддерживали большие файлы. Современные системы поддерживают. |
05.01.2004, 16:38 | #7 |
Форумец
Сообщений: 792
Регистрация: 09.01.2003
Не в сети |
Можно спросить тут: http://www.opennet.ru/cgi-bin/openfo...mID9&conf=misc
|
19.01.2004, 17:02 | #8 |
Форумец
Сообщений: 23
Регистрация: 29.12.2003
Не в сети |
Спасибо за советы. Скорее всего прийдется делать две программы: одну под винды, вторую под юникс
1)DJGPP не поддерживает _FILE_OFFSET_BITS=64 и _LARGEFILE_SOURCE 2)Под юниксом соответственно не будет GetFileSizeEx и т.п. |
19.01.2004, 17:37 | #9 |
Registered User
Сообщений: 1,905
Регистрация: 25.03.2003
Не в сети |
Б-же, а для кого придумали препроцессор ?
При написании кроссплатформенных программ обычно пользуются #ifdef, не говоря уже о всевозможных autoconf, а лучше механизмами абстракции. Например не мешает взглянуть на system abstraction level от Книжника : http://www.garret.ru/~knizhnik/sal.html (хотя, насколько, я вижу поддержку больших файлов он не реализовал ) |