C11
标准提供timespec_get
功能。如果我在 cppreference 或我的计算机上运行示例代码,它可以工作:
#include <stdio.h>
#include <time.h>
int main(void)
{
struct timespec ts;
timespec_get(&ts, TIME_UTC);
char buff[100];
strftime(buff, sizeof buff, "%D %T", gmtime(&ts.tv_sec));
printf("Current time: %s.%09ld UTC\n", buff, ts.tv_nsec);
}
但是,如果我在这里查看 glibc 的来源,代码如下:
#include <time.h>
/* Set TS to calendar time based in time base BASE. */
int
timespec_get (struct timespec *ts, int base)
{
switch (base)
{
case TIME_UTC:
/* Not supported. */
return 0;
default:
return 0;
}
return base;
}
stub_warning (timespec_get)
哪个......不应该工作......
这就引出了一个问题:timespec_get
实际调用的源代码在哪里?