stringtranslate.com

Затирание

В программной инженерии и информатике затирание файла , регистра процессора или области памяти компьютера — это процесс полной перезаписи его содержимого, намеренно или ненамеренно, или для указания того, что такое действие, скорее всего, произойдет. [ 1] Файл жаргона определяет затирание как

Переписывать, обычно непреднамеренно: «Я отошел от конца массива и затер стек ». Сравните mung , scribble , trash и smash the stack . [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 switch , заставив команды запрашивать пользователя перед перезаписью файла назначения или -nне передавать исходные файлы с конфликтом имен.

Makefile-ы

В makefiles , общая цель clobber означает полную очистку всех ненужных файлов и каталогов, созданных предыдущими вызовами команды make . [ 4] Это более серьезная цель, чем clean , и обычно используется для удаления программного обеспечения. Некоторые команды, связанные с make, вызывают "make clobber" во время своего выполнения. Они проверяют переменную окружения CLOBBER . Если она установлена ​​в OFF, то clobber не выполняется. [5]

Сборка

В программировании на ассемблере , включая встроенный расширенный ассемблер [6] , поддерживаемый в C и C++ через GCC , термин «затираемые регистры» часто используется для обозначения любых регистров , значение которых может быть перезаписано в ходе выполнения инструкции или инструкций.

Ссылки

  1. ^ "In Computing, what is Clobbering?". wiseGEEK . 20 июня 2016 г. Архивировано из оригинала (html) 13 июня 2019 г. Получено 13 июня 2019 г. Термин "clobbering" используется в вычислительной технике несколькими способами, и его значение обычно ясно из контекста. В одном смысле он относится к перезаписи существующих файлов или записей памяти. Его также можно использовать для обсуждения перегрузки компьютеров, таких как серверы, запросами, что приводит к снижению производительности. Это второе использование слова отражает общее использование "clobber" как слова для описания получения удара.
  2. ^ «Clobber» в файле жаргона
  3. ^ «Unix Power Tools», Шелли Пауэрс, Джерри Пик, Тим О'Рейли, Майк Лукидес, стр. 892
  4. ^ UNIX System V, выпуск 4, Motorola Unix, Motorola, inc, inc Motorola, стр. 28
  5. ^ «Unix Unleashed», Робин Берк, Дэвид Б. Хорват
  6. ^ "Extended Asm (Using the GNU Compiler Collection (GCC))". GCC, The GNU Compiler Collection . Получено 22 марта 2021 г. .