OSDN Git Service

Retire LDP man-pages repository
[linuxjm/LDP_man-pages.git] / release / man3 / pthread_attr_init.3
diff --git a/release/man3/pthread_attr_init.3 b/release/man3/pthread_attr_init.3
deleted file mode 100644 (file)
index 91e78b9..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-.\" Copyright (c) 2008 Linux Foundation, written by Michael Kerrisk
-.\"     <mtk.manpages@gmail.com>
-.\"
-.\" %%%LICENSE_START(VERBATIM)
-.\" Permission is granted to make and distribute verbatim copies of this
-.\" manual provided the copyright notice and this permission notice are
-.\" preserved on all copies.
-.\"
-.\" Permission is granted to copy and distribute modified versions of this
-.\" manual under the conditions for verbatim copying, provided that the
-.\" entire resulting derived work is distributed under the terms of a
-.\" permission notice identical to this one.
-.\"
-.\" Since the Linux kernel and libraries are constantly changing, this
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
-.\" responsibility for errors or omissions, or for damages resulting from
-.\" the use of the information contained herein.  The author(s) may not
-.\" have taken the same level of care in the production of this manual,
-.\" which is licensed free of charge, as they might when working
-.\" professionally.
-.\"
-.\" Formatted or processed versions of this manual, if unaccompanied by
-.\" the source, must acknowledge the copyright and authors of this work.
-.\" %%%LICENSE_END
-.\"
-.\"*******************************************************************
-.\"
-.\" This file was generated with po4a. Translate the source file.
-.\"
-.\"*******************************************************************
-.\"
-.\" Japanese Version Copyright (c) 2012  Akihiro MOTOKI
-.\"         all rights reserved.
-.\" Translated 2012-05-03, Akihiro MOTOKI <amotoki@gmail.com>
-.\"
-.TH PTHREAD_ATTR_INIT 3 2008\-11\-11 Linux "Linux Programmer's Manual"
-.SH 名前
-pthread_attr_init, pthread_attr_destroy \-
-スレッド属性オブジェクトの初期化と破棄を行う
-.SH 書式
-.nf
-\fB#include <pthread.h>\fP
-
-\fBint pthread_attr_init(pthread_attr_t *\fP\fIattr\fP\fB);\fP
-\fBint pthread_attr_destroy(pthread_attr_t *\fP\fIattr\fP\fB);\fP
-.sp
-\fI\-pthread\fP でコンパイルしてリンクする。
-.fi
-.SH 説明
-\fBpthread_attr_init\fP() 関数は \fIattr\fP が指すスレッド属性オブジェクト
-(thread attributes object) をデフォルトの属性値で初期化する。
-この呼び出しの後、オブジェクトの各属性は (関連項目に載っている) 種々の
-関数を使って設定することができ、このオブジェクトはスレッドの作成を行う
-\fBpthread_create\fP(3) の呼び出しにおいて使用することができる (一つの
-オブジェクトを複数の \fBpthread_create\fP(3) に渡してもよい)。
-
-すでに初期化されているスレッド属性オブジェクトに対して
-\fBpthread_attr_init\fP() を呼び出した場合、
-どのような動作になるかは不定である。
-
-スレッド属性オブジェクトがもはや必要なくなった際には、
-そのオブジェクトは \fBpthread_attr_destroy\fP() 関数を使って破棄すべきである。
-スレッド属性オブジェクトを破棄しても、
-そのオブジェクトを使って作成されたスレッドには影響はない。
-
-いったん破棄したスレッド属性オブジェクトは、
-\fBpthread_attr_init\fP() を使って再初期化することができる。
-破棄したスレッド属性オブジェクトをこれ以外の用途で
-使った場合の結果は不定である。
-.SH 返り値
-成功すると、これらの関数は 0 を返す。
-エラーの場合、0 以外のエラー番号を返す。
-.SH エラー
-POSIX.1\-2001 では \fBpthread_attr_init\fP() にはエラー \fBENOMEM\fP が
-記載されている。
-Linux では、これらの関数は常に成功する
-(ただし、移植性や将来も動作することを保証したいアプリケーションでは
-正のエラーの返り値を処理するようにすべきである)。
-.SH 準拠
-POSIX.1\-2001.
-.SH 注意
-\fIpthread_attr_t\fP 型の内部構造は意識すべきではない。
-pthreads 関数経由以外でのオブジェクトへのアクセスは移植性がなく、
-どのような結果が得られるかも分からない。
-.SH 例
-下記のプログラムは、\fBpthread_attr_init\fP() と種々の関連関数を使って、
-スレッド属性オブジェクトの初期化を行い、
-そのオブジェクトを使ってスレッドを一つ作成する。
-作成されたスレッドは、作成後に \fBpthread_getattr_np\fP(3) 関数
-(非標準の GNU 拡張) を使ってスレッドの属性を取得し、
-取得した属性を表示する。
-
-コマンドライン引き数なしでプログラムを実行した場合、
-\fBpthread_create\fP(3) の \fIattr\fP 引き数には NULL が渡される。
-この場合、スレッドはデフォルトの属性で作成される。
-このプログラムを NPTL スレッド実装が使われている Linux/x86\-32 で
-動作させると、以下のような出力が得られる。
-
-.in +4n
-.nf
-.\" Results from glibc 2.8, SUSE 11.0; Oct 2008
-$\fB ulimit \-s\fP       # No stack limit ==> default stack size is 2MB
-unlimited
-$\fB ./a.out\fP
-Thread attributes:
-        Detach state        = PTHREAD_CREATE_JOINABLE
-        Scope               = PTHREAD_SCOPE_SYSTEM
-        Inherit scheduler   = PTHREAD_INHERIT_SCHED
-        Scheduling policy   = SCHED_OTHER
-        Scheduling priority = 0
-        Guard size          = 4096 bytes
-        Stack address       = 0x40196000
-        Stack size          = 0x201000 bytes
-.fi
-.in
-
-コマンドライン引き数でスタックサイズが与えられた場合、
-このプログラムは、スレッド属性オブジェクトを初期化し、
-そのオブジェクトの各種属性を設定し、
-\fBpthread_create\fP(3) の呼び出しでこのオブジェクトへのポインターを渡す。
-このプログラムを NPTL スレッド実装が使われている Linux/x86\-32 で
-動作させると、以下のような出力が得られる。
-
-.in +4n
-.nf
-.\" Results from glibc 2.8, SUSE 11.0; Oct 2008
-$\fB ./a.out 0x3000000\fP
-posix_memalign() allocated at 0x40197000
-Thread attributes:
-        Detach state        = PTHREAD_CREATE_DETACHED
-        Scope               = PTHREAD_SCOPE_SYSTEM
-        Inherit scheduler   = PTHREAD_EXPLICIT_SCHED
-        Scheduling policy   = SCHED_OTHER
-        Scheduling priority = 0
-        Guard size          = 0 bytes
-        Stack address       = 0x40197000
-        Stack size          = 0x3000000 bytes
-.fi
-.in
-.SS プログラムのソース
-\&
-.nf
-#define _GNU_SOURCE     /* To get pthread_getattr_np() declaration */
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <errno.h>
-
-#define handle_error_en(en, msg) \e
-        do { errno = en; perror(msg); exit(EXIT_FAILURE); } while (0)
-
-static void
-display_pthread_attr(pthread_attr_t *attr, char *prefix)
-{
-    int s, i;
-    size_t v;
-    void *stkaddr;
-    struct sched_param sp;
-
-    s = pthread_attr_getdetachstate(attr, &i);
-    if (s != 0)
-        handle_error_en(s, "pthread_attr_getdetachstate");
-    printf("%sDetach state        = %s\en", prefix,
-            (i == PTHREAD_CREATE_DETACHED) ? "PTHREAD_CREATE_DETACHED" :
-            (i == PTHREAD_CREATE_JOINABLE) ? "PTHREAD_CREATE_JOINABLE" :
-            "???");
-
-    s = pthread_attr_getscope(attr, &i);
-    if (s != 0)
-        handle_error_en(s, "pthread_attr_getscope");
-    printf("%sScope               = %s\en", prefix,
-            (i == PTHREAD_SCOPE_SYSTEM)  ? "PTHREAD_SCOPE_SYSTEM" :
-            (i == PTHREAD_SCOPE_PROCESS) ? "PTHREAD_SCOPE_PROCESS" :
-            "???");
-
-    s = pthread_attr_getinheritsched(attr, &i);
-    if (s != 0)
-        handle_error_en(s, "pthread_attr_getinheritsched");
-    printf("%sInherit scheduler   = %s\en", prefix,
-            (i == PTHREAD_INHERIT_SCHED)  ? "PTHREAD_INHERIT_SCHED" :
-            (i == PTHREAD_EXPLICIT_SCHED) ? "PTHREAD_EXPLICIT_SCHED" :
-            "???");
-
-    s = pthread_attr_getschedpolicy(attr, &i);
-    if (s != 0)
-        handle_error_en(s, "pthread_attr_getschedpolicy");
-    printf("%sScheduling policy   = %s\en", prefix,
-            (i == SCHED_OTHER) ? "SCHED_OTHER" :
-            (i == SCHED_FIFO)  ? "SCHED_FIFO" :
-            (i == SCHED_RR)    ? "SCHED_RR" :
-            "???");
-
-    s = pthread_attr_getschedparam(attr, &sp);
-    if (s != 0)
-        handle_error_en(s, "pthread_attr_getschedparam");
-    printf("%sScheduling priority = %d\en", prefix, sp.sched_priority);
-
-    s = pthread_attr_getguardsize(attr, &v);
-    if (s != 0)
-        handle_error_en(s, "pthread_attr_getguardsize");
-    printf("%sGuard size          = %d bytes\en", prefix, v);
-
-    s = pthread_attr_getstack(attr, &stkaddr, &v);
-    if (s != 0)
-        handle_error_en(s, "pthread_attr_getstack");
-    printf("%sStack address       = %p\en", prefix, stkaddr);
-    printf("%sStack size          = 0x%x bytes\en", prefix, v);
-}
-
-static void *
-thread_start(void *arg)
-{
-    int s;
-    pthread_attr_t gattr;
-
-    /* pthread_getattr_np() is a non\-standard GNU extension that
-       retrieves the attributes of the thread specified in its
-       first argument */
-
-    s = pthread_getattr_np(pthread_self(), &gattr);
-    if (s != 0)
-        handle_error_en(s, "pthread_getattr_np");
-
-    printf("Thread attributes:\en");
-    display_pthread_attr(&gattr, "\et");
-
-    exit(EXIT_SUCCESS);         /* Terminate all threads */
-}
-
-int
-main(int argc, char *argv[])
-{
-    pthread_t thr;
-    pthread_attr_t attr;
-    pthread_attr_t *attrp;      /* NULL or &attr */
-    int s;
-
-    attrp = NULL;
-
-    /* If a command\-line argument was supplied, use it to set the
-       stack\-size attribute and set a few other thread attributes,
-       and set attrp pointing to thread attributes object */
-
-    if (argc > 1) {
-        int stack_size;
-        void *sp;
-
-        attrp = &attr;
-
-        s = pthread_attr_init(&attr);
-        if (s != 0)
-            handle_error_en(s, "pthread_attr_init");
-
-        s = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-        if (s != 0)
-            handle_error_en(s, "pthread_attr_setdetachstate");
-
-        s = pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED);
-        if (s != 0)
-            handle_error_en(s, "pthread_attr_setinheritsched");
-
-        stack_size = strtoul(argv[1], NULL, 0);
-
-        s = posix_memalign(&sp, sysconf(_SC_PAGESIZE), stack_size);
-        if (s != 0)
-            handle_error_en(s, "posix_memalign");
-
-        printf("posix_memalign() allocated at %p\en", sp);
-
-        s = pthread_attr_setstack(&attr, sp, stack_size);
-        if (s != 0)
-            handle_error_en(s, "pthread_attr_setstack");
-    }
-
-    s = pthread_create(&thr, attrp, &thread_start, NULL);
-    if (s != 0)
-        handle_error_en(s, "pthread_create");
-
-    if (attrp != NULL) {
-        s = pthread_attr_destroy(attrp);
-        if (s != 0)
-            handle_error_en(s, "pthread_attr_destroy");
-    }
-
-    pause();    /* Terminates when other thread calls exit() */
-}
-.fi
-.SH 関連項目
-.ad l
-.nh
-\fBpthread_attr_setaffinity_np\fP(3), \fBpthread_attr_setdetachstate\fP(3),
-\fBpthread_attr_setguardsize\fP(3), \fBpthread_attr_setinheritsched\fP(3),
-\fBpthread_attr_setschedparam\fP(3), \fBpthread_attr_setschedpolicy\fP(3),
-\fBpthread_attr_setscope\fP(3), \fBpthread_attr_setstack\fP(3),
-\fBpthread_attr_setstackaddr\fP(3), \fBpthread_attr_setstacksize\fP(3),
-\fBpthread_create\fP(3), \fBpthread_getattr_np\fP(3), \fBpthreads\fP(7)
-.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
-である。プロジェクトの説明とバグ報告に関する情報は
-http://www.kernel.org/doc/man\-pages/ に書かれている。