Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

utime, utime64 - Dateizugriffs- und -änderungszeitpunkte setzen

&pagelevel(4)&pagelevel

Definition

#include <utime.h>

Optional
#include <sys/types.h> (Ende)

int utime(const char *path, const struct utimbuf *times);

CRTE111A30
int utime64(const char *path, const struct utimbuf64 *times); (Ende)

Beschreibung

utime() setzt die Zugriffs- und Änderungszeit der Datei, auf die path zeigt.

Wenn times ein Nullzeiger ist, werden Zugriffs- und Änderungszeit der Datei auf die aktuelle Uhrzeit gesetzt. Die effektive Benutzernummer des Prozesses muss mit der des Eigentümers der Datei übereinstimmen, oder der Prozess muss für die Datei Schreibrecht oder Sonderrechte haben, damit utime() auf diese Weise genutzt werden kann.

Wenn times kein Nullzeiger ist, dann wird times als Zeiger auf eine Struktur utimbuf (definiert in utime.h) interpretiert, und Zugriffs- und Änderungszeit wird gemäß den Werten in dieser Struktur gesetzt. Nur ein Prozess, dessen effektive Benutzernummer mit der des Eigentümers der Datei übereinstimmt, oder ein Prozess mit besonderen Rechten kann utime() auf diese Art nutzen.

Die Zeiten in der Struktur utimbuf werden in Sekunden ab 00:00:00 GMT 1. Januar 1970 gemessen (siehe utime.h).

Bei erfolgreicher Beendigung versieht utime() st_ctime mit einer Änderungsmarke (siehe sys/stat.h).

Die Funktion utime64() verhält sich wie die Funktion utime() , außer dass sie die Struktur utimbuf64 anstelle der Struktur utimbuf verwendet und daher auch Zeitstempel, die über den 19.1.2038 03:14:07 Uhr UTC hinausgehen, verarbeitet.

Die Struktur utimbuf enthält die folgenden Komponenten :

time_t actime;        /* access time */
time_t modtime;       /* modification time */

Die Struktur utimbuf64 enthält die folgenden Komponenten :

time64_t actime;        /* access time */
time64_t modtime;       /* modification time */

Returnwert

0

bei Erfolg.


-1

bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

utime() und utime64() schlagen fehl, wenn gilt: 

 

EACCES

Eine Komponente des Pfades darf nicht durchsucht werden, oder times ist ein Nullzeiger und die effektive Benutzernummer ist nicht diejenige des Systemverwalters und nicht diejenige des Eigentümers der Datei, und der Schreibzugriff wird verweigert.

 

Erweiterung

 

EFAULT

times ist ungleich null und weist über den zugewiesenen Adressraum des Prozesses hinaus, oder path weist über den zugewiesenen Adressraum des Prozesses hinaus.

 

EINTR

Ein Signal wurde während des Systemaufrufs utime() bzw. utime64() abgefangen.

 

EINVAL

Es wurde versucht, auf eine BS2000-Datei zuzugreifen.


ELOOP

Während der Übersetzung von path traten zu viele symbolische Verweise auf. (Ende)


ENAMETOOLONG 



Die Länge von path überschreitet {PATH_MAX} oder die Länge einer Komponente von path überschreitet{NAME_MAX}.


ENOENT

Die angegebene Datei ist nicht vorhanden.


ENOTDIR

Eine Komponente des Pfades ist kein Dateiverzeichnis.


EPERM

Die effektive Benutzernummer ist nicht diejenige des Systemverwalters und nicht diejenige des Eigentümers der Datei, und times ist nicht gleich null.


EROFS

Das Dateisystem, das die Datei enthält, ist schreibgeschützt eingehängt.


utime64() schlägt fehl, wenn gilt:

 

ENOSYS

POSIX-BC Korrekturstand < A47.

Hinweis

utime() und utime64() werden nur für POSIX-Dateien ausgeführt.

Siehe auch

sys/types.h, utime.h.