В программной инженерии и информатики , сбивание в файл , регистр процессора или области компьютерной памяти является процесс полностью перезаписывать его содержимое, намеренно или ненамеренно, или указать , что такое действие, скорее всего , произойдет. [1] Жаргон файл определяет , как затирания
Чтобы перезаписать, обычно непреднамеренно: «Я отошел от конца массива и засорил стек ». Сравните маш , каракули , мусор и разбейте стопку . [2]
POSIX
Перезапись памяти или файлов в системах POSIX , а также в оболочках BASH часто происходит непреднамеренно - например, при использовании >
оператора перенаправления . Поэтому, чтобы предотвратить непреднамеренное затирание, можно использовать различные средства - например, установка параметра оболочки set -o noclobber
( bash , ksh ) или set noclobber
( csh , tcsh ) предотвратит >
затирание, заставляя вместо этого выдавать сообщение об ошибке : [3]
$ echo "Привет, мир" > file.txt $ cat file.txt Привет, мир $ echo "Это перезапишет первое приветствие." > file.txt $ cat file.txt Это перезапишет первое приветствие. $ set -o noclobber $ echo "Можем ли мы перезаписать его снова?" > file.txt -bash : file.txt: невозможно перезаписать существующий файл $ echo "Но мы можем использовать оператор> |, чтобы игнорировать noclobber." > | file.txt $ cat file.txt # Успешно перезаписал содержимое file.txt с помощью> | оператор Но мы можем использовать> | оператор, чтобы игнорировать noclobber. $ set + o noclobber # Возвращает настройку обратно
По умолчанию команды mv и cp стирают свой целевой файл, если он уже существует. Это поведение может быть изменено путем вызова или псевдонима команд с переключателем -i , в результате чего команды будут запрашивать пользователя перед перезаписью файла назначения.
Makefiles
В make-файлах общий целевой clobber означает полную очистку всех ненужных файлов и каталогов, созданных предыдущими вызовами make
команды . [4] Это более серьезная цель, чем чистая, и обычно используется для удаления программного обеспечения. Некоторые связанные с make команды вызывают во время выполнения команду make clobber. Они проверяют переменную среды CLOBBER . Если он установлен в положение OFF, затирание не выполняется. [5]
сборка
В программировании на ассемблере, включая встроенную расширенную сборку [6], поддерживаемую в C и C ++ через GCC, термин « закрытые регистры» часто используется для обозначения любых регистров , значение которых может быть перезаписано в ходе выполнения инструкции или инструкций.
Рекомендации
- ^ "Что такое Clobbering в вычислительной технике?" . мудрыйGEEK . 20 июня 2016 года Архивировано из оригинала (HTML) 13 июня 2019 года . Проверено 13 июня 2019 .
Термин «затирание» используется в вычислениях по-разному, причем значение обычно ясно из контекста.
В каком-то смысле это относится к перезаписи существующих файлов или записей в памяти.
Его также можно использовать для обсуждения перегруженных компьютеров, таких как серверы, с запросами, вызывающими снижение производительности.
Это второе использование слова отражает обычное использование слова «clobber» как слова для описания избиения.
- ^ "Clobber" в файле жаргона
- ^ "Unix Power Tools", Шелли Пауэрс, Джерри Пик, Тим О'Рейли, Майк Лукидес, стр. 892
- ^ UNIX System V, выпуск 4, Motorola Unix, Motorola, inc, inc Motorola, стр. 28 год
- ^ "Unix Unleashed", Робин Берк, Дэвид Б. Хорват
- ^ «Расширенный Asm (с использованием коллекции компиляторов GNU (GCC))» . GCC, Сборник компиляторов GNU . Проверено 22 марта 2021 года .