sem_timedwait関数の第二引数に渡す構造体の定義の仕方がわかりません。
マニュアルには以下のように記述してあります。
sem_timedwait() is the same as sem_wait(), except that abs_timeout specifies a limit on the amount of time that the call should block if the decrement cannot be immediately performed. The abs_timeout argu‐ ment points to a structure that specifies an absolute timeout in sec‐ onds and nanoseconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC). This structure is defined as follows: struct timespec { time_t tv_sec; /* Seconds */ long tv_nsec; /* Nanoseconds [0 .. 999999999] */ };
ファイルの中で
struct timespec *time_limit = {0xFFFFFFFF, 0xFFFFFFFF};
のように構造体を定義し、実際に使用する箇所では
C
1sem_timedwait(sem_id, time_limit);
としています。
この状態でコンパイルすると以下のエラーが出ます。
error: initialization makes pointer from integer without a cast [-Werror=int-conversion] error: excess elements in scalar initializer [-Werror]
ポインタが理解できていないためかと思いますが、どのように定義すれば良いのでしょうか?
ご教示いただけますと幸いです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/12 04:55