Djgpp, Файлы Больше 4 Гб

tikser

New Member
23.11.2014
1
0
#1
Добрый день, коллеги!

Есть необходимость работать с большими файлами под DJGPP.
В файле DIR.H есть две структуры: ffblk и ffblklfn. Первая всем привычна и заполняется функциями findfirst/findnext.
У нее есть один недостаток: поле размера файла 32-битное, то есть если размер файла более 4 Гб, то оно содержит неверные данные.
Вторая структура несколько странная: в ней есть переменные типа (long long) - 64 битные, предназначенные для хранения времени создания и измеения файла, а вот для хранения размера файла почему-то есть две переменные типа (unsigned long) - 32 битные: fd_sizehi и fd_size.
Можно было бы понять, если бы на части был разбит штамп времени: отдельно часы, отдельно минуты, отдельно годы...
Но я не очень понимаю, зачем именно размер файла, число по определению единое, разбивать на две части.
Возможно, это связано с трудностями вывода (кто-нибудь знает, как корректно вывести long long с помощью printf?), но главный вопрос в другом.
Как воспользоваться возможностями, которые предоставляет ffblklfn?
Есть ли другие способы получить корректную информацию о размере файла, выходящем за границу 4 Гб?
На всякий случай уточню, что речь идет всё еще именно о DJGPP.

Заранее спасибо!
Tikser