Язык программирования Форт


Глава 10. Хранение программ и данных - часть 14


Любые изменения содержимого буфера блока должны быть сделаны постоянными, прежде чем он снова будет использован, с помощью слова UPDATE. Слово UPDATE работает очень быстро, поэтому нет никаких препятствий применять его почаще, не опасаясь перестараться. Но что будет с блоком, буфер которого не был использован вторично до выключения компьютера, а изменения были объявлены постоянными? Так как блочный буфер сохраняется на диске только в том случае, когда он используется повторно, то внесенные изменения будут утрачены. Можно заставить Форт-систему записать на диск все буферы, объявленные измененными, пользуясь словами FLUSH или SAVE-BUFFERS, которые либо являются синонимами, либо очень близки по назначению в зависимости от версии Форта. Поэтому после того, как закончилась программа или процедура, которая произвела изменения в блоке, нужно использовать одно из этих слов. Между словами FLUSH и SAVE-BUFFERS имеются некоторые тонкие различия, зависящие от версии языка. В Форт-83 оба слова производят запись содержимого всех обновленных блоков на диске и снимают признак внесения изменений, но если слово FLUSH отменяет приписывание буферов конкретным номерам блоков, то слово SAVE- BUFFERS может делать или не делать это в зависимости от реализации. Поэтому если используется слово SAVE-BUFFERS, то можно изменить содержимое буфера (не используя слова BLOCK для загрузки нового блока), снова объявить изменения постоянными словом UPDATE и сохранить буферы на диске словом FLUSH. Вы можете экспериментально установить, как работает ваша версия Форта со словом SAVE-BUFFERS. В Форт-79 обязательным является только слово SAVE-BUFFERS, причем стандарт не оговаривает, должно ли оно отменять назначение буферов конкретным блокам. В большинстве версий Форт-79 имеется также и слово FLUSH, которое практически является синонимом SAVE-BUFFERS. Незначительные различия этих слов в Форт-83 в большинстве случаев не имеют значения, и ими можно пренебрегать.

Можно ли после того, как вы произвели изменения в блоках и объявили их обновленными, передумать и отменить признак обновления? Вы можете это сделать, используя слово EMPTY-BUFFERS.


- Начало -  - Назад -  - Вперед -