2012-06-30 44 views
3

我編寫一些簡單的代碼不能編譯一些簡單的代碼d

Error: undefined identifier timespec 
Error: undefined identifier nanosleep 

std.c.time僅僅是一個快捷方式到C的time.h。 如果我調用time.h中定義的其他函數,比如說clock(),那就OK了。 如果我用C編寫類似的代碼(使用nanosleep()),那就OK了。 在time.h我看到timespecnanosleep聲明被放在一些#ifdef,可能它與我的問題有關?

我怎樣才能編譯它?

我的工作環境是: DMD v2.059 的Ubuntu 12.04

+3

爲什麼不使用'std.datetime'? – DejanLekic

回答

4

由於nightcracker權指出,nanosleep()不屬於C99標準,但它屬於POSIX,因此,需要所有的import core.sys.posix.time;。 一個一般性結論,搜索D庫/接口。

5

timespecnanosleep在C99標準正好提到0次。它不是標準C的一部分,不能在標準time.h文件中找到,因此無法在std.c.time中找到。

+0

是的,事實上,當我發佈這個問題時,我得到了它。當然,在D運行時,看起來不是time.h,而是time.di。 – segfault

+0

@segfault如果這回答你的問題,那麼不要忘記接受它。現在,你的問題被列爲未答覆,因爲你還沒有接受答案。 –