<p>这是你的问题?在</p>
<p><a href="http://bugs.gentoo.org/show_bug.cgi?id=330937" rel="nofollow">http://bugs.gentoo.org/show_bug.cgi?id=330937</a></p>
<p><em>编辑</em>C测试代码</p>
<pre class="lang-c prettyprint-override"><code>#include <stdio.h>
#include <sys/time.h>
typedef struct timeval _PyTime_timeval;
void _PyTime_gettimeofday(_PyTime_timeval *tp)
{
/* There are three ways to get the time:
(1) gettimeofday() resolution in microseconds
(2) ftime() resolution in milliseconds
(3) time() resolution in seconds
In all cases the return value in a timeval struct.
Since on some systems (e.g. SCO ODT 3.0) gettimeofday() may
fail, so we fall back on ftime() or time().
Note: clock resolution does not imply clock accuracy! */
#ifdef HAVE_GETTIMEOFDAY
#ifdef GETTIMEOFDAY_NO_TZ
if (gettimeofday(tp) == 0)
return;
#else /* !GETTIMEOFDAY_NO_TZ */
if (gettimeofday(tp, (struct timezone *)NULL) == 0)
return;
#endif /* !GETTIMEOFDAY_NO_TZ */
#endif /* !HAVE_GETTIMEOFDAY */
#if defined(HAVE_FTIME)
{
struct timeb t;
ftime(&t);
tp->tv_sec = t.time;
tp->tv_usec = t.millitm * 1000;
}
#else /* !HAVE_FTIME */
tp->tv_sec = time(NULL);
tp->tv_usec = 0;
#endif /* !HAVE_FTIME */
return;
}
int main(int argc, char** argv) {
_PyTime_timeval time;
_PyTime_gettimeofday(&time);
double tval = 0;
tval = (double) time.tv_sec + time.tv_usec * 0.000001;
printf("Time value was %f\n", tval);
}
</code></pre>
<p>如果我用<code>gcc -DHAVE_GETTIMEOFDAY testtime.c</code>编译这个文件,我得到一个工作时间输出,这就是python的秘密。在</p>
<p>也许在嵌入式平台上,你需要让python相信c库提供的时间函数是错误的,或者kernel/c lib位出现了问题</p>