dmitriy_
написал 9 апреля 2008 года в 18:48 (973 просмотра)
Ведет себя
неопределенно; открыл 24 темы в форуме, оставил 63 комментария на сайте.
Пишу программу на сях. Надо скопировать файл из одного места в другое с сохранением даты изменения. Скопировать нетрудно. А вот как дату установить? Причем под никсами! Компилятор gcc.
В виндовом борланд си это делается так
int handle;
struct ftime ft;
if ((handle=open(SourceFileName, O_RDONLY))==-1){
return(-1);
}
getftime(handle, &ft);
close(handle);
if ((handle=open(TargetFileName, O_WRONLY ))==-1){
return(-1);
}
setftime(handle, &ft);
close(handle);
system() не предлагать
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
А ты посмотри в исходниках touch. Вот хотя бы <font color=«blue»>тут</font>. Хинт: man utime
Спасибо огромное. Разобрался.
// установка даты изменения
struct stat src_stat;
struct utimbuf times;
if (stat(SourceFileName,&src_stat) != 0) {
printf(«Error: Unable to get status of source file %s\n», SourceFileName);
return(-1);
}
times.modtime = times.actime = src_stat.st_mtime;
if (utime(TargetFileName,×) != 0) {
printf(«Error: Unable to set time of destination file %s\n», TargetFileName);
return(-1);
}