SYNOPSIS
        int rename(string from, string to);

BESCHREIBUNG
        Die Efun rename() verschiebt <from> nach <to>. Wenn <from> ein File
        ist, kann <to> entweder ein andere File oder ein Verzeichnis sein.
        Wenn <from> ein Verzeichnis ist, muss <to> auch ein Verzeichnis sein.
        Wenn in diesem Fall <to> existiert und ein Verzeichnis ist, wird
        <from> in <to> verschoben und behaelt seinen Namen.

        <from> umzubenennen erfordert Schreibrechte auf <from>.

        Unterverzeichnisse (Verzeichnisse in Verzeichnissen) koennen nur auf
        Maschinen umbenannt werden, die unter System V laufen, d.h. es ist
        nicht moeglich, diese in ein anderes Verzeichnis zu verschieben. Das
        Verschieben von Verzeichnissen von einem Filesystem zum andreren ist
        unter keinem System moeglich.

        Bei Erfolg liefert rename() 0, bei Fehlschlag einen Wert ungleich 0.

BEISPIEL
        rename("/players/wizard/obj.c", "/players/wizard/newobj.c");

SIEHE AUCH
        copy_file(E), mkdir(E), rmdir(E), rm(E)
