msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2013-04-30 20:30+0900\n"
-"PO-Revision-Date: 2013-05-01 13:56+0900\n"
+"POT-Creation-Date: 2015-02-04 23:31+0900\n"
+"PO-Revision-Date: 2015-01-25 06:45+0900\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
msgstr "SEM_CLOSE"
#. type: TH
-#: build/C/man3/sem_close.3:26 build/C/man3/sem_destroy.3:26
-#: build/C/man3/sem_getvalue.3:26 build/C/man3/sem_init.3:26
-#: build/C/man3/sem_open.3:26 build/C/man7/sem_overview.7:26
-#: build/C/man3/sem_post.3:26 build/C/man3/sem_unlink.3:26
-#: build/C/man3/sem_wait.3:26
+#: build/C/man3/sem_close.3:26 build/C/man3/sem_open.3:26
+#: build/C/man7/sem_overview.7:26
#, no-wrap
msgid "2012-05-13"
msgstr "2012-05-13"
#: build/C/man3/sem_getvalue.3:54 build/C/man3/sem_init.3:77
#: build/C/man3/sem_open.3:104 build/C/man3/sem_post.3:45
#: build/C/man3/sem_unlink.3:44 build/C/man3/sem_wait.3:108
-#: build/C/man2/semctl.2:340 build/C/man2/semget.2:157
-#: build/C/man2/semop.2:309
+#: build/C/man2/semctl.2:340 build/C/man2/semget.2:147
+#: build/C/man2/semop.2:298
#, no-wrap
msgid "RETURN VALUE"
msgstr "返り値"
#: build/C/man3/sem_getvalue.3:60 build/C/man3/sem_init.3:83
#: build/C/man3/sem_open.3:116 build/C/man3/sem_post.3:52
#: build/C/man3/sem_unlink.3:50 build/C/man3/sem_wait.3:114
-#: build/C/man2/semctl.2:387 build/C/man2/semget.2:163
-#: build/C/man2/semop.2:319
+#: build/C/man2/semctl.2:387 build/C/man2/semget.2:153
+#: build/C/man2/semop.2:308
#, no-wrap
msgid "ERRORS"
msgstr "エラー"
#: build/C/man3/sem_open.3:132 build/C/man3/sem_open.3:137
#: build/C/man3/sem_post.3:53 build/C/man3/sem_wait.3:119
#: build/C/man3/sem_wait.3:133 build/C/man2/semctl.2:420
-#: build/C/man2/semget.2:188 build/C/man2/semop.2:367
+#: build/C/man2/semget.2:177 build/C/man2/semget.2:183
+#: build/C/man2/semop.2:356
#, no-wrap
msgid "B<EINVAL>"
msgstr "B<EINVAL>"
msgstr "I<sem> は有効なセマフォではない。"
#. type: SH
-#: build/C/man3/sem_close.3:54 build/C/man3/sem_destroy.3:66
-#: build/C/man3/sem_getvalue.3:65 build/C/man3/sem_init.3:95
+#: build/C/man3/sem_close.3:54 build/C/man3/sem_destroy.3:71
+#: build/C/man3/sem_getvalue.3:70 build/C/man3/sem_init.3:100
#: build/C/man3/sem_open.3:170 build/C/man7/sem_overview.7:138
-#: build/C/man3/sem_post.3:61 build/C/man3/sem_unlink.3:62
-#: build/C/man3/sem_wait.3:143 build/C/man2/semctl.2:462
-#: build/C/man2/semget.2:219 build/C/man2/semop.2:397
+#: build/C/man3/sem_post.3:66 build/C/man3/sem_unlink.3:67
+#: build/C/man3/sem_wait.3:151 build/C/man2/semctl.2:462
+#: build/C/man2/semget.2:210 build/C/man2/semop.2:386
#, no-wrap
msgid "CONFORMING TO"
msgstr "準拠"
#. type: Plain text
-#: build/C/man3/sem_close.3:56 build/C/man3/sem_destroy.3:68
-#: build/C/man3/sem_getvalue.3:67 build/C/man3/sem_init.3:97
+#: build/C/man3/sem_close.3:56 build/C/man3/sem_destroy.3:73
+#: build/C/man3/sem_getvalue.3:72 build/C/man3/sem_init.3:102
#: build/C/man3/sem_open.3:172 build/C/man7/sem_overview.7:140
-#: build/C/man3/sem_post.3:63 build/C/man3/sem_unlink.3:64
-#: build/C/man3/sem_wait.3:145
+#: build/C/man3/sem_post.3:68 build/C/man3/sem_unlink.3:69
+#: build/C/man3/sem_wait.3:153
msgid "POSIX.1-2001."
msgstr "POSIX.1-2001."
#. type: SH
-#: build/C/man3/sem_close.3:56 build/C/man3/sem_destroy.3:68
-#: build/C/man3/sem_getvalue.3:67 build/C/man3/sem_init.3:97
-#: build/C/man7/sem_overview.7:140 build/C/man3/sem_post.3:63
-#: build/C/man3/sem_wait.3:145 build/C/man2/semctl.2:465
-#: build/C/man2/semget.2:223 build/C/man2/semop.2:400
+#: build/C/man3/sem_close.3:56 build/C/man3/sem_destroy.3:73
+#: build/C/man3/sem_getvalue.3:72 build/C/man3/sem_init.3:102
+#: build/C/man7/sem_overview.7:140 build/C/man3/sem_post.3:68
+#: build/C/man3/sem_wait.3:153 build/C/man2/semctl.2:476
+#: build/C/man2/semget.2:214 build/C/man2/semop.2:389
#, no-wrap
msgid "NOTES"
msgstr "注意"
"All open named semaphores are automatically closed on process termination, "
"or upon B<execve>(2)."
msgstr ""
-"オープンされたすべての名前付きセマフォは、プロセス終了時、もしくは B<execve>"
-"(2) 実行時に自動的にクローズされる。"
+"オープンされたすべての名前付きセマフォは、プロセス終了時、もしくは "
+"B<execve>(2) 実行時に自動的にクローズされる。"
#. type: SH
-#: build/C/man3/sem_close.3:60 build/C/man3/sem_destroy.3:74
-#: build/C/man3/sem_getvalue.3:71 build/C/man3/sem_init.3:102
+#: build/C/man3/sem_close.3:60 build/C/man3/sem_destroy.3:79
+#: build/C/man3/sem_getvalue.3:76 build/C/man3/sem_init.3:107
#: build/C/man3/sem_open.3:172 build/C/man7/sem_overview.7:152
-#: build/C/man3/sem_post.3:70 build/C/man3/sem_unlink.3:64
-#: build/C/man3/sem_wait.3:262 build/C/man2/semctl.2:524
-#: build/C/man2/semget.2:294 build/C/man2/semop.2:536
+#: build/C/man3/sem_post.3:75 build/C/man3/sem_unlink.3:69
+#: build/C/man3/sem_wait.3:270 build/C/man2/semctl.2:536
+#: build/C/man2/semget.2:296 build/C/man2/semop.2:533
#, no-wrap
msgid "SEE ALSO"
msgstr "関連項目"
"B<sem_wait>(3), B<sem_overview>(7)"
#. type: SH
-#: build/C/man3/sem_close.3:67 build/C/man3/sem_destroy.3:79
-#: build/C/man3/sem_getvalue.3:75 build/C/man3/sem_init.3:107
+#: build/C/man3/sem_close.3:67 build/C/man3/sem_destroy.3:84
+#: build/C/man3/sem_getvalue.3:80 build/C/man3/sem_init.3:112
#: build/C/man3/sem_open.3:179 build/C/man7/sem_overview.7:162
-#: build/C/man3/sem_post.3:74 build/C/man3/sem_unlink.3:70
-#: build/C/man3/sem_wait.3:268 build/C/man2/semctl.2:531
-#: build/C/man2/semget.2:301 build/C/man2/semop.2:545
+#: build/C/man3/sem_post.3:79 build/C/man3/sem_unlink.3:75
+#: build/C/man3/sem_wait.3:276 build/C/man2/semctl.2:543
+#: build/C/man2/semget.2:303 build/C/man2/semop.2:542
#, no-wrap
msgid "COLOPHON"
msgstr "この文書について"
#. type: Plain text
-#: build/C/man3/sem_close.3:74 build/C/man3/sem_destroy.3:86
-#: build/C/man3/sem_getvalue.3:82 build/C/man3/sem_init.3:114
-#: build/C/man3/sem_open.3:186 build/C/man7/sem_overview.7:169
-#: build/C/man3/sem_post.3:81 build/C/man3/sem_unlink.3:77
-#: build/C/man3/sem_wait.3:275 build/C/man2/semctl.2:538
-#: build/C/man2/semget.2:308 build/C/man2/semop.2:552
+#: build/C/man3/sem_close.3:75 build/C/man3/sem_destroy.3:92
+#: build/C/man3/sem_getvalue.3:88 build/C/man3/sem_init.3:120
+#: build/C/man3/sem_open.3:187 build/C/man7/sem_overview.7:170
+#: build/C/man3/sem_post.3:87 build/C/man3/sem_unlink.3:83
+#: build/C/man3/sem_wait.3:284 build/C/man2/semctl.2:551
+#: build/C/man2/semget.2:311 build/C/man2/semop.2:550
+#, fuzzy
+#| msgid ""
+#| "This page is part of release 3.78 of the Linux I<man-pages> project. A "
+#| "description of the project, information about reporting bugs, and the "
+#| "latest version of this page, can be found at \\%http://www.kernel.org/doc/"
+#| "man-pages/."
msgid ""
-"This page is part of release 3.51 of the Linux I<man-pages> project. A "
-"description of the project, and information about reporting bugs, can be "
-"found at http://www.kernel.org/doc/man-pages/."
+"This page is part of release 3.79 of the Linux I<man-pages> project. A "
+"description of the project, information about reporting bugs, and the latest "
+"version of this page, can be found at \\%http://www.kernel.org/doc/man-"
+"pages/."
msgstr ""
-"この man ページは Linux I<man-pages> プロジェクトのリリース 3.51 の一部\n"
+"この man ページは Linux I<man-pages> プロジェクトのリリース 3.78 の一部\n"
"である。プロジェクトの説明とバグ報告に関する情報は\n"
"http://www.kernel.org/doc/man-pages/ に書かれている。"
msgid "SEM_DESTROY"
msgstr "SEM_DESTROY"
+#. type: TH
+#: build/C/man3/sem_destroy.3:26 build/C/man3/sem_getvalue.3:26
+#, no-wrap
+msgid "2014-03-03"
+msgstr "2014-03-03"
+
#. type: Plain text
#: build/C/man3/sem_destroy.3:29
msgid "sem_destroy - destroy an unnamed semaphore"
"成功すると、 B<sem_destroy>() は 0 を返す。エラーの場合、-1 を返し、 "
"I<errno> にエラーを示す値をセットする。"
+#. type: SH
+#: build/C/man3/sem_destroy.3:66 build/C/man3/sem_getvalue.3:65
+#: build/C/man3/sem_init.3:95 build/C/man3/sem_post.3:61
+#: build/C/man3/sem_unlink.3:62 build/C/man3/sem_wait.3:143
+#, no-wrap
+msgid "ATTRIBUTES"
+msgstr "属性"
+
+#. type: SS
+#: build/C/man3/sem_destroy.3:67 build/C/man3/sem_getvalue.3:66
+#: build/C/man3/sem_init.3:96 build/C/man3/sem_post.3:62
+#: build/C/man3/sem_unlink.3:63 build/C/man3/sem_wait.3:144
+#, no-wrap
+msgid "Multithreading (see pthreads(7))"
+msgstr "マルチスレッディング (pthreads(7) 参照)"
+
+#. type: Plain text
+#: build/C/man3/sem_destroy.3:71
+msgid "The B<sem_destroy>() function is thread-safe."
+msgstr "B<sem_destroy>() 関数はスレッドセーフである。"
+
#. But not on NPTL, where sem_destroy () is a no-op..
#. type: Plain text
-#: build/C/man3/sem_destroy.3:74
+#: build/C/man3/sem_destroy.3:79
msgid ""
"An unnamed semaphore should be destroyed with B<sem_destroy>() before the "
"memory in which it is located is deallocated. Failure to do this can result "
"in resource leaks on some implementations."
msgstr ""
-"名前なしセマフォは、そのセマフォが置かれているメモリが解放される前に、 "
+"å\90\8då\89\8dã\81ªã\81\97ã\82»ã\83\9eã\83\95ã\82©ã\81¯ã\80\81ã\81\9dã\81®ã\82»ã\83\9eã\83\95ã\82©ã\81\8cç½®ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8c解æ\94¾ã\81\95ã\82\8cã\82\8bå\89\8dã\81«ã\80\81 "
"B<sem_destroy>() を使って破棄しておくべきである。これを行わなかった場合、実"
"装によっては リソースのリークが起こりえる。"
#. type: Plain text
-#: build/C/man3/sem_destroy.3:79
+#: build/C/man3/sem_destroy.3:84
msgid "B<sem_init>(3), B<sem_post>(3), B<sem_wait>(3), B<sem_overview>(7)"
msgstr "B<sem_init>(3), B<sem_post>(3), B<sem_wait>(3), B<sem_overview>(7)"
"I<errno> にエラーを示す値をセットする。"
#. type: Plain text
-#: build/C/man3/sem_getvalue.3:71
+#: build/C/man3/sem_getvalue.3:70
+msgid "The B<sem_getvalue>() function is thread-safe."
+msgstr "B<sem_getvalue>() 関数はスレッドセーフである。"
+
+#. type: Plain text
+#: build/C/man3/sem_getvalue.3:76
msgid ""
"The value of the semaphore may already have changed by the time "
"B<sem_getvalue>() returns."
"る。"
#. type: Plain text
-#: build/C/man3/sem_getvalue.3:75
+#: build/C/man3/sem_getvalue.3:80
msgid "B<sem_post>(3), B<sem_wait>(3), B<sem_overview>(7)"
msgstr "B<sem_post>(3), B<sem_wait>(3), B<sem_overview>(7)"
msgid "SEM_INIT"
msgstr "SEM_INIT"
+#. type: TH
+#: build/C/man3/sem_init.3:26
+#, no-wrap
+msgid "2014-03-10"
+msgstr "2014-03-10"
+
#. type: Plain text
#: build/C/man3/sem_init.3:29
msgid "sem_init - initialize an unnamed semaphore"
"B<mmap>(2), and B<shmget>(2)). (Since a child created by B<fork>(2) "
"inherits its parent's memory mappings, it can also access the semaphore.) "
"Any process that can access the shared memory region can operate on the "
-"semaphore using B<sem_post>(3), B<sem_wait>(3), etc."
+"semaphore using B<sem_post>(3), B<sem_wait>(3), and so on."
msgstr ""
"I<pshared> が 0 以外の場合、セマフォはプロセス間で共有される。セマフォは 共有"
-"メモリ領域に配置すべきである (B<shm_open>(3), B<mmap>(2), B<shmget>(2) 参"
-"ç\85§)ã\80\82 (B<fork>(2) ã\81§ç\94\9fæ\88\90ã\81\95ã\82\8cã\81\9få\90ã\83\97ã\83ã\82»ã\82¹ã\81¯è¦ªã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\82\92ç¶\99æ\89¿"
-"するため、 子プロセスもセマフォにアクセスできる。) 共有メモリ領域にアクセス"
-"ã\81§ã\81\8dã\82\8bã\83\97ã\83ã\82»ã\82¹ã\81ªã\82\89ã\81°ã\80\81ã\81©ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81§ã\82\82 B<sem_post>(3) ã\82\84 B<sem_wait>(3) ã\81ª"
-"どを使ってセマフォを操作できる。"
+"メモリー領域に配置すべきである (B<shm_open>(3), B<mmap>(2), B<shmget>(2) 参"
+"ç\85§)ã\80\82 (B<fork>(2) ã\81§ç\94\9fæ\88\90ã\81\95ã\82\8cã\81\9få\90ã\83\97ã\83ã\82»ã\82¹ã\81¯è¦ªã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\82\92ç¶\99"
+"承するため、 子プロセスもセマフォにアクセスできる。) 共有メモリー領域にアク"
+"ã\82»ã\82¹ã\81§ã\81\8dã\82\8bã\83\97ã\83ã\82»ã\82¹ã\81ªã\82\89ã\81°ã\80\81ã\81©ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81§ã\82\82 B<sem_post>(3) ã\82\84 "
+"B<sem_wait>(3) などを使ってセマフォを操作できる。"
#. type: Plain text
#: build/C/man3/sem_init.3:77
"(B<sem_overview>(7) 参照)。"
#. type: Plain text
-#: build/C/man3/sem_init.3:102
+#: build/C/man3/sem_init.3:100
+msgid "The B<sem_init>() function is thread-safe."
+msgstr "B<sem_init>() 関数はスレッドセーフである。"
+
+#. type: Plain text
+#: build/C/man3/sem_init.3:107
msgid ""
"Bizarrely, POSIX.1-2001 does not specify the value that should be returned "
"by a successful call to B<sem_init>(). POSIX.1-2008 rectifies this, "
"た。"
#. type: Plain text
-#: build/C/man3/sem_init.3:107
+#: build/C/man3/sem_init.3:112
msgid "B<sem_destroy>(3), B<sem_post>(3), B<sem_wait>(3), B<sem_overview>(7)"
msgstr "B<sem_destroy>(3), B<sem_post>(3), B<sem_wait>(3), B<sem_overview>(7)"
"ンを行う。 セマフォは I<name> で識別される。 I<name> の構成の詳細は "
"B<sem_overview>(7) を参照。"
-#. In reality the file system IDs are used on Linux.
+#. In reality the filesystem IDs are used on Linux.
#. type: Plain text
#: build/C/man3/sem_open.3:76
msgid ""
"I<oflag> 引き数には、 B<sem_open>() の動作を制御するフラグを指定する (oflag "
"の値の定義は I<E<lt>fcntl.hE<gt>> のインクルードにより得られる)。 I<oflag> "
"に B<O_CREAT> が指定されると、まだ存在しない場合にはそのセマフォが作成され"
-"る。 セマフォの所有者 (ユーザ ID)、グループ所有権 (グループ ID) には、 それぞ"
-"れ呼び出し元プロセスの実効 UID、実効 GID が設定される。 I<oflag> に "
+"る。 セマフォの所有者 (ユーザー ID)、グループ所有権 (グループ ID) には、 それ"
+"ã\81\9eã\82\8cå\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83ã\82»ã\82¹ã\81®å®\9få\8a¹ UIDã\80\81å®\9få\8a¹ GID ã\81\8cè¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82 I<oflag> ã\81« "
"B<O_CREAT> と B<O_EXCL> の両方が指定された場合、指定された名前 I<name> のセマ"
"フォがすでに存在するとエラーが返される。"
"I<mode> 引き数は、 B<open>(2) と同じように、新しいセマフォに設定されるアクセ"
"ス許可 (permission) を 指定する。許可設定はプロセスの umask でマスクされる "
"(許可ビットのシンボル定義は I<E<lt>sys/stat.hE<gt>> のインクルードにより得ら"
-"ã\82\8cã\82\8b)ã\80\82 ã\82»ã\83\9eã\83\95ã\82©ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\97ã\82\88ã\81\86ã\81¨ã\81\99ã\82\8bã\83¦ã\83¼ã\82¶ã\81¯ã\80\81èªã\81¿å\87ºã\81\97許å\8f¯ã\81¨æ\9b¸ã\81\8dè¾¼ã\81¿è¨±å\8f¯ã\81® "
-"両方を得る必要がある。 I<value> 引き数は新しいセマフォの初期値を指定する。 "
-"B<O_CREAT> が指定され、指定した名前 I<name> のセマフォがすでに存在する場合、 "
-"I<mode> と I<value> は無視される。"
+"ã\82\8cã\82\8b)ã\80\82 ã\82»ã\83\9eã\83\95ã\82©ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\97ã\82\88ã\81\86ã\81¨ã\81\99ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ã\80\81èªã\81¿å\87ºã\81\97許å\8f¯ã\81¨æ\9b¸ã\81\8dè¾¼ã\81¿è¨±å\8f¯"
+"の 両方を得る必要がある。 I<value> 引き数は新しいセマフォの初期値を指定す"
+"る。 B<O_CREAT> が指定され、指定した名前 I<name> のセマフォがすでに存在する場"
+"合、 I<mode> と I<value> は無視される。"
#. type: Plain text
#: build/C/man3/sem_open.3:116
"error."
msgstr ""
"成功すると、 B<sem_open>() は新しいセマフォのアドレスを返す。 このアドレスは"
-"他のセマフォ関連の関数を呼び出す際に使用される。 エラーの場合、 B<sem_open>"
-"() は B<SEM_FAILED> を返し、 I<errno> にエラーを示す値をセットする。"
+"他のセマフォ関連の関数を呼び出す際に使用される。 エラーの場合、 "
+"B<sem_open>() は B<SEM_FAILED> を返し、 I<errno> にエラーを示す値をセットす"
+"る。"
#. type: TP
#: build/C/man3/sem_open.3:117 build/C/man3/sem_unlink.3:51
-#: build/C/man2/semctl.2:391 build/C/man2/semget.2:167
-#: build/C/man2/semop.2:331
+#: build/C/man2/semctl.2:391 build/C/man2/semget.2:157
+#: build/C/man2/semop.2:320
#, no-wrap
msgid "B<EACCES>"
msgstr "B<EACCES>"
"い。"
#. type: TP
-#: build/C/man3/sem_open.3:121 build/C/man2/semget.2:175
+#: build/C/man3/sem_open.3:121 build/C/man2/semget.2:165
#, no-wrap
msgid "B<EEXIST>"
msgstr "B<EEXIST>"
#. type: TP
#: build/C/man3/sem_open.3:151 build/C/man3/sem_unlink.3:58
-#: build/C/man2/semget.2:199
+#: build/C/man2/semget.2:190
#, no-wrap
msgid "B<ENOENT>"
msgstr "B<ENOENT>"
"ではなかった。"
#. type: TP
-#: build/C/man3/sem_open.3:167 build/C/man2/semget.2:207
-#: build/C/man2/semop.2:374
+#: build/C/man3/sem_open.3:167 build/C/man2/semget.2:198
+#: build/C/man2/semop.2:363
#, no-wrap
msgid "B<ENOMEM>"
msgstr "B<ENOMEM>"
#. type: Plain text
#: build/C/man3/sem_open.3:170
msgid "Insufficient memory."
-msgstr "十分なメモリがない。"
+msgstr "å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82"
#. type: Plain text
#: build/C/man3/sem_open.3:179
"passing the same name to B<sem_open>(3)."
msgstr ""
"名前付きセマフォは I</somename> という形式の名前で識別される。 その名前は、最"
-"大で B<NAME_MAX>I<-4> (すなわち 251) 文字の NULL 終端された文字列で、 スラッ"
-"シュで始まり、スラッシュ以外の文字が 1 文字以上続く形式である。 B<sem_open>"
-"(3) に同じ名前を渡すことにより、2 つのプロセス間で同じ名前のセマフォ に対し"
-"操作を行うことができる。"
+"大で B<NAME_MAX>I<-4> (すなわち 251) 文字のヌル終端された文字列で、 スラッ"
+"シュで始まり、スラッシュ以外の文字が 1 文字以上続く形式である。 "
+"B<sem_open>(3) に同じ名前を渡すことにより、2 つのプロセス間で同じ名前のセマ"
+"フォ に対し操作を行うことができる。"
#. type: Plain text
#: build/C/man7/sem_overview.7:79
#: build/C/man7/sem_overview.7:79
#, no-wrap
msgid "B<Unnamed semaphores (memory-based semaphores)>"
-msgstr "B<å\90\8då\89\8dã\81ªã\81\97ã\82»ã\83\9eã\83\95ã\82© (ã\83¡ã\83¢ã\83ªã\83\99ã\83¼ã\82¹ã\83»セマフォ)>"
+msgstr "B<å\90\8då\89\8dã\81ªã\81\97ã\82»ã\83\9eã\83\95ã\82© (ã\83¡ã\83¢ã\83ªã\83¼ã\83\99ã\83¼ã\82¹セマフォ)>"
#. type: Plain text
#: build/C/man7/sem_overview.7:94
"created using B<shm_open>(3))."
msgstr ""
"名前なしセマフォは名前を持たない。その代わり、セマフォは、 複数スレッド間で共"
-"有されるメモリ領域、もしくは複数プロセス間で 共有されたメモリ領域に置かれる "
-"(前者を I<スレッド共有セマフォ (thread-shared semaphore)>、 後者を I<プロセス"
-"共有セマフォ (process-shared semaphore)> と呼ぶ)。スレッド共有セマフォは、同"
-"ã\81\98ã\83\97ã\83ã\82»ã\82¹å\86\85ã\81®ã\82¹ã\83¬ã\83\83ã\83\89é\96\93ã\81§å\85±æ\9c\89ã\81\95ã\82\8cã\82\8b ã\83¡ã\83¢ã\83ªé \98å\9f\9fã\80\81ä¾\8bã\81\88ã\81°å¤§å\9f\9få¤\89æ\95° (global "
-"variable) に配置される。 プロセス共有セマフォは、共有メモリ領域 (例えば、 "
-"B<shmget>(2) を使って作成できる System V 共有メモリ・セグメントや "
-"B<shm_open>(3) ã\82\92使ã\81£ã\81¦ä½\9cæ\88\90ã\81§ã\81\8dã\82\8b POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクト) 内に配置"
+"有されるメモリー領域、もしくは複数プロセス間で 共有されたメモリー領域に置かれ"
+"る (前者を I<スレッド共有セマフォ (thread-shared semaphore)>、 後者を I<プロ"
+"セス共有セマフォ (process-shared semaphore)> と呼ぶ)。スレッド共有セマフォ"
+"ã\81¯ã\80\81å\90\8cã\81\98ã\83\97ã\83ã\82»ã\82¹å\86\85ã\81®ã\82¹ã\83¬ã\83\83ã\83\89é\96\93ã\81§å\85±æ\9c\89ã\81\95ã\82\8cã\82\8b ã\83¡ã\83¢ã\83ªã\83¼é \98å\9f\9fã\80\81ä¾\8bã\81\88ã\81°å¤§å\9f\9få¤\89æ\95° "
+"(global variable) に配置される。 プロセス共有セマフォは、共有メモリー領域 (例"
+"えば、 B<shmget>(2) を使って作成できる System V 共有メモリーセグメントや "
+"B<shm_open>(3) ã\82\92使ã\81£ã\81¦ä½\9cæ\88\90ã\81§ã\81\8dã\82\8b POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクト) 内に配置"
"しなければならない。"
#. type: Plain text
#: build/C/man7/sem_overview.7:105
msgid ""
-"Before being used, an unnamed semaphore must be initialized using B<sem_init>"
-"(3). It can then be operated on using B<sem_post>(3) and B<sem_wait>(3). "
-"When the semaphore is no longer required, and before the memory in which it "
-"is located is deallocated, the semaphore should be destroyed using "
-"B<sem_destroy>(3)."
+"Before being used, an unnamed semaphore must be initialized using "
+"B<sem_init>(3). It can then be operated on using B<sem_post>(3) and "
+"B<sem_wait>(3). When the semaphore is no longer required, and before the "
+"memory in which it is located is deallocated, the semaphore should be "
+"destroyed using B<sem_destroy>(3)."
msgstr ""
"名前なしセマフォは、使用する前に B<sem_init>(3) を使って初期化しなければなら"
"ない。 セマフォは B<sem_post>(3) と B<sem_wait>(3) を使って操作できる。 セ"
-"ã\83\9eã\83\95ã\82©ã\81\8cã\82\82ã\81¯ã\82\84å¿\85è¦\81ã\81ªã\81\8fã\81ªã\81£ã\81\9fã\81¨ã\81\8dã\82\84ã\80\81 ã\82»ã\83\9eã\83\95ã\82©ã\81\8cç½®ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\82\92解æ\94¾ã\81\99ã\82\8bå\89\8d"
-"には、 B<sem_destroy>(3) を使ってセマフォを破棄すべきである。"
+"ã\83\9eã\83\95ã\82©ã\81\8cã\82\82ã\81¯ã\82\84å¿\85è¦\81ã\81ªã\81\8fã\81ªã\81£ã\81\9fã\81¨ã\81\8dã\82\84ã\80\81 ã\82»ã\83\9eã\83\95ã\82©ã\81\8cç½®ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\82\92解æ\94¾ã\81\99ã\82\8b"
+"前には、 B<sem_destroy>(3) を使ってセマフォを破棄すべきである。"
#. type: Plain text
#: build/C/man7/sem_overview.7:108
#. type: SS
#: build/C/man7/sem_overview.7:124
#, no-wrap
-msgid "Accessing named semaphores via the file system"
+msgid "Accessing named semaphores via the filesystem"
msgstr "ファイルシステム経由での名前付きセマフォへのアクセス"
#. type: Plain text
#: build/C/man7/sem_overview.7:135
msgid ""
-"On Linux, named semaphores are created in a virtual file system, normally "
+"On Linux, named semaphores are created in a virtual filesystem, normally "
"mounted under I</dev/shm>, with names of the form B<sem.>I<somename>. (This "
"is the reason that semaphore names are limited to B<NAME_MAX>I<-4> rather "
"than B<NAME_MAX> characters.)"
"control object permissions on a per-user and per-group basis."
msgstr ""
"Linux 2.6.19 以降では、このディレクトリ配下のファイルに対して ACL を 設定で"
-"き、オブジェクトへの許可をユーザ単位、グループ単位で制御することが できる。"
+"き、オブジェクトへの許可をユーザー単位、グループ単位で制御することが できる。"
#. type: Plain text
#: build/C/man7/sem_overview.7:149
"available (especially on older systems) than System V semaphores."
msgstr ""
"System V セマフォ (B<semget>(2), B<semop>(2) など) は古いセマフォ API であ"
-"ã\82\8bã\80\82 POSIX ã\82»ã\83\9eã\83\95ã\82©ã\81¯ System V ã\82\88ã\82\8aã\82\82 ç°¡å\8d\98ã\81§ã\80\81ã\81\86ã\81¾ã\81\8fè¨è¨\88ã\81\95ã\82\8cã\81\9fã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹"
-"ã\82\92æ\8f\90ä¾\9bã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ä¸\80æ\96¹ã\81§ã\80\81POSIX ã\82»ã\83\9eã\83\95ã\82©ã\81¯ System V ã\82»ã\83\9eã\83\95ã\82©ã\81¨æ¯\94ã\81¹ã\82\8bã\81¨ å\88©ç\94¨ã\81§"
-"きるシステムが少ない (特に、古いシステムでは少ない)。"
+"ã\82\8bã\80\82 POSIX ã\82»ã\83\9eã\83\95ã\82©ã\81¯ System V ã\82\88ã\82\8aã\82\82 ç°¡å\8d\98ã\81§ã\80\81ã\81\86ã\81¾ã\81\8fè¨è¨\88ã\81\95ã\82\8cã\81\9fã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼"
+"ã\82¹ã\82\92æ\8f\90ä¾\9bã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ä¸\80æ\96¹ã\81§ã\80\81POSIX ã\82»ã\83\9eã\83\95ã\82©ã\81¯ System V ã\82»ã\83\9eã\83\95ã\82©ã\81¨æ¯\94ã\81¹ã\82\8bã\81¨ å\88©ç\94¨"
+"ã\81§ã\81\8dã\82\8bã\82·ã\82¹ã\83\86ã\83 ã\81\8cå°\91ã\81ªã\81\84 (ç\89¹ã\81«ã\80\81å\8f¤ã\81\84ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯å°\91ã\81ªã\81\84)ã\80\82"
#. type: SH
-#: build/C/man7/sem_overview.7:149 build/C/man3/sem_post.3:67
-#: build/C/man3/sem_wait.3:153 build/C/man2/semop.2:511
+#: build/C/man7/sem_overview.7:149 build/C/man3/sem_post.3:72
+#: build/C/man3/sem_wait.3:161 build/C/man2/semop.2:508
#, no-wrap
msgid "EXAMPLE"
msgstr "例"
#: build/C/man7/sem_overview.7:162
msgid ""
"B<sem_close>(3), B<sem_destroy>(3), B<sem_getvalue>(3), B<sem_init>(3), "
-"B<sem_open>(3), B<sem_post>(3), B<sem_unlink>(3), B<sem_wait>(3), B<pthreads>"
-"(7)"
+"B<sem_open>(3), B<sem_post>(3), B<sem_unlink>(3), B<sem_wait>(3), "
+"B<pthreads>(7)"
msgstr ""
"B<sem_close>(3), B<sem_destroy>(3), B<sem_getvalue>(3), B<sem_init>(3), "
-"B<sem_open>(3), B<sem_post>(3), B<sem_unlink>(3), B<sem_wait>(3), B<pthreads>"
-"(7)"
+"B<sem_open>(3), B<sem_post>(3), B<sem_unlink>(3), B<sem_wait>(3), "
+"B<pthreads>(7)"
#. type: TH
#: build/C/man3/sem_post.3:26
msgid "SEM_POST"
msgstr "SEM_POST"
+#. type: TH
+#: build/C/man3/sem_post.3:26 build/C/man3/sem_unlink.3:26
+#: build/C/man3/sem_wait.3:26
+#, no-wrap
+msgid "2014-02-26"
+msgstr "2014-02-26"
+
#. type: Plain text
#: build/C/man3/sem_post.3:29
msgid "sem_post - unlock a semaphore"
msgstr "一つのセマフォで使用できる最大値を超えてしまうところであった。"
#. type: Plain text
-#: build/C/man3/sem_post.3:67
+#: build/C/man3/sem_post.3:66
+msgid "The B<sem_post>() function is thread-safe."
+msgstr "B<sem_post>() 関数はスレッドセーフである。"
+
+#. type: Plain text
+#: build/C/man3/sem_post.3:72
msgid ""
"B<sem_post>() is async-signal-safe: it may be safely called within a signal "
"handler."
msgstr ""
-"B<sem_post>() ã\81¯ async-signal-safe ã\81§ã\81\82ã\82\8bã\80\82 ã\81¤ã\81¾ã\82\8aã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81®ä¸ã\81§ã\82\82"
-"安全に呼び出すことができる。"
+"B<sem_post>() ã\81¯ async-signal-safe ã\81§ã\81\82ã\82\8bã\80\82 ã\81¤ã\81¾ã\82\8aã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®ä¸ã\81§"
+"も安全に呼び出すことができる。"
#. type: Plain text
-#: build/C/man3/sem_post.3:70
+#: build/C/man3/sem_post.3:75
msgid "See B<sem_wait>(3)."
msgstr "B<sem_wait>(3) 参照。"
#. type: Plain text
-#: build/C/man3/sem_post.3:74
+#: build/C/man3/sem_post.3:79
msgid "B<sem_getvalue>(3), B<sem_wait>(3), B<sem_overview>(7)"
msgstr "B<sem_getvalue>(3), B<sem_wait>(3), B<sem_overview>(7)"
msgstr "指定された名前 I<name> のセマフォが存在しない。"
#. type: Plain text
-#: build/C/man3/sem_unlink.3:70
+#: build/C/man3/sem_unlink.3:67
+msgid "The B<sem_unlink>() function is thread-safe."
+msgstr "B<sem_unlink>() 関数はスレッドセーフである。"
+
+#. type: Plain text
+#: build/C/man3/sem_unlink.3:75
msgid ""
"B<sem_getvalue>(3), B<sem_open>(3), B<sem_post>(3), B<sem_wait>(3), "
"B<sem_overview>(7)"
"B<sem_wait>() は I<sem> が指すセマフォの値を 1 減らす (ロックする)。 セマ"
"フォの値が 0 より大きい場合、減算が実行され、関数は直ちに復帰する。 セマフォ"
"の現在値が 0 の場合には、減算を実行できるようになる (つまり、セマフォの値が "
-"0 ã\82\88ã\82\8a大ã\81\8dã\81ªå\80¤ã\81«ã\81ªã\82\8b) ã\81¾ã\81§ã\80\81ã\82\82ã\81\97ã\81\8fã\81¯ ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81«ã\82\88ã\81£ã\81¦å\91¼ã\81³å\87ºã\81\97ã\81\8cä¸æ\96ã\81\95"
-"れるまで、 関数呼び出しは停止 (block) する。"
+"0 ã\82\88ã\82\8a大ã\81\8dã\81ªå\80¤ã\81«ã\81ªã\82\8b) ã\81¾ã\81§ã\80\81ã\82\82ã\81\97ã\81\8fã\81¯ ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\81£ã\81¦å\91¼ã\81³å\87ºã\81\97ã\81\8cä¸æ\96"
+"ã\81\95ã\82\8cã\82\8bã\81¾ã\81§ã\80\81 é\96¢æ\95°å\91¼ã\81³å\87ºã\81\97ã\81¯å\81\9cæ¢ (block) ã\81\99ã\82\8bã\80\82"
#. type: Plain text
#: build/C/man3/sem_wait.3:69
"B<sem_timedwait>() は B<sem_wait>() と同じだが、セマフォ値の減算をすぐに実"
"行できなかった場合に 関数呼び出しが停止する時間の上限を I<abs_timeout> で指定"
"する点が異なる。 I<abs_timeout> 引き数は、タイムアウト時刻を指定する構造体へ"
-"のポインタである。 この構造体には、タイムアウト時刻を時刻紀元 (Epoch; "
+"ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81«ã\81¯ã\80\81ã\82¿ã\82¤ã\83 ã\82¢ã\82¦ã\83\88æ\99\82å\88»ã\82\92æ\99\82å\88»ç´\80å\85\83 (Epoch; "
"1970-01-01 00:00:00 +0000 (UTC)) からの 経過時間 (秒+ナノ秒) で指定する。 構"
"造体は以下のように定義されている:"
"に、-1 を返し、 I<errno> にエラーを示す値をセットする。"
#. type: TP
-#: build/C/man3/sem_wait.3:115 build/C/man2/semop.2:363
+#: build/C/man3/sem_wait.3:115 build/C/man2/semop.2:352
#, no-wrap
msgid "B<EINTR>"
msgstr "B<EINTR>"
#. type: Plain text
#: build/C/man3/sem_wait.3:119
msgid "The call was interrupted by a signal handler; see B<signal>(7)."
-msgstr "呼び出しはシグナルハンドラにより中断された。 B<signal>(7) 参照。"
+msgstr "å\91¼ã\81³å\87ºã\81\97ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aä¸æ\96ã\81\95ã\82\8cã\81\9fã\80\82 B<signal>(7) å\8f\82ç\85§ã\80\82"
#. type: Plain text
#: build/C/man3/sem_wait.3:126
msgstr "B<sem_trywait>() の場合には、上記に加えて以下のエラーも起こる。"
#. type: TP
-#: build/C/man3/sem_wait.3:126 build/C/man2/semop.2:338
+#: build/C/man3/sem_wait.3:126 build/C/man2/semop.2:327
#, no-wrap
msgid "B<EAGAIN>"
msgstr "B<EAGAIN>"
msgid "The call timed out before the semaphore could be locked."
msgstr "セマフォのロックに成功する前に時間切れとなった。"
+#. type: Plain text
+#: build/C/man3/sem_wait.3:151
+msgid ""
+"The B<sem_wait>(), B<sem_trywait>(), and B<sem_timedwait>() functions are "
+"thread-safe."
+msgstr ""
+"関数 B<sem_wait>(), B<sem_trywait>(), B<sem_timedwait>() はスレッドセーフであ"
+"る。"
+
#. sem_wait() is always interrupted on most other implementations,
#. but on FreeBSD 5.4 SA_RESTART does cause restarting.
#. type: Plain text
-#: build/C/man3/sem_wait.3:153
+#: build/C/man3/sem_wait.3:161
msgid ""
"A signal handler always interrupts a blocked call to one of these functions, "
"regardless of the use of the B<sigaction>(2) B<SA_RESTART> flag."
msgstr ""
-"ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81¯ã\80\81 B<sigaction>(2) ã\81® B<SA_RESTART> ã\83\95ã\83©ã\82°ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bã\81\8b"
-"ã\81©ã\81\86ã\81\8bã\81«é\96¢ã\82\8fã\82\89ã\81\9aã\80\81ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81®å\91¼ã\81³å\87ºã\81\97ã\81\8c å\81\9cæ¢ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©"
-"により常に中断される。"
+"ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯ã\80\81 B<sigaction>(2) ã\81® B<SA_RESTART> ã\83\95ã\83©ã\82°ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8b"
+"ã\81\8bã\81©ã\81\86ã\81\8bã\81«é\96¢ã\82\8fã\82\89ã\81\9aã\80\81ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81®å\91¼ã\81³å\87ºã\81\97ã\81\8c å\81\9cæ¢ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89"
+"ã\83©ã\83¼ã\81«ã\82\88ã\82\8a常ã\81«ä¸æ\96ã\81\95ã\82\8cã\82\8bã\80\82"
#. type: Plain text
-#: build/C/man3/sem_wait.3:172
+#: build/C/man3/sem_wait.3:180
msgid ""
"The (somewhat trivial) program shown below operates on an unnamed "
"semaphore. The program expects two command-line arguments. The first "
"以下に示す (ちょっとした) プログラムは名前なしセマフォの操作を行う。 プログラ"
"ムはコマンドライン引き数を 2 つ取る。 最初の引き数には、 B<SIGALRM> シグナル"
"を生成するためのアラームタイマーの設定に使われる値を 秒単位で指定する。このシ"
-"ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81¯ã\80\81 I<main()> å\86\85ã\81§ B<sem_timedwait>() ã\82\92使ã\81£ã\81¦å¾\85ã\81£ã\81¦ã\81\84ã\82\8bã\82»ã\83\9e"
-"フォを、 B<sem_post>(3) を使って加算する。 2番目の引き数には、 "
+"ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯ã\80\81 I<main()> å\86\85ã\81§ B<sem_timedwait>() ã\82\92使ã\81£ã\81¦å¾\85ã\81£ã\81¦ã\81\84ã\82\8bã\82»"
+"ã\83\9eã\83\95ã\82©ã\82\92ã\80\81 B<sem_post>(3) ã\82\92使ã\81£ã\81¦å\8a ç®\97ã\81\99ã\82\8bã\80\82 2ç\95ªç\9b®ã\81®å¼\95ã\81\8dæ\95°ã\81«ã\81¯ã\80\81 "
"B<sem_timedwait>() に渡すタイムアウトまでの時間を秒単位で指定する。"
#. type: Plain text
-#: build/C/man3/sem_wait.3:182
+#: build/C/man3/sem_wait.3:190
#, no-wrap
msgid ""
"$B< ./a.out 2 3>\n"
"sem_timedwait() timed out\n"
#. type: SS
-#: build/C/man3/sem_wait.3:184
+#: build/C/man3/sem_wait.3:192
#, no-wrap
msgid "Program source"
msgstr "プログラムのソース"
#. type: Plain text
-#: build/C/man3/sem_wait.3:195
+#: build/C/man3/sem_wait.3:203
#, no-wrap
msgid ""
"#include E<lt>unistd.hE<gt>\n"
"#include E<lt>signal.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:197
+#: build/C/man3/sem_wait.3:205
#, no-wrap
msgid "sem_t sem;\n"
msgstr "sem_t sem;\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:200
+#: build/C/man3/sem_wait.3:208
#, no-wrap
msgid ""
"#define handle_error(msg) \\e\n"
" do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:210
+#: build/C/man3/sem_wait.3:218
#, no-wrap
msgid ""
"static void\n"
"}\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:217
+#: build/C/man3/sem_wait.3:225
#, no-wrap
msgid ""
"int\n"
" int s;\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:223
+#: build/C/man3/sem_wait.3:231
#, no-wrap
msgid ""
" if (argc != 3) {\n"
" }\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:226
+#: build/C/man3/sem_wait.3:234
#, no-wrap
msgid ""
" if (sem_init(&sem, 0, 0) == -1)\n"
" handle_error(\"sem_init\");\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:228
+#: build/C/man3/sem_wait.3:236
#, no-wrap
msgid " /* Establish SIGALRM handler; set alarm timer using argv[1] */\n"
msgstr " /* Establish SIGALRM handler; set alarm timer using argv[1] */\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:234
+#: build/C/man3/sem_wait.3:242
#, no-wrap
msgid ""
" sa.sa_handler = handler;\n"
" handle_error(\"sigaction\");\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:236
+#: build/C/man3/sem_wait.3:244
#, no-wrap
msgid " alarm(atoi(argv[1]));\n"
msgstr " alarm(atoi(argv[1]));\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:239
+#: build/C/man3/sem_wait.3:247
#, no-wrap
msgid ""
" /* Calculate relative interval as current time plus\n"
" number of seconds given argv[2] */\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:242
+#: build/C/man3/sem_wait.3:250
#, no-wrap
msgid ""
" if (clock_gettime(CLOCK_REALTIME, &ts) == -1)\n"
" handle_error(\"clock_gettime\");\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:244
+#: build/C/man3/sem_wait.3:252
#, no-wrap
msgid " ts.tv_sec += atoi(argv[2]);\n"
msgstr " ts.tv_sec += atoi(argv[2]);\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:248
+#: build/C/man3/sem_wait.3:256
#, no-wrap
msgid ""
" printf(\"main() about to call sem_timedwait()\\en\");\n"
" continue; /* Restart if interrupted by handler */\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:250
+#: build/C/man3/sem_wait.3:258
#, no-wrap
msgid " /* Check what happened */\n"
msgstr " /* Check what happened */\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:258
+#: build/C/man3/sem_wait.3:266
#, no-wrap
msgid ""
" if (s == -1) {\n"
" printf(\"sem_timedwait() succeeded\\en\");\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:261
+#: build/C/man3/sem_wait.3:269
#, no-wrap
msgid ""
" exit((s == 0) ? EXIT_SUCCESS : EXIT_FAILURE);\n"
"}\n"
#. type: Plain text
-#: build/C/man3/sem_wait.3:268
+#: build/C/man3/sem_wait.3:276
msgid ""
"B<clock_gettime>(2), B<sem_getvalue>(3), B<sem_post>(3), B<sem_overview>(7), "
"B<time>(7)"
msgstr "SEMCTL"
#. type: TH
-#: build/C/man2/semctl.2:41 build/C/man2/semget.2:36
+#: build/C/man2/semctl.2:41
#, no-wrap
-msgid "2012-05-31"
-msgstr "2012-05-31"
+msgid "2013-06-03"
+msgstr "2013-06-03"
#. type: Plain text
#: build/C/man2/semctl.2:44
#. type: Plain text
#: build/C/man2/semctl.2:62
msgid ""
-"B<semctl>() performs the control operation specified by I<cmd> on the "
-"System V semaphore set identified by I<semid>, or on the I<semnum>-th "
-"semaphore of that set. (The semaphores in a set are numbered starting at 0.)"
-msgstr "B<semctl>() は、 I<semid> で指定された System V セマフォ集合 (semaphore set) またはセマフォ集合の I<semnun> 番目のセマフォに対して、 I<cmd> で指定された制御操作を行なう (集合内のセマフォの番号は 0 から始まる)。"
+"B<semctl>() performs the control operation specified by I<cmd> on the System"
+"\\ V semaphore set identified by I<semid>, or on the I<semnum>-th semaphore "
+"of that set. (The semaphores in a set are numbered starting at 0.)"
+msgstr ""
+"B<semctl>() は、 I<semid> で指定された System\\ V セマフォ集合 (semaphore "
+"set) またはセマフォ集合の I<semnun> 番目のセマフォに対して、 I<cmd> で指定さ"
+"れた制御操作を行なう (集合内のセマフォの番号は 0 から始まる)。"
#. type: Plain text
#: build/C/man2/semctl.2:68
msgstr ""
"union semun {\n"
" int val; /* SETVAL の値 */\n"
-" struct semid_ds *buf; /* IPC_STAT, IPC_SET 用のバッファ */\n"
+" struct semid_ds *buf; /* IPC_STAT, IPC_SET 用のバッファー */\n"
" unsigned short *array; /* GETALL, SETALL 用の配列 */\n"
-" struct seminfo *__buf; /* IPC_INFO 用のバッファ\n"
+" struct seminfo *__buf; /* IPC_INFO 用のバッファー\n"
" (Linux 固有) */\n"
"};\n"
" struct ipc_perm sem_perm; /* Ownership and permissions */\n"
" time_t sem_otime; /* Last semop time */\n"
" time_t sem_ctime; /* Last change time */\n"
-" unsigned short sem_nsems; /* No. of semaphores in set */\n"
+" unsigned long sem_nsems; /* No. of semaphores in set */\n"
"};\n"
msgstr ""
"struct semid_ds {\n"
" struct ipc_perm sem_perm; /* 所有権と許可 */\n"
" time_t sem_otime; /* 最後の semop の時刻 */\n"
" time_t sem_ctime; /* 最後に変更が行われた時刻 */\n"
-" unsigned short sem_nsems; /* 集合内のセマフォの数 */\n"
+" unsigned long sem_nsems; /* 集合内のセマフォの数 */\n"
"};\n"
#. type: Plain text
#. type: Plain text
#: build/C/man2/semctl.2:119
msgid "Valid values for I<cmd> are:"
-msgstr "I<cmd> として有効な値は"
+msgstr "I<cmd> として有効な値は次の通りである。"
#. type: TP
#: build/C/man2/semctl.2:119
msgstr ""
"セマフォ集合をただちに削除し、その集合上の B<semop>(2) コールでブロックされ"
"ている全てのプロセスを目覚めさせる (エラー値が返されて、 I<errno> に "
-"B<EIDRM> が設定される)。 呼び出したプロセスの実効ユーザ ID が そのセマフォ集"
-"合の作成者または所有者と一致するか、 呼び出した人が特権を持たなければならな"
+"B<EIDRM> が設定される)。 呼び出したプロセスの実効ユーザー ID が そのセマフォ"
+"集合の作成者または所有者と一致するか、 呼び出した人が特権を持たなければならな"
"い。 I<semnum> 引き数は無視される。"
#. type: TP
#. type: Plain text
#: build/C/man2/semctl.2:181
msgid ""
-"Returns information about system-wide semaphore limits and parameters in the "
+"Return information about system-wide semaphore limits and parameters in the "
"structure pointed to by I<arg.__buf>. This structure is of type I<seminfo>, "
"defined in I<E<lt>sys/sem.hE<gt>> if the B<_GNU_SOURCE> feature test macro "
"is defined:"
msgstr ""
-"ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81§ã\81®ã\82»ã\83\9eã\83\95ã\82©ã\81®å\88¶é\99\90ã\81¨ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92ã\80\81 I<arg.__buf> ã\81\8cæ\8c\87"
-"す構造体に入れて返す。 この構造体は I<seminfo> 型である。 I<seminfo> は "
+"ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81§ã\81®ã\82»ã\83\9eã\83\95ã\82©ã\81®å\88¶é\99\90ã\81¨ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92ã\80\81 I<arg.__buf> ã\81\8c"
+"指す構造体に入れて返す。 この構造体は I<seminfo> 型である。 I<seminfo> は "
"B<_GNU_SOURCE> 機能検査マクロが定義された場合に I<E<lt>sys/sem.hE<gt>> で以下"
"のように定義される:"
"};\n"
msgstr ""
"struct seminfo {\n"
-" int semmap; /* ã\82»ã\83\9eã\83\95ã\82©ã\83»ã\83\9eã\83\83ã\83\97ã\81®æ\9c\80大ã\82¨ã\83³ã\83\88ã\83ª数;\n"
+" int semmap; /* ã\82»ã\83\9eã\83\95ã\82©ã\83\9eã\83\83ã\83\97ã\81®æ\9c\80大ã\82¨ã\83³ã\83\88ã\83ªã\83¼数;\n"
" カーネル内では未使用 */\n"
" int semmni; /* セマフォ集合の最大数 */\n"
" int semmns; /* 全セマフォ集合中のセマフォの\n"
" 最大数; カーネル内では未使用 */\n"
" int semmsl; /* 一つのセマフォ集合の最大セマフォ数 */\n"
" int semopm; /* semop(2) に渡す操作の最大数 */\n"
-" int semume; /* ã\83\97ã\83ã\82»ã\82¹ã\81\82ã\81\9fã\82\8aã\81®ã\82¢ã\83³ã\83\89ã\82¥ã\83»ã\82¨ã\83³ã\83\88ã\83ª\n"
+" int semume; /* ã\83\97ã\83ã\82»ã\82¹ã\81\82ã\81\9fã\82\8aã\81®ã\82¢ã\83³ã\83\89ã\82¥ã\82¨ã\83³ã\83\88ã\83ªã\83¼\n"
" の最大数; カーネル内では未使用 */\n"
" int semusz; /* 構造体 sem_undo のサイズ */\n"
" int semvmx; /* セマフォの最大値 */\n"
#. type: Plain text
#: build/C/man2/semctl.2:231
msgid ""
-"Returns a I<seminfo> structure containing the same information as for "
+"Return a I<seminfo> structure containing the same information as for "
"B<IPC_INFO>, except that the following fields are returned with information "
"about system resources consumed by semaphores: the I<semusz> field returns "
"the number of semaphore sets that currently exist on the system; and the "
#. type: Plain text
#: build/C/man2/semctl.2:242
msgid ""
-"Returns a I<semid_ds> structure as for B<IPC_STAT>. However, the I<semid> "
+"Return a I<semid_ds> structure as for B<IPC_STAT>. However, the I<semid> "
"argument is not a semaphore identifier, but instead an index into the "
"kernel's internal array that maintains information about all semaphore sets "
"on the system."
#. type: Plain text
#: build/C/man2/semctl.2:266
msgid ""
-"The system call returns the value of B<semncnt> for the I<semnum>-th "
-"semaphore of the set (i.e., the number of processes waiting for an increase "
-"of B<semval> for the I<semnum>-th semaphore of the set). The calling "
-"process must have read permission on the semaphore set."
+"Return the value of B<semncnt> for the I<semnum>-th semaphore of the set (i."
+"e., the number of processes waiting for an increase of B<semval> for the "
+"I<semnum>-th semaphore of the set). The calling process must have read "
+"permission on the semaphore set."
msgstr ""
-"システムコールは集合の I<semnum> 番目のセマフォの B<semncnt> の値を返す (集合"
-"の I<semnum> 番目のセマフォの B<semval> の増加を待っているプロセスの数を返"
-"す)。 呼び出したプロセスはそのセマフォ集合に読み込み許可を持たなければならな"
-"い。"
+"集合の I<semnum> 番目のセマフォの B<semncnt> の値を返す (集合の I<semnum> 番"
+"目のセマフォの B<semval> の増加を待っているプロセスの数を返す)。 呼び出したプ"
+"ロセスはそのセマフォ集合に読み込み許可を持たなければならない。"
#. type: TP
#: build/C/man2/semctl.2:266 build/C/man2/semctl.2:355
#. type: Plain text
#: build/C/man2/semctl.2:279
msgid ""
-"The system call returns the value of B<sempid> for the I<semnum>-th "
-"semaphore of the set (i.e., the PID of the process that executed the last "
-"B<semop>(2) call for the I<semnum>-th semaphore of the set). The calling "
-"process must have read permission on the semaphore set."
+"Return the value of B<sempid> for the I<semnum>-th semaphore of the set (i."
+"e., the PID of the process that executed the last B<semop>(2) call for the "
+"I<semnum>-th semaphore of the set). The calling process must have read "
+"permission on the semaphore set."
msgstr ""
-"システムコールは集合の I<semnum> 番目のセマフォの B<sempid> の値 (集合の "
-"I<semnum> 番目のセマフォに最後に B<semop>(2) コールを実行したプロセスの "
-"PID) を返す。 呼び出したプロセスはそのセマフォ集合に読み込み許可を持たなけれ"
-"ばならない。"
+"集合の I<semnum> 番目のセマフォの B<sempid> の値 (集合の I<semnum> 番目のセマ"
+"フォに最後に B<semop>(2) コールを実行したプロセスの PID) を返す。 呼び出した"
+"プロセスはそのセマフォ集合に読み込み許可を持たなければならない。"
#. type: TP
#: build/C/man2/semctl.2:279 build/C/man2/semctl.2:359
#. type: Plain text
#: build/C/man2/semctl.2:287
msgid ""
-"The system call returns the value of B<semval> for the I<semnum>-th "
-"semaphore of the set. The calling process must have read permission on the "
-"semaphore set."
+"Return the value of B<semval> for the I<semnum>-th semaphore of the set. "
+"The calling process must have read permission on the semaphore set."
msgstr ""
-"システムコールは集合の I<semnum> 番目のセマフォの B<semval> の値を返す。 呼び"
-"出したプロセスはそのセマフォ集合に読み込み許可を持たなければならない。"
+"集合の I<semnum> 番目のセマフォの B<semval> の値を返す。 呼び出したプロセスは"
+"そのセマフォ集合に読み込み許可を持たなければならない。"
#. type: TP
#: build/C/man2/semctl.2:287 build/C/man2/semctl.2:363
#. type: Plain text
#: build/C/man2/semctl.2:300
msgid ""
-"The system call returns the value of B<semzcnt> for the I<semnum>-th "
-"semaphore of the set (i.e., the number of processes waiting for B<semval> of "
-"the I<semnum>-th semaphore of the set to become 0). The calling process "
-"must have read permission on the semaphore set."
+"Return the value of B<semzcnt> for the I<semnum>-th semaphore of the set (i."
+"e., the number of processes waiting for B<semval> of the I<semnum>-th "
+"semaphore of the set to become 0). The calling process must have read "
+"permission on the semaphore set."
msgstr ""
-"システムコールは集合の I<semnum> 番目のセマフォの B<semzcnt> の値を返す (集合"
-"の I<semnum> 番目のセマフォの B<semval> の値が 0 になるのを待っているプロセス"
-"の数を返す)。 呼び出したプロセスはそのセマフォ集合に読み込み許可を持たなけれ"
-"ばならない。"
+"集合の I<semnum> 番目のセマフォの B<semzcnt> の値を返す (集合の I<semnum> 番"
+"目のセマフォの B<semval> の値が 0 になるのを待っているプロセスの数を返す)。 "
+"呼び出したプロセスはそのセマフォ集合に読み込み許可を持たなければならない。"
#. type: TP
#: build/C/man2/semctl.2:300
msgstr ""
"集合の全てのセマフォの B<semval> に I<arg.array> で指定された値を設定する。 "
"その集合に関連する I<semid_ds> 構造体の I<sem_ctime> メンバーの値も更新す"
-"ã\82\8bã\80\82 å\85¨ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82»ã\83\9eã\83\95ã\82©ã\81®å¤\89æ\9b´ã\81«ã\81¤ã\81\84ã\81¦ã\81®ã\82¢ã\83³ã\83\89ã\82¥ã\83»ã\82¨ã\83³ã\83\88ã\83ª (B<semop>"
-"(2) を参照) は消去 (clear) される。 セマフォの値の変更により、他のプロセス内"
-"ã\81§ã\83\96ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b B<semop>(2) ã\82³ã\83¼ã\83«ã\81®ç¶\9aè¡\8cã\81\8c許å\8f¯ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81ã\81\9dã\82\8cã\82\89ã\81®ã\83\97ã\83ã\82»"
-"ã\82¹ã\81¯èµ·ã\81\93ã\81\95ã\82\8cã\82\8b (wake up)ã\80\82 I<semnum> å¼\95ã\81\8dæ\95°ã\81¯ç\84¡è¦\96ã\81\95ã\82\8cã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹"
-"はそのセマフォ集合に 変更 (書き込み) 許可を持たなければならない。"
+"ã\82\8bã\80\82 å\85¨ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82»ã\83\9eã\83\95ã\82©ã\81®å¤\89æ\9b´ã\81«ã\81¤ã\81\84ã\81¦ã\81®ã\82¢ã\83³ã\83\89ã\82¥ã\82¨ã\83³ã\83\88ã\83ªã\83¼ "
+"(B<semop>(2) を参照) は消去 (clear) される。 セマフォの値の変更により、他の"
+"ã\83\97ã\83ã\82»ã\82¹å\86\85ã\81§ã\83\96ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b B<semop>(2) ã\82³ã\83¼ã\83«ã\81®ç¶\9aè¡\8cã\81\8c許å\8f¯ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81ã\81\9dã\82\8c"
+"ã\82\89ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¯èµ·ã\81\93ã\81\95ã\82\8cã\82\8b (wake up)ã\80\82 I<semnum> å¼\95ã\81\8dæ\95°ã\81¯ç\84¡è¦\96ã\81\95ã\82\8cã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\97"
+"ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81¯ã\81\9dã\81®ã\82»ã\83\9eã\83\95ã\82©é\9b\86å\90\88ã\81« å¤\89æ\9b´ (æ\9b¸ã\81\8dè¾¼ã\81¿) 許å\8f¯ã\82\92æ\8c\81ã\81\9fã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82"
#. type: TP
#: build/C/man2/semctl.2:322
msgstr ""
"集合の I<semnum> 番目のセマフォの B<semval> に I<arg.val> の値を設定する。そ"
"の集合に関連する I<semid_ds> 構造体の I<sem_ctime> メンバーの値も更新する。 "
-"å\85¨ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82»ã\83\9eã\83\95ã\82©ã\81®å¤\89æ\9b´ã\81«ã\81¤ã\81\84ã\81¦ã\81®ã\82¢ã\83³ã\83\89ã\82¥ã\83»ã\82¨ã\83³ã\83\88ã\83ªは消去される。 セマ"
+"å\85¨ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82»ã\83\9eã\83\95ã\82©ã\81®å¤\89æ\9b´ã\81«ã\81¤ã\81\84ã\81¦ã\81®ã\82¢ã\83³ã\83\89ã\82¥ã\82¨ã\83³ã\83\88ã\83ªã\83¼は消去される。 セマ"
"フォの値の変更により、他のプロセス内でブロックされている B<semop>(2) コール"
"の続行が許可されると、それらのプロセスは起こされる (wake up)。 呼び出したプロ"
"セスはそのセマフォ集合に 変更 (書き込み) 許可を持たなければならない。"
#. type: Plain text
#: build/C/man2/semctl.2:347
-msgid "On failure B<semctl>() returns -1 with I<errno> indicating the error."
+msgid "On failure, B<semctl>() returns -1 with I<errno> indicating the error."
msgstr ""
"失敗した場合、 B<semctl>() は -1 を返し、 I<errno> にそのエラーを示す。"
#. type: Plain text
#: build/C/man2/semctl.2:351
msgid ""
-"Otherwise the system call returns a nonnegative value depending on I<cmd> as "
-"follows:"
+"Otherwise, the system call returns a nonnegative value depending on I<cmd> "
+"as follows:"
msgstr "そうでなければシステムコールは I<cmd> によって以下の負でない値を返す:"
#. type: Plain text
"sets on the system.)"
msgstr ""
"全てのセマフォ集合に関する情報を管理しているカーネルの内部配列の使用中 エント"
-"ã\83ªã\81®ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81®æ\9c\80大å\80¤ (ã\81\93ã\81®æ\83\85å ±ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81®å\85¨ã\81¦ã\81®ã\82»ã\83\9eã\83\95ã\82©é\9b\86å\90\88ã\81«é\96¢ã\81\99ã\82\8bæ\83\85"
-"報を取得するために B<SEM_STAT> 操作を繰り返し実行する際に使用できる)"
+"ã\83ªã\83¼ã\81®ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81®æ\9c\80大å\80¤ (ã\81\93ã\81®æ\83\85å ±ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81®å\85¨ã\81¦ã\81®ã\82»ã\83\9eã\83\95ã\82©é\9b\86å\90\88ã\81«é\96¢ã\81\99ã\82\8b"
+"情報を取得するために B<SEM_STAT> 操作を繰り返し実行する際に使用できる)"
#. type: TP
#: build/C/man2/semctl.2:375
#. type: Plain text
#: build/C/man2/semctl.2:379
-msgid "As for B<IPC_INFO>."
+msgid "as for B<IPC_INFO>."
msgstr "B<IPC_INFO> と同じ"
#. type: TP
msgstr "I<cmd> の値がそれ以外の場合、成功すると 0 が返される。"
#. type: Plain text
-#: build/C/man2/semctl.2:391
+#: build/C/man2/semctl.2:391 build/C/man2/semget.2:157
msgid "On failure, I<errno> will be set to one of the following:"
msgstr "失敗した場合は I<errno> には以下の値のどれかが設定される:"
"ビリティ (capability) を持っていない。"
#. type: TP
-#: build/C/man2/semctl.2:410 build/C/man2/semop.2:347
+#: build/C/man2/semctl.2:410 build/C/man2/semop.2:336
#, no-wrap
msgid "B<EFAULT>"
msgstr "B<EFAULT>"
"ない。"
#. type: TP
-#: build/C/man2/semctl.2:417 build/C/man2/semop.2:360
+#: build/C/man2/semctl.2:417 build/C/man2/semop.2:349
#, no-wrap
msgid "B<EIDRM>"
msgstr "B<EIDRM>"
#. type: Plain text
-#: build/C/man2/semctl.2:420 build/C/man2/semop.2:363
+#: build/C/man2/semctl.2:420 build/C/man2/semop.2:352
msgid "The semaphore set was removed."
msgstr "セマフォ集合が削除された。"
"semaphore set, and the process does not have the B<CAP_SYS_ADMIN> capability."
msgstr ""
"I<cmd> 引き数に B<IPC_SET> または B<IPC_RMID> が指定され、呼び出したプロセス"
-"の実効ユーザ ID がセマフォの (I<sem_perm.cuid> で見つかる) 作成者または "
+"の実効ユーザー ID がセマフォの (I<sem_perm.cuid> で見つかる) 作成者または "
"(I<sem_perm.uid> で見つかる) 所有者でもなく、 プロセスが B<CAP_SYS_ADMIN> "
"ケーパビリティを持たない。"
#. type: TP
-#: build/C/man2/semctl.2:449 build/C/man2/semop.2:382
+#: build/C/man2/semctl.2:449 build/C/man2/semop.2:371
#, no-wrap
msgid "B<ERANGE>"
msgstr "B<ERANGE>"
#. SVr4 documents additional error conditions EINVAL, EFBIG, ENOSPC.
#. type: Plain text
-#: build/C/man2/semctl.2:465 build/C/man2/semget.2:223
-#: build/C/man2/semop.2:400
+#: build/C/man2/semctl.2:465 build/C/man2/semget.2:214
+#: build/C/man2/semop.2:389
msgid "SVr4, POSIX.1-2001."
msgstr "SVr4, POSIX.1-2001."
+#. type: Plain text
+#: build/C/man2/semctl.2:476
+msgid ""
+"POSIX.1-2001 specifies the I<sem_nsems> field of the I<semid_ds> structure "
+"as having the type I<unsigned\\ short>, and the field is so defined on most "
+"other systems. It was also so defined on Linux 2.2 and earlier, but, since "
+"Linux 2.4, the field has the type I<unsigned\\ long>."
+msgstr ""
+"POSIX.1-2001 では I<semid_ds> 構造体の I<sem_nsems> フィールドは I<unsigned"
+"\\ short> 型を持つと規定されており、 他のほとんどのシステムでこのフィールド"
+"は I<unsigned\\ short> 型になっている。 Linux 2.4 以前ではそうなっていたが、 "
+"Linux 2.4 以降ではこのフィールドは I<unsigned\\ long> 型である。"
+
#. Like Linux, the FreeBSD man pages still document
#. the inclusion of these header files.
#. type: Plain text
-#: build/C/man2/semctl.2:478 build/C/man2/semget.2:236
-#: build/C/man2/semop.2:413
+#: build/C/man2/semctl.2:489 build/C/man2/semget.2:227
+#: build/C/man2/semop.2:402
msgid ""
"The inclusion of I<E<lt>sys/types.hE<gt>> and I<E<lt>sys/ipc.hE<gt>> isn't "
"required on Linux or by any version of POSIX. However, some old "
"implementations required the inclusion of these header files, and the SVID "
"also documented their inclusion. Applications intended to be portable to "
"such old systems may need to include these header files."
-msgstr "Linux や POSIX の全てのバージョンでは、 I<E<lt>sys/types.hE<gt>> と I<E<lt>sys/ipc.hE<gt>> のインクルードは必要ない。しかしながら、いくつかの古い実装ではこれらのヘッダファイルのインクルードが必要であり、 SVID でもこれらのインクルードをするように記載されている。このような古いシステムへの移植性を意図したアプリケーションではこれらのファイルをインクルードする必要があるかもしれない。"
+msgstr ""
+"Linux や POSIX の全てのバージョンでは、 I<E<lt>sys/types.hE<gt>> と "
+"I<E<lt>sys/ipc.hE<gt>> のインクルードは必要ない。しかしながら、いくつかの古い"
+"実装ではこれらのヘッダーファイルのインクルードが必要であり、 SVID でもこれら"
+"のインクルードをするように記載されている。このような古いシステムへの移植性を"
+"意図したアプリケーションではこれらのファイルをインクルードする必要があるかも"
+"しれない。"
#. type: Plain text
-#: build/C/man2/semctl.2:489
+#: build/C/man2/semctl.2:501
msgid ""
"The B<IPC_INFO>, B<SEM_STAT> and B<SEM_INFO> operations are used by the "
"B<ipcs>(1) program to provide information on allocated resources. In the "
-"future these may modified or moved to a /proc file system interface."
+"future these may modified or moved to a I</proc> filesystem interface."
msgstr ""
"B<IPC_INFO>, B<SEM_STAT>, B<SEM_INFO> 操作は B<ipcs>(1) プログラムによって割"
"当られた資源について情報を提供するために使用される。 将来的にはこれらは変更さ"
-"れるか、 /proc ファイル・システム・インタフェースに移動されるかもしれない。"
+"れるか、 I</proc> ファイルシステムインターフェースに移動されるかもしれない。"
#. type: Plain text
-#: build/C/man2/semctl.2:502
+#: build/C/man2/semctl.2:514
msgid ""
"Various fields in a I<struct semid_ds> were typed as I<short> under Linux "
"2.2 and have become I<long> under Linux 2.4. To take advantage of this, a "
"古い形式の呼び出しを I<cmd> 内の B<IPC_64> フラグで区別する。"
#. type: Plain text
-#: build/C/man2/semctl.2:511
+#: build/C/man2/semctl.2:523
msgid ""
"In some earlier versions of glibc, the I<semun> union was defined in "
"I<E<lt>sys/sem.hE<gt>>, but POSIX.1-2001 requires that the caller define "
"B<_SEM_SEMUN_UNDEFINED> が I<E<lt>sys/sem.hE<gt>> で定義されている。"
#. type: Plain text
-#: build/C/man2/semctl.2:515
+#: build/C/man2/semctl.2:527
msgid ""
"The following system limit on semaphore sets affects a B<semctl>() call:"
msgstr "以下は B<semctl>() コールに影響するセマフォ集合のシステム制限:"
#. type: TP
-#: build/C/man2/semctl.2:515 build/C/man2/semop.2:469
+#: build/C/man2/semctl.2:527 build/C/man2/semop.2:466
#, no-wrap
msgid "B<SEMVMX>"
msgstr "B<SEMVMX>"
#. type: Plain text
-#: build/C/man2/semctl.2:520
+#: build/C/man2/semctl.2:532
msgid "Maximum value for B<semval>: implementation dependent (32767)."
msgstr "B<semval> の最大値 : 実装依存 (32767)。"
#. type: Plain text
-#: build/C/man2/semctl.2:524
+#: build/C/man2/semctl.2:536
msgid ""
-"For greater portability it is best to always call B<semctl>() with four "
+"For greater portability, it is best to always call B<semctl>() with four "
"arguments."
msgstr ""
"移植性を高めるための一番良い方法は、常に 4 個の引き数で B<semctl>() を呼び出"
"すことである。"
#. type: Plain text
-#: build/C/man2/semctl.2:531
+#: build/C/man2/semctl.2:543
msgid ""
-"B<ipc>(2), B<semget>(2), B<semop>(2), B<capabilities>(7), B<sem_overview>"
-"(7), B<svipc>(7)"
+"B<ipc>(2), B<semget>(2), B<semop>(2), B<capabilities>(7), "
+"B<sem_overview>(7), B<svipc>(7)"
msgstr ""
-"B<ipc>(2), B<semget>(2), B<semop>(2), B<capabilities>(7), B<sem_overview>"
-"(7), B<svipc>(7)"
+"B<ipc>(2), B<semget>(2), B<semop>(2), B<capabilities>(7), "
+"B<sem_overview>(7), B<svipc>(7)"
#. type: TH
#: build/C/man2/semget.2:36
msgid "SEMGET"
msgstr "SEMGET"
+#. type: TH
+#: build/C/man2/semget.2:36
+#, no-wrap
+msgid "2014-05-21"
+msgstr "2014-05-21"
+
#. type: Plain text
#: build/C/man2/semget.2:39
msgid "semget - get a System V semaphore set identifier"
#. type: Plain text
#: build/C/man2/semget.2:67
msgid ""
-"The B<semget>() system call returns the System V semaphore set identifier "
+"The B<semget>() system call returns the System\\ V semaphore set identifier "
"associated with the argument I<key>. A new set of I<nsems> semaphores is "
"created if I<key> has the value B<IPC_PRIVATE> or if no existing semaphore "
"set is associated with I<key> and B<IPC_CREAT> is specified in I<semflg>."
-msgstr "B<semget>() システムコールは、引き数 I<key> に対応する System V セマフォ集合 (semaphore set) の 識別子 (identifier) を返す。 I<key> の値が B<IPC_PRIVATE> の場合、もしくは I<semflg> に B<IPC_CREAT> が指定されていて、 I<key> に対応するセマフォ集合が存在しない場合、 I<nsems> 個のセマフォからなる新しい集合が作成される。"
+msgstr ""
+"B<semget>() システムコールは、引き数 I<key> に対応する System\\ V セマフォ集"
+"合 (semaphore set) の 識別子 (identifier) を返す。 I<key> の値が "
+"B<IPC_PRIVATE> の場合、もしくは I<semflg> に B<IPC_CREAT> が指定されていて、 "
+"I<key> に対応するセマフォ集合が存在しない場合、 I<nsems> 個のセマフォからなる"
+"新しい集合が作成される。"
#. type: Plain text
#: build/C/man2/semget.2:86
"で同じ意味である (但し、実行 (execute) 許可はセマフォでは意味を持たず、 書き"
"込み (write) 許可はセマフォ値の変更 (alter) 許可として機能する)。"
-#. In truth, every one of the many implementations that I've tested sets
-#. the values to zero, but I suppose there is/was some obscure
-#. implementation out there that does not.
-#. type: Plain text
-#: build/C/man2/semget.2:109
-msgid ""
-"The values of the semaphores in a newly created set are indeterminate. "
-"(POSIX.1-2001 is explicit on this point.) Although Linux, like many other "
-"implementations, initializes the semaphore values to 0, a portable "
-"application cannot rely on this: it should explicitly initialize the "
-"semaphores to the desired values."
-msgstr ""
-"新しく作成されたセマフォ集合の各セマフォの値は不定である (この点は "
-"POSIX.1-2001 に明記されている)。 Linux は他の多くの実装と同様にセマフォ値を "
-"0 に初期化するが、 移植性を考慮したアプリケーションではこの動作を前提にすべき"
-"ではない。 アプリケーションは明示的にセマフォを希望の値で初期化すべきである。"
-
#. type: Plain text
-#: build/C/man2/semget.2:117
+#: build/C/man2/semget.2:107
msgid ""
"When creating a new semaphore set, B<semget>() initializes the set's "
"associated data structure, I<semid_ds> (see B<semctl>(2)), as follows:"
"B<semctl>(2) を参照):"
#. type: Plain text
-#: build/C/man2/semget.2:122
+#: build/C/man2/semget.2:112
msgid ""
"I<sem_perm.cuid> and I<sem_perm.uid> are set to the effective user ID of the "
"calling process."
msgstr ""
"I<sem_perm.cuid> と I<sem_perm.uid> に、呼び出し元のプロセスの実効 "
-"(effective) ユーザ ID を設定する。"
+"(effective) ユーザー ID を設定する。"
#. type: Plain text
-#: build/C/man2/semget.2:127
+#: build/C/man2/semget.2:117
msgid ""
"I<sem_perm.cgid> and I<sem_perm.gid> are set to the effective group ID of "
"the calling process."
"(effective) グループ ID を設定する。"
#. type: Plain text
-#: build/C/man2/semget.2:132
+#: build/C/man2/semget.2:122
msgid ""
"The least significant 9 bits of I<sem_perm.mode> are set to the least "
"significant 9 bits of I<semflg>."
"I<sem_perm.mode> の下位 9 ビットに I<semflg> の下位 9 ビットを設定する。"
#. type: Plain text
-#: build/C/man2/semget.2:136
+#: build/C/man2/semget.2:126
msgid "I<sem_nsems> is set to the value of I<nsems>."
msgstr "I<sem_nsems> に I<nsems> の値を設定する。"
#. type: Plain text
-#: build/C/man2/semget.2:139
+#: build/C/man2/semget.2:129
msgid "I<sem_otime> is set to 0."
msgstr "I<sem_otime> に 0 を設定する。"
#. type: Plain text
-#: build/C/man2/semget.2:142
+#: build/C/man2/semget.2:132
msgid "I<sem_ctime> is set to the current time."
msgstr "I<sem_ctime> に現在の時刻を設定する。"
#. type: Plain text
-#: build/C/man2/semget.2:153
+#: build/C/man2/semget.2:143
msgid ""
"The argument I<nsems> can be 0 (a don't care) when a semaphore set is not "
-"being created. Otherwise I<nsems> must be greater than 0 and less than or "
+"being created. Otherwise, I<nsems> must be greater than 0 and less than or "
"equal to the maximum number of semaphores per semaphore set (B<SEMMSL>)."
msgstr ""
"セマフォ集合の作成を行わない場合は、引き数 I<nsems> に (don't care を意味す"
#. and a check is made to see if it is marked for destruction.
#. type: Plain text
-#: build/C/man2/semget.2:157
+#: build/C/man2/semget.2:147
msgid "If the semaphore set already exists, the permissions are verified."
msgstr "セマフォ集合が既に存在した場合は、アクセス許可の検査が行われる。"
#. type: Plain text
-#: build/C/man2/semget.2:163
+#: build/C/man2/semget.2:153
msgid ""
"If successful, the return value will be the semaphore set identifier (a "
-"nonnegative integer), otherwise -1 is returned, with I<errno> indicating the "
-"error."
+"nonnegative integer), otherwise, -1 is returned, with I<errno> indicating "
+"the error."
msgstr ""
"成功した場合、セマフォ集合の識別子 (非負の整数) が返り値となる。 失敗した場合"
"は -1 が返され、 I<errno> にエラーを示す値が設定される。"
#. type: Plain text
-#: build/C/man2/semget.2:167
-msgid "On failure I<errno> will be set to one of the following:"
-msgstr "失敗した場合、 I<errno> には以下の値のいずれか一つが設定される:"
-
-#. type: Plain text
-#: build/C/man2/semget.2:175
+#: build/C/man2/semget.2:165
msgid ""
"A semaphore set exists for I<key>, but the calling process does not have "
"permission to access the set, and does not have the B<CAP_IPC_OWNER> "
#. .B EIDRM
#. The semaphore set is marked to be deleted.
#. type: Plain text
-#: build/C/man2/semget.2:188
+#: build/C/man2/semget.2:177
msgid ""
-"A semaphore set exists for I<key> and I<semflg> specified both B<IPC_CREAT> "
-"and B<IPC_EXCL>."
+"B<IPC_CREAT> and B<IPC_EXCL> were specified in I<semflg>, but a semaphore "
+"set already exists for I<key>."
msgstr ""
-"I<key> に対応するセマフォ集合が存在し、 I<semflg> には B<IPC_CREAT> と "
-"B<IPC_EXCL> が指定されていた。"
+"I<semflg> に B<IPC_CREAT> と B<IPC_EXCL> が指定されたが、 I<key> に対応するセ"
+"マフォ集合はすでに存在する。"
#. type: Plain text
-#: build/C/man2/semget.2:199
+#: build/C/man2/semget.2:183
msgid ""
"I<nsems> is less than 0 or greater than the limit on the number of "
-"semaphores per semaphore set (B<SEMMSL>), or a semaphore set corresponding "
-"to I<key> already exists, and I<nsems> is larger than the number of "
-"semaphores in that set."
+"semaphores per semaphore set (B<SEMMSL>)."
msgstr ""
-"I<nsems> が 0 より小さいか、セマフォ集合あたりのセマフォの最大数 "
-"(B<SEMMSL>) より大きい。 または、 I<key> に対応するセマフォ集合が既に存在"
-"し、 I<nsems> がその集合のセマフォ数よりも大きい。"
+"I<nsems> が 0 より小さいか、 セマフォ集合あたりのセマフォの最大数 "
+"(B<SEMMSL>) より大きい。"
#. type: Plain text
-#: build/C/man2/semget.2:207
+#: build/C/man2/semget.2:190
+msgid ""
+"A semaphore set corresponding to I<key> already exists, but I<nsems> is "
+"larger than the number of semaphores in that set."
+msgstr ""
+"I<key> に対応するセマフォ集合が既に存在するが、 I<nsems> がその集合のセマフォ"
+"数よりも大きい。"
+
+#. type: Plain text
+#: build/C/man2/semget.2:198
msgid ""
"No semaphore set exists for I<key> and I<semflg> did not specify "
"B<IPC_CREAT>."
"れてもいない。"
#. type: Plain text
-#: build/C/man2/semget.2:211
+#: build/C/man2/semget.2:202
msgid ""
"A semaphore set has to be created but the system does not have enough memory "
"for the new data structure."
msgstr ""
"セマフォ集合を作成しようとしたが、新しいデータ構造体を 作成するのに十分なメモ"
-"リがシステムに存在しない。"
+"ã\83ªã\83¼ã\81\8cã\82·ã\82¹ã\83\86ã\83 ã\81«å\98å\9c¨ã\81\97ã\81ªã\81\84ã\80\82"
#. type: TP
-#: build/C/man2/semget.2:211
+#: build/C/man2/semget.2:202
#, no-wrap
msgid "B<ENOSPC>"
msgstr "B<ENOSPC>"
#. type: Plain text
-#: build/C/man2/semget.2:219
+#: build/C/man2/semget.2:210
msgid ""
"A semaphore set has to be created but the system limit for the maximum "
"number of semaphore sets (B<SEMMNI>), or the system wide maximum number of "
"てしまう。"
#. type: Plain text
-#: build/C/man2/semget.2:246
+#: build/C/man2/semget.2:238
msgid ""
"B<IPC_PRIVATE> isn't a flag field but a I<key_t> type. If this special "
-"value is used for I<key>, the system call ignores everything but the least "
+"value is used for I<key>, the system call ignores all but the least "
"significant 9 bits of I<semflg> and creates a new semaphore set (on success)."
msgstr ""
-"B<IPC_PRIVATE> ã\81¯ã\83\95ã\83©ã\82°ã\83»ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«æ\8c\87å®\9aã\81\99ã\82\8bã\82\82ã\81®ã\81§ã\81¯ã\81ªã\81\8fã\80\81 I<key_t> å\9e\8bã\81§ã\81\82"
+"B<IPC_PRIVATE> はフラグフィールドに指定するものではなく、 I<key_t> 型であ"
"る。 この特別な値が I<key> に指定されると、 B<semget>() I<semflg> の下位 9 "
"ビット以外は全て無視し、 (成功した場合は) 新しいセマフォ集合を作成する。"
+#. type: SS
+#: build/C/man2/semget.2:238
+#, no-wrap
+msgid "Semaphore initialization"
+msgstr "セマフォの初期化"
+
+#. In truth, every one of the many implementations that I've tested sets
+#. the values to zero, but I suppose there is/was some obscure
+#. implementation out there that does not.
#. type: Plain text
#: build/C/man2/semget.2:250
msgid ""
+"The values of the semaphores in a newly created set are indeterminate. "
+"(POSIX.1-2001 and POSIX.1-2008 are explicit on this point, although "
+"POSIX.1-2008 notes that a future version of the standard may require an "
+"implementation to initialize the semaphores to 0.) Although Linux, like "
+"many other implementations, initializes the semaphore values to 0, a "
+"portable application cannot rely on this: it should explicitly initialize "
+"the semaphores to the desired values."
+msgstr ""
+"新しく作成されたセマフォ集合の各セマフォの値は不定である。 (この点は "
+"POSIX.1-2001 と POSIX.1-2008 に明記されている。ただし、POSIX.1-2008 では "
+"POSIX の将来のバージョンではセマフォを 0 に初期化するように実装に要求する可能"
+"性が注記されている。) Linux は他の多くの実装と同様にセマフォ値を 0 に初期化す"
+"るが、 移植性を考慮したアプリケーションではこの動作を前提にすべきではない。 "
+"アプリケーションは明示的にセマフォを希望の値で初期化すべきである。"
+
+#. type: Plain text
+#: build/C/man2/semget.2:265
+msgid ""
+"Initialization can be done using B<semctl>(2) B<SETVAL> or B<SETALL> "
+"operation. Where multiple peers do not know who will be the first to "
+"initialize the set, checking for a nonzero I<sem_otime> in the associated "
+"data structure retrieved by a B<semctl>(2) B<IPC_STAT> operation can be "
+"used to avoid races."
+msgstr ""
+"B<semctl>(2) の B<SETVAL> か B<SETALL> 操作を使って初期化することができる。 "
+"複数箇所からセマフォ集合の操作が行われる場面では、 誰が最初に集合を初期化すれ"
+"ばよいか分からない。 この状況を避けるには、 B<semctl>(2) の B<IPC_STAT> 操作"
+"で取得できるセマフォのデータ構造体の I<sem_otime> が 0 以外になっているかを"
+"チェックすればよい。"
+
+#. type: SS
+#: build/C/man2/semget.2:265 build/C/man2/semop.2:454
+#, no-wrap
+msgid "Semaphore limits"
+msgstr "セマフォの上限"
+
+#. type: Plain text
+#: build/C/man2/semget.2:269
+msgid ""
"The following limits on semaphore set resources affect the B<semget>() call:"
msgstr ""
-"セマフォ集合のリソースに関する制限のうち、 B<semget>() に影響を及ぼすものを"
+"セマフォ集合のリソースに関する上限のうち、 B<semget>() に影響を及ぼすものを"
"以下に挙げる:"
#. type: TP
-#: build/C/man2/semget.2:250
+#: build/C/man2/semget.2:269
#, no-wrap
msgid "B<SEMMNI>"
msgstr "B<SEMMNI>"
#. This /proc file is not available in Linux 2.2 and earlier -- MTK
#. type: Plain text
-#: build/C/man2/semget.2:256
+#: build/C/man2/semget.2:275
msgid ""
-"System wide maximum number of semaphore sets: policy dependent (on Linux, "
-"this limit can be read and modified via the fourth field of I</proc/sys/"
-"kernel/sem>)."
+"System-wide limit on the number of semaphore sets: policy dependent (on "
+"Linux, this limit can be read and modified via the fourth field of I</proc/"
+"sys/kernel/sem>)."
msgstr ""
-"システム全体のセマフォ集合の最大数: 方針依存 (Linux では、この制限値は I</"
+"システム全体のセマフォ集合の上限数: 方針依存 (Linux では、この制限値は I</"
"proc/sys/kernel/sem> の第4フィールドに対応し、読み出しも変更もできる)。"
#. type: TP
-#: build/C/man2/semget.2:256
+#: build/C/man2/semget.2:275
#, no-wrap
msgid "B<SEMMSL>"
msgstr "B<SEMMSL>"
#. type: Plain text
-#: build/C/man2/semget.2:261
+#: build/C/man2/semget.2:280
msgid ""
-"Maximum number of semaphores per semid: implementation dependent (on Linux, "
-"this limit can be read and modified via the first field of I</proc/sys/"
-"kernel/sem>)."
+"Maximum number of semaphores per semaphore ID: implementation dependent (on "
+"Linux, this limit can be read and modified via the first field of I</proc/"
+"sys/kernel/sem>)."
msgstr ""
-"semid あたりのセマフォの最大数: 実装依存 (Linux では、この制限値は I</proc/"
-"sys/kernel/sem> の第1フィールドに対応し、読み出しも変更もできる)。"
+"セマフォ ID あたりのセマフォの最大数: 実装依存 (Linux では、この制限値は I</"
+"proc/sys/kernel/sem> の第1フィールドに対応し、読み出しも変更もできる)。"
#. type: TP
-#: build/C/man2/semget.2:261
+#: build/C/man2/semget.2:280
#, no-wrap
msgid "B<SEMMNS>"
msgstr "B<SEMMNS>"
#. type: Plain text
-#: build/C/man2/semget.2:269
+#: build/C/man2/semget.2:290
+#, fuzzy
+#| msgid ""
+#| "System-wide limit on the number of semaphores: policy dependent (on "
+#| "Linux, this limit can be read and modified via the second field of I</"
+#| "proc/sys/kernel/sem>). Note that number of semaphores system-wide is "
+#| "also limited by the product of B<SEMMSL> and B<SEMMNI>."
msgid ""
-"System wide maximum number of semaphores: policy dependent (on Linux, this "
-"limit can be read and modified via the second field of I</proc/sys/kernel/"
-"sem>). Values greater than B<SEMMSL * SEMMNI> makes it irrelevant."
+"System-wide limit on the number of semaphores: policy dependent (on Linux, "
+"this limit can be read and modified via the second field of I</proc/sys/"
+"kernel/sem>). Note that the number of semaphores system-wide is also "
+"limited by the product of B<SEMMSL> and B<SEMMNI>."
msgstr ""
-"システム全体のセマフォの最大数: 方針依存 (Linux では、この制限値は I</proc/"
-"sys/kernel/sem> の第2フィールドに対応し、読み出しも変更もできる)。 B<SEMMSL "
-"* SEMMNI> より大きな値は意味を持たない。"
+"システム全体のセマフォ数の上限値: 方針依存 (Linux では、この上限値は I</proc/"
+"sys/kernel/sem> の第 2 フィールドであり、読み出しも変更もできる)。 システム全"
+"体のセマフォ数には、 B<SEMMSL> と B<SEMMNI> の積という上限もある。"
#. type: SH
-#: build/C/man2/semget.2:269 build/C/man2/semop.2:481
+#: build/C/man2/semget.2:290 build/C/man2/semop.2:478
#, no-wrap
msgid "BUGS"
msgstr "バグ"
#. type: Plain text
-#: build/C/man2/semget.2:275
+#: build/C/man2/semget.2:296
msgid ""
"The name choice B<IPC_PRIVATE> was perhaps unfortunate, B<IPC_NEW> would "
"more clearly show its function."
"B<IPC_PRIVATE> という名前を選んだのはおそらく失敗であろう。 B<IPC_NEW> の方が"
"より明確にその機能を表しているだろう。"
-#. In fact they are initialized to zero on Linux, but POSIX.1-2001
-#. does not specify this, and we can't portably rely on it.
#. type: Plain text
-#: build/C/man2/semget.2:294
+#: build/C/man2/semget.2:303
msgid ""
-"The semaphores in a set are not initialized by B<semget>(). In order to "
-"initialize the semaphores, B<semctl>(2) must be used to perform a B<SETVAL> "
-"or a B<SETALL> operation on the semaphore set. (Where multiple peers do not "
-"know who will be the first to initialize the set, checking for a nonzero "
-"I<sem_otime> in the associated data structure retrieved by a B<semctl>(2) "
-"B<IPC_STAT> operation can be used to avoid races.)"
+"B<semctl>(2), B<semop>(2), B<ftok>(3), B<capabilities>(7), "
+"B<sem_overview>(7), B<svipc>(7)"
msgstr ""
-"セマフォ集合内のセマフォは B<semget>() では初期化されない。 このセマフォを初"
-"期化するには、セマフォ集合に対して B<semctl>(2) を使って B<SETVAL> か "
-"B<SETALL> 操作を実行する必要がある。 (複数箇所からセマフォ集合の操作が行われ"
-"る場面では、 誰が最初に集合を初期化すればよいか分からない。 この状況を避ける"
-"には、 B<semctl>(2) の B<IPC_STAT> 操作で取得できるセマフォのデータ構造体の "
-"I<sem_otime> が 0 以外になっているかをチェックすればよい。)"
-
-#. type: Plain text
-#: build/C/man2/semget.2:301
-msgid ""
-"B<semctl>(2), B<semop>(2), B<ftok>(3), B<capabilities>(7), B<sem_overview>"
-"(7), B<svipc>(7)"
-msgstr ""
-"B<semctl>(2), B<semop>(2), B<ftok>(3), B<capabilities>(7), B<sem_overview>"
-"(7), B<svipc>(7)"
+"B<semctl>(2), B<semop>(2), B<ftok>(3), B<capabilities>(7), "
+"B<sem_overview>(7), B<svipc>(7)"
#. type: TH
#: build/C/man2/semop.2:35
#. type: TH
#: build/C/man2/semop.2:35
#, no-wrap
-msgid "2013-04-17"
-msgstr ""
+msgid "2014-12-31"
+msgstr "2014-12-31"
#. type: Plain text
#: build/C/man2/semop.2:38
#. type: Plain text
#: build/C/man2/semop.2:45
#, no-wrap
-msgid "B<int semop(int >I<semid>B<, struct sembuf *>I<sops>B<, unsigned >I<nsops>B<);>\n"
-msgstr "B<int semop(int >I<semid>B<, struct sembuf *>I<sops>B<, unsigned >I<nsops>B<);>\n"
+msgid "B<int semop(int >I<semid>B<, struct sembuf *>I<sops>B<, size_t >I<nsops>B<);>\n"
+msgstr "B<int semop(int >I<semid>B<, struct sembuf *>I<sops>B<, size_t >I<nsops>B<);>\n"
#. type: Plain text
#: build/C/man2/semop.2:48
#, no-wrap
msgid ""
-"B<int semtimedop(int >I<semid>B<, struct sembuf *>I<sops>B<, unsigned >I<nsops>B<,>\n"
-"B< struct timespec *>I<timeout>B<);>\n"
+"B<int semtimedop(int >I<semid>B<, struct sembuf *>I<sops>B<, size_t >I<nsops>B<,>\n"
+"B< const struct timespec *>I<timeout>B<);>\n"
msgstr ""
-"B<int semtimedop(int >I<semid>B<, struct sembuf *>I<sops>B<, unsigned >I<nsops>B<,>\n"
-"B< struct timespec *>I<timeout>B<);>\n"
+"B<int semtimedop(int >I<semid>B<, struct sembuf *>I<sops>B<, size_t >I<nsops>B<,>\n"
+"B< const struct timespec *>I<timeout>B<);>\n"
#. type: Plain text
#: build/C/man2/semop.2:57
#. type: Plain text
#: build/C/man2/semop.2:60
msgid ""
-"Each semaphore in a System V semaphore set has the following associated "
+"Each semaphore in a System\\ V semaphore set has the following associated "
"values:"
-msgstr "System V セマフォ集合 (semaphore set) のメンバーの各セマフォは 以下の関連情報を持っている:"
+msgstr ""
+"System\\ V セマフォ集合 (semaphore set) のメンバーの各セマフォは 以下の関連情"
+"報を持っている:"
#. type: Plain text
#: build/C/man2/semop.2:67
"pid_t sempid; /* 最後に操作を行なったプロセスの ID */\n"
#. type: Plain text
-#: build/C/man2/semop.2:81
+#: build/C/man2/semop.2:82
msgid ""
"B<semop>() performs operations on selected semaphores in the set indicated "
"by I<semid>. Each of the I<nsops> elements in the array pointed to by "
-"I<sops> specifies an operation to be performed on a single semaphore. The "
-"elements of this structure are of type I<struct sembuf>, containing the "
-"following members:"
+"I<sops> is a structure that specifies an operation to be performed on a "
+"single semaphore. The elements of this structure are of type I<struct "
+"sembuf>, containing the following members:"
msgstr ""
"B<semop>() は I<semid> で指定されたセマフォ集合の選択されたセマフォに対して"
"操作を行う。 I<sops> は I<nsops> 個の要素の配列を指し、配列の各要素は個々のセ"
-"マフォに 対する操作を示す。その型は I<struct sembuf> で、次のメンバを持つ:"
+"マフォに対する操作を示す構造体である。その型は I<struct sembuf> で、次のメン"
+"バを持つ:"
#. type: Plain text
-#: build/C/man2/semop.2:87
+#: build/C/man2/semop.2:88
#, no-wrap
msgid ""
"unsigned short sem_num; /* semaphore number */\n"
"short sem_flg; /* 操作フラグ */\n"
#. type: Plain text
-#: build/C/man2/semop.2:99
+#: build/C/man2/semop.2:100
msgid ""
"Flags recognized in I<sem_flg> are B<IPC_NOWAIT> and B<SEM_UNDO>. If an "
"operation specifies B<SEM_UNDO>, it will be automatically undone when the "
"定された操作は、そのプロセスが終了した時に自動的に取り消される。"
#. type: Plain text
-#: build/C/man2/semop.2:114
+#: build/C/man2/semop.2:115
msgid ""
"The set of operations contained in I<sops> is performed in I<array order>, "
"and I<atomically>, that is, the operations are performed either as a "
"り、後述のようになる。"
#. type: Plain text
-#: build/C/man2/semop.2:121
+#: build/C/man2/semop.2:122
msgid ""
"Each operation is performed on the I<sem_num>-th semaphore of the semaphore "
"set, where the first semaphore of the set is numbered 0. There are three "
"り、 I<sem_op> の値で区別される。"
#. type: Plain text
-#: build/C/man2/semop.2:136
-#, fuzzy
-#| msgid ""
-#| "If I<sem_op> is a positive integer, the operation adds this value to the "
-#| "semaphore value (I<semval>). Furthermore, if B<SEM_UNDO> is specified "
-#| "for this operation, the system updates the undo count (I<semadj>) for "
-#| "this semaphore. This operation can always proceed\\(emit never forces a "
-#| "thread to wait. The calling process must have alter permission on the "
-#| "semaphore set."
+#: build/C/man2/semop.2:137
msgid ""
"If I<sem_op> is a positive integer, the operation adds this value to the "
"semaphore value (I<semval>). Furthermore, if B<SEM_UNDO> is specified for "
"proceed\\(emit never forces a thread to wait. The calling process must have "
"alter permission on the semaphore set."
msgstr ""
-"I<sem_op> が正の整数の場合、操作としてその値をセマフォの値 (I<semval>) に加え"
-"ã\82\8bã\80\82ã\81\95ã\82\89ã\81«ã\81\93ã\81®æ\93\8dä½\9cã\81« B<SEM_UNDO> ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81¯ã\81\93ã\81®ã\82»ã\83\9e"
-"ã\83\95ã\82©ã\81®ã\82¢ã\83³ã\83\89ã\82¥æ\95° (I<semadj>) ã\82\92æ\9b´æ\96°ã\81\99ã\82\8bã\80\82ã\81\93ã\81®æ\93\8dä½\9cã\81¯å¿\85ã\81\9aå®\9fè¡\8cã\81§ã\81\8dã\80\81ã\82¹ã\83¬ã\83\83ã\83\89ã\81®å\81\9c"
-"止は起こらない。 呼び出し元プロセスは対象のセマフォ集合を変更する許可がなけれ"
-"ばならない。"
+"I<sem_op> が正の整数の場合、その値をセマフォの値 (I<semval>) に加算する。 さ"
+"ã\82\89ã\81«ã\80\81ã\81\93ã\81®æ\93\8dä½\9cã\81§ B<SEM_UNDO> ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81\9få ´å\90\88ã\81¯ã\80\81 ã\82·ã\82¹ã\83\86ã\83 ã\81¯ã\81\93ã\81®ã\82»ã\83\9eã\83\95ã\82©"
+"ã\81®ã\81®èª¿æ\95´å\80¤ (I<semadj>) ã\81\8bã\82\89å\80¤ I<sem_op> ã\82\92æ¸\9bç®\97ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®æ\93\8dä½\9cã\81¯å¿\85ã\81\9aå®\9fè¡\8cã\81§"
+"き、 スレッドの停止は起こらない。 呼び出し元プロセスは対象のセマフォ集合を変"
+"更する許可がなければならない。"
#. type: Plain text
-#: build/C/man2/semop.2:161
+#: build/C/man2/semop.2:162
msgid ""
"If I<sem_op> is zero, the process must have read permission on the semaphore "
"set. This is a \"wait-for-zero\" operation: if I<semval> is zero, the "
"operation can immediately proceed. Otherwise, if B<IPC_NOWAIT> is specified "
"in I<sem_flg>, B<semop>() fails with I<errno> set to B<EAGAIN> (and none of "
-"the operations in I<sops> is performed). Otherwise I<semzcnt> (the count of "
-"threads waiting until this semaphore's value becomes zero) is incremented "
-"by one and the thread sleeps until one of the following occurs:"
+"the operations in I<sops> is performed). Otherwise, I<semzcnt> (the count "
+"of threads waiting until this semaphore's value becomes zero) is "
+"incremented by one and the thread sleeps until one of the following occurs:"
msgstr ""
"I<sem_op> が 0 の場合、「ゼロまで待つ」操作である。この場合、プロセスは その"
"セマフォ集合に対する読み込み許可がなければならない。 I<semval> が 0 ならば、"
"るまでスレッドを停止 (sleep) する。"
#. type: IP
-#: build/C/man2/semop.2:161 build/C/man2/semop.2:166 build/C/man2/semop.2:174
-#: build/C/man2/semop.2:184 build/C/man2/semop.2:237 build/C/man2/semop.2:242
-#: build/C/man2/semop.2:249 build/C/man2/semop.2:259
+#: build/C/man2/semop.2:162 build/C/man2/semop.2:167 build/C/man2/semop.2:175
+#: build/C/man2/semop.2:227 build/C/man2/semop.2:232 build/C/man2/semop.2:239
#, no-wrap
msgid "\\(bu"
msgstr "\\(bu"
#. type: Plain text
-#: build/C/man2/semop.2:166
+#: build/C/man2/semop.2:167
msgid ""
"I<semval> becomes 0, at which time the value of I<semzcnt> is decremented."
msgstr "I<semval> が 0 になった: このとき I<semzcnt> の値は 1 減算される。"
#. type: Plain text
-#: build/C/man2/semop.2:174
+#: build/C/man2/semop.2:175
msgid ""
"The semaphore set is removed: B<semop>() fails, with I<errno> set to "
"B<EIDRM>."
"B<EIDRM> が設定される。"
#. type: Plain text
-#: build/C/man2/semop.2:184
+#: build/C/man2/semop.2:185
msgid ""
"The calling thread catches a signal: the value of I<semzcnt> is decremented "
"and B<semop>() fails, with I<errno> set to B<EINTR>."
"れ、 B<semop>() は失敗し I<errno> に B<EINTR> が設定される。"
#. type: Plain text
-#: build/C/man2/semop.2:195
-msgid ""
-"The time limit specified by I<timeout> in a B<semtimedop>() call expires: "
-"B<semop>() fails, with I<errno> set to B<EAGAIN>."
-msgstr ""
-"B<semtimedop>() の I<timeout> で指定された制限時間が経過した: このとき "
-"B<semtimedop>() は失敗し、 I<errno> に B<EAGAIN> が設定される。"
-
-#. type: Plain text
-#: build/C/man2/semop.2:237
-#, fuzzy
-#| msgid ""
-#| "If I<sem_op> is less than zero, the process must have alter permission on "
-#| "the semaphore set. If I<semval> is greater than or equal to the absolute "
-#| "value of I<sem_op>, the operation can proceed immediately: the absolute "
-#| "value of I<sem_op> is subtracted from I<semval>, and, if B<SEM_UNDO> is "
-#| "specified for this operation, the system updates the undo count "
-#| "(I<semadj>) for this semaphore. If the absolute value of I<sem_op> is "
-#| "greater than I<semval>, and B<IPC_NOWAIT> is specified in I<sem_flg>, "
-#| "B<semop>() fails, with I<errno> set to B<EAGAIN> (and none of the "
-#| "operations in I<sops> is performed). Otherwise I<semncnt> (the counter "
-#| "of threads waiting for this semaphore's value to increase) is "
-#| "incremented by one and the thread sleeps until one of the following "
-#| "occurs:"
+#: build/C/man2/semop.2:227
msgid ""
"If I<sem_op> is less than zero, the process must have alter permission on "
"the semaphore set. If I<semval> is greater than or equal to the absolute "
"semaphore. If the absolute value of I<sem_op> is greater than I<semval>, "
"and B<IPC_NOWAIT> is specified in I<sem_flg>, B<semop>() fails, with "
"I<errno> set to B<EAGAIN> (and none of the operations in I<sops> is "
-"performed). Otherwise I<semncnt> (the counter of threads waiting for this "
+"performed). Otherwise, I<semncnt> (the counter of threads waiting for this "
"semaphore's value to increase) is incremented by one and the thread sleeps "
"until one of the following occurs:"
msgstr ""
"I<sem_op> が 0 未満の場合、プロセスにはそのセマフォ集合を変更する許可がなけれ"
"ば ならない。 I<semval> が I<sem_op> の絶対値以上の場合は、操作は直ちに実行さ"
-"れる: I<semval> から I<sem_op> の絶対値が減算される。 さらに、この操作に "
-"B<SEM_UNDO> が指定されている場合は、このセマフォのアンドゥ数 (I<semadj>) を"
-"更新する。 I<semval> が I<sem_op> の絶対値より小さく、 I<sem_flg> に "
-"B<IPC_NOWAIT> が指定された場合は、 B<semop>() は失敗し、 I<errno> に "
-"B<EAGAIN> が設定される (このとき I<sops> の操作は全く実行されない)。 "
-"B<IPC_WAIT> が指定されていなければ、 I<semncnt> (このセマフォの値が増加するの"
-"を待っているスレッド数のカウンタ) を 1 増加させて、以下のいずれかが起こるま"
-"でスレッドを停止 (sleep) する。"
+"れる: I<semval> から I<sem_op> の絶対値を減算し、さらに、この操作に "
+"B<SEM_UNDO> が指定されている場合は、このセマフォの調整値 (I<semadj>) に "
+"I<sem_op> の絶対値を加算する。 I<semval> が I<sem_op> の絶対値より小さく、 "
+"I<sem_flg> に B<IPC_NOWAIT> が指定された場合は、 B<semop>() は失敗し、 "
+"I<errno> に B<EAGAIN> が設定される (このとき I<sops> の操作は全く実行されな"
+"い)。 I<semval> が I<sem_op> の絶対値より小さく、 B<IPC_WAIT> が指定されてい"
+"ない場合は、 I<semncnt> (このセマフォの値が増加するのを待っているスレッド数の"
+"カウンター) を 1 増加させて、以下のいずれかが起こるまでスレッドを停止 "
+"(sleep) する。"
#. type: Plain text
-#: build/C/man2/semop.2:242
+#: build/C/man2/semop.2:232
msgid ""
"I<semval> becomes greater than or equal to the absolute value of I<sem_op>: "
"the operation now proceeds, as described above."
msgstr ""
+"I<semval> が I<sem_op> の絶対値以上になった。この時点で、操作は上述の通り実行"
+"される。"
#. type: Plain text
-#: build/C/man2/semop.2:249
+#: build/C/man2/semop.2:239
msgid ""
"The semaphore set is removed from the system: B<semop>() fails, with "
"I<errno> set to B<EIDRM>."
"に B<EIDRM> が設定される。"
#. type: Plain text
-#: build/C/man2/semop.2:259
+#: build/C/man2/semop.2:249
msgid ""
"The calling thread catches a signal: the value of I<semncnt> is decremented "
"and B<semop>() fails, with I<errno> set to B<EINTR>."
"呼び出したスレッドがシグナルを捕獲した: このとき I<semncnt> が 1 減算され、 "
"B<semop>() は失敗し I<errno> に B<EINTR> が設定される。"
-#. type: Plain text
-#: build/C/man2/semop.2:268
-msgid ""
-"The time limit specified by I<timeout> in a B<semtimedop>() call expires: "
-"the system call fails, with I<errno> set to B<EAGAIN>."
-msgstr ""
-"B<semtimedop>() の I<timeout> で指定された制限時間が経過した: このとき "
-"B<semtimedop>() は失敗し、 I<errno> に B<EAGAIN> が設定される。"
-
#. and
#. .I sem_ctime
#. type: Plain text
-#: build/C/man2/semop.2:279
+#: build/C/man2/semop.2:260
msgid ""
"On successful completion, the I<sempid> value for each semaphore specified "
"in the array pointed to by I<sops> is set to the caller's process ID. In "
"I<sempid> メンバーには呼び出し元のプロセス ID が設定される。さらに "
"I<sem_otime> に現在時刻が設定される。"
+#. type: SS
+#: build/C/man2/semop.2:260
+#, no-wrap
+msgid "semtimedop()"
+msgstr "semtimedop()"
+
#. type: Plain text
-#: build/C/man2/semop.2:309
+#: build/C/man2/semop.2:290
msgid ""
"B<semtimedop>() behaves identically to B<semop>() except that in those "
"cases where the calling thread would sleep, the duration of that sleep is "
"B<semop>() 関数と全く同じになる。"
#. type: Plain text
-#: build/C/man2/semop.2:319
+#: build/C/man2/semop.2:298
msgid ""
-"If successful B<semop>() and B<semtimedop>() return 0; otherwise they "
+"Note that if B<semtimeop>() is interrupted by a signal, causing the call to "
+"fail with the error B<EINTR>, the contents of I<timeout> are left unchanged."
+msgstr ""
+"B<semtimeop>() がシグナルにより割り込まれた場合、呼び出しはエラー B<EINTR> で"
+"失敗し、 I<timeout> の内容は変更されないままとなる点に注意すること。"
+
+#. type: Plain text
+#: build/C/man2/semop.2:308
+msgid ""
+"If successful, B<semop>() and B<semtimedop>() return 0; otherwise they "
"return -1 with I<errno> indicating the error."
msgstr ""
"成功した場合、 B<semop>() と B<semtimedop>() は 0 を返す。そうでなければ "
"-1 を返し、 エラーを示す I<errno> を設定する。"
#. type: Plain text
-#: build/C/man2/semop.2:323
+#: build/C/man2/semop.2:312
msgid "On failure, I<errno> is set to one of the following:"
msgstr "失敗した場合、 I<errno> に以下のどれかが設定される:"
#. type: TP
-#: build/C/man2/semop.2:323
+#: build/C/man2/semop.2:312
#, no-wrap
msgid "B<E2BIG>"
msgstr "B<E2BIG>"
#. type: Plain text
-#: build/C/man2/semop.2:331
+#: build/C/man2/semop.2:320
msgid ""
"The argument I<nsops> is greater than B<SEMOPM>, the maximum number of "
"operations allowed per system call."
"される操作の最大個数である。"
#. type: Plain text
-#: build/C/man2/semop.2:338
+#: build/C/man2/semop.2:327
msgid ""
"The calling process does not have the permissions required to perform the "
"specified semaphore operations, and does not have the B<CAP_IPC_OWNER> "
"く、 B<CAP_IPC_OWNER> ケーパビリティもない。"
#. type: Plain text
-#: build/C/man2/semop.2:347
+#: build/C/man2/semop.2:336
msgid ""
"An operation could not proceed immediately and either B<IPC_NOWAIT> was "
"specified in I<sem_flg> or the time limit specified in I<timeout> expired."
"ているか I<timeout> で指定された制限時間が経過した。"
#. type: Plain text
-#: build/C/man2/semop.2:354
+#: build/C/man2/semop.2:343
msgid ""
"An address specified in either the I<sops> or the I<timeout> argument isn't "
"accessible."
msgstr "引き数 I<sops> か I<timeout> が指しているアドレスにアクセスできない。"
#. type: TP
-#: build/C/man2/semop.2:354
+#: build/C/man2/semop.2:343
#, no-wrap
msgid "B<EFBIG>"
msgstr "B<EFBIG>"
#. type: Plain text
-#: build/C/man2/semop.2:360
+#: build/C/man2/semop.2:349
msgid ""
"For some operation the value of I<sem_num> is less than 0 or greater than or "
"equal to the number of semaphores in the set."
"ある操作で、 I<sem_num> の値が 0 未満か、集合内のセマフォの数以上である。"
#. type: Plain text
-#: build/C/man2/semop.2:367
+#: build/C/man2/semop.2:356
msgid ""
-"While blocked in this system call, the thread caught a signal; see B<signal>"
-"(7)."
+"While blocked in this system call, the thread caught a signal; see "
+"B<signal>(7)."
msgstr ""
-"このシステムコールで停止している時にスレッドがシグナルを捕獲した。 B<single>"
-"(7) 参照。"
+"このシステムコールで停止している時にスレッドがシグナルを捕獲した。 "
+"B<single>(7) 参照。"
#. type: Plain text
-#: build/C/man2/semop.2:374
+#: build/C/man2/semop.2:363
msgid ""
"The semaphore set doesn't exist, or I<semid> is less than zero, or I<nsops> "
"has a nonpositive value."
"ない。"
#. type: Plain text
-#: build/C/man2/semop.2:382
+#: build/C/man2/semop.2:371
msgid ""
"The I<sem_flg> of some operation specified B<SEM_UNDO> and the system does "
"not have enough memory to allocate the undo structure."
msgstr ""
"ある操作で I<sem_flg> に B<SEM_UNDO> が指定されたが、システムにアンドゥ構造体"
-"に割り当てる十分なメモリがない。"
+"ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\8bå\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82"
#. type: Plain text
-#: build/C/man2/semop.2:390
+#: build/C/man2/semop.2:379
msgid ""
"For some operation I<sem_op+semval> is greater than B<SEMVMX>, the "
"implementation dependent maximum value for I<semval>."
"の最大値で、その値は実装依存である。"
#. type: SH
-#: build/C/man2/semop.2:390
+#: build/C/man2/semop.2:379
#, no-wrap
msgid "VERSIONS"
msgstr "バージョン"
#. type: Plain text
-#: build/C/man2/semop.2:397
+#: build/C/man2/semop.2:386
msgid ""
"B<semtimedop>() first appeared in Linux 2.5.52, and was subsequently "
"backported into kernel 2.4.22. Glibc support for B<semtimedop>() first "
"めて登場した。"
#. type: Plain text
-#: build/C/man2/semop.2:421
+#: build/C/man2/semop.2:410
msgid ""
"The I<sem_undo> structures of a process aren't inherited by the child "
"produced by B<fork>(2), but they are inherited across an B<execve>(2) "
"承されないが、 B<execve>(2) システムコールの場合は継承される。"
#. type: Plain text
-#: build/C/man2/semop.2:427
+#: build/C/man2/semop.2:416
msgid ""
"B<semop>() is never automatically restarted after being interrupted by a "
"signal handler, regardless of the setting of the B<SA_RESTART> flag when "
"establishing a signal handler."
msgstr ""
-"B<semop>() ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81«ã\82\88ã\81£ã\81¦ä¸æ\96ã\81\95ã\82\8cã\81\9få¾\8cã\81«ã\80\81 決ã\81\97ã\81¦è\87ªå\8b\95ç\9a\84ã\81«å\86\8dé\96\8bã\81\99ã\82\8b"
-"ã\81\93ã\81¨ã\81¯ã\81ªã\81\84ã\80\82 ã\81\9fã\81¨ã\81\88ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81®è¨å®\9aæ\99\82ã\81« B<SA_RESTART> ã\83\95ã\83©ã\82°ã\81\8cã\82»ã\83\83ã\83\88ã\81\95"
-"れていても再開することはない"
+"B<semop>() ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\81£ã\81¦ä¸æ\96ã\81\95ã\82\8cã\81\9få¾\8cã\81«ã\80\81 決ã\81\97ã\81¦è\87ªå\8b\95ç\9a\84ã\81«å\86\8dé\96\8bã\81\99"
+"ã\82\8bã\81\93ã\81¨ã\81¯ã\81ªã\81\84ã\80\82 ã\81\9fã\81¨ã\81\88ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®è¨å®\9aæ\99\82ã\81« B<SA_RESTART> ã\83\95ã\83©ã\82°ã\81\8cã\82»ã\83\83"
+"ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\81¦ã\82\82å\86\8dé\96\8bã\81\99ã\82\8bã\81\93ã\81¨ã\81¯ã\81ªã\81\84"
#. type: Plain text
-#: build/C/man2/semop.2:452
+#: build/C/man2/semop.2:449
msgid ""
"A semaphore adjustment (I<semadj>) value is a per-process, per-semaphore "
"integer that is the negated sum of all operations performed on a semaphore "
"that process's operations on the semaphore (but see BUGS below). When a "
"semaphore's value is directly set using the B<SETVAL> or B<SETALL> request "
"to B<semctl>(2), the corresponding I<semadj> values in all processes are "
-"cleared."
+"cleared. The B<clone>(2) B<CLONE_SYSVSEM> flag allows more than one "
+"process to share a I<semadj> list; see B<clone>(2) for details."
msgstr ""
+"セマフォの調整値 (I<semadj>) は、プロセス毎のセマフォ毎の整数で、 "
+"B<SEM_UNDO> フラグを指定して行われた、セマフォに対するすべての操作の合計値を"
+"反転したものである。 各プロセスは I<semadj> の値のリストを保持する \\(em リス"
+"トのそれぞれの値は B<SEM_UNDO> を使って操作が行われた個々のセマフォに対応す"
+"る。 プロセスが終了する際、 セマフォ毎の I<semadj> の各々の値が対応するセマ"
+"フォに加算される。 これにより、そのプロセスがそのセマフォに対して行った操作の"
+"影響が取り消される (ただし、下記の「バグ」を参照)。 B<semctl>(2) の "
+"B<SETVAL> や B<SETALL> を使ってセマフォの値が直接設定された場合、 すべてのプ"
+"ロセスの対応する I<semadj> の値がクリアされる。 B<clone>(2) の "
+"B<CLONE_SYSVSEM> フラグを使うと、 複数のプロセスがひとつの I<semadj> リストを"
+"共有できる。 詳細は B<clone>(2) を参照。"
#. type: Plain text
-#: build/C/man2/semop.2:457
+#: build/C/man2/semop.2:454
msgid ""
"The I<semval>, I<sempid>, I<semzcnt>, and I<semnct> values for a semaphore "
"can all be retrieved using appropriate B<semctl>(2) calls."
"切な操作を指定して B<semctl>(2) を呼び出すことで取得できる。"
#. type: Plain text
-#: build/C/man2/semop.2:461
+#: build/C/man2/semop.2:458
msgid ""
"The following limits on semaphore set resources affect the B<semop>() call:"
msgstr ""
"下に挙げる:"
#. type: TP
-#: build/C/man2/semop.2:461
+#: build/C/man2/semop.2:458
#, no-wrap
msgid "B<SEMOPM>"
msgstr "B<SEMOPM>"
#. This /proc file is not available in Linux 2.2 and earlier -- MTK
#. type: Plain text
-#: build/C/man2/semop.2:469
+#: build/C/man2/semop.2:466
msgid ""
"Maximum number of operations allowed for one B<semop>() call (32) (on "
"Linux, this limit can be read and modified via the third field of I</proc/"
"I</proc/sys/kernel/sem> の第3フィールドに対応し、読み出しも変更もできる)。"
#. type: Plain text
-#: build/C/man2/semop.2:474
+#: build/C/man2/semop.2:471
msgid ""
"Maximum allowable value for I<semval>: implementation dependent (32767)."
msgstr "I<semval> が取り得る最大値: 実装依存 (32767)。"
#. type: Plain text
-#: build/C/man2/semop.2:481
+#: build/C/man2/semop.2:478
msgid ""
"The implementation has no intrinsic limits for the adjust on exit maximum "
"value (B<SEMAEM>), the system wide maximum number of undo structures "
"あたりのアンドゥ構造体の最大数。"
#. type: Plain text
-#: build/C/man2/semop.2:502
+#: build/C/man2/semop.2:499
msgid ""
"When a process terminates, its set of associated I<semadj> structures is "
"used to undo the effect of all of the semaphore operations it performed with "
#. the fix:
#. http://marc.theaimsgroup.com/?l=linux-kernel&m=110261701025794&w=2
#. type: Plain text
-#: build/C/man2/semop.2:511
+#: build/C/man2/semop.2:508
msgid ""
"In kernels 2.6.x, x E<lt>= 10, there is a bug that in some circumstances "
"prevents a thread that is waiting for a semaphore value to become zero from "
"ない、というバグがある。このバグはカーネル 2.6.11 で修正されている。"
#. type: Plain text
-#: build/C/man2/semop.2:516
+#: build/C/man2/semop.2:513
msgid ""
"The following code segment uses B<semop>() to atomically wait for the value "
"of semaphore 0 to become zero, and then increment the semaphore value by one."
"う。"
#. type: Plain text
-#: build/C/man2/semop.2:520
+#: build/C/man2/semop.2:517
#, no-wrap
msgid ""
" struct sembuf sops[2];\n"
" int semid;\n"
#. type: Plain text
-#: build/C/man2/semop.2:522
+#: build/C/man2/semop.2:519
#, no-wrap
msgid " /* Code to set I<semid> omitted */\n"
msgstr " /* Code to set I<semid> omitted */\n"
#. type: Plain text
-#: build/C/man2/semop.2:526
+#: build/C/man2/semop.2:523
#, no-wrap
msgid ""
" sops[0].sem_num = 0; /* Operate on semaphore 0 */\n"
" sops[0].sem_flg = 0;\n"
#. type: Plain text
-#: build/C/man2/semop.2:530
+#: build/C/man2/semop.2:527
#, no-wrap
msgid ""
" sops[1].sem_num = 0; /* Operate on semaphore 0 */\n"
" sops[1].sem_flg = 0;\n"
#. type: Plain text
-#: build/C/man2/semop.2:535
+#: build/C/man2/semop.2:532
#, no-wrap
msgid ""
" if (semop(semid, sops, 2) == -1) {\n"
" }\n"
#. type: Plain text
-#: build/C/man2/semop.2:545
-msgid ""
-"B<clone>(2), B<semctl>(2), B<semget>(2), B<sigaction>(2), B<capabilities>"
-"(7), B<sem_overview>(7), B<svipc>(7), B<time>(7)"
-msgstr ""
-"B<clone>(2), B<semctl>(2), B<semget>(2), B<sigaction>(2), B<capabilities>"
-"(7), B<sem_overview>(7), B<svipc>(7), B<time>(7)"
-
-#~ msgid ""
-#~ "I<semval> becomes greater than or equal to the absolute value of "
-#~ "I<sem_op>, at which time the value of I<semncnt> is decremented, the "
-#~ "absolute value of I<sem_op> is subtracted from I<semval> and, if "
-#~ "B<SEM_UNDO> is specified for this operation, the system updates the undo "
-#~ "count (I<semadj>) for this semaphore."
-#~ msgstr ""
-#~ "I<semval> が I<sem_op> の絶対値以上になった: このとき I<semncnt> が 1 減算"
-#~ "され、 I<semval> から I<sem_op> の絶対値が引かれる。 この操作に "
-#~ "B<SEM_UNDO> が指定されていた場合にはこのセマフォのアンドゥ数 (I<semadj>) "
-#~ "も更新する。"
-
-#~ msgid ""
-#~ "I<semadj> is a per-process integer which is simply the (negative) count "
-#~ "of all semaphore operations performed specifying the B<SEM_UNDO> flag. "
-#~ "When a semaphore's value is directly set using the B<SETVAL> or B<SETALL> "
-#~ "request to B<semctl>(2), the corresponding I<semadj> values in all "
-#~ "processes are cleared."
-#~ msgstr ""
-#~ "I<semadj> はプロセスごとの整数で、 B<SEM_UNDO> フラグを設定して実行された"
-#~ "全てのセマフォ操作の(負数の)カウンタである。 B<semctl>(2) に B<SETVAL> ま"
-#~ "たは B<SETALL> を指定し、セマフォの値が 直接設定された場合には、全てのプロ"
-#~ "セスにおいて対応する I<semadj> の値がクリアされる。"
+#: build/C/man2/semop.2:542
+msgid ""
+"B<clone>(2), B<semctl>(2), B<semget>(2), B<sigaction>(2), "
+"B<capabilities>(7), B<sem_overview>(7), B<svipc>(7), B<time>(7)"
+msgstr ""
+"B<clone>(2), B<semctl>(2), B<semget>(2), B<sigaction>(2), "
+"B<capabilities>(7), B<sem_overview>(7), B<svipc>(7), B<time>(7)"