Re[8]: Не могу понять этот Borland C++ 3.1
От: Egor  
Дата: 04.03.05 06:19
Оценка:
Здравствуйте, eao197, Вы писали:


E>MS-DOS работает в реальном режиме x86 процессоров. А там память выделяется сегментами, максимальный размер которых не может превышать 64K (т.к. смещение внутри сегмента определяется 16-битными значениями). Но! Ты не можешь получить от ОС блок памяти размером 64K, т.к. в каждом выделеном блоке ОС хранит еще, если не ошибаюсь, 16-байтовый блок MCB (Memory Control Block). Т.е., теоритический максимум в реальном режиме -- (64K — 16)


64-16=48Кб
у меня выделяет 59Кб, а вот 60 уже нет.

E>Разницы между fread(buf,1024,64,f) и fread(buf,1024*64,1,f) нет, т.к. она все равно обращается к системной функции через прерывание int 21, в которую передается общее количество байт для чтения в виде 16-ти битового числа.


Согласен. Практика показала одинаковые результаты.
Спасибо всем кто ответил. Может еще когда спрошу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.