JM プロジェクトは、主に Linux 関連のマニュアルページの日本語ページを翻訳・公開しています。
... 休止の残り時間を返す。 属性 この節で使用されている用語の説明については、 attributes (7) を参照。 インターフェース 属性 値 sleep () Thread safety MT-Unsafe sig:SIGCHLD/linux 準拠 POSIX.1-2001, POSIX.1-2008. 注意 On Linux, sleep () is implemented via n ... anosleep (2). See the nanosleep (2) man page for a discussion of the clock used. Portability notes On some systems, sleep () may be ... implemented using alarm (2) and SIGALRM (POSIX.1 permits this); mixing calls to alarm (2) and sleep () is a bad idea. 休止中にシグナルハンドラーから longjmp (3) を使用することや SIGALRM のハンドリングを変更することは、定義 ... ... して待つ。 引数は数値で、あとに単位を続けることもできる。デフォルトは秒。 単位は以下の通り: s 秒 m 分 h 時間 d 日 sleep はサスペンド中もカウントを続け、 フォアグラウンドに来たときに時間が残っている場合は、再び停止して待つ。 オプション --help ... ... mount of memory */ for (int j = 0; j < numBlocks; j++) if (malloc(blockSize * (2 + tn)) == NULL) errExit("malloc-thread"); sleep(100); /* Sleep until main thread terminates */ return NULL; } int main(int argc, char *argv[]) { int sleepTime; if (argc < ... 4) { fprintf(stderr, "%s num-threads num-blocks block-size [sleep-time]\n", argv[0]); exit(EXIT_FAILURE); } numThreads = atoi(argv[1]); numBlocks = atoi(argv[2]); blockSize = atoi(argv[3]) ... ; sleepTime = (argc > 4) ? atoi(argv[4]) : 0; pthread_t *thr = calloc(numThreads, sizeof(*thr)); if (thr == NULL) errExit("calloc" ... ... 響を与える。 alarm () で作成されたアラームは execve (2) の前後で保持され、 fork (2) で作成された子プロセスには継承されない。 sleep (3) は SIGALRM を利用して実装されているかもしれない。 alarm () と sleep (3) を混ぜて使用してはならない。 スケジューリング( ... 目 gettimeofday (2), pause (2), select (2), setitimer (2), sigaction (2), signal (2), timer_create (2), timerfd_create (2), sleep (3), time (7) この文書について この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説 ... ... ULL); if (s != 0) handle_error_en(s, "pthread_setcancelstate"); printf("thread_func(): started; cancellation disabled\n"); sleep (5); printf("thread_func(): about to enable cancellation\n"); s = pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); if ... (s != 0) handle_error_en(s, "pthread_setcancelstate"); /* sleep() is a cancellation point */ sleep(1000); /* Should get canceled while we sleep */ /* Should never get here */ printf("thr ... cellation request */ s = pthread_create(&thr, NULL, &thread_func, NULL); if (s != 0) handle_error_en(s, "pthread_create"); sleep (2); /* Give thread a chance to get started */ printf("main(): sending cancellation request\n"); s = pthread_cancel(thr); ... ... s (7) 参照): usleep (): glibc 2.12 以降: (_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200809L) || /* Glibc 2.19 以降: */ _DEFAULT_SOURCE || ... /* Glibc 2.19 以前: */ _BSD_SOURCE glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE >= 500 説明 usleep () 関数は (少なくとも) usec マイクロ秒の間、 呼び出し元スレッドの実行を延期する。 システムの動作状況や呼び出しによる時間の ... 消費やシステムタイマーの粒度によって、 停止時間は設定した値よりも少し延ばされるかもしれない。 返り値 usleep () 関数は成功すると 0 を返す。 エラーの場合、 -1 が返され、 errno にエラーの原因を示す値が設定される。 エラー EINTR シグナ ... ... で競合なく完了しなかった場合、 カーネルに仲裁させるためにシステムコールを呼ぶ必要がある。 仲裁というのは、呼び出しプロセスを sleep (起床待ち) させたり、反対に 待ちプロセスを wake させたりすることを意味する。 この関数を呼び出すプロセスは futex (7) に記述 ... されている: FUTEX_WAIT この操作は futex アドレス uaddr に指定された値 val がまだ格納されているかどうかを不可分操作で検証し、 sleep 状態で この futex アドレスに対して FUTEX_WAKE が実行されるのを待つ。 timeout 引き数が NULL でない場合、その内容は待ち時間の ... デクリメントで負の値 (競合を表す) になった場合に実行され、 別のプロセスがその futex を解放し FUTEX_WAKE の操作を実行するまで sleep する。 FUTEX_WAKE この操作では指定した futex アドレスに対して待ち状態の (すなわち FUTEX_WAIT 中の) 最大 val 個のプロセスを ... ... rrExitEN(en, msg) \ do { errno = en; perror(msg); \ exit(EXIT_FAILURE); } while (0) static void * threadfunc(void *parm) { sleep (5); // allow main program to set the thread name return NULL; } int main(int argc, char **argv) { pthread_t thread; int r ... e); rc = pthread_setname_np(thread, (argc > 1) ? argv[1] : "THREADFOO"); if (rc != 0) errExitEN(rc, "pthread_setname_np"); sleep (2); rc = pthread_getname_np(thread, thread_name, (argc > 2) ? atoi(argv[1]) : NAMELEN); if (rc != 0) errExitEN(rc, "pthre ... ... rrExitEN(en, msg) \ do { errno = en; perror(msg); \ exit(EXIT_FAILURE); } while (0) static void * threadfunc(void *parm) { sleep (5); // allow main program to set the thread name return NULL; } int main(int argc, char **argv) { pthread_t thread; int r ... e); rc = pthread_setname_np(thread, (argc > 1) ? argv[1] : "THREADFOO"); if (rc != 0) errExitEN(rc, "pthread_setname_np"); sleep (2); rc = pthread_getname_np(thread, thread_name, (argc > 2) ? atoi(argv[1]) : NAMELEN); if (rc != 0) errExitEN(rc, "pthre ... ... ump (8) using coredumpctl (1): $ coredumpctl list | tail -5 Wed 2017-10-11 22:25:30 CEST 2748 1000 1000 3 present /usr/bin/sleep Thu 2017-10-12 06:29:10 CEST 2716 1000 1000 3 present /usr/bin/sleep Thu 2017-10-12 06:30:50 CEST 2767 1000 1000 3 present ... /usr/bin/sleep Thu 2017-10-12 06:37:40 CEST 2918 1000 1000 3 present /usr/bin/cat Thu 2017-10-12 08:13:07 CEST 2955 1000 1000 3 present / ... .c $ su Password: # echo "|$PWD/core_pattern_pipe_test %p UID=%u GID=%g sig=%s" > \ /proc/sys/kernel/core_pattern # exit $ sleep 100 ha\ # type control-backslash Quit (core dumped) $ cat core.info argc=5 argc[0]=</home/mtk/core_pattern_pipe_test> argc ... 日本語の文書やマニュアルを配布している個人/プロジェクトへのリンクです。