getftime, setftime
Nach oben zu io.h - Index
Header-Datei
io.h
Kategorie
Eingabe-/Ausgaberoutinen
Prototyp
int getftime(int handle, struct ftime *ftimep);
int setftime(int handle, struct ftime *ftimep);
Beschreibung
Ermittelt Erstellungsdatum und -zeit der Datei bzw. legt diese fest.
getftime ruft Erstellungszeit und -datum der mit dem geöffneten handle verknüpften Datenträgerdatei ab. Erstellungszeit und -datum der Datei werden in die Struktur ftime eingetragen, auf die ftimep zeigt.
setftime setzt Erstellungsdatum und -zeit der mit dem geöffneten handle verknüpften Datenträgerdatei auf die in der Struktur ftime enthaltenen Datums- und Uhrzeitangabe, auf die ftimep zeigt. Nach dem Aufruf von setftime darf nicht in die Datei geschrieben werden, da die geänderten Daten sonst überschrieben werden. Die Datei muss zum Schreiben geöffnet sein. Wenn die Datei im schreibgeschützten Modus geöffnet wurde, tritt der Fehler EACCESS auf.
setftime erfordert, dass die Datei zum Schreiben geöffnet wurde. Wurde die Datei im schreibgeschützten Modus geöffnet, tritt der Fehler EACCESS auf.
Die Struktur ftime ist wie folgt definiert:
struct ftime {
unsigned ft_tsec: 5; /* Zwei Sekunden */
unsigned ft_min: 6; /* Minuten */
unsigned ft_hour: 5; /* Stunden */
unsigned ft_day: 5; /* Tage */
unsigned ft_month: 4; /* Monate */
unsigned ft_year: 7; /* Jahr - 1980*/
};
Rückgabewert
Bei erfolgreicher Ausführung geben getftime und setftime den Wert 0 zurück.
Bei einem Fehler wird -1 zurückgegeben und die globale Variable errno auf einen der folgenden Werte gesetzt:
EACCES |
Permission denied (Zugriff verweigert) |
EBADF |
Bad file number (Falsche Dateinummer) |
EINVFNC |
Invalid function number (Ungültige Funktionsnummer) |
Beispiel
#include <stdio.h>
#include <io.h>
int main(void)
{
FILE *stream;
std::ftime ft;
if ((stream = fopen("TEST.$$$",
"wt")) == NULL)
{
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
getftime(fileno(stream), &ft);
printf("File time: %u:%u:%u\n",
ft.ft_hour, ft.ft_min,
ft.ft_tsec * 2);
printf("File date: %u/%u/%u\n",
ft.ft_month, ft.ft_day,
ft.ft_year+1980);
fclose(stream);
return 0;
}