Überschreiben (Programmierung)



In der Informatik Wurde unter Überschreibung (engl. Clobbering ) das Überschreiben Einer Datei oder Speicherüberschreibung schlechte Kandidaten, das normalerweise unbeabsichtigt ist sterben. Male verdorben auch das Wort Überschreiber , wenn eine Quelltextstelle unbeachtet Speicher verdirbt.

Das Überschreiben passiert oft unbeachtet, z. B. durch den Aufruf des Ausgabeumleitungsbetreibers ( > ). Um dies zu vermeiden, wurde Mittel angewendet, wer z. B. Der Shell-Parametersatz -o noclobber zu setzen ( bash , ksh) oder set noclobber ( csh , tcsh ). Dies verhindert, dass > überschreibt, indemine Fehlermeldung erscheint: [1]

$ echo "Hallo, Welt" > file.txt
$ echo "Dies überschreibt die erste Begrüßung." > file.txt
$ set -o noclobber
$ echo "Können wir es noch einmal überschreiben?" > file.txt
-bash: file.txt: kann die existierende Datei
$ echo nicht überschreiben "Aber wir können den Operator | benutzen, um den noclobber zu ignorieren." > | file.txt
$ # Der Inhalt von file.txt wurde erfolgreich mit> | überschrieben operator
$ set + o noclobber # Ändert die Einstellung zurück

In Hearing Program Applications , Wer Z. B. C , wird konzeptioniert nicht auf das Überschreiben einer Speicherstelle hinweiswiesen. Um das Überschreiben einer Speicherstelle zu verhindern, sind Schlüsselwörter für den Compilervorhanden. In der Programmiersprache C ist für dieses Problem das Schlüsselwort const festgelegt, ohne dass dies mit der Präsprossessordirektive #define . Stellt wo Compiler bei der Analyse semantischen fest that Eine Variable trotz Vereinbarung überschrieben Werden soll, Wird meist ein Fehler Geliefert und der Übersetzungsvorgang abgebrochen.

Variable In folgendem Beispielcode Wird sterben A with the schlüsselwort const als Konstante deklariert. Bei einem anschließenden Übersetzungsversuch mit dem gccCompiler wird eine Fehlermeldung ausgegeben.

int main ( void )
{
 const int a = 3 ;
 a = 4 ;
 zurückgeben 0 ;
}
test.c: In der Funktion 'main':
test.c: 7: 2: error: Zuweisung der schreibgeschützten Variablen 'a'

Siehe auch

  • Überschreiben (OOP)

Einzelstunden

  1. Hochspringen↑ „Unix Power Tools“, von Shelley Powers, Jerry Peek, Tim O’Reilly, Mike Loukides, S. 892.