Программирование на C и C++

Онлайн справочник программиста на C и C++

_dos_setftime

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