Clobbering

In software engineering, clobbering a file or computer memory is overwriting its contents.[1] The Jargon File defines clobbering as

To overwrite, usually unintentionally: "I walked off the end of the array and clobbered the stack." Compare mung, scribble, trash, and smash the stack.[2]

POSIX

Overwrites in POSIX often happen unintentionally, such as using the > redirection operator. To prevent unintentional clobbering, various means can be used. For example, setting the shell parameter set -o noclobber (bash, ksh) or set noclobber (csh, tcsh) will prevent > from clobbering by making it issue an error message instead:[3]

$ echo "Hello, world" >file.txt
$ cat file.txt
Hello, world
$ echo "This will overwrite the first greeting." >file.txt
$ cat file.txt
This will overwrite the first greeting.
$ set -o noclobber
$ echo "Can we overwrite it again?" >file.txt
-bash: file.txt: cannot overwrite existing file
$ echo "But we can use the >| operator to ignore the noclobber." >|file.txt
$ cat file.txt # Successfully overwrote the contents of file.txt using the >| operator
But we can use the >| operator to ignore the noclobber.
$ set +o noclobber # Changes setting back

The default behavior of the mv and cp commands is to clobber their destination file if it already exists. This behavior may be overridden by invoking or aliasing the commands with the -i switch, causing the commands to prompt the user before overwriting the destination file.

Makefiles

In makefiles, a common target clobber means complete cleanup of all unnecessary files and directories produced by previous invocations of the make command.[4] It is a more severe target than clean and is commonly used to uninstall software. Some make-related commands invoke "make clobber" during their execution. They check the CLOBBER environment variable. If it is set to OFF then clobbering is not done.[5]

Assembly

In assembler programming, the term 'clobbered registers' is used to denote any registers whose value may be overwritten during the course of executing an instruction or procedure.

gollark: So you have a SIM card as a captcha token thing then?
gollark: Again, does the service actually get a way to distinguish different users/SIMs?
gollark: Why can't I just hook up a "fingerprint reader" which generates random fingerprints?
gollark: There are vast farms of phones somewhere in China used for ad fraud, SIM cards would probably not be a big obstacle.
gollark: Can I just buy *one* SIM card and have that validate me as human forever, or does the service also get to store a unique user identifier for me (no)?

References

  1. "In Computing, what is Clobbering?". wiseGEEK. 20 June 2016. Archived from the original (html) on 13 June 2019. Retrieved 13 June 2019. The term “clobbering” is used in several different ways in computing, with the meaning usually clear from the context. In one sense, it refers to overwriting existing files or memory entries. It can also be used to discuss overwhelming computers such as servers with requests, causing a downgrade in performance. This second usage of the word reflects the common usage of “clobber” as a word to describe taking a beating.
  2. "Clobber" in the Jargon File
  3. "Unix Power Tools", by Shelley Powers, Jerry Peek, Tim O'Reilly, Mike Loukides, p. 892
  4. UNIX System V, Release 4, Motorola Unix, Motorola, inc, inc Motorola, p. 28
  5. "Unix Unleashed", by Robin Burk, David B. Horvath
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.