UTIME(2)

BEZEICHNUNG
utime, utimes - letzte Dateizugriffs- und -änderungszeiten ändern

ÜBERSICHT
#include <sys/types.h>
#include <utime.h>

int utime(const char *dateiname, const struct utimbuf *zeiten);

#include <sys/time.h>

int utimes(const char *dateiname, const struct timeval zeiten[2]);

BESCHREIBUNG
Hinweis: Moderne Anwendungen könnten es bevorzugen, die in utimensat(2) beschriebenen Schnittstellen zu benutzen. Der Systemaufruf utime ändert die Zugriffs- und Änderungszeiten des durch dateiname angegebenen Inodes auf die Felder actime beziehungsweise modtime von zeiten. Falls zeiten NULL ist, werden die Zugriffs- und Änderungszeiten der Datei auf die aktuelle Zeit gesetzt. Das Ändern von Zeitstempeln ist erlaubt, wenn entweder der Prozess entsprechende Rechte hat, die effektive Benutzer-ID der Benutzer-ID der Datei entpricht oder zeiten NULL ist und der Prozess das Schreibrecht für die Datei besitzt. Die Struktur utimbuf hat folgenden Aufbau:
struct utimbuf {
        time_t actime;  /* Zugriffszeit */
        time_t modtime; /* Änderungszeit */
};
Der Systemaufruf utime() erlaubt die Angabe von Zeitstempeln mit einer Genauigkeit von einer Sekunde. Der Systemaufruf utimes() ist ähnlich, aber das Argument zeiten bezieht sich auf ein Feld statt auf eine Struktur. Die Elemente dieses Feldes sind timeval-Strukturen, die eine Genauigkeit von Mikrosekunden für die Angabe von Zeitstempeln ermöglichen. Die Struktur timeval hat folgenden Aufbau:
struct timeval {
        long    tv_sec;         /* Sekunden */
        long    tv_usec;        /* Mikrosekunden */
};

zeiten[0] gibt die neue Zugriffszeit an und zeiten[1] die neue Änderungszeit. Falls zeiten NULL ist, werden wie bei utime() die Zugriffs- und Änderungszeiten der Datei auf die aktuelle Zeit gesetzt.

RÜCKGABEWERT
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.

FEHLER

EACCES
    In einem oder mehreren Verzeichnissen im Pfad-Präfix von pfad wurde die Erlaubnis zum Suchen verweigert.

EACCES
    zeiten ist NULL, die effektive Benutzer-ID des Aufrufenden entspricht nicht dem Dateieigentümer, der Aufrufende hat kein Schreibrecht für die Datei und der Aufrufende ist nicht privilegiert (Linux: ihm fehlt entweder die CAP_DAC_OVERRIDE- oder die CAP_FOWNER-Fähigkeit).

ENOENT
    dateiame existiert nicht.

EPERM
    zeiten ist nicht NULL, die effektive Benutzer-ID des Aufrufenden entspricht nicht dem Dateieigentümer und der Aufrufende ist nicht privilegiert (Linux: ihm fehlt die CAP_FOWNER-Fähigkeit).

EROFS
    pfad liegt auf einem Dateisystem mit reinem Lesezugriff.

KONFORM ZU
utime(): SVr4, POSIX.1-2001. POSIX.1-2008 kennzeichnet utime() als veraltet.
utimes(): 4.3BSD, POSIX.1-2001.

ANMERKUNGEN
Linux erlaubt es nicht, dass Zeitstempel einer unveränderlichen Datei geändert werden oder bei einer Datei, an die nur etwas angehängt werden darf, die Zeitstempel auf etwas anderes als die aktuelle Zeit geändert werden. In Libc4 und Libc5 ist utimes() nur ein Wrapper für utime() und erlaubt daher keine Auflösung auf Zeiten kleiner einer Sekunde.

SIEHE AUCH
chattr(1), futimesat(2), stat(2), utimensat(2), futimens(3), futimes(3)

KOLOPHON
This page is part of release 3.70 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net>, Chris Leick <c.leick@vollbio.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.