3

我正在编译一些简单的代码:

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

4

2 回答 2

5

timespec并且nanosleep在 C99 标准中被提及 0 次。它不是标准 C 的一部分,无法在标准time.h文件中找到,因此无法在std.c.time.

于 2012-06-30T08:01:27.837 回答
4

正如 nightcracker right 所指出的,nanosleep()它不属于 C99 标准,但它属于 POSIX,因此,所需要的只是import core.sys.posix.time;. 一个普遍的结论,搜索 D 库/接口。

于 2012-06-30T11:15:08.017 回答