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.

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

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