Überschreiben (Programmierung)In der Informatik wird unter Überschreibung (engl. clobbering) das Überschreiben einer Datei oder die Speicherüberschreibung verstanden, das normalerweise unbeabsichtigt ist. Man verwendet selten auch das Wort Überschreiber, wenn eine Quelltextstelle unbeabsichtigt Speicher verdirbt. Das Überschreiben passiert oft unbeabsichtigt, z. B. durch den Aufruf der Ausgabeumleitungsoperator ( $ echo "Hello, world" >file.txt
$ echo "This will overwrite the first greeting." >file.txt
$ 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 ignore the noclobber." >|file.txt
$ # Successfully overwrote the contents of file.txt using the >| operator
$ set +o noclobber # Changes setting back
In höheren Programmiersprachen, wie z. B. C, wird konzeptbedingt meist nicht auf das Überschreiben einer Speicherstelle hingewiesen. Um das Überschreiben einer Speicherstelle zu verhindern, sind meist Schlüsselwörter für den Compiler vorhanden. In der Programmiersprache C ist für dieses Vorhaben das Schlüsselwort const vorgesehen, jedoch darf es nicht mit der Präprozessordirektive #define verwechselt werden. Stellt der Compiler bei der semantischen Analyse fest, dass eine Variable trotz Vereinbarung überschrieben werden soll, wird meist ein Fehler geliefert und der Übersetzungsvorgang abgebrochen. In folgendem Beispielcode wird die Variable a mit dem Schlüsselwort const als Konstante deklariert. Bei einem anschließenden Übersetzungsversuch mit dem int main(void)
{
const int a = 3;
a = 4;
return 0;
}
test.c: In function ‘main’: test.c:7:2: error: assignment of read-only variable ‘a’ Siehe auchEinzelnachweise |
Portal di Ensiklopedia Dunia