getftime, setftime

Aus RAD Studio
Wechseln zu: Navigation, Suche

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;
 }