全部博文(71)
分类: LINUX
2008-04-15 20:52:29
一.文件的时间
对每个文件保存三个时间字段,它们是:
1.
名称:: |
utime |
功能: |
修改文件的存取和修改时间 |
头文件: |
#include #include |
函数原形: |
int utime(const char *filename,const struct utimbuf buf); |
参数: |
pathname 文件名 buf 文件时间信息 |
返回值: |
若成功则返回0,若出错则返回-1 |
此函数所使用的结构是:
struct utimbuf{
time_t actime; 文件数据的最后存取时间
time_t modtime; 文件数据的最后修改时间
}
二.系统的时间
2.
名称:: |
time |
功能: |
get time in seconds |
头文件: |
#include |
函数原形: |
time_t time(time_t *calptr); |
参数: |
calptr 时间值 |
返回值: |
若成功则返回时间值,若出错则返回-1 |
time返回的是计算自国家标准时间公元
下面的程序可以实现touch命令的部分功能,可以把文件的最后存储时间和最后修改时间改为执行命令时的系统时间。
#include #include #include #include int main(int argc,char *argv[]) { int i; struct utimbuf timebuf; for(i=1;i timebuf.actime=time(); timebuf.actime=time(); if(utime(argv[i],&timebuf)<0) perror(“error”); exit(0); } } |
3.
名称:: |
gettimeofday/settimeofday |
功能: |
get/set time |
头文件: |
#include |
函数原形: |
int gettimeofday(struct timeval *tv,struct timezone *tz); int settimofday(const struct timeval *tv,const struct timezone *tz); |
参数: |
tv tz |
返回值: |
总是返回0 |
与time函数相比,gettimeofday提供了更高的分辨率,最高为微秒级,这对某些要求实时性较高的程序来说是很重要的。
gettimeoffday函数将当前时间存放在tp指向的timeval结构中,而该结构存储秒和微妙。tz的唯一合法值是NULL,其他值则将产生不确定结构。某些平台支持用tz说明时区,但这完全依现实而定。
struct timeval{
time_t tv_sec;
long tv_usec;
};