utimes(2) letzte Dateizugriffs- und -änderungszeiten ändern

Other Alias

utime

Ü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-Capability).
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-Capability).
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.

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 4.06 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <[email protected]>, Chris Leick <[email protected]> und Mario Blättermann <[email protected]> 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 <[email protected]>.