@nano_e_t_4

Зачем при записи\чтении указывать буфер?

Всем привет
Изучаю труд Таненбаума по операционным система, прочитал, что для чтения записи на диск делается системный вызов, которому аргументами поступают файл, который нужно прочитать, указатель на буфер и количество байт, которое нужно прочитать\записать.
Объясните плз, кто знает - что за указатель на буфер - имеется ввиду указатель на ячейки памяти, в оперативной памяти, которые нада записать? (соответственно при записи).
А что это за аргумент при чтении?
Спасибо
  • Вопрос задан
  • 230 просмотров
Решения вопроса 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Указатель, это адрес выделенной области (участка или блока) памяти, куда будут писаться или откуда будут читаться данные для чтения/записи. Вторым аргументом передается количество байт для чтения/записи.
Другими словами, алгоритм такой:
1) запрашиваем у системы свободную область памяти нужного нам размера, в ответ система дает нам адрес начала выделенной памяти (указатель на начало памяти)
2) Открываем файл на чтение или запись
3) Просим систему прочитать или записать данные по адресам памяти из пункта 1). Также говорим системе, чтобы она не читала/записывала больше, чем у нас есть выделенной памяти, для этого передаем количество байт, которые нужно прочитать или записать.
4) Система читает/записывает в файл инфорацию и располагает ее по адресам из пункта 1). Также система после записи/чтения передает нам реально прочитанное/записанное количество байт (это например мы читаем из файла меньшего размера).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DVamp1r3
@DVamp1r3
Java/PHP программист
Выделяется память определенного размера (а где выделяется уже другая история, но вероятнее в озу)
Передается указатель на адрес, в который читать/писать и размер, чтобы не записать лишнего/переполнить буфер.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы