utime(2)

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

BIBLIOTHEK
Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT
#include <utime.h>

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

#include <sys/time.h>

int utimes(const char *pfad,
          const struct timeval zeiten[_Nullable 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 pfad angegebenen Inodes auf die Felder actime beziehungsweise modtime von zeiten. Die Statusänderungszeit (ctime) wird auf die aktuelle Zeit gesetzt, selbst wenn die anderen Zeitstempel nicht geändert werden.

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 Benutzerkennung der Benutzerkennung 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 gesetzt, um den Fehler anzuzeigen.

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 Benutzerkennung 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).

EFAULT
    pfad zeigt auf eine ungültige Adresse.

ENOENT
    pfad existiert nicht.

EPERM
    zeiten ist nicht NULL, die effektive UID 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.

STANDARDS

utime()
    Keine.

utimes()
    POSIX.1-2024.

GESCHICHTE

utime()
    SVr4, POSIX.1-2001. Veraltet in POSIX.1-2008. Entfernt in POSIX.1-2024.

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.

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

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net>, Chris Leick <c.leick@vollbio.de>, Mario Blättermann <mario.blaettermann@gmail.com> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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 die Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.