Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

futimesat, futimesat64 - Dateizugriffs- und -änderungszeitpunkt setzen

&pagelevel(4)&pagelevel

Definition

#include <sys/time.h>

int futimesat(int fd, const char *path, const struct timeval times[2]);

CRTE111A30

int futimesat64(int fd, const char *path, const struct timeval64 times[2]); (Ende)

Beschreibung

Die Funktion futimesat() setzt die Zugriffs- und Änderungszeiten einer Datei auf die in times angegebenen Werte. Es werden die Zeiten der Datei geändert, auf die der Parameter path zeigt, relativ zu dem mit dem Dateideskriptor fd verbundenen Dateiverzeichnis. Die Funktion erlaubt mikrosekundengenaue Zeitangaben.

Der Parameter times ist ein Array, das aus zwei Strukturen des Typs timeval besteht. Die Zugriffszeit wird auf den Wert des ersten Elements und die Änderungszeit auf den Wert des zweiten Elements gesetzt. Die Zeiten in der timeval-Struktur werden in Sekunden und Mikrosekunden seit der Epoche angegeben.

Wenn times der Nullzeiger ist, werden Zugriffs- und Änderungszeit auf die aktuelle Zeit gesetzt. Wurde der Dateideskriptor ohne O_SEARCH geöffnet, prüft die Funktion, ob eine Suche im verbundenen Dateiverzeichnis mit den dem Dateiverzeichnis zugrunde liegenden Berechtigungen erlaubt ist. Wurde der Dateideskriptor mit O_SEARCH geöffnet, unterbleibt die Prüfung.

Ein Prozess darf futimesat() nur dann mit dem Nullzeiger für times aufrufen, wenn er eine der folgenden Eigenschaften besitzt:

  • Eigentümer der Datei,

  • Schreibberechtigung für die Datei oder

  • besonderen Rechte.

Wenn der Funktion futimesat() für den Parameter fd der Wert AT_FDCWD übergeben wurde, wird das aktuelle Dateiverzeichnis benutzt.

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

Returnwert

0

bei Erfolg.


-1

bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen

Fehler

futimesat() und futimesat46() 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
oder
der Parameter fd wurde nicht mit O_SEARCH geöffnet und die dem Dateiverzeichnis zugrunde liegenden Berechtigungen erlauben nicht das Durchsuchen des Dateiverzeichnisses.


EBADF

Der Parameter path spezifiziert keinen absoluten Pfadnamen und der Parameter fd hat weder den Wert AT_FDCWD, noch enthält er einen gültigen zum Lesen oder Suchen geöffneten Dateideskriptor.


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 futimesat() bzw. futimesat64() abgefangen.


EINVAL

Es wurde versucht, auf eine BS2000-Datei zuzugreifen oder der Wert des Parameters flag ist ungültig.


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 oder der Parameter path spezifiziert keinen absoluten Pfadnamen und der Dateideskriptor fd ist nicht mit einem Dateiverzeichnis verbunden.


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.


futimesat64() schlägt fehl, wenn gilt:

 

ENOSYS

POSIX-BC Korrekturstand < A47.

Siehe auch

sys/time.h.