星期六, 五月 12, 2007

获得系统时间

唉,伤心呀!本来以为昨天那个gettimeofday()函数可以解决问题,但是经过测试还是和clock一样,当程序运行的时间比较长时,他的计算结果还是错误的。白白等了快3个小时。上网搜索了一下,别人也出现过这类问题,但是没有找到解决的方法,难道真是bug?
今天又找了一种方法,获得系统的时间,不过这种方法只能精确到s,现在也只能这样了,再等上他3个小时看看,呵呵。
下面是linux下获得系统时间的方法介绍:
#include //C语言的头文件
#include //C语言的I/O
void main()
{time_t now; //实例化time_t结构
struct tm *timenow; //实例化tm结构指针
time(&now);//time函数读取现在的时间(国际标准时间非北京时间),然后传值给
nowtimenow = localtime(&now);//localtime函数把从time取得的时间now换算成你电脑中的时间(就是你设置的地区)
printf("Local time is %s\n",asctime(timenow));//上句中asctime函数把时间转换成字符,通过printf()函数输出}
注释:time_t是一个在time.h中定义好的结构体。
而tm结构体的原形如下:
struct tm
{ int tm_sec;//seconds 0-61
int tm_min;//minutes 1-59
int tm_hour;//hours 0-23
int tm_mday;//day of the month 1-31
int tm_mon;//months since jan 0-11
int tm_year;//years from 1900
int tm_wday;//days since Sunday, 0-6
int tm_yday;//days since Jan 1, 0-365
int tm_isdst;//Daylight Saving time indicator
};

没有评论: