nixp.ru v3.0

28 мая 2017,
воскресенье,
11:43:51 MSK

DevOps с компанией «Флант»
dmitriy_ написал 9 апреля 2008 года в 18:48 (457 просмотров) Ведет себя неопределенно; открыл 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() не предлагать

myst

А ты посмотри в исходниках touch. Вот хотя бы <font color=«blue»>тут</font>. Хинт: man utime

dmitriy_

Спасибо огромное. Разобрался.

// установка даты изменения

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,&times) != 0) {

printf(«Error: Unable to set time of destination file %s\n», TargetFileName);

return(-1);

}