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()、それで問題ありません。類似nanosleep()のコードを C で ( を使用して) 記述すれば、それで問題ありません。と宣言がいくつかの下に置かれていることがわかりtime.hますが、おそらくそれは私の問題と関係がありますか?timespecnanosleep#ifdef

どうすればコンパイルできますか?

私の作業環境は次のとおりです。dmd v2.059 Ubuntu 12.04

4

2 に答える 2

5

timespecC99 標準でnanosleepは正確に 0 回言及されています。これは標準 C の一部ではなく、標準time.hファイルには見つからないため、std.c.time.

于 2012-06-30T08:01:27.837 に答える
4

nightcracker rightが指摘したように、nanosleep()C99標準には属していませんが、POSIXに属しているため、必要なのはimport core.sys.posix.time;. 1 つの一般的な結論として、D ライブラリ/インターフェイスを検索します。

于 2012-06-30T11:15:08.017 に答える