如何在C中获得小时的UNIX时间,就像Python那样?
我使用http://bytes.com/topic/c/answers/221083-how-show-unix-time-c
在C中拥有的内容me@laptop$ ./time
1299556464
我想要什么,它适用于Python:
>>> time.time()
1299556249.3973091
答案 0 :(得分:1)
#include <sys/time.h>
struct timeval tv;
gettimeofday(&tv, 0);
printf("%d.%06d", (int)tv.tv_sec, (int)tv.tv_usec); // Corrected -> to . (it's late!)
据官方统计,POSIX 2008已弃用gettimeofday()
,但在可预见的未来可能会出现这种情况。在接下来的四分之一世纪左右,演员阵容足够安全;之后,32位int
类型可能会出现问题。第二个参数严格地是空指针;编译器会处理这种胁迫。指针的任何非null值都具有实现定义的含义。该函数始终返回0;在测试其回报价值方面没有任何优点。
答案 1 :(得分:1)
一切都是开源的,很容易找到Python正在做的事情。
来自Python/Modules/timemodule.c
,
static double
floattime(void)
{
/* There are three ways to get the time:
(1) gettimeofday() -- resolution in microseconds
(2) ftime() -- resolution in milliseconds
(3) time() -- resolution in seconds
还有POSIX函数clock_gettime
,其分辨率为纳秒级。