我正在编译一些简单的代码:
import std.c.time;
.
.
.
timespec zero;
nanosleep(&zero, null);
.
.
.
我得到的是:
Error: undefined identifier timespec
Error: undefined identifier nanosleep
std.c.time
仅仅是C time.h
的快捷方式。
如果我调用time.h
中定义的其他函数,比如clock()
,那就没关系。
如果我在C中编写类似的代码(使用nanosleep()
),那就没关系。
在time.h
我看到timespec
和nanosleep
声明放在某些#ifdef
之下,可能与我的问题有关吗?
我怎样才能编译它?
我的工作环境是: dmd v2.059 Ubuntu 12.04
答案 0 :(得分:5)
timespec
和nanosleep
正好被提及0次。它不是标准C的一部分,无法在标准time.h
文件中找到,因此无法在std.c.time
中找到。
答案 1 :(得分:4)
正如Nightcracker右手所指出的,nanosleep()
不属于C99标准,但它属于POSIX,因此,所需要的只是import core.sys.posix.time;
。
一个总的结论,搜索D库/接口。