Überschreiben (Programmierung)
# Ü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 (>). Um dies zu vermeiden, werden verschiedene Mittel angewendet, wie z. B. den Shell-Parameter set -o noclobber zu setzen (bash, ksh) oder set noclobber (csh, tcsh). Dies verhindert, dass > überschreibt, indem eine Fehlermeldung erscheint:

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 gcc-Compiler wird eine Fehlermeldung ausgegeben.

