unsigned _dos_setftime(int fd, unsigned fdate, unsigned ftime)
Прототип:
Описание:
Эта функция не определена стандартом ANSI С.
Функция _dos_setftime() устанавливает дату и время создания файла, который задан параметром fd, Этот параметр должен быть действительным дескриптором файла, получаемым с помощью вызова одной из функций _dos_creat(), _dos_open() или _dos_creatnew().
Разряды параметра ftime закодированы следующим образом:
Разряды параметра fdate закодированы следующим образом:
Как отмечено выше, год представляет собой число лет, прошедших с 1980. Поэтому в 2000 году эта величина будет равна 20. Функция _dos_setftime() возвращает 0 в случае успеха. При возникновении ошибки возвращается ненулевое значение, а переменная errno устанавливается равной EBADF (недействительный дескриптор файла).
Пример:
Следующая программа изменяет год создания файла на 2000:
#include<stdio.h>
#include<io.h>
#include<dos.h>
#include<fcntl.h>
#include<stdlib.h>
int main(void)
{
struct dt {
unsigned day: 5;
unsigned month: 4;
unsigned year: 7;
};
union {
struct dt date_time;
unsigned u;
} d;
unsigned t;
int fd;
if(_dos_open("TEST.TST", O_RDONLY, &fd)) {
printf("Cannot open file.\n");
exit (1);
}
_dos_getftime(fd, &d.u, &t);
d.date_time.year = 20;
_dos_setftime(fd, d.u, t);
return 0;
}
#include<stdio.h>
#include<io.h>
#include<dos.h>
#include<fcntl.h>
#include<stdlib.h>
int main(void)
{
struct dt {
unsigned day: 5;
unsigned month: 4;
unsigned year: 7;
};
union {
struct dt date_time;
unsigned u;
} d;
unsigned t;
int fd;
if(_dos_open("TEST.TST", O_RDONLY, &fd)) {
printf("Cannot open file.\n");
exit (1);
}
_dos_getftime(fd, &d.u, &t);
d.date_time.year = 20;
_dos_setftime(fd, d.u, t);
return 0;
}