11.4. Dateien umbenennen und löschen

Auch für diese beiden Zwecke stehen Funktionen der Standardbibliothek zur Verfügung. Diese operieren aber nicht mit FILE-Pointern, sondern mit Dateinamen. Dateien, die Sie umbenennen oder löschen wollen, sollten nach Möglichkeit nicht geöffnet sein, da jedes seriöse Betriebssystem solche Manipulationen an geöffneten Dateien verhindert. Ist das Umbenennen einer offenen Datei auf Ihrem System dennoch möglich, dann sind Datenverluste zu befürchten.

Zum Umbenennen einer Datei existiert die Funktion rename(); sie nimmt als erstes Argument den Namen der Datei, die unbenannt werden soll, und als zweites Argument den neuen Dateinamen. Beide Argumente müssen in Form von Zeichenketten übergeben werden. Der Prototyp von rename() lautet:


int rename( const char *pszOldName,
	const char *pszNewName);

Bei erfolgreicher Ausführung gibt rename() den Wert 0 zurück, ansonsten einen davon abweichenden Wert. Folgendes Beispiel zeigt die Verwendung von rename():


/* rename.c */

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv){

 if(argc != 3){
	fprintf( stderr,
		"Aufruf: %s Datei1 Datei2", argv[0]);
	exit(EXIT_FAILURE);
	}

 if( rename( argv[1], argv[2]) == 0)
	printf("%s erfolgreich in %s umbenannt\n",
		argv[1], argv[2]);
 else{
	fprintf( stderr,
		"Fehler beim Umbenennen von %s!\n",
		argv[1]);

	exit(EXIT_FAILURE);
	}
return 0;
}

Ziemlich einfach zu verwenden ist die Funktion remove(), deren Aufgabe das Löschen von Dateien ist. Ihr muß der Name einer Datei als Argument übergeben werden. Der Prototyp von remove() in stdio.h lautet:


int remove( const char *pszDateiName);

Bei erfolgreicher Ausführung gibt auch sie den Wert 0 zurück, ansonsten einen davon abweichenden Wert.