nixp.ru v3.0

16 января 2017,
понедельник,
15:59:35 MSK

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

}

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.