linux 备份监视文件
我用的是ubuntu8.0.4
这个程序是监视文件的,当它被修改后,自动备份。
代码:
int main(int argc,char *argv[])
{
int fd;
int stat,pid;
struct stat stbuf;
time_t old_time = 0;
if( (fd=open(argv[1],O_WRONLY))==-1 )
{
printf( "can 't ooen watchfile\n "
return 2;
}
fstat(fd,&stbuf);
old_time = stbuf.st_mtime;
for(;
{ fstat(fd,&stbuf);
if(old_time != stbuf.st_mtime)
{
while(pid = vfork()== -1 );
if(pid == 0)
{
execl( "/bin/cp ", "/bin/cp ",argv[1],argv[2],0);
return 3;
}
wait(&stat);
old_time = stbuf.st_mtime;
}
else
sleep(20);
}
}
运行程序:
./ex14 watchfile watchfile.bak&
我用stat watchfile//查看文件修改时间
结果是:Modify: 2011-04-30 12:25:49.000000000 +0800。
vim watchfile.之后我修改它,使文件的修改时间发生变化。
//查看文件的修改时间
stat watchfile:
Modify: 2011-04-3012:27:40.000000000 +0800
但是我修改watchfile后,查看watchfile.bak后,没有备份watchfile (此时程序还在运行当中)。把程序停止,在查看watchfile.bak中的内容,依然没有发生变化。
原因:应该是 if(old_time != stbuf.st_mtime)。但是为什么,我修改了watchfile后,stbuf.st_mttime,的时间在程序中
返回的时间按没有发生变化呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论