sleep() - スレッドの実行の中断

標準

標準/拡張機能 C/C++ 依存項目

POSIX.1
XPG4
XPG4.2
Single UNIX Specification、バージョン 3

両方

POSIX(ON)

形式

#define _POSIX_SOURCE
#include <unistd.h>

unsigned int sleep(unsigned int seconds);

機能説明

seconds の指定番号について、スレッド実行を中断 します。プロセッサーの遅延のために、スレッドはこの指定時間より 少し長くスリープできます。このとき受信された (そのために、アクションで シグナル・ハンドラー関数が起動されるか、またはスレッドが 終了される) 非ブロック化シグナルによって、スレッドが早まって 「ウェイクアップ」されます。その関数が戻る時には、スリープ時間が残っていても、sleep() は即時に戻ります。

この関数がサポートされるのは、POSIX プログラムだけです。

戻り値

スレッドが指定時間いっぱいスリープしていた場合には、sleep() は 0 を戻します。

そのアクションがシグナル処理関数を起動するか、または スレッドを終了させるシグナルのために、スレッドが早目に ウェイクアップした場合、sleep() は、スリープ時間の残りの 秒数 (つまり、seconds の値 - スレッドが中断された 実際の秒数) を戻します。

sleep() は常に正常終了するため、失敗の戻りはありません。この関数の正常終了を妨げる障害が発生したときは、異常終了が生成されます。

設定される errno 値はありません。

CELEBS29
⁄* CELEBS29

   This example suspends execution for a specified time.

 *⁄
#define _POSIX_SOURCE
#include <stdio.h>
#include <time.h>
#include <unistd.h>

main() {
  unsigned int ret;
  time_t t;
  time(&t);
  printf("starting sleep at %s", ctime(&t));
  ret = sleep(10);
  time(&t);
  printf("naptime over at %s", ctime(&t));
  printf("sleep() returned %d¥n", ret);
}
出力:
starting sleep at Fri Jun 16 07:44:47 2006
naptime over at Fri Jun 16 07:44:58 2006
sleep() returned 0

関連情報