日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトル
目次
まえがき
リファレンス・セクション
   ≫ライブラリ関数一覧
索引
PDF
OpenVMS ホーム

HP OpenVMS
HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)


目次 索引




高精度のスリープです (リアルタイム)。指定された時間だけ,プロセス (プログラムがスレッド化されている場合はスレッド) の実行を中断します。

形式

#include <time.h>

int nanosleep (const struct timespec *rqtp, struct timespec *rmtp);


引数



rqtp

呼び出し元のプロセスまたはスレッドを中断する時間を指定する timespec構造体へのポインタ。

rmtp

以前に要求されていた時間の残り時間 (時間が完全に経過した場合は,ゼロ) を受け取る timespecデータ構造体へのポインタ。

説明

nanosleep関数は,次のいずれかの条件を満たすまで,プロセスまたはスレッドの実行を中断します。

  • rqtp 引数で指定された時間が経過した。

  • 呼び出し元プロセスにシグナルが渡され,その動作がシグナル・キャッチ関数の起動,またはプロセスの終了である。

引数の値がスリープの精度の整数倍に切り上げられたり,システムにより他の動作がスケジューリングされることがあるため,中断時間は,要求された時間よりも長くなることがあります。シグナルによって割り込まれた場合を除き,中断時間は, rqtp 引数で指定された時間より短くなることはありません (システム・クロック CLOCK_REALTIME で計測されます)。

nanosleep関数を使用しても,シグナルの動作やブロック条件には影響しません。

要求された時間が経過した場合,呼び出しが成功し, nanosleep関数はゼロを返します。

失敗すると, nanosleep関数は - 1 を返し,失敗を示す値を errnoに設定します。この関数は,シグナルに割り込まれるか,指定された rqtp 引数が0 より小さいか 10 億以上の場合に失敗します。

rmtp 引数が NULL でない場合,この引数が指す timespec構造体は,時間間隔の残り時間 (要求された時間から実際にスリープした時間を引いたもの) を含むようにアップデートされます。

rmtp 引数が NULL の場合,残り時間は返されません。

clock_getresclock_gettimeclock_settime,および sleepも参照してください。


戻り値

0 成功を示します。要求された時間が経過しました。
-1    失敗を示します。関数呼び出しが成功しなかったか,シグナルに割り込まれました。次の値のいずれかが, errno に設定されます。

  • EINTR -- nanosleep 関数が,シグナルに割り込まれました。

  • EINVAL -- rqtp 引数が, 0 より小さい,または 10 億以上のナノ秒値を指定していました。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.