0 の終了ステータスは 1 から 255 の範囲の値をとることができ、 いくつかのコマンドではコマンドが失敗した理由を示すために 複数の非 0
のステータス値が使用されている。
.SH 注意
-Linux は UNIX の一種であり、大雑把にいえば、 UNIX 上のユーザコマンドはすべて Linux 上でも全く同じ動作をする (FreeBSD
+Linux ã\81¯ UNIX ã\81®ä¸\80種ã\81§ã\81\82ã\82\8aã\80\81大é\9b\91æ\8a\8aã\81«ã\81\84ã\81\88ã\81°ã\80\81 UNIX ä¸\8aã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82³ã\83\9eã\83³ã\83\89ã\81¯ã\81\99ã\81¹ã\81¦ Linux ä¸\8aã\81§ã\82\82å\85¨ã\81\8få\90\8cã\81\98å\8b\95ä½\9cã\82\92ã\81\99ã\82\8b (FreeBSD
や他のの多くの UNIX 風のシステムでも同様である)。
.LP
-Linux ã\81«ã\81¯ GUI (ã\82°ã\83©ã\83\95ã\82£ã\82«ã\83«ã\83»ã\83¦ã\83¼ã\82¶ã\83»ã\82¤ã\83³ã\82¿フェース) が用意されており、
+Linux ã\81«ã\81¯ GUI (ã\82°ã\83©ã\83\95ã\82£ã\82«ã\83«ã\83¦ã\83¼ã\82¶ã\83¼ã\82¤ã\83³ã\82¿ã\83¼フェース) が用意されており、
何かをポイントしたり、クリックしたり、ドラッグしたりでき、うまくいけば 最初にたくさんの文書を読まなくても目的の作業ができてしまうこともある。 伝統的な
-UNIX ç\92°å¢\83ã\81¯ CLI (ã\82³ã\83\9eã\83³ã\83\89ã\83»ã\83©ã\82¤ã\83³ã\83»ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹) ã\81§ã\81\82ã\82\8aã\80\81 ã\82³ã\83\9eã\83³ã\83\89ã\82\92æ\89\93ã\81¡è¾¼ã\82\93ã\81§ã\80\81ã\82³ã\83³ã\83\94ã\83¥ã\83¼ã\82¿ã\81«ä½\95ã\82\92ã\81\99ã\81¹ã\81\8dã\81\8bæ\95\99ã\81\88ã\81¦ã\82\84ã\82\8bã\80\82 CLI ã\81¯
-GUI よりも速く強力だが、どのコマンドが何をするのか知っている必要 がある。CLI を使い始めるために必要最小限のコマンドを以下に述べる。
+UNIX ç\92°å¢\83ã\81¯ CLI (ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹) ã\81§ã\81\82ã\82\8aã\80\81 ã\82³ã\83\9eã\83³ã\83\89ã\82\92æ\89\93ã\81¡è¾¼ã\82\93ã\81§ã\80\81ã\82³ã\83³ã\83\94ã\83¥ã\83¼ã\82¿ã\81«ä½\95ã\82\92ã\81\99ã\81¹ã\81\8dã\81\8bæ\95\99ã\81\88ã\81¦ã\82\84ã\82\8bã\80\82 CLI ã\81¯ GUI
+よりも速く強力だが、どのコマンドが何をするのか知っている必要 がある。CLI を使い始めるために必要最小限のコマンドを以下に述べる。
.SS ログイン
-作業を開始するためには、ます最初にログインしなければならないだろう。 すなわち、ユーザ名とパスワードを入力しなければならない。詳しくは
-\fBlogin\fP(1) ã\82\92å\8f\82ç\85§ã\81®ã\81\93ã\81¨ã\80\82 \fIlogin\fP ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ (ã\82³ã\83\9eã\83³ã\83\89ã\83»ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿である) \fIシェル (shell)\fP
-ã\82\92èµ·å\8b\95ã\81\99ã\82\8bã\80\82ã\82°ã\83©ã\83\95ã\82£ã\82«ã\83«ã\83»ã\83ã\82°ã\82¤ã\83³ã\81®å ´å\90\88ã\81¯ã\80\81ã\83¡ã\83\8bã\83¥ã\83¼ã\82\84ã\82¢ã\82¤ã\82³ã\83³ã\81\8cã\81\82ã\82\8b ã\82¹ã\82¯ã\83ªã\83¼ã\83³ã\81\8c表示ã\81\95ã\82\8cã\80\81ã\83\9eã\82¦ã\82¹ã\82\92ã\82¯ã\83ªã\83\83ã\82¯ã\81\99ã\82\8bã\81¨ã\82¦ã\82£ã\83³ã\83\89ã\82¦ã\81\8cé\96\8bã\81\84ã\81¦
+作業を開始するためには、ます最初にログインしなければならないだろう。 すなわち、ユーザー名とパスワードを入力しなければならない。詳しくは
+\fBlogin\fP(1) ã\82\92å\8f\82ç\85§ã\81®ã\81\93ã\81¨ã\80\82 \fIlogin\fP ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ (ã\82³ã\83\9eã\83³ã\83\89ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼である) \fIシェル (shell)\fP
+を起動する。グラフィカルログインの場合は、メニューやアイコンがある スクリーンが表示され、マウスをクリックするとウィンドウが開いて
シェルが起動されることだろう。詳しくは \fBxterm\fP(1) を参照のこと。
.SS シェル
-ã\82³ã\83\9eã\83³ã\83\89ã\81¯ã\80\81ã\82³ã\83\9eã\83³ã\83\89ã\83»ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿である \fIシェル\fP に対して入力する。 \fIシェル\fP
+ã\82³ã\83\9eã\83³ã\83\89ã\81¯ã\80\81ã\82³ã\83\9eã\83³ã\83\89ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼である \fIシェル\fP に対して入力する。 \fIシェル\fP
は、組み込みコマンドではなく普通のプログラムであり、好みのものに変更する ことができる。各人にはそれぞれ好みのシェルがある。標準のシェルは \fIsh\fP
と呼ばれる。 \fBash\fP(1), \fBbash\fP(1), \fBcsh\fP(1), \fBzsh\fP(1), \fBchsh\fP(1) を参照のこと。
.LP
\fB% \fP
.fi
.RE
-ここで Control\-D を打つとセッションが終了する。 ここで、 \fB% \fP
-ã\81¯ã\82³ã\83\9eã\83³ã\83\89ã\83»ã\83\97ã\83ã\83³ã\83\97ã\83\88ã\81§ã\81\82ã\82\8bã\80\82ã\82³ã\83\9eã\83³ã\83\89ã\83»ã\83\97ã\83ã\83³ã\83\97ã\83\88ã\81¯ã\82·ã\82§ã\83«ç\8b¬ç\89¹ã\81®ã\82\84ã\82\8aæ\96¹ã\81§ã\80\81 ã\82·ã\82§ã\83«ã\81\8c次ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\82\92å\8f\97ã\81\91ä»\98ã\81\91ã\82\89ã\82\8cã\82\8bç\8a¶æ\85\8bã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
-ã\83\97ã\83ã\83³ã\83\97ã\83\88ã\81¯ã\80\81æ\9f\94è»\9fã\81«ã\82«ã\82¹ã\82¿ã\83\9eã\82¤ã\82º ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\80\81ã\83¦ã\83¼ã\82¶å\90\8dã\80\81ã\83\9eã\82·ã\83³å\90\8dã\80\81ã\82«ã\83¬ã\83³ã\83\88ã\83»ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\80\81æ\99\82å\88»ã\81ªã\81©ã\82\92 ã\83\97ã\83ã\83³ã\83\97ã\83\88ã\81«å\90«ã\82\81ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
-PS1="What next, master? " と設定すると、 プロンプトはそのように変更されるだろう。
+ここで Control\-D を打つとセッションが終了する。 ここで、 \fB% \fP はコマンドプロンプトである。コマンドプロンプトはシェル独特のやり方で、
+ã\82·ã\82§ã\83«ã\81\8c次ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\82\92å\8f\97ã\81\91ä»\98ã\81\91ã\82\89ã\82\8cã\82\8bç\8a¶æ\85\8bã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ã\83\97ã\83ã\83³ã\83\97ã\83\88ã\81¯ã\80\81æ\9f\94è»\9fã\81«ã\82«ã\82¹ã\82¿ã\83\9eã\82¤ã\82º
+ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\80\81ã\83¦ã\83¼ã\82¶ã\83¼å\90\8dã\80\81ã\83\9eã\82·ã\83³å\90\8dã\80\81ã\82«ã\83¬ã\83³ã\83\88ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\80\81æ\99\82å\88»ã\81ªã\81©ã\82\92 ã\83\97ã\83ã\83³ã\83\97ã\83\88ã\81«å\90«ã\82\81ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 PS1="What next, master?
+" と設定すると、 プロンプトはそのように変更されるだろう。
.LP
例にあるように、 \fIdate\fP という日付と時刻を表示するコマンドや、 \fIcal\fP というカレンダを表示するコマンドもある。
.LP
-\fIls\fP ã\82³ã\83\9eã\83³ã\83\89ã\81¯ã\82«ã\83¬ã\83³ã\83\88ã\83»ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®å\86\85容ã\82\92ã\83ªã\82¹ã\83\88表示ã\81\99ã\82\8bã\80\81ã\81¤ã\81¾ã\82\8a ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªå\86\85ã\81«ã\81©ã\82\93ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\81\8cã\81\82ã\82\8bã\81\8bã\82\92æ\95\99ã\81\88ã\81¦ã\81\8fã\82\8cã\82\8bã\80\82 \fI\-l\fP
+\fIls\fP コマンドはカレントディレクトリの内容をリスト表示する、つまり ディレクトリ内にどんなファイルがあるかを教えてくれる。 \fI\-l\fP
オプションをつけて実行すると、詳細表示が行われ、 ファイルの所有者、サイズ、日付などが表示される。 上の例では、"tel" ファイルは、サイズが 37
バイトで、所有者は aeb で、 所有者は読み書きができ、他の人は読み出しだけができることが分かる。 ファイルの所有者と権限 (permission)
は、それぞれ \fIchown\fP コマンドと \fIchmod\fP コマンドで変更できる。
.LP
\fIgrep\fP コマンドは、指定された文字列を一つ以上のファイルから探す (コマンド名は "g/re/p" に由来している)。 上の例では、Maja
の電話番号が見つかっている。
-.SS ã\83\91ã\82¹å\90\8dã\81¨ã\82«ã\83¬ã\83³ã\83\88ã\83»ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ª
+.SS パス名とカレントディレクトリ
ファイルはファイル階層という大きな木の中にある。それぞれのファイルには \fIパス名 (pathname)\fP があり、パス名は (/ と呼ばれる)
木の根からの経路を示すものである。 上の例では、完全なパス名は /home/aeb/tel のようになる。
-ã\81\84ã\81¤ã\82\82å®\8cå\85¨ã\81ªã\83\91ã\82¹å\90\8dã\82\92使ã\81\86ã\81®ã\81¯ä¸\8d便ã\81ªã\81®ã\81§ã\80\81ã\82«ã\83¬ã\83³ã\83\88ã\83»ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81«ã\81\82ã\82\8b ã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\81®æ\9c\80å¾\8cã\81®é\83¨å\88\86ã\81 ã\81\91ã\81«ç\9c\81ç\95¥ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
-ã\81\97ã\81\9fã\81\8cã\81£ã\81¦ã\80\81ã\82«ã\83¬ã\83³ã\83\88ã\83»ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81\8c "/home/aeb" ã\81®æ\99\82ã\81¯ã\80\81 "/home/aeb/tel" ã\82\92 "tel" ã\81«ç\9c\81ç\95¥ã\81\97ã\81¦æ\9b¸ã\81\8fã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
+いつも完全なパス名を使うのは不便なので、カレントディレクトリにある ファイル名は、ファイル名の最後の部分だけに省略することができる。
+したがって、カレントディレクトリが "/home/aeb" の時は、 "/home/aeb/tel" を "tel" に省略して書くことができる。
.LP
-\fIpwd\fP ã\82³ã\83\9eã\83³ã\83\89ã\81¯ã\82«ã\83¬ã\83³ã\83\88ã\83»ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82\92表示ã\81\99ã\82\8bã\80\82
+\fIpwd\fP コマンドはカレントディレクトリを表示する。
.LP
-\fIcd\fP ã\82³ã\83\9eã\83³ã\83\89ã\81¯ã\82«ã\83¬ã\83³ã\83\88ã\83»ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82 "cd /"ã\80\81"pwd"ã\80\81"cd"ã\80\81"pwd" ã\81¨é \86ã\81«å®\9fè¡\8cã\81\97ã\81¦ã\81¿ã\82\8bã\81¨ã\82\88ã\81\84ã\80\82
+\fIcd\fP コマンドはカレントディレクトリを変更する。 "cd /"、"pwd"、"cd"、"pwd" と順に実行してみるとよい。
.SS ディレクトリ
\fImkdir\fP コマンドはディレクトリを新規に作成する。
.LP
\fIrmdir\fP コマンドは空であればディレクトリを削除し、 空でなければエラーメッセージを表示する。
.LP
\fIfind\fP コマンドは、指定された名前やその他の属性を持つファイルを探す (書式はかなり変わっている)。例えば、"find . \-name tel"
-ã\82\92å®\9fè¡\8cã\81\99ã\82\8bã\81¨ã\80\81 "tel" ã\81¨ã\81\84ã\81\86å\90\8då\89\8dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ¤\9cç´¢ã\82\92ã\82«ã\83¬ã\83³ã\83\88ã\83»ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81\8bã\82\89é\96\8bå§\8bã\81\99ã\82\8bã\80\82 (ã\82«ã\83¬ã\83³ã\83\88ã\83»ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81¯ "." ã\81§è¡¨ã\81\99)ã\80\82"find
-/ \-name tel" としても 同じことを行うが、検索は木の根 (/) から開始される。 数 GB
-ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\81«å¯¾ã\81\97ã\81¦æ¤\9cç´¢ã\82\92ã\81\8bã\81\91ã\82\8bã\81¨æ\99\82é\96\93ã\81\8cã\81\8bã\81\8bã\82\8bã\81®ã\81§ã\80\81 ã\81\9dã\81®ã\82\88ã\81\86ã\81ªã\81¨ã\81\8dã\81¯ \fBlocate\fP(1) ã\82\92使ã\81£ã\81\9fæ\96¹ã\81\8cã\81\84ã\81\84ã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
+ã\82\92å®\9fè¡\8cã\81\99ã\82\8bã\81¨ã\80\81 "tel" ã\81¨ã\81\84ã\81\86å\90\8då\89\8dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ¤\9cç´¢ã\82\92ã\82«ã\83¬ã\83³ã\83\88ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81\8bã\82\89é\96\8bå§\8bã\81\99ã\82\8bã\80\82 (ã\82«ã\83¬ã\83³ã\83\88ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81¯ "." ã\81§è¡¨ã\81\99)ã\80\82"find /
+\-name tel" としても 同じことを行うが、検索は木の根 (/) から開始される。 数 GB のディスクに対して検索をかけると時間がかかるので、
+そのようなときは \fBlocate\fP(1) を使った方がいいかもしれない。
.SS ディスクとファイルシステム
\fImount\fP コマンドは、(フロッピーや CDROM などの) ディスク上のファイルシステムを 大きなファイルシステム階層に接続する。逆に
\fIumount\fP コマンドは切り離しを行う。 \fIdf\fP コマンドを実行すると、ディスクの未使用量がどの程度かを表示する。
.SS プロセス
-UNIX システムでは、多くのユーザプロセスとシステムプロセスが同時に実行される。 対話的に実行できるプロセスは \fIforeground\fP
+UNIX ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ã\80\81å¤\9aã\81\8fã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\83\97ã\83ã\82»ã\82¹ã\81¨ã\82·ã\82¹ã\83\86ã\83 ã\83\97ã\83ã\82»ã\82¹ã\81\8cå\90\8cæ\99\82ã\81«å®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\80\82 対話ç\9a\84ã\81«å®\9fè¡\8cã\81§ã\81\8dã\82\8bã\83\97ã\83ã\82»ã\82¹ã\81¯ \fIforeground\fP
で実行されており、そうでないものは \fIbackground\fP で実行されている。 コマンド \fIps\fP
により、どのプロセスが実行されているかやプロセスが持っている番号 (プロセス番号) を表示できる。 コマンド \fIkill\fP
を使うことで、プロセスを取り除くことができる。 オプションなしで実行されると、「いなくなって下さい」というやさしい要求 を行う。"kill \-9"
\fIman ページ\fP に書かれている。例えば "man kill" コマンドを実行すると、"kill" コマンドの
使い方に関する説明が表示される。(同様に "man man" は "man" コマンドに ついての説明を表示する。) \fIman\fP
プログラムはテキストを \fIpager\fP に渡して表示を行う。 \fIpager\fP として \fIless\fP が使われることが多い。
-次ã\81®ã\83\9aã\83¼ã\82¸ã\81«é\80²ã\82\80ã\81«ã\81¯ã\82¹ã\83\9aã\83¼ã\82¹ã\83»ã\82ã\83¼ã\82\92ã\80\81çµ\82äº\86ã\81\99ã\82\8bã\81«ã\81¯ q ã\82\92æ\8a¼ã\81\99ã\80\82
+次のページに進むにはスペースキーを、終了するには q を押す。
.LP
ドキュメントでは、他の man ページへの参照は \fBman\fP(1) のように名前とセクション番号で示すのが一般的である。 man
ページは簡潔に書かれており、詳細を忘れたときに素早く情報を見つける ことができる。例や説明とともに入門向けの記載もあるので、初めての人にとっても
.\" try_trace "$file"
.\" in glibc 2.15, for example), but many distro versions of
.\" ldd seem to remove that code path from the script.
-通常の場合、 \fBldd\fP は標準の動的リンカ (\fBld.so\fP(8) 参照) を \fBLD_TRACE_LOADED_OBJECTS\fP 環境変数に
+通常の場合、 \fBldd\fP は標準の動的リンカー (\fBld.so\fP(8) 参照) を \fBLD_TRACE_LOADED_OBJECTS\fP 環境変数に
1 をセットして起動する。 \fBLD_TRACE_LOADED_OBJECTS\fP に 1
-をセットすると、リンカはライブラリの依存関係を表示する。但し、状況次第では、依存関係の情報を得るのにプログラムを直接実行するバージョンの \fBldd\fP
+ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\81¨ã\80\81ã\83ªã\83³ã\82«ã\83¼ã\81¯ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81®ä¾\9då\98é\96¢ä¿\82ã\82\92表示ã\81\99ã\82\8bã\80\82ä½\86ã\81\97ã\80\81ç\8a¶æ³\81次第ã\81§ã\81¯ã\80\81ä¾\9då\98é\96¢ä¿\82ã\81®æ\83\85å ±ã\82\92å¾\97ã\82\8bã\81®ã\81«ã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92ç\9b´æ\8e¥å®\9fè¡\8cã\81\99ã\82\8bã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81® \fBldd\fP
が存在する。したがって、信頼できない実行ファイルに対しては「決して」 \fBldd\fP
を使っては「ならない」。任意のコードを実行することにつながるからである。信頼できない実行ファイルを扱う、より安全な別の方法としては次のようにするとよい。
バイナリーデータファイルを生成し、 \fIfile\fP に格納する。
.TP
\fB\-u\fP,\ \fB\-\-unbuffered\fP
-出力バッファリングを行わない。
+å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\82\92è¡\8cã\82\8fã\81ªã\81\84ã\80\82
.TP
\fB\-b\ \fP\fIsize\fP,\ \fB\-\-buffer=\fP\fIsize\fP
出力する前に \fIsize\fP 個のエントリーの収集を行う。
.SH 例
以下の簡単なプログラムは、 ピークに達するまで繰り返しメモリーブロックの再割り当てを行い、 その後ブロックサイズが 0
になるまで繰り返し順に小さなブロックに再割り当てを行う。 このプログラムをコンパイルして以下のコマンドを実行すると、
-このプログラムのメモリ使用量がファイル \fImemusage.png\fP に出力される。
+このプログラムのメモリー使用量がファイル \fImemusage.png\fP に出力される。
.in +4n
.nf
\fBmemusagestat\fP は、 ファイル \fIdatafile\fP に格納されたメモリーのプロファイリングデータをグラフとして表現した PNG
ファイルを作成する。 \fIdatafile\fP は \fBmemusage\fP(1) の \fI\-d\fP (\fI\-\-data\fP) オプションで生成される。
-グラフの赤色の線はヒープ使用量 (割り当てられたメモリー) を示し、 緑色の線はスタック使用量を示す。 X 軸はメモリ処理関数の呼び出し数 (\fI\-t\fP
-オプションが指定された場合は時間) である。
+グラフの赤色の線はヒープ使用量 (割り当てられたメモリー) を示し、 緑色の線はスタック使用量を示す。 X 軸はメモリー処理関数の呼び出し数
+(\fI\-t\fP オプションが指定された場合は時間) である。
.SH オプション
.TP
\fB\-o\ \fP\fIfile\fP,\ \fB\-\-output=\fP\fIfile\fP
.SH 説明
\fBtime\fP コマンドは、指定されたプログラム \fIcommand\fP を渡された引き数で実行する。 \fIcommand\fP が終了すると、
\fBtime\fP はこのプログラムの実行時間の統計情報についてのメッセージを 標準エラー出力に出力する。 表示される統計情報は以下の三つから構成される:
-(i) 起動から終了までに経過した実時間 (real time)、 (ii) ユーザ CPU 時間 (\fBtimes\fP(2) が返す \fIstruct
-tms\fP の \fItms_utime\fP と \fItms_cutime\fP の値の合計)、 (iii) システム CPU 時間 (\fBtimes\fP(2)
-が返す \fIstruct tms\fP の \fItms_stime\fP と \fItms_cstime\fP の値の合計)。
+(i) 起動から終了までに経過した実時間 (real time)、 (ii) ユーザー CPU 時間 (\fBtimes\fP(2) が返す
+\fIstruct tms\fP の \fItms_utime\fP と \fItms_cutime\fP の値の合計)、 (iii) システム CPU 時間
+(\fBtimes\fP(2) が返す \fIstruct tms\fP の \fItms_stime\fP と \fItms_cstime\fP の値の合計)。
(\fBbash\fP(1) などの) いくつかのシェルには、ここで説明するコマンドよりも 機能が少ない、組み込みの \fBtime\fP コマンドが存在する。
組み込みではない実際のコマンドを使用するためには、 (\fI/usr/bin/time\fP のような) コマンドのパス名を指定する必要があるかもしれない。
"real %f\enuser %f\ensys %f\en"
.in
.IP
-ã\81\8c使ç\94¨ã\81\95ã\82\8cã\82\8b (å\90\84æ\95°å\97ã\81¯ç§\92å\8d\98ä½\8d)ã\80\82 %f ã\81®å\87ºå\8a\9bã\81§ã\81®å°\8fæ\95°ç\82¹ä»¥ä¸\8bã\81®æ¡\81æ\95°ã\81¯è¦\8få®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\81\8cã\80\81 ã\82¯ã\83ã\83\83ã\82¯ã\83»ã\83\86ã\82£ã\83\83ã\82¯ (clock tick)
+が使用される (各数字は秒単位)。 %f の出力での小数点以下の桁数は規定されていないが、 クロックティック (clock tick)
の精度を表すのに十分な桁数となり、 少なくとも一桁は存在する。
.SH 終了ステータス
\fIcommand\fP が起動された場合は、 \fIcommand\fP の終了ステータスが終了ステータスとなる。 \fIcommand\fP
を探すのに使われる。それ以外は出力文字や書式に使用される。
.SH "GNU バージョン"
以下は GNU 1.7 バージョンの \fBtime\fP の説明である。コマンド名とは裏腹に、GNU バージョンでは
-有益な情報がたくさん出力される。使用時間だけでなく、 (取得できる場合には) メモリや I/O、IPC 呼び出しなどの他のリソース
+æ\9c\89ç\9b\8aã\81ªæ\83\85å ±ã\81\8cã\81\9fã\81\8fã\81\95ã\82\93å\87ºå\8a\9bã\81\95ã\82\8cã\82\8bã\80\82使ç\94¨æ\99\82é\96\93ã\81 ã\81\91ã\81§ã\81ªã\81\8fã\80\81 (å\8f\96å¾\97ã\81§ã\81\8dã\82\8bå ´å\90\88ã\81«ã\81¯) ã\83¡ã\83¢ã\83ªã\83¼ã\82\84 I/Oã\80\81IPC å\91¼ã\81³å\87ºã\81\97ã\81ªã\81©ã\81®ä»\96ã\81®ã\83ªã\82½ã\83¼ã\82¹
に関する情報も出力される。 出力はフォーマット文字列を使って整形され、 フォーマット文字列は \-f オプションか環境変数 \fBTIME\fP で指定できる。
.LP
デフォルトのフォーマット文字列は以下の通り。
そのプロセスがカーネルモードで消費した CPU 時間の合計 (秒単位)。
.TP
\fB%U\fP
-そのプロセスがユーザモードで消費した CPU 時間の合計 (秒単位)。
+ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\83¦ã\83¼ã\82¶ã\83¼ã\83¢ã\83¼ã\83\89ã\81§æ¶\88è²»ã\81\97ã\81\9f CPU æ\99\82é\96\93ã\81®å\90\88è¨\88 (ç§\92å\8d\98ä½\8d)ã\80\82
.TP
\fB%P\fP
このジョブが獲得した CPU の割り合い (パーセンテージ)。 (%U + %S) / %E で計算される。
(tcsh にはない) そのプロセスの resident set size の平均値。 キロバイト単位。
.TP
\fB%K\fP
-そのプロセスのメモリ使用量の合計 (データ+スタック+テキスト) の平均値。 キロバイト単位。
+そのプロセスのメモリー使用量の合計 (データ+スタック+テキスト) の平均値。 キロバイト単位。
.TP
\fB%D\fP
そのプロセスの非共有データ領域の平均サイズ。 キロバイト単位。
.RE
.ad
.SH 説明
-\fB_exit\fP() は、それを呼んだプロセスを「直ちに」終了させる。 その際、このプロセスが所有しているディスクリプタ (descriptor)
+\fB_exit\fP() は、それを呼んだプロセスを「直ちに」終了させる。 その際、このプロセスが所有しているディスクリプター (descriptor)
で、 オープンされているものは全てクローズされる。 また、このプロセスが所有する子プロセスは全て、プロセス番号 1、 つまり \fIinit\fP
プロセスによって継承され、このプロセスの親プロセスに対して \fBSIGCHLD\fP シグナルが送出される。
.LP
ついての議論は、 \fBexit\fP(3) を参照すること。
.LP
関数 \fB_exit\fP() は \fBexit\fP(3) に似ているが、ANSI C の \fBatexit\fP(3) や \fBon_exit\fP(3)
-によって登録されたいかなる関数も呼び出さない。 標準 I/O バッファのフラッシュや、 \fBtmpfile\fP(3)
+ã\81«ã\82\88ã\81£ã\81¦ç\99»é\8c²ã\81\95ã\82\8cã\81\9fã\81\84ã\81\8bã\81ªã\82\8bé\96¢æ\95°ã\82\82å\91¼ã\81³å\87ºã\81\95ã\81ªã\81\84ã\80\82 æ¨\99æº\96 I/O ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\95ã\83©ã\83\83ã\82·ã\83¥ã\82\84ã\80\81 \fBtmpfile\fP(3)
で作成されたテンポラリファイルの削除を行うかどうかは、実装に依存する。 一方で、 \fB_exit\fP()
-はオープンされているファイルディスクリプタをクローズしないため、 未決定になっている出力がフラッシュされるのを待つのに不確定な遅れが発生する。
+ã\81¯ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\81ªã\81\84ã\81\9fã\82\81ã\80\81 æ\9cªæ±ºå®\9aã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bå\87ºå\8a\9bã\81\8cã\83\95ã\83©ã\83\83ã\82·ã\83¥ã\81\95ã\82\8cã\82\8bã\81®ã\82\92å¾\85ã\81¤ã\81®ã\81«ä¸\8d確å®\9aã\81ªé\81\85ã\82\8cã\81\8cç\99ºç\94\9fã\81\99ã\82\8bã\80\82
この遅れを発生させたくなければ、 \fB_exit\fP() の前に \fBtcflush\fP(3) のような関数を呼び出せばよい。 \fB_exit\fP()
が呼び出されたときに、 未決定になっている全ての I/O がキャンセルされるのか、 またどの I/O がキャンセルされるのかは実装に依存する。
.SS "C ライブラリとカーネル ABI の違い"
-ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.3 ã\82\88ã\82\8aå\89\8dã\81® glibc ã\81§ã\81¯ã\80\81 \fB_exit\fP() ã\81®ã\83©ã\83\83ã\83\91ã\83¼é\96¢æ\95°ã\81¯å\90\8cã\81\98å\90\8då\89\8dã\81®ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\92èµ·å\8b\95ã\81\97ã\81¦ã\81\84ã\81\9fã\80\82 glibc
+バージョン 2.3 より前の glibc では、 \fB_exit\fP() のラッパー関数は同じ名前のカーネルシステムコールを起動していた。 glibc
2.3 以降では、プロセス内の全てのスレッドを終了するために、 ラッパー関数は \fBexit_group\fP(2) を起動する。
.SH 関連項目
\fBexecve\fP(2), \fBexit_group\fP(2), \fBfork\fP(2), \fBkill\fP(2), \fBwait\fP(2),
.SH 準拠
これらのマクロは Linux 固有であり、その使用は非推奨である。
.SH 注意
-カーネル 2.6.18 あたりから、_syscall マクロ群はユーザ空間に対して提供される ヘッダファイルから削除された。代わりに
-\fBsyscall\fP(2) を使用すること。 (いくつかのアーキテクチャ、特に ia64、では、これまで _syscall マクロが
-提供されたことはない。このようなアーキテクチャでは、常に \fBsyscall\fP(2) が必要であった。)
+カーネル 2.6.18 あたりから、_syscall マクロ群はユーザー空間に対して提供される ヘッダーファイルから削除された。代わりに
+\fBsyscall\fP(2) ã\82\92使ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82 (ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\80\81ç\89¹ã\81« ia64ã\80\81ã\81§ã\81¯ã\80\81ã\81\93ã\82\8cã\81¾ã\81§ _syscall ã\83\9eã\82¯ã\83ã\81\8c
+æ\8f\90ä¾\9bã\81\95ã\82\8cã\81\9fã\81\93ã\81¨ã\81¯ã\81ªã\81\84ã\80\82ã\81\93ã\81®ã\82\88ã\81\86ã\81ªã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81常ã\81« \fBsyscall\fP(2) ã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\81£ã\81\9fã\80\82)
-_syscall() マクロはプロトタイプを「生成しない」。 ユーザはプロトタイプを自分で書かなければならないかもしれない。 とりわけ C++
-ユーザの場合はそうであろう。
+_syscall() ã\83\9eã\82¯ã\83ã\81¯ã\83\97ã\83ã\83\88ã\82¿ã\82¤ã\83\97ã\82\92ã\80\8cç\94\9fæ\88\90ã\81\97ã\81ªã\81\84ã\80\8dã\80\82 ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ã\83\97ã\83ã\83\88ã\82¿ã\82¤ã\83\97ã\82\92è\87ªå\88\86ã\81§æ\9b¸ã\81\8bã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82 ã\81¨ã\82\8aã\82\8fã\81\91 C++
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81®å ´å\90\88ã\81¯ã\81\9dã\81\86ã\81§ã\81\82ã\82\8dã\81\86ã\80\82
システムコールは、正のエラーコードのみ、または負のエラーコードのみを返すように
定められている訳ではない。そのシステムコールがどのようなエラーコードを返すかを
.\" header file contains the required SYS_foo definition.
.\" Otherwise, the use of a _syscall macro is required.
.\"
-システムコールを定義する際、引き数の型は値渡し (by\-value) か、 (構造体のように集合的なデータの場合は) ポインタ渡し
+システムコールを定義する際、引き数の型は値渡し (by\-value) か、 (構造体のように集合的なデータの場合は) ポインター渡し
(by\-pointer) でなければならない。
.SH 例
.nf
.SH 説明
\fBaccept\fP() システムコールは、接続指向のソケット型 (\fBSOCK_STREAM\fP, \fBSOCK_SEQPACKET\fP)
で用いられる。 この関数は、接続待ちソケット \fIsocket\fP 宛ての保留状態の接続要求が入っているキューから
-å\85\88é ã\81®æ\8e¥ç¶\9aè¦\81æ±\82ã\82\92å\8f\96ã\82\8aå\87ºã\81\97ã\80\81æ\8e¥ç¶\9aæ¸\88ã\81¿ã\82½ã\82±ã\83\83ã\83\88ã\82\92æ\96°è¦\8fã\81«ç\94\9fæ\88\90ã\81\97ã\80\81 ã\81\9dã\81®ã\82½ã\82±ã\83\83ã\83\88ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bæ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を返す。
+å\85\88é ã\81®æ\8e¥ç¶\9aè¦\81æ±\82ã\82\92å\8f\96ã\82\8aå\87ºã\81\97ã\80\81æ\8e¥ç¶\9aæ¸\88ã\81¿ã\82½ã\82±ã\83\83ã\83\88ã\82\92æ\96°è¦\8fã\81«ç\94\9fæ\88\90ã\81\97ã\80\81 ã\81\9dã\81®ã\82½ã\82±ã\83\83ã\83\88ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bæ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を返す。
新規に生成されたソケットは、接続待ち (listen) 状態ではない。 もともとのソケット \fIsockfd\fP はこの呼び出しによって影響を受けない。
.PP
引き数 \fIsockfd\fP は、 \fBsocket\fP(2) によって生成され、 \fBbind\fP(2) によってローカルアドレスにバインドされ、
\fBlisten\fP(2) を経て接続を待っているソケットである。
-\fIaddr\fP 引き数は \fIsockaddr\fP 構造体へのポインタである。 この構造体には接続相手のソケットのアドレスが入っている。 \fIaddr\fP
+\fIaddr\fP å¼\95ã\81\8dæ\95°ã\81¯ \fIsockaddr\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81«ã\81¯æ\8e¥ç¶\9aç\9b¸æ\89\8bã\81®ã\82½ã\82±ã\83\83ã\83\88ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8cå\85¥ã\81£ã\81¦ã\81\84ã\82\8bã\80\82 \fIaddr\fP
引き数で返されるアドレスの正確なフォーマットは、 ソケットのアドレス種別によって変わる (\fBsocket\fP(2) およびそれぞれのプロトコルの
man ページを参照)。 \fIaddr\fP が NULL の場合、 \fIaddr\fP には何も入らない。この場合、 \fIaddrlen\fP
は使用されず、この引き数は NULL にしておくべきである。
\fIaddrlen\fP 引き数は入出力両用の引き数である。呼び出し時には、呼び出し元が \fIaddr\fP が指す構造体のサイズ (バイト単位)
で初期化しておかなければならない。 返ってくる時には、接続相手のアドレスの実際の大きさが格納される。
-渡されたバッファが小さ過ぎた場合は、返されるアドレスの末尾が切り詰められる。
+渡ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cå°\8fã\81\95é\81\8eã\81\8eã\81\9få ´å\90\88ã\81¯ã\80\81è¿\94ã\81\95ã\82\8cã\82\8bã\82¢ã\83\89ã\83¬ã\82¹ã\81®æ\9c«å°¾ã\81\8cå\88\87ã\82\8aè©°ã\82\81ã\82\89ã\82\8cã\82\8bã\80\82
この場合には、 \fIaddrlen\fP には、呼び出し時に指定された値よりも大きな値が格納される。
.PP
キューに保留となっている接続要求がなく、 かつソケットが非停止になっていないときは、 \fBaccept\fP() は接続が発生するまで呼び出し元を停止
\fBsocket\fP(7) を参照のこと。
.PP
明示的な接続確認 (confirmation) を必要とするようなプロトコル (DECNet など) では、 \fBaccept\fP()
-ã\81¯å\8d\98ã\81«æ¬¡ã\81®æ\8e¥ç¶\9aè¦\81æ±\82ã\82\92ã\82ã\83¥ã\83¼ã\81\8bã\82\89å\8f\96ã\82\8aå\87ºã\81\99ã\81 ã\81\91ã\81§ã\81\82ã\82\8aã\80\81 æ\8e¥ç¶\9a確èª\8dã\81¯è¡\8cã\82\8fã\81ªã\81\84ã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\9bã\82\88ã\80\82æ\8e¥ç¶\9a確èª\8dã\81¯ã\80\81 æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿に対する
+ã\81¯å\8d\98ã\81«æ¬¡ã\81®æ\8e¥ç¶\9aè¦\81æ±\82ã\82\92ã\82ã\83¥ã\83¼ã\81\8bã\82\89å\8f\96ã\82\8aå\87ºã\81\99ã\81 ã\81\91ã\81§ã\81\82ã\82\8aã\80\81 æ\8e¥ç¶\9a確èª\8dã\81¯è¡\8cã\82\8fã\81ªã\81\84ã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\9bã\82\88ã\80\82æ\8e¥ç¶\9a確èª\8dã\81¯ã\80\81 æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼に対する
通常の読み取り/書き込みによってなされ、接続拒否 (rejection) は新しいソケットをクローズすることによってなされる。 現在のところ、
Linux 上でこれらのセマンティクスを持つのは DECNet だけである。
を追加で呼び出す必要がなくなる。
.TP
\fBSOCK_CLOEXEC\fP
-新しいファイルディスクリプタに対して close\-on\-exec (\fBFD_CLOEXEC\fP) フラグをセットする。
+æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ close\-on\-exec (\fBFD_CLOEXEC\fP) ã\83\95ã\83©ã\82°ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\80\82
このフラグが役に立つ理由については、 \fBopen\fP(2) の \fBO_CLOEXEC\fP フラグの説明を参照のこと。
.SH 返り値
-成功した場合、これらのシステムコールは 受け付けたソケットのディスクリプタである非負の整数値を返す。 エラーが発生した場合は \-1 を返し、
+æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ å\8f\97ã\81\91ä»\98ã\81\91ã\81\9fã\82½ã\82±ã\83\83ã\83\88ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bé\9d\9eè² ã\81®æ\95´æ\95°å\80¤ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81\9få ´å\90\88ã\81¯ \-1 ã\82\92è¿\94ã\81\97ã\80\81
\fIerrno\fP を適切に設定する。
.SS エラー処理
Linux の \fBaccept\fP() (と \fBaccept4\fP()) は、新しいソケットにおける、発生済みのネットワークエラーを
これら 2 つの定数が同じ値を持つことも求めていない。 したがって、移植性が必要なアプリケーションでは、両方の可能性を 確認すべきである。
.TP
\fBEBADF\fP
-ディスクリプタが不正。
+ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cä¸\8dæ£ã\80\82
.TP
\fBECONNABORTED\fP
接続が中止された。
.TP
\fBEFAULT\fP
-\fIaddr\fP 引き数がユーザアドレス空間の書き込み可能領域にない。
+\fIaddr\fP å¼\95ã\81\8dæ\95°ã\81\8cã\83¦ã\83¼ã\82¶ã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿å\8f¯è\83½é \98å\9f\9fã\81«ã\81ªã\81\84ã\80\82
.TP
\fBEINTR\fP
有効な接続が到着する前に捕捉されたシグナルによって システムコールが中断された。 \fBsignal\fP(7) 参照。
(\fBaccept4\fP()) \fIflags\fP に不正な値が指定されている。
.TP
\fBEMFILE\fP
-1ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81§ã\81\8dã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿数の上限に達した。
+1ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81§ã\81\8dã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼数の上限に達した。
.TP
\fBENFILE\fP
オープンされたファイルの総数がシステム全体の上限に達していた。
.TP
\fBENOBUFS\fP, \fBENOMEM\fP
-ã\83¡ã\83¢ã\83ªã\81\8c足ã\82\8aã\81ªã\81\84ã\80\82 å¤\9aã\81\8fã\81®å ´å\90\88ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\83¡ã\83¢ã\83ªã\81\8c足ã\82\8aã\81ªã\81\84ã\82\8fã\81\91ã\81§ã\81¯ã\81ªã\81\8fã\80\81 ã\82½ã\82±ã\83\83ã\83\88ã\83\90ã\83\83ã\83\95ã\82¡ã\81®å¤§ã\81\8dã\81\95ã\81«ã\82\88ã\82\8bã\83¡ã\83¢ã\83ª割り当ての制限である。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\80\82 å¤\9aã\81\8fã\81®å ´å\90\88ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\82\8fã\81\91ã\81§ã\81¯ã\81ªã\81\8fã\80\81 ã\82½ã\82±ã\83\83ã\83\88ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å¤§ã\81\8dã\81\95ã\81«ã\82\88ã\82\8bã\83¡ã\83¢ã\83ªã\83¼割り当ての制限である。
.TP
\fBENOTSOCK\fP
-ディスクリプタはソケットではなくファイルを参照している。
+ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\82½ã\82±ã\83\83ã\83\88ã\81§ã\81¯ã\81ªã\81\8fã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fBEOPNOTSUPP\fP
参照しているソケットの型が \fBSOCK_STREAM\fP でない。
.TP
\fBEPROTO\fP
-ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83»ã\82¨ã\83©ã\83¼ã\80\82
+プロトコルエラー。
.PP
上記に加えて、Linux の \fBaccept\fP() は以下のエラーで失敗する:
.TP
が返したソケットに対して全ての必要なフラグを明示的に設定するように すべきである。
.SH 注意
POSIX.1\-2001 では \fI<sys/types.h>\fP のインクルードは必須とされておらず、 Linux
-ã\81§ã\81¯ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83\95ã\82¡ã\82¤ã\83«ã\81¯å¿\85è¦\81ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81æ´å\8f²ç\9a\84ã\81«ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å®\9fè£\85 (BSD ç³») ã\81§ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ファイルが
+ã\81§ã\81¯ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81¯å¿\85è¦\81ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81æ´å\8f²ç\9a\84ã\81«ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å®\9fè£\85 (BSD ç³») ã\81§ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ファイルが
必要であり、移植性が必要なアプリケーションではこのファイルを インクルードするのが賢明であろう。
\fBSIGIO\fP が届けられた後や、 \fBselect\fP(2) または \fBpoll\fP(2) が読み込み可能イベントを返した後に、
「まともなライブラリを作りたければ、 "socklen_t" のサイズは int と同じにしなきゃならない。 さもないと BSD
ソケット層を破壊することになっちゃう。 POSIX は最初こいつを size_t にしたんで、 ぼくは彼らに文句をがなりたてた
(多分そういう人は他にもいたと思う。多くはなかったようだけど)。 こいつを size_t にするのは完全にいかれてる。 例えば 64
-ビットアーキテクチャでは、 size_t が "int" と同じサイズだなんてことはほとんどないからね。 このサイズは "int" と
+ã\83\93ã\83\83ã\83\88ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81 size_t ã\81\8c "int" ã\81¨å\90\8cã\81\98ã\82µã\82¤ã\82ºã\81 ã\81ªã\82\93ã\81¦ã\81\93ã\81¨ã\81¯ã\81»ã\81¨ã\82\93ã\81©ã\81ªã\81\84ã\81\8bã\82\89ã\81ã\80\82 ã\81\93ã\81®ã\82µã\82¤ã\82ºã\81¯ "int" ã\81¨
同じでなきゃ『ダメ』なんだ。 BSD ソケットインターフェースっていうのはそういうものなんだから。 まあともかく POSIX の人たちも、
"socklen_t" を作るという解決策をなんとかひねり出した。 そもそも最初から放っておけば良かったんだが、 いじっちゃった以上、
名前付きの型を持たせなきゃならない、と思ったみたいだね。 なんでかはわかんないけど (きっと最初にやっちまった馬鹿な間違いで顔をつぶしたくなかったから、
.\"
.TH ACCESS 2 2014\-08\-19 Linux "Linux Programmer's Manual"
.SH 名前
-access, faccessat \- ユーザのファイルへのアクセス権をチェックする
+access, faccessat \- ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹æ¨©ã\82\92ã\83\81ã\82§ã\83\83ã\82¯ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <unistd.h>\fP
\fBW_OK\fP, \fBX_OK\fP は、ファイルが存在して、それぞれ読み込み、書き込み、実行の許可があるか を検査する。
チェックは、実際に操作が行われる際に使用される実効 (effective) ID でなく、 呼び出し元プロセスの \fI実 (real)\fP UID と
-\fI実 (real)\fP GID を使って行われる。 これにより、set\-user\-ID プログラムで、プログラムを起動するユーザの権限を
+\fIå®\9f (real)\fP GID ã\82\92使ã\81£ã\81¦è¡\8cã\82\8fã\82\8cã\82\8bã\80\82 ã\81\93ã\82\8cã\81«ã\82\88ã\82\8aã\80\81set\-user\-ID ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\80\81ã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92èµ·å\8b\95ã\81\99ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼ã\81®æ¨©é\99\90ã\82\92
簡単に決定することができる。
呼び出し元プロセスが特権プロセス (つまり、プロセスの実 UID が 0) の場合、 通常のファイルに対する \fBX_OK\fP
I/O エラーが発生した。
.TP
\fBENOMEM\fP
-カーネルに十分なメモリがない。
+ã\82«ã\83¼ã\83\8dã\83«ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBETXTBSY\fP
実行中のファイルに対して書き込みを要求した。
\fBfaccessat\fP() では以下のエラーも発生する。
.TP
\fBEBADF\fP
-\fIdirfd\fP が適切なファイルディスクリプタでない。
+\fIdirfd\fP ã\81\8cé\81©å\88\87ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fIflags\fP に無効なフラグが指定された。
.TP
\fBENOTDIR\fP
-\fIpathname\fP が相対パスで、 \fIdirfd\fP がディレクトリ以外のファイルを参照しているファイルディスクリプタである。
+\fIpathname\fP ã\81\8cç\9b¸å¯¾ã\83\91ã\82¹ã\81§ã\80\81 \fIdirfd\fP ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä»¥å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH バージョン
\fBfaccessat\fP() はバージョン 2.6.16 で Linux に追加された。 ライブラリによるサポートは glibc バージョン 2.4
で追加された。
\fBfaccessat\fP(): POSIX.1\-2008.
.SH 注意
.PP
-\fB警告\fP: あるユーザが、例えば \fBopen\fP(2) によるアクセスが可能かどうかを、 (実際に行う前に)
+\fBè¦å\91\8a\fP: ã\81\82ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\80\81ä¾\8bã\81\88ã\81° \fBopen\fP(2) ã\81«ã\82\88ã\82\8bã\82¢ã\82¯ã\82»ã\82¹ã\81\8cå\8f¯è\83½ã\81\8bã\81©ã\81\86ã\81\8bã\82\92ã\80\81 (å®\9fé\9a\9bã\81«è¡\8cã\81\86å\89\8dã\81«)
これらのシステムコールを使ってチェックするのは、セキュリティホールの原因になる。なぜならチェックをしてから
実際にファイルのオープン操作をする間の短い間隔を悪用できるからである。 \fBこの理由があるので、このシステムコールを使うのは避けるべきである。\fP
-(ここで説明した例の場合には、より安全な方法としては、 そのプロセスの実効ユーザ ID を実ユーザ ID に一時的に切り替えてから \fBopen\fP(2)
-を呼び出す方法がある。)
+(ここで説明した例の場合には、より安全な方法としては、 そのプロセスの実効ユーザー ID を実ユーザー ID に一時的に切り替えてから
+\fBopen\fP(2) を呼び出す方法がある。)
.PP
\fBaccess\fP() は常にシンボリックリンクの展開を行う。
シンボリックリンクのアクセス許可を確認する必要がある場合は、
これらのシステムコールはエラーを返す。
.PP
.\" HPU-UX 11 and Tru64 5.1 do this.
-POSIX.1\-2001 では、 呼び出し元プロセスが適切な特権を持っている場合 (つまり、スーパーユーザの場合)、
+POSIX.1\-2001 ã\81§ã\81¯ã\80\81 å\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83ã\82»ã\82¹ã\81\8cé\81©å\88\87ã\81ªç\89¹æ¨©ã\82\92æ\8c\81ã\81£ã\81¦ã\81\84ã\82\8bå ´å\90\88 (ã\81¤ã\81¾ã\82\8aã\80\81ã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\83¼ã\81®å ´å\90\88)ã\80\81
たとえファイルの実行許可ビットが全くセットされていなくても \fBX_OK\fP のチェックとして成功を返す実装が認められている。 Linux
はこのようにはなっていない。
.PP
のシンボリックリンクに基づいてパス名を構成する。
.SH バグ
.\" This behavior appears to have been an implementation accident.
-バージョン 2.4 (とそれ以前) のカーネルには、スーパーユーザでの \fBX_OK\fP のチェックの扱いに奇妙な点がある。 ディレクトリ以外のファイルで
-(ユーザ、グループ、他人の) 全てのカテゴリについて 実行許可がない場合、 \fBaccess\fP() のチェックで \-1 が返るのは \fImode\fP に
-\fBX_OK\fP だけが指定されたときだけであり \fImode\fP に \fBR_OK\fP や \fBW_OK\fP が一緒に指定された場合には
-\fBaccess\fP() は 0 を返す。 (バージョン 2.6.3 以前の) 初期の 2.6 系のカーネルも 2.4 系のカーネルと同様の動作をする。
+バージョン 2.4 (とそれ以前) のカーネルには、スーパーユーザーでの \fBX_OK\fP のチェックの扱いに奇妙な点がある。
+ディレクトリ以外のファイルで (ユーザー、グループ、他人の) 全てのカテゴリーについて 実行許可がない場合、 \fBaccess\fP() のチェックで
+\-1 が返るのは \fImode\fP に \fBX_OK\fP だけが指定されたときだけであり \fImode\fP に \fBR_OK\fP や \fBW_OK\fP
+が一緒に指定された場合には \fBaccess\fP() は 0 を返す。 (バージョン 2.6.3 以前の) 初期の 2.6 系のカーネルも 2.4
+系のカーネルと同様の動作をする。
2.6.20 より前のカーネルでは、 これらのシステムコールはファイルが存在するファイルシステムを \fBmount\fP(2) する際に指定された
\fBMS_NOEXEC\fP フラグの効果を無視していた。 カーネル 2.6.20 以降では、 \fBMS_NOEXEC\fP
.\"
.TH ACCT 2 2008\-06\-16 Linux "Linux Programmer's Manual"
.SH 名前
-acct \- ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\81®ã\82ªã\83³ã\81¨ã\82ªã\83\95ã\82\92å\88\87ã\82\8aæ\8f\9bã\81\88ã\82\8b
+acct \- プロセスアカウントのオンとオフを切り換える
.SH 書式
.ad l
.nf
.sp
\fBacct\fP(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500)
.SH 説明
-\fBacct\fP() ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\80\81ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\81®æ\9c\89å\8a¹ã\83»ç\84¡å\8a¹ã\82\92å\88\87ã\82\8aæ\9b¿ã\81\88ã\82\8bã\80\82 æ\97¢å\98ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\90\8då\89\8dã\82\92å¼\95ã\81\8dæ\95°ã\81«æ\8c\87å®\9aã\81\97ã\81¦å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9fã\82\89ã\80\81
-アカウント (account) が有効になり、 終了したプロセスの記録が \fIfilename\fP に追記される。 NULL
+\fBacct\fP() ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\80\81ã\83\97ã\83ã\82»ã\82¹ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\81®æ\9c\89å\8a¹ã\83»ç\84¡å\8a¹ã\82\92å\88\87ã\82\8aæ\9b¿ã\81\88ã\82\8bã\80\82 æ\97¢å\98ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\90\8då\89\8dã\82\92å¼\95ã\81\8dæ\95°ã\81«æ\8c\87å®\9aã\81\97ã\81¦å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9fã\82\89ã\80\81 ã\82¢ã\82«ã\82¦ã\83³ã\83\88
+(account) が有効になり、 終了したプロセスの記録が \fIfilename\fP に追記される。 NULL
を引き数として呼び出されたらアカウントをオフにする。
.SH 返り値
成功した場合は 0 が返される。エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
指定されたファイルが存在しない。
.TP
\fBENOMEM\fP
-メモリ不足。
+メモリー不足。
.TP
\fBENOSYS\fP
-ã\82«ã\83¼ã\83\8dã\83«ã\82\92ã\82³ã\83³ã\83\91ã\82¤ã\83«ã\81\97ã\81\9fæ\99\82ã\81« BSD ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\81\8cæ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\81ªã\81\84ã\80\82 ã\81\93ã\81®æ©\9fè\83½ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\82³ã\83³ã\83\95ã\82£ã\82°ã\81®
-\fBCONFIG_BSD_PROCESS_ACCT\fP パラメータによって制御される。
+カーネルをコンパイルした時に BSD プロセスアカウントが有効になっていない。 この機能はカーネルのコンフィグの
+\fBCONFIG_BSD_PROCESS_ACCT\fP ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81«ã\82\88ã\81£ã\81¦å\88¶å¾¡ã\81\95ã\82\8cã\82\8bã\80\82
.TP
\fBENOTDIR\fP
\fIfilename\fP の中でディレクトリして扱われている要素が、 実際はディレクトリでない。
.TP
\fBEPERM\fP
-å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81«ã\81¯ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªç\89¹æ¨©ã\81\8cã\81ªã\81\84ã\80\82 Linux ã\81§ã\81¯ \fBCAP_SYS_PACCT\fP ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£
+呼び出したプロセスにはプロセスアカウントを有効にするのに十分な特権がない。 Linux では \fBCAP_SYS_PACCT\fP ケーパビリティ
(capability) が必要である。
.TP
\fBEROFS\fP
読み込みだけのファイルシステム上のファイルを \fIfilename\fP が参照している。
.TP
\fBEUSERS\fP
-使用可能なファイル構造体がないか、メモリが足りない。
+使ç\94¨å\8f¯è\83½ã\81ªã\83\95ã\82¡ã\82¤ã\83«æ§\8bé\80 ä½\93ã\81\8cã\81ªã\81\84ã\81\8bã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\80\82
.SH 準拠
.\" SVr4 documents an EBUSY error condition, but no EISDIR or ENOSYS.
.\" Also AIX and HP-UX document EBUSY (attempt is made
.SH エラー
.TP
\fBEFAULT\fP
-\fIbuf\fP が書き込み可能なメモリを指していない。
+\fIbuf\fP ã\81\8cæ\9b¸ã\81\8dè¾¼ã\81¿å\8f¯è\83½ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\82\92æ\8c\87ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fIbuf.offset\fP へ \-131071 〜 +131071 の範囲以外の値を設定しようとしたか、 \fIbuf.status\fP
\fBCONFIG_HUGETLB_PAGE\fP を指定してビルドされた場合に) 存在する。 Linux 2.4.20 では syscall
番号が存在するが、 呼び出すとエラー \fBENOSYS\fP で失敗する。
.LP
-i386 では、メモリ管理ハードウェアは通常のページ (4 KiB) と 大きなサイズのページ (以下、ヒュージページ; 2MiB または 4 MiB)
-を 扱うことができる。 同様に、ia64 もいくつかのサイズのヒュージページを扱うことができる。
-これらのシステムコールは、ヒュージページをプロセスのメモリにマップしたり、 再び解放したりする。
-ヒュージページはメモリ内にロックされ、スワップされない。
+i386 では、メモリー管理ハードウェアは通常のページ (4 KiB) と 大きなサイズのページ (以下、ヒュージページ; 2MiB または 4
+MiB) を 扱うことができる。 同様に、ia64 もいくつかのサイズのヒュージページを扱うことができる。
+ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\80\81ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\82\92ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\83\9eã\83\83ã\83\97ã\81\97ã\81\9fã\82\8aã\80\81 å\86\8dã\81³è§£æ\94¾ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bã\80\82
+ヒュージページはメモリー内にロックされ、スワップされない。
.LP
\fIkey\fP 引き数は識別子である。 0 の場合、ページは非公開になり、子プロセスに継承されない。 正の場合、ページは同じ \fIkey\fP
を使う他のアプリケーションと共有され、子プロセスに継承される。
.LP
\fBfree_hugepages\fP() の \fIaddr\fP 引き数は、どのページを解放するかを指定する: \fIaddr\fP は
-\fBalloc_hugepages\fP() ã\81®å\91¼ã\81³å\87ºã\81\97ã\81®è¿\94ã\82\8aå\80¤ã\81§ã\81\82ã\82\8b (å\85¨ã\81¦ã\81®ã\83¦ã\83¼ã\82¶ã\81\8cã\83¡ã\83¢ã\83ªã\82\92解æ\94¾ã\81\97ã\81\9fã\81¨ã\81\8dã\81«ã\80\81 ã\81\9dã\81®ã\83¡ã\83¢ã\83ªã\81¯å\88\9dã\82\81ã\81¦å®\9fé\9a\9bã\81«è§£æ\94¾ã\81\95ã\82\8cã\82\8b)ã\80\82
-\fBalloc_hugepages\fP() の \fIaddr\fP 引き数はヒントであり、カーネルはそれに従うかもしれないし、 従わないかもしれない。
-アドレスは正しく配置されなければならない。
+\fBalloc_hugepages\fP() ã\81®å\91¼ã\81³å\87ºã\81\97ã\81®è¿\94ã\82\8aå\80¤ã\81§ã\81\82ã\82\8b (å\85¨ã\81¦ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\83¡ã\83¢ã\83ªã\83¼ã\82\92解æ\94¾ã\81\97ã\81\9fã\81¨ã\81\8dã\81«ã\80\81
+そのメモリーは初めて実際に解放される)。 \fBalloc_hugepages\fP() の \fIaddr\fP
+引き数はヒントであり、カーネルはそれに従うかもしれないし、 従わないかもしれない。 アドレスは正しく配置されなければならない。
.LP
\fIlen\fP 引き数は要求されたセグメントの長さである。 これはヒュージページのサイズの倍数にしなければならない。
.LP
-\fIprot\fP 引き数はセグメントのメモリ保護を指定する。 これは \fBPROT_READ\fP, \fBPROT_WRITE\fP, \fBPROT_EXEC\fP
+\fIprot\fP 引き数はセグメントのメモリー保護を指定する。 これは \fBPROT_READ\fP, \fBPROT_WRITE\fP, \fBPROT_EXEC\fP
のいずれかである。
.LP
\fIkey\fP が正でない限り、 \fIflag\fP 引き数は無視される。 \fIkey\fP が正で、かつ \fIflag\fP が \fBIPC_CREAT\fP
このシステムコールは Intel プロセッサ上の Linux に固有のものであり、 移植性が必要なプログラムで使うべきでない。
.SH 注意
これらのシステムコールはなくなった。 これらは Linux 2.5.36 から 2.5.54 にのみ存在する。 代わりに今は hugetlbfs
-ファイルシステムを使うことができる。 (CPU がサポートしている場合) ヒュージページを持つメモリは、 \fBmmap\fP(2)
+ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\82\92使ã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 (CPU ã\81\8cã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88) ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\82\92æ\8c\81ã\81¤ã\83¡ã\83¢ã\83ªã\83¼ã\81¯ã\80\81 \fBmmap\fP(2)
を使ってこの仮想ファイルシステムでファイルをマップすることで取得できる。
.LP
-ヒュージページの最大数は、 \fBhugepages=\fP 起動パラメータを使って指定できる。
+ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\81®æ\9c\80大æ\95°ã\81¯ã\80\81 \fBhugepages=\fP èµ·å\8b\95ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92使ã\81£ã\81¦æ\8c\87å®\9aã\81§ã\81\8dã\82\8bã\80\82
.\" requires CONFIG_HUGETLB_PAGE (under "Processor type and features")
.\" and CONFIG_HUGETLBFS (under "Filesystems").
.\"
.TH ARCH_PRCTL 2 2007\-12\-26 Linux "Linux Programmer's Manual"
.SH 名前
-arch_prctl \- アーキテクチャ固有のスレッド状態を設定する
+arch_prctl \- アーキテクチャー固有のスレッド状態を設定する
.SH 書式
.nf
\fB#include <asm/prctl.h>\fP
\fBint arch_prctl(int \fP\fIcode\fP\fB, unsigned long *\fP\fIaddr\fP\fB);\fP
.fi
.SH 説明
-\fBarch_prctl\fP() 関数はアーキテクチャ固有のプロセス状態またはスレッド状態を設定する。 \fIcode\fP は副機能を選択し、引き数
+\fBarch_prctl\fP() 関数はアーキテクチャー固有のプロセス状態またはスレッド状態を設定する。 \fIcode\fP は副機能を選択し、引き数
\fIaddr\fP を副機能に渡す。 \fIaddr\fP は、"set" 操作では \fIunsigned long\fP として、"get" 操作では
\fIunsigned long\ *\fP として解釈される。
.LP
x86\-64 の副機能は以下の通り:
.TP
\fBARCH_SET_FS\fP
-\fIFS\fP レジスタの 64 ビットベースを \fIaddr\fP に設定する。
+\fIFS\fP ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81® 64 ã\83\93ã\83\83ã\83\88ã\83\99ã\83¼ã\82¹ã\82\92 \fIaddr\fP ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82
.TP
\fBARCH_GET_FS\fP
-現在のスレッドの \fIFS\fP レジスタの 64 ビットベース値を、 \fIaddr\fP が指す \fIunsigned long\fP の領域に格納する。
+ç\8f¾å\9c¨ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81® \fIFS\fP ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81® 64 ã\83\93ã\83\83ã\83\88ã\83\99ã\83¼ã\82¹å\80¤ã\82\92ã\80\81 \fIaddr\fP ã\81\8cæ\8c\87ã\81\99 \fIunsigned long\fP ã\81®é \98å\9f\9fã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82
.TP
\fBARCH_SET_GS\fP
-\fIGS\fP レジスタの 64 ビットベースを \fIaddr\fP に設定する。
+\fIGS\fP ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81® 64 ã\83\93ã\83\83ã\83\88ã\83\99ã\83¼ã\82¹ã\82\92 \fIaddr\fP ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82
.TP
\fBARCH_GET_GS\fP
-現在のスレッドの \fIGS\fP レジスタの 64 ビットベース値を、 \fIaddr\fP が指す \fIunsigned long\fP の領域に格納する。
+ç\8f¾å\9c¨ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81® \fIGS\fP ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81® 64 ã\83\93ã\83\83ã\83\88ã\83\99ã\83¼ã\82¹å\80¤ã\82\92ã\80\81 \fIaddr\fP ã\81\8cæ\8c\87ã\81\99 \fIunsigned long\fP ã\81®é \98å\9f\9fã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82
.SH 返り値
成功すると、 \fBarch_prctl\fP() は 0 を返す。エラーの場合、\-1 を返し、 \fIerrno\fP をエラーを示す値に設定する。
.SH エラー
64 ビットセグメントベースのコンテキストスイッチは、やや高価である。 LDT を \fBmodify_ldt\fP(2)
で設定してセグメントセレクタを使うか、 (カーネル 2.5 以降の) \fBset_thread_area\fP(2) システムコールを使うことにより、
32 ビットベースを設定するという高速な代替手段もある。 4GB より大きなベースを設定したい場合にのみ、 \fBarch_prctl\fP()
-が必要である。 アドレス空間の最初の 2GB にあるメモリは、 \fBmmap\fP(2) に \fBMAP_32BIT\fP
+ã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\82\8bã\80\82 ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81®æ\9c\80å\88\9dã\81® 2GB ã\81«ã\81\82ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81¯ã\80\81 \fBmmap\fP(2) ã\81« \fBMAP_32BIT\fP
フラグを指定して割り当てることができる。
バージョン 2.7 時点では、glibc には \fBarch_prctl\fP() のプロトタイプがない。
-今のところユーザは自分自身で宣言する必要がある。 これは将来の glibc のバージョンで修正されるかもしれない。
+ä»\8aã\81®ã\81¨ã\81\93ã\82\8dã\83¦ã\83¼ã\82¶ã\83¼ã\81¯è\87ªå\88\86è\87ªèº«ã\81§å®£è¨\80ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯å°\86æ\9d¥ã\81® glibc ã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81§ä¿®æ£ã\81\95ã\82\8cã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
\fIFS\fP はスレッドライブラリで既に使われているかもしれない。
.SH 関連項目
.\"
.TH BDFLUSH 2 2014\-08\-19 Linux "Linux Programmer's Manual"
.SH 名前
-bdflush \- ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83»ã\83\80ã\83¼ã\83\86ã\82£ã\83¼ã\83»ã\83\95ã\83©ã\83\83ã\82·ã\83¥ã\83»デーモンを起動、フラッシュ、調整する
+bdflush \- ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83\80ã\83¼ã\83\86ã\82£ã\83¼ã\83\95ã\83©ã\83\83ã\82·ã\83¥デーモンを起動、フラッシュ、調整する
.SH 書式
.nf
\fB#include <sys/kdaemon.h>\fP
将来のカーネルのリリースで完全になくなる可能性が高い。現在は、\fBbdflush\fP() が
実行していた処理はカーネルの \fIpdflush\fP スレッドによって行われている。
-\fBbdflush\fP() ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83»ã\83\80ã\83¼ã\83\86ã\82£ã\83¼ã\83»ã\83\95ã\83©ã\83\83ã\82·ã\83¥ (buffer\-dirty\-flush)ã\83» ã\83\87ã\83¼ã\83¢ã\83³ (daemon)
-を起動、フラッシュ (flush)、調整 (tune) する。 (\fBCAP_SYS_ADMIN\fP ケーパビリティ (capability) を持つ)
-特権プロセスのみが \fBbdflush\fP() を呼び出すことができる。
+\fBbdflush\fP() ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83\80ã\83¼ã\83\86ã\82£ã\83¼ã\83\95ã\83©ã\83\83ã\82·ã\83¥ (buffer\-dirty\-flush) ã\83\87ã\83¼ã\83¢ã\83³ (daemon) ã\82\92èµ·å\8b\95ã\80\81ã\83\95ã\83©ã\83\83ã\82·ã\83¥
+(flush)、調整 (tune) する。 (\fBCAP_SYS_ADMIN\fP ケーパビリティ (capability) を持つ) 特権プロセスのみが
+\fBbdflush\fP() を呼び出すことができる。
.PP
\fIfunc\fP が負か 0 でデーモンが起動されていなれば、 \fBbdflush\fP() はデーモンのコードへ入り、戻ってこない。
.PP
\fIfunc\fP が 1 ならば、 汚れた (dirty) バッファーがディスクへと書き込まれる。
.PP
-\fIfunc\fP ã\81\8c 2 以ä¸\8aã\81§å\81¶æ\95° (æ\9c\80å°\8fã\83\93ã\83\83ã\83\88ã\81\8c 0) ã\81ªã\82\89ã\81°ã\80\81 \fIaddress\fP ã\81«ã\83ã\83³ã\82°ã\83»ã\83¯ã\83¼ã\83\89ã\81§ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92æ\8c\87å®\9aã\81\97ã\80\81ã\81\9dã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81«
+\fIfunc\fP が 2 以上で偶数 (最小ビットが 0) ならば、 \fIaddress\fP にロングワードでアドレスを指定し、そのアドレスに
(\fIfunc\fP\-2)/2 で指定された調節パラメーターが返される。
.PP
-\fIfunc\fP ã\81\8c 3 以ä¸\8aã\81§å¥\87æ\95° (æ\9c\80å°\8fã\83\93ã\83\83ã\83\88ã\81\8c 1) ã\81ªã\82\89ã\81°ã\80\81 \fIdata\fP ã\82\92ã\83ã\83³ã\82°ã\83»ã\83¯ã\83¼ã\83\89ã\81§æ\8c\87å®\9aã\81\97ã\80\81ã\81\9dã\81®å\80¤ã\82\92 (\fIfunc\fP\-3)/2
+\fIfunc\fP が 3 以上で奇数 (最小ビットが 1) ならば、 \fIdata\fP をロングワードで指定し、その値を (\fIfunc\fP\-3)/2
で指定された調節パラメーターに設定する。
.PP
パラメーターの集合やその値、有効な範囲は Linux カーネルソースの \fIfs/buffer.c\fP に定義されている。
.SH エラー
.TP
\fBEBUSY\fP
-ä»\96ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cæ\97¢ã\81«ã\83\87ã\83¼ã\83¢ã\83³ã\83»ã\82³ã\83¼ã\83\89ã\81«å\85¥ã\81£ã\81¦ã\81\84ã\82\8bã\81®ã\81«ã\80\81å\85¥ã\82\8dã\81\86ã\81¨è©¦ã\81¿ã\81\9fã\80\82
+他のプロセスが既にデーモンコードに入っているのに、入ろうと試みた。
.TP
\fBEFAULT\fP
\fIaddress\fP がアクセス可能なアドレス空間の外部を指している。
\fB socklen_t \fP\fIaddrlen\fP\fB);\fP
.fi
.SH 説明
-\fBsocket\fP(2) ã\81§ã\82½ã\82±ã\83\83ã\83\88ã\81\8cä½\9cæ\88\90ã\81\95ã\82\8cã\81\9fã\81¨ã\81\8dã\80\81ã\81\9dã\81®ã\82½ã\82±ã\83\83ã\83\88ã\81¯å\90\8då\89\8d空é\96\93 (ã\82¢ã\83\89ã\83¬ã\82¹ã\83»ã\83\95ã\82¡ã\83\9fã\83ªã\83¼) ã\81«
-存在するが、アドレスは割り当てられていない。 \fBbind\fP() は、ファイルディスクリプタ \fIsockfd\fP で参照されるソケットに
-\fIaddr\fP で指定されたアドレスを割り当てる。 \fIaddrlen\fP には \fIaddr\fP が指すアドレス構造体のサイズをバイト単位で指定する。
-伝統的にこの操作は 「ソケットに名前をつける」 と呼ばれる。
+\fBsocket\fP(2) ã\81§ã\82½ã\82±ã\83\83ã\83\88ã\81\8cä½\9cæ\88\90ã\81\95ã\82\8cã\81\9fã\81¨ã\81\8dã\80\81ã\81\9dã\81®ã\82½ã\82±ã\83\83ã\83\88ã\81¯å\90\8då\89\8d空é\96\93 (ã\82¢ã\83\89ã\83¬ã\82¹ã\83\95ã\82¡ã\83\9fã\83ªã\83¼) ã\81« å\98å\9c¨ã\81\99ã\82\8bã\81\8cã\80\81ã\82¢ã\83\89ã\83¬ã\82¹ã\81¯å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
+\fBbind\fP() は、ファイルディスクリプター \fIsockfd\fP で参照されるソケットに \fIaddr\fP で指定されたアドレスを割り当てる。
+\fIaddrlen\fP には \fIaddr\fP が指すアドレス構造体のサイズをバイト単位で指定する。 伝統的にこの操作は 「ソケットに名前をつける」
+と呼ばれる。
.PP
\fBSOCK_STREAM\fP ソケットが接続を受け付けられるようにするには (\fBaccept\fP(2) を参照)、通常その前に \fBbind\fP()
を使用してローカルアドレスを割り当てる必要がある。
-å\90\8då\89\8dä»\98ã\81\91ã\81®ã\83«ã\83¼ã\83«ã\81¯ã\82¢ã\83\89ã\83¬ã\82¹ã\83»ã\83\95ã\82¡ã\83\9fã\83ªã\83¼ã\81\94ã\81¨ã\81«ç\95°ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\80\82詳細ã\81ªæ\83\85å ±ã\81¯ 第 7 ç« ã\81®å\90\84ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82 \fBAF_INET\fP ã\81¯
+名前付けのルールはアドレスファミリーごとに異なっている。詳細な情報は 第 7 章の各マニュアルを参照すること。 \fBAF_INET\fP は
\fBip\fP(7) を、 \fBAF_INET6\fP は \fBipv6\fP(7) を、 \fBAF_UNIX\fP は \fBunix\fP(7) を、
\fBAF_APPLETALK\fP は \fBddp\fP(7) を、 \fBAF_PACKET\fP は \fBpacket\fP(7) を、 \fBAF_X25\fP は
\fBx25\fP(7) を、 \fBAF_NETLINK\fP は \fBnetlink\fP(7) を参照。
-\fIaddr\fP å¼\95ã\81\8dæ\95°ã\81«å®\9fé\9a\9bã\81«ã\81©ã\81®ã\82\88ã\81\86ã\81ªæ§\8bé\80 ä½\93ã\81\8c渡ã\81\95ã\82\8cã\82\8bã\81\8bã\81¯ã\80\81 ã\82¢ã\83\89ã\83¬ã\82¹ã\83»ã\83\95ã\82¡ã\83\9fã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82 \fIsockaddr\fP
+\fIaddr\fP 引き数に実際にどのような構造体が渡されるかは、 アドレスファミリーに依存する。 \fIsockaddr\fP
構造体は以下のような感じで定義されている:
.in +4n
.nf
.fi
.in
-この構造体は、 \fIaddr\fP に渡される構造体へのポインタをキャストし、 コンパイラの警告メッセージを抑えるためだけに存在する。 下記の「例」を参照。
+この構造体は、 \fIaddr\fP に渡される構造体へのポインターをキャストし、 コンパイラの警告メッセージを抑えるためだけに存在する。
+下記の「例」を参照。
.SH 返り値
成功した場合にはゼロが返される。エラー時には \-1 が返され、 \fIerrno\fP が適切に設定される。
.SH エラー
.TP
\fBEACCES\fP
.\" e.g., privileged port in AF_INET domain
-ã\81\9dã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81¯ä¿\9dè·ã\81\95ã\82\8cã\81¦ã\81\84ã\81¦ã\80\81ã\81\8bã\81¤ã\83¦ã\83¼ã\82¶ã\81\8cã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ではない。
+ã\81\9dã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81¯ä¿\9dè·ã\81\95ã\82\8cã\81¦ã\81\84ã\81¦ã\80\81ã\81\8bã\81¤ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\83¼ではない。
.TP
\fBEADDRINUSE\fP
指定されたアドレスが既に使用中である。
.TP
.TP
\fBEBADF\fP
-\fIsockfd\fP が不正なディスクリプタである。
+\fIsockfd\fP ã\81\8cä¸\8dæ£ã\81ªã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBEINVAL\fP
.\" This may change in the future: see
\fIaddrlen\fP が間違っているか、 \fIaddr\fP がこのソケットのドメインで有効なアドレスではない。
.TP
\fBENOTSOCK\fP
-\fIsockfd\fP がファイルに対するディスクリプタで、ソケットに対するものではない。
+\fIsockfd\fP ã\81\8cã\83\95ã\82¡ã\82¤ã\83«ã\81«å¯¾ã\81\99ã\82\8bã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\80\81ã\82½ã\82±ã\83\83ã\83\88ã\81«å¯¾ã\81\99ã\82\8bã\82\82ã\81®ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.PP
以下のエラーは UNIXドメイン (\fBAF_UNIX\fP) のソケット特有である:
.TP
パス名の構成要素に検索許可 (search permission) がない (\fBpath_resolution\fP(7) も参照すること)。
.TP
\fBEADDRNOTAVAIL\fP
-存在しないインタフェースが要求されたか、要求されたアドレスが ローカルではなかった。
+å\98å\9c¨ã\81\97ã\81ªã\81\84ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81\8cè¦\81æ±\82ã\81\95ã\82\8cã\81\9fã\81\8bã\80\81è¦\81æ±\82ã\81\95ã\82\8cã\81\9fã\82¢ã\83\89ã\83¬ã\82¹ã\81\8c ã\83ã\83¼ã\82«ã\83«ã\81§ã\81¯ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBEFAULT\fP
-\fIaddr\fP がユーザのアクセス可能なアドレス空間の外を指している。
+\fIaddr\fP ã\81\8cã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\82¢ã\82¯ã\82»ã\82¹å\8f¯è\83½ã\81ªã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81®å¤\96ã\82\92æ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fBELOOP\fP
-\fIaddr\fP ã\82\92解決ã\81\99ã\82\8bé\9a\9bã\81«é\81é\81\87ã\81\97ã\81\9fã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83»ã\83ªã\83³ã\82¯ã\81\8cå¤\9aé\81\8eã\81\8eã\82\8bã\80\82
+\fIaddr\fP を解決する際に遭遇したシンボリックリンクが多過ぎる。
.TP
\fBENAMETOOLONG\fP
\fIaddr\fP が長過ぎる。
SVr4, 4.4BSD, POSIX.1\-2001 (\fBbind\fP() は 4.2BSD で最初に現われた)。
.SH 注意
POSIX.1\-2001 では \fI<sys/types.h>\fP のインクルードは必須とされておらず、 Linux
-ã\81§ã\81¯ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83\95ã\82¡ã\82¤ã\83«ã\81¯å¿\85è¦\81ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81æ´å\8f²ç\9a\84ã\81«ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å®\9fè£\85 (BSD ç³») ã\81§ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ファイルが
+ã\81§ã\81¯ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81¯å¿\85è¦\81ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81æ´å\8f²ç\9a\84ã\81«ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å®\9fè£\85 (BSD ç³») ã\81§ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ファイルが
必要であり、移植性が必要なアプリケーションではこのファイルを インクルードするのが賢明であろう。
\fBbind\fP() の三番目の引き数は (4.x BSD や libc4, libc5 と同様に) 実際には \fIint\fP である。glibc
.\" FIXME Document transparent proxy options
透過的プロキシ (transparent proxy) オプションについて記述していない。
.SH 例
-ã\82¤ã\83³ã\82¿ã\83¼ã\83\8dã\83\83ã\83\88ã\83»ã\83\89ã\83¡ã\82¤ã\83³ã\83»ソケットでの \fBbind\fP() の利用例が \fBgetaddrinfo\fP(3) に記載されている。
+ã\82¤ã\83³ã\82¿ã\83¼ã\83\8dã\83\83ã\83\88ã\83\89ã\83¡ã\82¤ã\83³ソケットでの \fBbind\fP() の利用例が \fBgetaddrinfo\fP(3) に記載されている。
.\" listen.7 refers to this example.
.\" accept.7 refers to this example.
.SH 説明
\fBbrk\fP() と \fBsbrk\fP() は \fIプログラムブレーク (program break)\fP の場所を変更する。
プログラムブレークはプロセスのデータセグメント (data segment) の 末尾を示す (プログラムブレークは、初期化されていない
-データセグメントの末尾の直後の場所となる)。 プログラムブレークを増やすということは、そのプロセスへの メモリを割り当てる効果があり、
-プログラムブレークを減らすということは、メモリを解放する ということである。
+ã\83\87ã\83¼ã\82¿ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®æ\9c«å°¾ã\81®ç\9b´å¾\8cã\81®å ´æ\89\80ã\81¨ã\81ªã\82\8b)ã\80\82 ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\96ã\83¬ã\83¼ã\82¯ã\82\92å¢\97ã\82\84ã\81\99ã\81¨ã\81\84ã\81\86ã\81\93ã\81¨ã\81¯ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¸ã\81® ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bå\8a¹æ\9e\9cã\81\8cã\81\82ã\82\8aã\80\81
+ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\96ã\83¬ã\83¼ã\82¯ã\82\92æ¸\9bã\82\89ã\81\99ã\81¨ã\81\84ã\81\86ã\81\93ã\81¨ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\82\92解æ\94¾ã\81\99ã\82\8b ã\81¨ã\81\84ã\81\86ã\81\93ã\81¨ã\81§ã\81\82ã\82\8bã\80\82
\fBbrk\fP() は、データセグメントの末尾を \fIaddr\fP で指定した値に設定する。 設定が行われるのは、指定した値が有効で、
-システムに十分なメモリがあり、 プロセスのデータサイズの最大値を超えていない場合である (\fBsetrlimit\fP(2) を参照)。
+ã\82·ã\82¹ã\83\86ã\83 ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81\82ã\82\8aã\80\81 ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\87ã\83¼ã\82¿ã\82µã\82¤ã\82ºã\81®æ\9c\80大å\80¤ã\82\92è¶\85ã\81\88ã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\81§ã\81\82ã\82\8b (\fBsetrlimit\fP(2) ã\82\92å\8f\82ç\85§)ã\80\82
\fBsbrk\fP() は、プログラムのデータ空間を \fIincrement\fP バイトだけ増やす。 \fIincrement\fP を 0 にして
\fBsbrk\fP() を呼び出すことで、プログラムの現在のブレーク (break) 場所を知ることができる。
成功した場合、 \fBbrk\fP() は 0 を返す。 エラーの場合には、\-1 を返し、 \fIerrno\fP に \fBENOMEM\fP を設定する。
成功した場合、 \fBsbrk\fP() は変更前のプログラムブレークを返す (プログラムブレークが増やされた場合、この値は
-æ\96°ã\81\97ã\81\8få\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\81®å\85\88é ã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿となる)。 エラーの場合には、 \fI(void\ *)\ \-1\fP を返し、 \fIerrno\fP に
+æ\96°ã\81\97ã\81\8få\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81®å\85\88é ã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼となる)。 エラーの場合には、 \fI(void\ *)\ \-1\fP を返し、 \fIerrno\fP に
\fBENOMEM\fP を設定する。
.SH 準拠
.\"
.\" POSIX.1-1990 standard (see paragraphs B.1.1.1.3 and B.8.3.3).
4.3BSD, SUSv1. SUSv2 では「過去の名残 (LEGACY)」と位置付けられており、 POSIX.1\-2001 で削除された。
.SH 注意
-\fBbrk\fP() や \fBsbrk\fP() を使用するのは避けること。 \fBmalloc\fP(3) メモリ割り当てパッケージの方が、移植性が高く、
-使いやすいメモリ割り当て方法を提供している。
+\fBbrk\fP() や \fBsbrk\fP() を使用するのは避けること。 \fBmalloc\fP(3) メモリー割り当てパッケージの方が、移植性が高く、
+使いやすいメモリー割り当て方法を提供している。
.\" One sees
.\" \fIint\fP (e.g., XPGv4, DU 4.0, HP-UX 11, FreeBSD 4.0, OpenBSD 3.2),
\fBint cacheflush(char *\fP\fIaddr\fP\fB, int \fP\fInbytes\fP\fB, int \fP\fIcache\fP\fB);\fP
.fi
.SH 説明
-\fBcacheflush\fP() は \fIaddr\fP から \fI(addr+nbytes\-1)\fP の範囲のユーザアドレスに対応する
+\fBcacheflush\fP() ã\81¯ \fIaddr\fP ã\81\8bã\82\89 \fI(addr+nbytes\-1)\fP ã\81®ç¯\84å\9b²ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\81«å¯¾å¿\9cã\81\99ã\82\8b
指定されたキャッシュをフラッシュする。 \fIcache\fP には以下のいずれかを指定する:
.TP
\fBICACHE\fP
命令 (instruction) キャッシュをフラッシュする。
.TP
\fBDCACHE\fP
-変更があったキャッシュラインをメモリに書き戻し、無効にする。
+å¤\89æ\9b´ã\81\8cã\81\82ã\81£ã\81\9fã\82ã\83£ã\83\83ã\82·ã\83¥ã\83©ã\82¤ã\83³ã\82\92ã\83¡ã\83¢ã\83ªã\83¼ã\81«æ\9b¸ã\81\8dæ\88»ã\81\97ã\80\81ç\84¡å\8a¹ã\81«ã\81\99ã\82\8bã\80\82
.TP
\fBBCACHE\fP
\fB(ICACHE|DCACHE)\fP と同じ。
\fIaddr\fP から \fI(addr+nbytes\-1)\fP の範囲のアドレスの全てまたは一部が アクセス可能ではない。
.TP
\fBEINVAL\fP
-\fIcache\fP パラメータが \fBICACHE\fP, \fBDCACHE\fP, \fBBCACHE\fP のどれでもない。
+\fIcache\fP ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8c \fBICACHE\fP, \fBDCACHE\fP, \fBBCACHE\fP ã\81®ã\81©ã\82\8cã\81§ã\82\82ã\81ªã\81\84ã\80\82
.SH 準拠
.\" FIXME The cacheflush() system call was only on MIPS back in 1.2 days,
.\" but by now it is on a number of other architectures (but not i386).
.sp
フィールド \fIeffective\fP, \fIpermitted\fP, \fIinheritable\fP は、 \fBcapabilities\fP(7)
で定義されるケーパビリティのビットマスクである。 \fICAP_*\fP はビット番号を表すインデックス値であり、 ビットフィールドに OR を行う前に
-\fICAP_*\fP の値の分だけビットシフトを行う必要がある。 typedef の方はポインタなので、 このシステムコールに渡す構造体を定義するには、
+\fICAP_*\fP ã\81®å\80¤ã\81®å\88\86ã\81 ã\81\91ã\83\93ã\83\83ã\83\88ã\82·ã\83\95ã\83\88ã\82\92è¡\8cã\81\86å¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82 typedef ã\81®æ\96¹ã\81¯ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81ªã\81®ã\81§ã\80\81 ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81«æ¸¡ã\81\99æ§\8bé\80 ä½\93ã\82\92å®\9a義ã\81\99ã\82\8bã\81«ã\81¯ã\80\81
\fIstruct __user_cap_header_struct\fP と \fIstruct __user_cap_data_struct\fP
という名前を使用しなければならない。
.SS "VFS ケーパビリティがサポートされていない場合"
カーネルが VFS ケーパビリティをサポートしていない場合、 \fIhdrp\fP の \fIpid\fP フィールドが 0 以外であれば、 \fBcapset\fP()
の操作対象は \fIpid\fP で指定されたスレッドのケーパビリティになる。 \fIpid\fP が 0
-ã\81®å ´å\90\88ã\81¯å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81®ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\81\8cæ\93\8dä½\9c対象ã\81¨ã\81ªã\82\8bã\80\82 \fIpid\fP ã\81\8cã\82·ã\83³ã\82°ã\83«ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\83\97ã\83ã\82»ã\82¹ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81 \fIpid\fP
-ã\81¯ä»¥å\89\8dã\81\8bã\82\89使ã\82\8fã\82\8cã\81¦ã\81\84ã\82\8bã\83\97ã\83ã\82»ã\82¹ID ã\82\92使ã\81£ã\81¦æ\8c\87å®\9aã\81§ã\81\8dã\82\8bã\80\82 ã\83\9eã\83«ã\83\81ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\83\97ã\83ã\82»ã\82¹å\86\85ã\81®ã\81\82ã\82\8bã\82¹ã\83¬ã\83\83ã\83\89ã\82\92対象ã\81«ã\81\99ã\82\8bå ´å\90\88ã\81¯ã\80\81 \fBgettid\fP(2)
+の場合は呼び出し元のスレッドのケーパビリティが操作対象となる。 \fIpid\fP がシングルスレッドプロセスを参照している場合、 \fIpid\fP
+は以前から使われているプロセスID を使って指定できる。 マルチスレッドプロセス内のあるスレッドを対象にする場合は、 \fBgettid\fP(2)
が返すスレッドID を用いて指定する必要がある。 また、 \fBcapset\fP() では \-1 や \-1 より小さな値を指定することもできる。 \-1
は呼び出し元と \fBinit\fP(1) を除く全てのスレッドを対象として変更を行うことを、 \-1 より小さな値は ID が \-\fIpid\fP
のプロセスグループの全メンバ を対象として変更を行うことを意味する。
\fIhdrp\fP のフィールド \fIversion\fP にサポートされていない値が指定された場合、 呼び出しはエラー \fBEINVAL\fP で失敗し、
\fIversion\fP にカーネル推奨の \fB_LINUX_CAPABILITY_VERSION_?\fP を設定する。
-ã\81\93ã\81®ã\82\88ã\81\86ã\81«ã\81\97ã\81¦ã\80\81ç\8f¾å\9c¨ã\81®æ\8e¨å¥¨ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83ªã\83\93ã\82¸ã\83§ã\83³ã\81\8cä½\95ã\81\8bã\82\92 調ã\81¹ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
+このようにして、現在の推奨ケーパビリティリビジョンが何かを 調べることができる。
.SH エラー
.TP
\fBEFAULT\fP
-不正なメモリアドレス。 \fIhdrp\fP は NULL であってはならない。 \fIdatap\fP に NULL
-ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\82\88ã\81\84ã\81®ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\81\8cã\82«ã\83¼ã\83\8dã\83«ã\81\8cã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\82\8b æ\8e¨å¥¨ã\81®ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»バージョンを判定しようとしているときだけである。
+ä¸\8dæ£ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\80\82 \fIhdrp\fP ã\81¯ NULL ã\81§ã\81\82ã\81£ã\81¦ã\81¯ã\81ªã\82\89ã\81ªã\81\84ã\80\82 \fIdatap\fP ã\81« NULL
+ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\82\88ã\81\84ã\81®ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\82«ã\83¼ã\83\8dã\83«ã\81\8cã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\82\8b æ\8e¨å¥¨ã\81®ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£バージョンを判定しようとしているときだけである。
.TP
\fBEINVAL\fP
引き数のどれかが無効である。
\fBchdir\fP() は、呼び出し元プロセスの現在の作業ディレクトリ (current working directory) を、 \fIpath\fP
に指定されたディレクトリに変更する。
.PP
-\fBfchdir\fP() は、ディレクトリがオープンされたファイルディスクリプタとして 指定される以外は、 \fBchdir\fP() と同じである。
+\fBfchdir\fP() ã\81¯ã\80\81ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¨ã\81\97ã\81¦ æ\8c\87å®\9aã\81\95ã\82\8cã\82\8b以å¤\96ã\81¯ã\80\81 \fBchdir\fP() ã\81¨å\90\8cã\81\98ã\81§ã\81\82ã\82\8bã\80\82
.SH 返り値
成功した場合は 0 が返される。エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
.SH エラー
ファイルが存在しない。
.TP
\fBENOMEM\fP
-カーネルに十分なメモリがない。
+ã\82«ã\83¼ã\83\8dã\83«ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
\fIpath\fP の構成要素がディレクトリではない。
\fIfd\fP をディレクトリとしてオープンするための検索許可がない。
.TP
\fBEBADF\fP
-\fIfd\fP が適切なファイルディスクリプタでない。
+\fIfd\fP ã\81\8cé\81©å\88\87ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.SH 準拠
SVr4, 4.4BSD, POSIX.1\-2001.
.SH 注意
\fBchmod\fP() は、 \fIpathname\fP で指定されたパス名を持つファイルの許可を変更する。 \fIpathname\fP
がシンボリックリンクの場合は、リンクの展開が行われる。
.IP *
-\fBfchmod\fP() は、オープンされたファイルディスクリプタ \fIfd\fP により参照されるファイルの許可を変更する。
+\fBfchmod\fP() は、オープンされたファイルディスクリプター \fIfd\fP により参照されるファイルの許可を変更する。
.PP
新しいファイル許可は \fImode\fP で指定される。 \fImode\fP は、以下に示す値の 0 個以上の OR (論理和) をとって作成される
ビットマスクである。
.TP 18
\fBS_ISUID\fP (04000)
-set\-user\-ID (\fBexecve\fP(2) 時にプロセスの実効ユーザ ID にセットされる)
+set\-user\-ID (\fBexecve\fP(2) 時にプロセスの実効ユーザー ID にセットされる)
.TP
\fBS_ISGID\fP (02000)
set\-group\-ID (以下の場合に (\fBexecve\fP(2) 実行時にプロセスの実効グループ ID にセットされる、 強制ロック
プロセスの実効グループ ID または補助的なグループ ID にマッチしない場合、 \fBS_ISGID\fP
ビットはオフにされるが、これによってエラーが返されることはない。
-安全のための処置として、 ファイルシステムによっては、ファイルの書き込みを行う時に セット・ユーザー ID とセット・グループ ID
+安全のための処置として、 ファイルシステムによっては、ファイルの書き込みを行う時に set\-user\-ID とset\-group\-ID
ビットと実行ビットが オフにされることがある。 (Linux では、書き込みプロセスが \fBCAP_FSETID\fP
ケーパビリティを持っていない場合に、これが起こる。) ファイルシステムの中には、スーパーユーザーだけが
-特別の意味を持つスティッキービットを設定できるものがある。 スティッキービットとディレクトリに対する セット・ユーザー (グループ) ID
-ビットについては、 \fBstat\fP(2) を見よ。
+特別の意味を持つスティッキービットを設定できるものがある。 スティッキービットとディレクトリに対する set\-user\-ID
+(set\-group\-ID) ビットについては、 \fBstat\fP(2) を見よ。
.\"
.\"
ファイルが存在しない。
.TP
\fBENOMEM\fP
-カーネルに十分なメモリがない。
+ã\82«ã\83¼ã\83\8dã\83«ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
パス名の構成要素がディレクトリではない。
\fBfchmod\fP() で一般的なエラーを挙げる:
.TP
\fBEBADF\fP
-ファイルディスクリプタ \fIfd\fP が有効でない。
+ファイルディスクリプター \fIfd\fP が有効でない。
.TP
\fBEIO\fP
上記を参照。
\fBchmod\fP() で発生するのと同じエラーが \fBfchmodat\fP() でも起こる。 \fBfchmodat\fP() では以下のエラーも発生する。
.TP
\fBEBADF\fP
-\fIdirfd\fP が適切なファイルディスクリプタでない。
+\fIdirfd\fP ã\81\8cé\81©å\88\87ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fIflags\fP に無効なフラグが指定された。
.TP
\fBENOTDIR\fP
-\fIpathname\fP が相対パスで、 \fIdirfd\fP がディレクトリ以外のファイルを参照しているファイルディスクリプタである。
+\fIpathname\fP ã\81\8cç\9b¸å¯¾ã\83\91ã\82¹ã\81§ã\80\81 \fIdirfd\fP ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä»¥å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBENOTSUP\fP
\fIflags\fP に対応していないフラグ \fBAT_SYMLINK_NOFOLLOW\fP が指定された。
\fBchown\fP() は \fIpathname\fP で指定されたファイルの所有権を変更する。 \fIpathname\fP
がシンボリックリンクの場合は、リンクの展開が行われる。
.IP *
-\fBfchown\fP() はオープンされたファイルディスクリプタ \fIfd\fP により参照されるファイルの所有権を変更する。
+\fBfchown\fP() はオープンされたファイルディスクリプター \fIfd\fP により参照されるファイルの所有権を変更する。
.IP *
\fBlchown\fP() は \fBchown\fP() と同じだが、シンボリックリンクを展開しない点が異なる。
.PP
ファイルが存在しない。
.TP
\fBENOMEM\fP
-カーネルに十分なメモリがない。
+ã\82«ã\83¼ã\83\8dã\83«ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
パス名の構成要素がディレクトリではない。
\fBchown\fP() で発生するのと同じエラーが \fBfchownat\fP() でも起こる。 \fBfchownat\fP() では以下のエラーも発生する。
.TP
\fBEBADF\fP
-\fIdirfd\fP が適切なファイルディスクリプタでない。
+\fIdirfd\fP ã\81\8cé\81©å\88\87ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fIflags\fP に無効なフラグが指定された。
.TP
\fBENOTDIR\fP
-\fIpathname\fP が相対パスで、 \fIdirfd\fP がディレクトリ以外のファイルを参照しているファイルディスクリプタである。
+\fIpathname\fP ã\81\8cç\9b¸å¯¾ã\83\91ã\82¹ã\81§ã\80\81 \fIdirfd\fP ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä»¥å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH バージョン
\fBfchownat\fP() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポートはバージョン 2.4 以降の glibc
で利用できる。
.SH 注意
.SS 新しいファイルの所有権
(\fBopen\fP(2) や \fBmkdir\fP(2) などにより) 新しいファイルが作成されるとき、
-その所有者は呼び出したプロセスのファイルシステムユーザ ID と 同じに設定される。 そのファイルのグループはいくつかの要因により決定される。
+その所有者は呼び出したプロセスのファイルシステムユーザー ID と 同じに設定される。 そのファイルのグループはいくつかの要因により決定される。
その要因としては、 ファイルシステムの種類、そのファイルシステムのマウント時に 使用されたオプション、親ディレクトリで set\-group\-ID
許可ビットが 有効になっているどうか、がある。 ファイルシステムが \fBmount\fP(8) オプションの \fI\-o\ grpid\fP (\fI\-o\ bsdgroups\fP も同義語) と \fI\-o\ nogrpid\fP (\fI\-o sysvgroups\fP も同義語)
に対応している場合、ルールは以下の通りとなる。
ユーザーのアクセスが許した時点と、実際に他のクライアントでユーザーによって ファイルにアクセスできる時点との間に時間差があるかもしれない。
.SS 歴史的な詳細
元々の Linux の \fBchown\fP(), \fBfchown\fP(), \fBlchown\fP() システムコールは、
-16 ビットのユーザ ID とグループ ID だけに対応していた。
+16 ビットのユーザー ID とグループ ID だけに対応していた。
その後、 32 ビットの ID に対応した \fBchown32\fP(), \fBfchown32\fP(), \fBlchown32\fP()
が Linux 2.4 で追加された。
\fBchown\fP(), \fBfchown\fP(), and \fBlchown\fP() の glibc のラッパー関数は、
.SH 例
.PP
以下のプログラムは、 二つ目のコマンドライン引き数で指定された名前のファイルの所有者を、 一つ目のコマンドライン引き数で指定された値に変更する。
-新しい所有者は、数字のユーザ ID かユーザ名のいずれかで指定できる (ユーザ名で指定した場合には、 \fBgetpwnam\fP(3)
-を使ってシステムのパスワードファイルの検索が行われ、 ユーザ ID への変換が行われる)。
+新しい所有者は、数字のユーザー ID かユーザー名のいずれかで指定できる (ユーザー名で指定した場合には、 \fBgetpwnam\fP(3)
+を使ってシステムのパスワードファイルの検索が行われ、 ユーザー ID への変換が行われる)。
.SS プログラムのソース
.nf
#include <pwd.h>
mkdir foo; chroot foo; cd ..
.fi
-ã\81\93ã\81®ã\82³ã\83¼ã\83«ã\81¯ã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\81ªã\81\84ã\81®ã\81§ã\80\81 ã\81\93ã\81®ã\82\88ã\81\86ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は chroot ツリーの外にある
+ã\81\93ã\81®ã\82³ã\83¼ã\83«ã\81¯ã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\81ªã\81\84ã\81®ã\81§ã\80\81 ã\81\93ã\81®ã\82\88ã\81\86ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は chroot ツリーの外にある
ファイルにアクセスできる。
.SH 返り値
成功した場合は 0 が返される。エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
ファイルが存在しない。
.TP
\fBENOMEM\fP
-カーネルに十分なメモリがない。
+ã\82«ã\83¼ã\83\8dã\83«ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
\fIpath\fP の構成要素がディレクトリではない。
.SH 注意
.SS "SMP システムに関する歴史的な注意事項"
Linux が \fBCLOCK_PROCESS_CPUTIME_ID\fP と \fBCLOCK_THREAD_CPUTIME_ID\fP
-クロックのカーネルによるサポートを追加する前は、 glibc はこれらのクロックは多くのプラットフォームで CPU のタイマーレジスタ (i386 上の
-TSC、Itanium 上の AR.ITC) を用いて実現されていた。 これらのレジスタは CPU 間で異なる可能性があり、 プロセスが他の CPU
-に移動させられた場合、 結果としてこれらのクロックが\fB偽の結果\fP (bogus results) を返すかもしれない。
+クロックのカーネルによるサポートを追加する前は、 glibc はこれらのクロックは多くのプラットフォームで CPU のタイマーレジスター (i386
+上の TSC、Itanium 上の AR.ITC) を用いて実現されていた。 これらのレジスターは CPU 間で異なる可能性があり、 プロセスが他の
+CPU に移動させられた場合、 結果としてこれらのクロックが\fB偽の結果\fP (bogus results) を返すかもしれない。
.PP
-SMP システムの各 CPU が別々のクロック源を持つ場合、 タイマーレジスタ間の相互関係を管理する方法はない。 これは各 CPU
+SMP システムの各 CPU が別々のクロック源を持つ場合、 タイマーレジスター間の相互関係を管理する方法はない。 これは各 CPU
が微妙に異なる周波数で動作するためである。 これが真実の場合 (訳註: 各 CPU が別々のクロック源を持つ場合)、
\fIclock_getcpuclockid(0)\fP は \fBENOENT\fP を返して、その状況を表す。 2 つのクロックは、プロセスが特定の CPU
上に留まっていることが 保証できる場合にのみ有効である。
.PP
-SMP システムの各プロセッサは全く同じ時刻に起動する訳ではないので、 各タイマーレジスタは通常はあるオフセットで動作している。
-オフセットをブート時に制限するコードが含まれるアーキテクチャもある。 しかし、このコードがオフセットを正確に調整することは保証できない。 glibc は
-(Linux カーネルとは異なり) オフセットを扱うためのコードを提供しない。 通常はこれらのオフセットが小さいので、多くの場合でその影響は無視できる。
+SMP システムの各プロセッサは全く同じ時刻に起動する訳ではないので、 各タイマーレジスターは通常はあるオフセットで動作している。
+オフセットをブート時に制限するコードが含まれるアーキテクチャーもある。 しかし、このコードがオフセットを正確に調整することは保証できない。 glibc
+は (Linux カーネルとは異なり) オフセットを扱うためのコードを提供しない。
+通常はこれらのオフセットが小さいので、多くの場合でその影響は無視できる。
glibc 2.4 以降では、 このページで説明したシステムコールのラッパー関数は、 \fBCLOCK_PROCESS_CPUTIME_ID\fP と
\fBCLOCK_THREAD_CPUTIME_ID\fP のカーネル実装が利用できるシステム (すなわち Linux 2.6.12 以降)
は、呼び出したスレッドの停止を行わず、すぐに返る。
\fBclock_nanosleep\fP() は、少なくとも \fIrequest\fP で指定された時間が経過するまで、呼び出したスレッドの実行を停止する。
-シグナルハンドラが呼び出されたり、そのプロセスを終了させるような シグナルが配送されたりした場合にも、スレッドの実行停止は終了する。
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9fã\82\8aã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\82\92çµ\82äº\86ã\81\95ã\81\9bã\82\8bã\82\88ã\81\86ã\81ª ã\82·ã\82°ã\83\8aã\83«ã\81\8cé\85\8dé\80\81ã\81\95ã\82\8cã\81\9fã\82\8aã\81\97ã\81\9få ´å\90\88ã\81«ã\82\82ã\80\81ã\82¹ã\83¬ã\83\83ã\83\89ã\81®å®\9fè¡\8cå\81\9cæ¢ã\81¯çµ\82äº\86ã\81\99ã\82\8bã\80\82
-呼び出しがシグナルハンドラによって割り込まれた場合、 \fBclock_nanosleep\fP() はエラー \fBEINTR\fP で失敗する。さらに、
+å\91¼ã\81³å\87ºã\81\97ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\81£ã\81¦å\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9få ´å\90\88ã\80\81 \fBclock_nanosleep\fP() ã\81¯ã\82¨ã\83©ã\83¼ \fBEINTR\fP ã\81§å¤±æ\95\97ã\81\99ã\82\8bã\80\82ã\81\95ã\82\89ã\81«ã\80\81
\fIremain\fP が NULL でなく、かつ \fIflags\fP が \fBTIMER_ABSTIME\fP でない場合には、 \fIremain\fP
に残りの停止時間が返される。 この値を使って \fBclock_nanosleep\fP() を再度呼び出すことで、(相対的な期間の)
停止を完了することができる。
.SH 返り値
要求された期間の停止に成功すると、 \fBclock_nanosleep\fP() は 0 を返す。
-シグナルハンドラで割り込まれたり、エラーが発生したりした場合、 「エラー」の節のリストにある正のエラー番号のいずれか一つを返す。
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81§å\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9fã\82\8aã\80\81ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81\9fã\82\8aã\81\97ã\81\9få ´å\90\88ã\80\81 ã\80\8cã\82¨ã\83©ã\83¼ã\80\8dã\81®ç¯\80ã\81®ã\83ªã\82¹ã\83\88ã\81«ã\81\82ã\82\8bæ£ã\81®ã\82¨ã\83©ã\83¼ç\95ªå\8f·ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bä¸\80ã\81¤ã\82\92è¿\94ã\81\99ã\80\82
.SH エラー
.TP
\fBEFAULT\fP
\fIrequest\fP や \fIremain\fP に無効なアドレスが指定された。
.TP
\fBEINTR\fP
-停止がシグナルハンドラにより割り込まれた。
+å\81\9cæ¢ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9fã\80\82
.TP
\fBEINVAL\fP
\fItv_nsec\fP フィールドの値が 0 から 999999999 の範囲でないか、 \fItv_sec\fP の値が負であった。
を呼び出し、その返り値の時刻値に希望する期間を加算してから、 \fBTIMER_ABSTIME\fP フラグを指定して
\fBclock_nanosleep\fP() を呼び出す。
-\fBsigaction\fP(2) で \fBSA_RESTART\fP フラグが指定されているかに関わらず、シグナルハンドラにより割り込まれた後に
+\fBsigaction\fP(2) ã\81§ \fBSA_RESTART\fP ã\83\95ã\83©ã\82°ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8bã\81«é\96¢ã\82\8fã\82\89ã\81\9aã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9få¾\8cã\81«
\fBclock_nanosleep\fP() が再開されることは決してない。
\fIflags\fP が \fBTIMER_ABSTIME\fP の場合、 \fIremain\fP 引き数は使用されず、不要である (絶対値での停止では、同じ
メインの説明はラッパー関数に関するものである。 素のシステムコールにおける差分はこのページの最後の方で説明する。
\fBfork\fP(2) とは異なり、\fBclone\fP() では、子プロセス (child process)
-と呼び出し元のプロセスとが、メモリ空間、ファイルディスクリプタのテーブル、シグナルハンドラのテーブルなどの 実行コンテキストの一部を共有できる。
+と呼び出し元のプロセスとが、メモリー空間、ファイルディスクリプターのテーブル、シグナルハンドラーのテーブルなどの 実行コンテキストの一部を共有できる。
(このマニュアルにおける「呼び出し元のプロセス」は、通常は 「親プロセス」と一致する。但し、後述の \fBCLONE_PARENT\fP の項も参照のこと)
\fBclone\fP() の主要な使用法はスレッド (threads) を実装することである:
-一つのプログラムの中の複数のスレッドは共有されたメモリ空間で 同時に実行される。
+一つのプログラムの中の複数のスレッドは共有されたメモリー空間で 同時に実行される。
\fBclone\fP() で子プロセスが作成された時に、作成された子プロセスは関数 \fIfn\fP(\fIarg\fP) を実行する。 (この点が
\fBfork\fP(2) とは異なる。 \fBfork\fP(2) の場合、子プロセスは \fBfork\fP(2) が呼び出された場所から実行を続ける。)
-\fIfn\fP 引き数は、子プロセスが実行を始める時に子プロセスが呼び出す 関数へのポインタである。 \fIarg\fP 引き数はそのまま \fIfn\fP
+\fIfn\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81å\90ã\83\97ã\83ã\82»ã\82¹ã\81\8cå®\9fè¡\8cã\82\92å§\8bã\82\81ã\82\8bæ\99\82ã\81«å\90ã\83\97ã\83ã\82»ã\82¹ã\81\8cå\91¼ã\81³å\87ºã\81\99 é\96¢æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 \fIarg\fP å¼\95ã\81\8dæ\95°ã\81¯ã\81\9dã\81®ã\81¾ã\81¾ \fIfn\fP
関数へと渡される。
\fIfn\fP(\fIarg\fP) 関数が終了すると、子プロセスは終了する。 \fIfn\fP によって返された整数が子プロセスの終了コードとなる。 子プロセスは、
\fBexit\fP(2) を呼んで明示的に終了することもあるし、致命的なシグナルを受信した 場合に終了することもある。
\fIchild_stack\fP 引き数は、子プロセスによって使用されるスタックの位置を指定する。
-子プロセスと呼び出し元のプロセスはメモリを共有することがあるため、 子プロセスは呼び出し元のプロセスと同じスタックで実行することができない。
-このため、呼び出し元のプロセスは子プロセスのスタックのためのメモリ空間を 用意して、この空間へのポインタを \fBclone\fP()
+å\90ã\83\97ã\83ã\82»ã\82¹ã\81¨å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\81\9fã\82\81ã\80\81 å\90ã\83\97ã\83ã\82»ã\82¹ã\81¯å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¨å\90\8cã\81\98ã\82¹ã\82¿ã\83\83ã\82¯ã\81§å®\9fè¡\8cã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\80\82
+このため、呼び出し元のプロセスは子プロセスのスタックのためのメモリー空間を 用意して、この空間へのポインターを \fBclone\fP()
へ渡さなければならない。 (HP PA プロセッサ以外の) Linux が動作する全てのプロセッサでは、 スタックは下方 (アドレスが小さい方向)
-へと伸びる。このため、普通は \fIchild_stack\fP は子プロセスのスタックのために用意したメモリ空間の一番大きい アドレスを指すようにする。
+へと伸びる。このため、普通は \fIchild_stack\fP は子プロセスのスタックのために用意したメモリー空間の一番大きい アドレスを指すようにする。
\fIflags\fP の下位 1 バイトは子プロセスが死んだ場合に親プロセスへと送られる \fI終了シグナル (termination signal)\fP
の番号を指定する。このシグナルとして \fBSIGCHLD\fP 以外が指定された場合、親プロセスは、 \fBwait\fP(2)
をとったものを指定できる。これらの定数は呼び出し元のプロセスと 子プロセスの間で何を共有するかを指定する:
.TP
\fBCLONE_CHILD_CLEARTID\fP (Linux 2.5.49 以降)
-子プロセスが終了したときに子プロセスのメモリ内の \fIctid\fP が指す場所にある子プロセスのスレッド ID を消去し、 そのアドレスで futex を
-wake (起床) させる。 このアドレスは \fBset_tid_address\fP(2) システムコールで変更することができる。
+子プロセスが終了したときに子プロセスのメモリー内の \fIctid\fP が指す場所にある子プロセスのスレッド ID を消去し、 そのアドレスで futex
+を wake (起床) させる。 このアドレスは \fBset_tid_address\fP(2) システムコールで変更することができる。
この機能はスレッドライブラリで使用される。
.TP
\fBCLONE_CHILD_SETTID\fP (Linux 2.5.49 以降)
-子プロセスのメモリ内の \fIctid\fP が指す場所に子プロセスのスレッド ID を格納する。
+子プロセスのメモリー内の \fIctid\fP が指す場所に子プロセスのスレッド ID を格納する。
.TP
\fBCLONE_FILES\fP (Linux 2.0 以降)
-\fBCLONE_FILES\fP が設定された場合、呼び出し元のプロセスと子プロセスはファイルディスクリプタの テーブルを共有する。
-呼び出し元プロセスとその子プロセスの一方が作成した ファイルディスクリプタは、もう一方においても有効である。
-同じように、一方のプロセスがファイルディスクリプタを閉じたり、 (\fBfcntl\fP(2) \fBF_SETFD\fP 操作を使って)
-ディスクリプタに関連するフラグを変更したりすると、 もう一方のプロセスにも影響する。
+\fBCLONE_FILES\fP ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81\9få ´å\90\88ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¨å\90ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81® ã\83\86ã\83¼ã\83\96ã\83«ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\80\82
+å\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83ã\82»ã\82¹ã\81¨ã\81\9dã\81®å\90ã\83\97ã\83ã\82»ã\82¹ã\81®ä¸\80æ\96¹ã\81\8cä½\9cæ\88\90ã\81\97ã\81\9f ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81ã\82\82ã\81\86ä¸\80æ\96¹ã\81«ã\81\8aã\81\84ã\81¦ã\82\82æ\9c\89å\8a¹ã\81§ã\81\82ã\82\8bã\80\82
+å\90\8cã\81\98ã\82\88ã\81\86ã\81«ã\80\81ä¸\80æ\96¹ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92é\96\89ã\81\98ã\81\9fã\82\8aã\80\81 (\fBfcntl\fP(2) \fBF_SETFD\fP æ\93\8dä½\9cã\82\92使ã\81£ã\81¦)
+ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«é\96¢é\80£ã\81\99ã\82\8bã\83\95ã\83©ã\82°ã\82\92å¤\89æ\9b´ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bã\81¨ã\80\81 ã\82\82ã\81\86ä¸\80æ\96¹ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«ã\82\82å½±é\9f¿ã\81\99ã\82\8bã\80\82
\fBCLONE_FILES\fP が設定されていない場合、子プロセスは、 \fBclone\fP()
-が実行された時点で、呼び出し元のプロセスがオープンしている全ての ファイルディスクリプタのコピーを継承する
-(å\90ã\83\97ã\83ã\82»ã\82¹ã\81®è¤\87製ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\80\81 対å¿\9cã\81\99ã\82\8bå\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿と 同じファイル記述 (\fBopen\fP(2)
-å\8f\82ç\85§) ã\82\92å\8f\82ç\85§ã\81\99ã\82\8b)ã\80\82 ã\81\93ã\82\8c以é\99\8dã\81«ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¨å\90ã\83\97ã\83ã\82»ã\82¹ã\81®ä¸\80æ\96¹ã\81\8c ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®æ\93\8dä½\9c (ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿の
-ã\82ªã\83¼ã\83\97ã\83³ã\83»ã\82¯ã\83ã\83¼ã\82ºã\82\84ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83»フラグの変更) を行っても、もう一方のプロセスには影響を与えない。
+ã\81\8cå®\9fè¡\8cã\81\95ã\82\8cã\81\9fæ\99\82ç\82¹ã\81§ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81¦ã\81\84ã\82\8bå\85¨ã\81¦ã\81® ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\82³ã\83\94ã\83¼ã\82\92ç¶\99æ\89¿ã\81\99ã\82\8b
+(å\90ã\83\97ã\83ã\82»ã\82¹ã\81®è¤\87製ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81 対å¿\9cã\81\99ã\82\8bå\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼と 同じファイル記述 (\fBopen\fP(2)
+å\8f\82ç\85§) ã\82\92å\8f\82ç\85§ã\81\99ã\82\8b)ã\80\82 ã\81\93ã\82\8c以é\99\8dã\81«ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¨å\90ã\83\97ã\83ã\82»ã\82¹ã\81®ä¸\80æ\96¹ã\81\8c ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\93\8dä½\9c (ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼の
+ã\82ªã\83¼ã\83\97ã\83³ã\83»ã\82¯ã\83ã\83¼ã\82ºã\82\84ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼フラグの変更) を行っても、もう一方のプロセスには影響を与えない。
.TP
\fBCLONE_FS\fP (Linux 2.0 以降)
\fBCLONE_FS\fP が設定された場合、呼び出し元のプロセスと子プロセスが同じファイルシステム
このフラグは、コンテナの実装での使用を意図して用意されたものである。
.\" FIXME . Add pointer to veth(4) page when it is eventually completed
-ネットワーク名前空間は、分離されたネットワークスタックを提供するものである (ネットワークスタックとは、 ネットワークデバイスインタフェース、IPv4
+ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯å\90\8då\89\8d空é\96\93ã\81¯ã\80\81å\88\86é\9b¢ã\81\95ã\82\8cã\81\9fã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¹ã\82¿ã\83\83ã\82¯ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\82\82ã\81®ã\81§ã\81\82ã\82\8b (ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¹ã\82¿ã\83\83ã\82¯ã\81¨ã\81¯ã\80\81 ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\83\87ã\83\90ã\82¤ã\82¹ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\80\81IPv4
や IPv6 プロトコルスタック、 \fI/proc/net\fP、 \fI/sys/class/net\fP ディレクトリツリー、ソケットなどである)。
物理ネットワークデバイスが所属できるネットワーク名前空間は一つだけである。 仮想ネットワークデバイス ("veth") のペアにより パイプ風の抽象化
(abstraction) が実現されており、 これを使うことで、ネットワーク名前空間間のトンネルを作成したり、
が設定された場合、呼び出し元のプロセスではなく呼び出し元のプロセスの 親プロセスにシグナルが送られる。
.TP
\fBCLONE_PARENT_SETTID\fP (Linux 2.5.49 以降)
-親プロセスと子プロセスのメモリ内の \fIptid\fP が指す領域に子プロセスのスレッド ID を格納する。 (Linux 2.5.32\-2.5.48
+親プロセスと子プロセスのメモリー内の \fIptid\fP が指す領域に子プロセスのスレッド ID を格納する。 (Linux 2.5.32\-2.5.48
では、 同じことをする \fBCLONE_SETTID\fP というフラグが存在した。)
.TP
\fBCLONE_PID\fP (廃止予定)
(\fBptrace\fP(2) を参照のこと)
.TP
\fBCLONE_SETTLS\fP (Linux 2.5.32 以降)
-\fInewtls\fP 引き数は、新しい TLS (Thread Local Storage) ディスクリプタである。
+\fInewtls\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81æ\96°ã\81\97ã\81\84 TLS (Thread Local Storage) ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
(\fBset_thread_area\fP(2) を参照のこと)
.TP
\fBCLONE_SIGHAND\fP (Linux 2.0 以降)
したりできる。
\fBCLONE_SIGHAND\fP が設定されていない場合、子プロセスは \fBclone\fP()
-が実行された時点での、呼び出し元のプロセスのシグナルハンドラの コピーを継承する。これ以降は、一方のプロセスが \fBsigaction\fP(2)
+ã\81\8cå®\9fè¡\8cã\81\95ã\82\8cã\81\9fæ\99\82ç\82¹ã\81§ã\81®ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81® ã\82³ã\83\94ã\83¼ã\82\92ç¶\99æ\89¿ã\81\99ã\82\8bã\80\82ã\81\93ã\82\8c以é\99\8dã\81¯ã\80\81ä¸\80æ\96¹ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8c \fBsigaction\fP(2)
を呼び出しても、もう一方のプロセスには影響を与えない。
Linux 2.6.0\-test6 以降では、 \fBCLONE_SIGHAND\fP を指定する場合、 \fBCLONE_VM\fP も \fIflags\fP
\fBkill\fP(2) を使ってスレッドグループ全体 (つまり TGID) にシグナルを送ることもできれば、 \fBtgkill\fP(2)
を使って特定のスレッド (つまり TID) にシグナルを送ることもできる。
-シグナルの配送と処理はプロセス全体に影響する: ハンドラを設定していないシグナルがあるスレッドに配送されると、
+ã\82·ã\82°ã\83\8aã\83«ã\81®é\85\8dé\80\81ã\81¨å\87¦ç\90\86ã\81¯ã\83\97ã\83ã\82»ã\82¹å\85¨ä½\93ã\81«å½±é\9f¿ã\81\99ã\82\8b: ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92è¨å®\9aã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\82·ã\82°ã\83\8aã\83«ã\81\8cã\81\82ã\82\8bã\82¹ã\83¬ã\83\83ã\83\89ã\81«é\85\8dé\80\81ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81
そのシグナルはスレッドグループの全メンバーに影響を及ぼす (終了したり、停止したり、動作を継続したり、無視されたりする)。
各々のスレッドは独自のシグナルマスクを持っており、 \fBsigprocmask\fP(2) で設定できる。 だが、処理待ちのシグナルには、
\fBtgkill\fP(2) で送信される個々のスレッドに対するものがありえる。 \fBsigpending\fP(2)
を呼び出すと、プロセス全体に対する処理待ちシグナルと呼び出し元の スレッドに対する処理待ちシグナルを結合したシグナル集合が返される。
-\fBkill\fP(2) を使ってスレッドグループにシグナルが送られた場合で、 そのスレッドグループがそのシグナルに対するシグナルハンドラが
-ç\99»é\8c²ã\81\95ã\82\8cã\81¦ã\81\84ã\81\9fã\81¨ã\81\8dã\81«ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81¯ã\82¹ã\83¬ã\83\83ã\83\89ã\82°ã\83«ã\83¼ã\83\97ã\81® ã\83¡ã\83³ã\83\90ã\83¼ã\81®ã\81\86ã\81¡ã\80\81ã\81\9fã\81 ä¸\80ã\81¤ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81§ã\81 ã\81\91èµ·å\8b\95ã\81\95ã\82\8cã\82\8bã\80\82ã\83\8fã\83³ã\83\89ã\83©が
+\fBkill\fP(2) ã\82\92使ã\81£ã\81¦ã\82¹ã\83¬ã\83\83ã\83\89ã\82°ã\83«ã\83¼ã\83\97ã\81«ã\82·ã\82°ã\83\8aã\83«ã\81\8cé\80\81ã\82\89ã\82\8cã\81\9få ´å\90\88ã\81§ã\80\81 ã\81\9dã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\82°ã\83«ã\83¼ã\83\97ã\81\8cã\81\9dã\81®ã\82·ã\82°ã\83\8aã\83«ã\81«å¯¾ã\81\99ã\82\8bã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8c
+ç\99»é\8c²ã\81\95ã\82\8cã\81¦ã\81\84ã\81\9fã\81¨ã\81\8dã\81«ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯ã\82¹ã\83¬ã\83\83ã\83\89ã\82°ã\83«ã\83¼ã\83\97ã\81® ã\83¡ã\83³ã\83\90ã\83¼ã\81®ã\81\86ã\81¡ã\80\81ã\81\9fã\81 ä¸\80ã\81¤ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81§ã\81 ã\81\91èµ·å\8b\95ã\81\95ã\82\8cã\82\8bã\80\82ã\83\8fã\83³ã\83\89ã\83©ã\83¼が
起動されるスレッドは、そのシグナルを禁止 (block) していない メンバーの中から一つだけが勝手に (arbitrarily) 選ばれる。
スレッドグループに属す複数のスレッドが \fBsigwaitinfo\fP(2) を使って同じシグナルを待っている場合、
これらのスレッドの中から一つをカーネルが勝手に選択し、 そのスレッドが \fBkill (2)\fP を使って送信されたシグナルを受信する。
.TP
\fBCLONE_VFORK\fP (Linux 2.2 以降)
\fBCLONE_VFORK\fP が設定された場合、 (\fBvfork\fP(2) と同様に) 子プロセスが \fBexecve\fP(2) または
-\fB_exit\fP(2) によって仮想メモリを解放するまで、呼び出し元のプロセスの実行は停止される。
+\fB_exit\fP(2) ã\81«ã\82\88ã\81£ã\81¦ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\82\92解æ\94¾ã\81\99ã\82\8bã\81¾ã\81§ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®å®\9fè¡\8cã\81¯å\81\9cæ¢ã\81\95ã\82\8cã\82\8bã\80\82
\fBCLONE_VFORK\fP が設定されていない場合、 \fBclone\fP() 呼び出し後は、呼び出し元のプロセスと子プロセスの
両方がスケジュール対象となり、アプリケーションはこれらのプロセスの 実行順序に依存しないようにすべきである。
.TP
\fBCLONE_VM\fP (Linux 2.0 以降)
-\fBCLONE_VM\fP が設定された場合、呼び出し元のプロセスと子プロセスは同じメモリ空間で
-実行される。特に、呼び出し元のプロセスや子プロセスの一方がメモリに 書き込んだ内容はもう一方のプロセスからも見ることができる。さらに、
-子プロセスや呼び出し元のプロセスの一方が \fBmmap\fP(2) や \fBmunmap\fP(2) を使ってメモリをマップしたりアンマップした場合、
+\fBCLONE_VM\fP が設定された場合、呼び出し元のプロセスと子プロセスは同じメモリー空間で
+å®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\80\82ç\89¹ã\81«ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\82\84å\90ã\83\97ã\83ã\82»ã\82¹ã\81®ä¸\80æ\96¹ã\81\8cã\83¡ã\83¢ã\83ªã\83¼ã\81« æ\9b¸ã\81\8dè¾¼ã\82\93ã\81 å\86\85容ã\81¯ã\82\82ã\81\86ä¸\80æ\96¹ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8bã\82\89ã\82\82è¦\8bã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82ã\81\95ã\82\89ã\81«ã\80\81
+å\90ã\83\97ã\83ã\82»ã\82¹ã\82\84å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ä¸\80æ\96¹ã\81\8c \fBmmap\fP(2) ã\82\84 \fBmunmap\fP(2) ã\82\92使ã\81£ã\81¦ã\83¡ã\83¢ã\83ªã\83¼ã\82\92ã\83\9eã\83\83ã\83\97ã\81\97ã\81\9fã\82\8aã\82¢ã\83³ã\83\9eã\83\83ã\83\97ã\81\97ã\81\9få ´å\90\88ã\80\81
もう一方のプロセスにも影響が及ぶ。
-\fBCLONE_VM\fP が設定されていない場合、子プロセスは \fBclone\fP() が実行された時点での、親プロセスのメモリ空間をコピーした
-別のメモリ空間で実行される。 一方のプロセスが行ったメモリへの書き込みや ファイルのマップ/アンマップは、 \fBfork\fP(2)
+\fBCLONE_VM\fP が設定されていない場合、子プロセスは \fBclone\fP() が実行された時点での、親プロセスのメモリー空間をコピーした
+別のメモリー空間で実行される。 一方のプロセスが行ったメモリーへの書き込みや ファイルのマップ/アンマップは、 \fBfork\fP(2)
の場合と同様、もう一方のプロセスには影響しない。
.SS "C ライブラリとカーネル ABI の違い"
素の \fBclone\fP システムコールは、より \fBfork\fP(2) に近いかたちになっており、
子プロセスの実行が呼び出しが行われた場所から続けられる。 そのため、 \fBclone\fP() ラッパー関数の引き数 \fIfn\fP と \fIarg\fP
-は省略される。 また、 引き数の順序も違っている。 x86 と他の多くのアーキテクチャにおける、 素のシステムコールのインターフェースは、
+ã\81¯ç\9c\81ç\95¥ã\81\95ã\82\8cã\82\8bã\80\82 ã\81¾ã\81\9fã\80\81 å¼\95ã\81\8dæ\95°ã\81®é \86åº\8fã\82\82é\81\95ã\81£ã\81¦ã\81\84ã\82\8bã\80\82 x86 ã\81¨ä»\96ã\81®å¤\9aã\81\8fã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\81\8aã\81\91ã\82\8bã\80\81 ç´ ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ã\80\81
おおまかには次のようになっている。
.in +4
.nf
子プロセスがスタックページの独立したコピーを得られることが保証される。 この場合、正常に動作させるためには、 \fBCLONE_VM\fP
オプションを指定してはならない。
-いくつかのアーキテクチャでは、システムコールの引き数の順序は上記とは異なっている。 microblaze, ARM, ARM 64, PA\-RISC,
-arc, Power PC, xtensa, MIPS アーキテクチャでは、 4 番目と 5 番目の引き数の順番が逆である。 cris と s390
-アーキテクチャでは、最初と 2 番目の引き数の順番が逆である。
+ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®å¼\95ã\81\8dæ\95°ã\81®é \86åº\8fã\81¯ä¸\8aè¨\98ã\81¨ã\81¯ç\95°ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\80\82 microblaze, ARM, ARM 64, PA\-RISC,
+arc, Power PC, xtensa, MIPS ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81 4 ç\95ªç\9b®ã\81¨ 5 ç\95ªç\9b®ã\81®å¼\95ã\81\8dæ\95°ã\81®é \86ç\95ªã\81\8cé\80\86ã\81§ã\81\82ã\82\8bã\80\82 cris ã\81¨ s390
+ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81æ\9c\80å\88\9dã\81¨ 2 ç\95ªç\9b®ã\81®å¼\95ã\81\8dæ\95°ã\81®é \86ç\95ªã\81\8cé\80\86ã\81§ã\81\82ã\82\8bã\80\82
.SS "blackfin, m68k, sparc"
blackfin, m68k, sparc では引き数渡しの規約が上記の説明とは異なる。 詳細は、カーネル (と glibc) のソースを参照のこと。
.SS ia64
\fIflags\fP に \fBCLONE_NEWUTS\fP が指定されたが、カーネルでオプション \fBCONFIG_UTS\fP が有効になっていなかった。
.TP
\fBENOMEM\fP
-子プロセスのために確保すべきタスク構造体や、呼び出し元のコンテキストの 一部をコピーするのに必要なメモリを十分に割り当てることができない。
+å\90ã\83\97ã\83ã\82»ã\82¹ã\81®ã\81\9fã\82\81ã\81«ç¢ºä¿\9dã\81\99ã\81¹ã\81\8dã\82¿ã\82¹ã\82¯æ§\8bé\80 ä½\93ã\82\84ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81® ä¸\80é\83¨ã\82\92ã\82³ã\83\94ã\83¼ã\81\99ã\82\8bã\81®ã\81«å¿\85è¦\81ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\8d\81å\88\86ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\80\82
.TP
\fBEPERM\fP
非特権プロセス (\fBCAP_SYS_ADMIN\fP を持たないプロセス) が \fBCLONE_NEWIPC\fP, \fBCLONE_NEWNET\fP,
NPTL スレッドライブラリを含んでいる GNU C ライブラリのいくつかのバージョン には、 \fBgetpid\fP(2)
のラッパー関数が含まれており、このラッパー関数は PID をキャッシュする。 このキャッシュ処理が正しく動作するためには glibc の
\fBclone\fP() のラッパー関数での助けが必要だが、現状の実装では、 ある状況下においてキャッシュが最新とならない可能性がある。 特に、
-\fBclone\fP() の呼び出し直後にシグナルが子プロセスに配送された場合に、 そのシグナルに対するハンドラ内で \fBgetpid\fP(2)
+\fBclone\fP() の呼び出し直後にシグナルが子プロセスに配送された場合に、 そのシグナルに対するハンドラー内で \fBgetpid\fP(2)
を呼び出すと、それまでに clone のラッパー関数が子プロセスの PID キャッシュを 更新する機会が得られていなければ、呼び出し元プロセス
("親プロセス") の PID が 返される可能性がある。 (この議論では、子プロセスが \fBCLONE_THREAD\fP
を使って作成された場合のことは無視している。 子プロセスが \fBCLONE_THREAD\fP を作って作成された場合には、
int
main(int argc, char *argv[])
{
- char *stack; /* スタックバッファの先頭 */
- char *stackTop; /* スタックバッファの末尾 */
+ char *stack; /* ã\82¹ã\82¿ã\83\83ã\82¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å\85\88é */
+ char *stackTop; /* ã\82¹ã\82¿ã\83\83ã\82¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\9c«å°¾ */
pid_t pid;
struct utsname uts;
.\"
.TH CLOSE 2 2013\-12\-30 Linux "Linux Programmer's Manual"
.SH 名前
-close \- ファイルディスクリプタをクローズする
+close \- ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <unistd.h>\fP
\fBint close(int \fP\fIfd\fP\fB);\fP
.fi
.SH 説明
-\fBclose\fP() ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\99ã\82\8bã\80\82 ã\81\9dã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\80\81ã\81©ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\82å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ç\8a¶æ\85\8bã\81«ã\81ªã\82\8aã\80\81 å\86\8då\88©ç\94¨ã\81\8cå\8f¯è\83½ã\81«ã\81ªã\82\8bã\80\82
-そのファイルディスクリプタに関連づけられたファイルに かけられたレコードロック (\fBfcntl\fP(2) 参照)
-のうち、そのプロセスが保有しているものは、 (そのファイルディスクリプタがロック取得に利用されたか どうかによらず) すべて削除される。
+\fBclose\fP() ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\99ã\82\8bã\80\82 ã\81\9dã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81ã\81©ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\82å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ç\8a¶æ\85\8bã\81«ã\81ªã\82\8aã\80\81
+再利用が可能になる。 そのファイルディスクリプターに関連づけられたファイルに かけられたレコードロック (\fBfcntl\fP(2) 参照)
+ã\81®ã\81\86ã\81¡ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cä¿\9dæ\9c\89ã\81\97ã\81¦ã\81\84ã\82\8bã\82\82ã\81®ã\81¯ã\80\81 (ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\83ã\83\83ã\82¯å\8f\96å¾\97ã\81«å\88©ç\94¨ã\81\95ã\82\8cã\81\9fã\81\8b ã\81©ã\81\86ã\81\8bã\81«ã\82\88ã\82\89ã\81\9a) ã\81\99ã\81¹ã\81¦å\89\8aé\99¤ã\81\95ã\82\8cã\82\8bã\80\82
.PP
\fIfd\fP が、対応するオープンファイル記述 (open file description) (\fBopen\fP(2) 参照)
-ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bæ\9c\80å¾\8cã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81 ã\81£ã\81\9få ´å\90\88ã\80\81 ã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿°ã\81«é\96¢é\80£ã\81\99ã\82\8bã\83ªã\82½ã\83¼ã\82¹ã\81\8c解æ\94¾ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\9dã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿が、 \fBunlink\fP
+ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bæ\9c\80å¾\8cã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81 ã\81£ã\81\9få ´å\90\88ã\80\81 ã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿°ã\81«é\96¢é\80£ã\81\99ã\82\8bã\83ªã\82½ã\83¼ã\82¹ã\81\8c解æ\94¾ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\9dã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼が、 \fBunlink\fP
を使用して削除 (remove) されたファイルに対する最後の参照だった場合には、 そのファイルは削除 (delete) される。
.SH 返り値
\fBclose\fP() は成功した場合は 0 を返す。 エラーが発生した場合は \-1 を返して、 \fIerrno\fP を適切に設定する。
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP が有効なオープンされたディスクリプタでない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEINTR\fP
\fBclose\fP() コールがシグナルにより中断 (interrupt) された。 \fBsignal\fP(7) 参照。
処理に関するエラーが最後の \fBclose\fP() のときになって初めて通知される場合がありうる。 ファイルクローズの際に返り値をチェックしないと、
気付かないうちにデータを失ってしまうかもしれない。 これは特に NFS
やディスククォータを使用した場合に見られる。返り値は状態確認用にのみ利用すべき点に注意すること。特に、\fBEINTR\fP 後に \fBclose\fP()
-を再度行うべきではない。なぜなら、これにより、別のスレッドが再利用したディスクリプタをクローズしてしまう可能性があるからだ。
+ã\82\92å\86\8d度è¡\8cã\81\86ã\81¹ã\81\8dã\81§ã\81¯ã\81ªã\81\84ã\80\82ã\81ªã\81\9cã\81ªã\82\89ã\80\81ã\81\93ã\82\8cã\81«ã\82\88ã\82\8aã\80\81å\88¥ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81\8cå\86\8då\88©ç\94¨ã\81\97ã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\81¦ã\81\97ã\81¾ã\81\86å\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\81\8bã\82\89ã\81 ã\80\82
.PP
クローズに成功しても、データがディスクに保存されたかどうかは 保証されない (カーネルが書きこみを遅延させることがあるためである)。
-ストリームがクローズされるときにバッファをフラッシュするかどうかは、 ファイルシステムによって異なる。
+ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81\8cã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\82\8bã\81¨ã\81\8dã\81«ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92ã\83\95ã\83©ã\83\83ã\82·ã\83¥ã\81\99ã\82\8bã\81\8bã\81©ã\81\86ã\81\8bã\81¯ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81«ã\82\88ã\81£ã\81¦ç\95°ã\81ªã\82\8bã\80\82
データが物理的に保存されることを保証する必要がある場合には、 \fBfsync\fP(2) を使用すること (\fBfsync\fP(3)
を行った時点で、データの保存はディスクのハードウェアに依存する 問題となる)。
.PP
.\" call has restarted after ERESTARTSYS, the original system call will
.\" later restart with the reused file descriptor. This is most likely a
.\" serious programming error.
-同じプロセス内の他のスレッドのシステムコールが使用している可能性がある間に、 ファイルディスクリプタをクローズするのは、おそらく賢明ではないだろう。
-ファイルディスクリプタは再利用されるかもしれないので、 あいまいな競合条件となることがあり、意図しない副作用の原因となりうる。
+å\90\8cã\81\98ã\83\97ã\83ã\82»ã\82¹å\86\85ã\81®ä»\96ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8c使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bé\96\93ã\81«ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\99ã\82\8bã\81®ã\81¯ã\80\81ã\81\8aã\81\9dã\82\89ã\81\8fè³¢æ\98\8eã\81§ã\81¯ã\81ªã\81\84ã\81 ã\82\8dã\81\86ã\80\82
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯å\86\8då\88©ç\94¨ã\81\95ã\82\8cã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\81®ã\81§ã\80\81 ã\81\82ã\81\84ã\81¾ã\81\84ã\81ªç«¶å\90\88æ\9d¡ä»¶ã\81¨ã\81ªã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8aã\80\81æ\84\8få\9b³ã\81\97ã\81ªã\81\84å\89¯ä½\9cç\94¨ã\81®å\8e\9få\9b ã\81¨ã\81ªã\82\8aã\81\86ã\82\8bã\80\82
.SH 関連項目
\fBfcntl\fP(2), \fBfsync\fP(2), \fBopen\fP(2), \fBshutdown\fP(2), \fBunlink\fP(2),
\fBfclose\fP(3)
\fB socklen_t \fP\fIaddrlen\fP\fB);\fP
.fi
.SH 説明
-\fBconnect\fP() システムコールは、ファイルディスクリプタ \fIsockfd\fP が参照しているソケットを \fIaddr\fP
+\fBconnect\fP() システムコールは、ファイルディスクリプター \fIsockfd\fP が参照しているソケットを \fIaddr\fP
で指定されたアドレスに接続する。 \fIaddrlen\fP 引き数は \fIaddr\fP の大きさを示す。 \fIaddr\fP のアドレスのフォーマットはソケット
\fIsockfd\fP のアドレス空間により異なる。 さらなる詳細は \fBsocket\fP(2) を参照のこと。
以下は一般的なソケットについてのエラーである。他にドメイン特有のエラー が発生する可能性がある。
.TP
\fBEACCES\fP
-UNIX ã\83\89ã\83¡ã\82¤ã\83³ã\82½ã\82±ã\83\83ã\83\88ã\81¯ã\83\91ã\82¹å\90\8dã\81§è\98å\88¥ã\81\95ã\82\8cã\82\8bã\80\82 ã\82½ã\82±ã\83\83ã\83\88ã\83»ã\83\95ã\82¡ã\82¤ã\83«ã\81¸ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿è¨±å\8f¯ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\81\8bã\80\81ã\83\91ã\82¹å\90\8dã\81¸
+UNIX ドメインソケットはパス名で識別される。 ソケットファイルへの書き込み許可がなかったか、パス名へ
到達するまでのディレクトリのいずれかに対する検索許可がなかった。 (\fBpath_resolution\fP(7) も参照のこと)
.TP
\fBEACCES\fP, \fBEPERM\fP
-ã\82½ã\82±ã\83\83ã\83\88ã\81®ã\83\96ã\83ã\83¼ã\83\89ã\82ã\83£ã\82¹ã\83\88ã\83»ã\83\95ã\83©ã\82°ã\81\8cæ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\81ªã\81\84ã\81®ã\81« ã\83¦ã\83¼ã\82¶がブロードキャストへ接続を試みた。または、ローカルのファイアウォールの
+ã\82½ã\82±ã\83\83ã\83\88ã\81®ã\83\96ã\83ã\83¼ã\83\89ã\82ã\83£ã\82¹ã\83\88ã\83\95ã\83©ã\82°ã\81\8cæ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\81ªã\81\84ã\81®ã\81« ã\83¦ã\83¼ã\82¶ã\83¼がブロードキャストへ接続を試みた。または、ローカルのファイアウォールの
規則により接続の要求が失敗した。
.TP
\fBEADDRINUSE\fP
\fI/proc/sys/net/ipv4/ip_local_port_range\fP の議論を参照のこと。
.TP
\fBEAFNOSUPPORT\fP
-渡ã\81\95ã\82\8cã\81\9fã\82¢ã\83\89ã\83¬ã\82¹ã\81® \fIsa_family\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81\8cæ£ã\81\97ã\81\84ã\82¢ã\83\89ã\83¬ã\82¹ã\83»ã\83\95ã\82¡ã\83\9fã\83ªã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
+渡されたアドレスの \fIsa_family\fP フィールドが正しいアドレスファミリーではない。
.TP
\fBEAGAIN\fP
ルーティングキャッシュにエントリーが十分にない。
SVr4, 4.4BSD, (\fBconnect\fP() 関数は 4.2BSD で最初に登場した), POSIX.1\-2001.
.SH 注意
POSIX.1\-2001 では \fI<sys/types.h>\fP のインクルードは必須とされておらず、 Linux
-ã\81§ã\81¯ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83\95ã\82¡ã\82¤ã\83«ã\81¯å¿\85è¦\81ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81æ´å\8f²ç\9a\84ã\81«ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å®\9fè£\85 (BSD ç³») ã\81§ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ファイルが
+ã\81§ã\81¯ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81¯å¿\85è¦\81ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81æ´å\8f²ç\9a\84ã\81«ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å®\9fè£\85 (BSD ç³») ã\81§ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ファイルが
必要であり、移植性が必要なアプリケーションではこのファイルを インクルードするのが賢明であろう。
\fBconnect\fP() の三番目の引き数は 4.x BSD や libc4, libc5 と同様に実際には \fIint\fP である。 POSIX
.\"
.TH CREATE_MODULE 2 2014\-05\-10 Linux "Linux Programmer's Manual"
.SH 名前
-create_module \- ã\83ã\83¼ã\83\80ã\83\96ã\83«ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªを作成する
+create_module \- ã\83ã\83¼ã\83\80ã\83¼ã\83\96ã\83«ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼を作成する
.SH 書式
.nf
\fB#include <linux/module.h>\fP
.SH 説明
\fI注意\fP: このシステムコールが存在するのは、カーネル 2.6 より前の Linux だけである。
-\fBcreate_module\fP() ã\81¯ã\80\81ã\83ã\83¼ã\83\80ã\83\96ã\83«ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92ä½\9cæ\88\90ã\81\97ã\80\81ã\81\9dã\81®ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81®ä¿\9dæ\8c\81ã\81«å¿\85è¦\81ã\81ª ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\82\92äº\88ç´\84ã\81\97ã\82\88ã\81\86ã\81¨ã\81\99ã\82\8bã\80\82
-このシステムコールを使うには特権が必要である。
+\fBcreate_module\fP() ã\81¯ã\80\81ã\83ã\83¼ã\83\80ã\83¼ã\83\96ã\83«ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ä½\9cæ\88\90ã\81\97ã\80\81ã\81\9dã\81®ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81®ä¿\9dæ\8c\81ã\81«å¿\85è¦\81ã\81ª
+ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\82\92äº\88ç´\84ã\81\97ã\82\88ã\81\86ã\81¨ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\92使ã\81\86ã\81«ã\81¯ç\89¹æ¨©ã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\82\8bã\80\82
.SH 返り値
成功すると、モジュールが配置されるカーネル空間のアドレスを返す。 エラーの場合 \-1 を返し、 \fIerrno\fP を適切に設定する。
.SH エラー
\fIname\fP がプログラムがアクセスできるアドレス空間の外部にある。
.TP
\fBEINVAL\fP
-要求したサイズが小さすぎて、モジュールのヘッダ情報すら格納できない。
+要求したサイズが小さすぎて、モジュールのヘッダー情報すら格納できない。
.TP
\fBENOMEM\fP
-モジュールを格納するのに必要な大きさの連続したメモリブロックを カーネルが確保できなかった。
+ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\82\92æ ¼ç´\8dã\81\99ã\82\8bã\81®ã\81«å¿\85è¦\81ã\81ªå¤§ã\81\8dã\81\95ã\81®é\80£ç¶\9aã\81\97ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\83\96ã\83ã\83\83ã\82¯ã\82\92 ã\82«ã\83¼ã\83\8dã\83«ã\81\8c確ä¿\9dã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBENOSYS\fP
\fBcreate_module\fP() がこのバージョンのカーネルではサポートされていない (例えば、カーネルのバージョンが 2.6 以降)。
.SH 注意
\fBcreate_module\fP() システムコールは glibc ではサポートされていない。 glibc ヘッダーでは宣言は提供されていないが、
歴史の紆余曲折を経て glibc はこのシステムコールに対する ABI を公開していない。
-したがって、このシステムコールを利用するには、自分のコードの中で手動でインタフェースを宣言すればよい。 \fBsyscall\fP(2)
+ã\81\97ã\81\9fã\81\8cã\81£ã\81¦ã\80\81ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\92å\88©ç\94¨ã\81\99ã\82\8bã\81«ã\81¯ã\80\81è\87ªå\88\86ã\81®ã\82³ã\83¼ã\83\89ã\81®ä¸ã\81§æ\89\8bå\8b\95ã\81§ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92宣è¨\80ã\81\99ã\82\8cã\81°ã\82\88ã\81\84ã\80\82 \fBsyscall\fP(2)
を使ってシステムコールを起動できる。
.SH 関連項目
\fBdelete_module\fP(2), \fBinit_module\fP(2), \fBquery_module\fP(2)
.\"
.TH DUP 2 2015\-01\-22 Linux "Linux Programmer's Manual"
.SH 名前
-dup, dup2, dup3 \- ファイルディスクリプタを複製する
+dup, dup2, dup3 \- ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¤\87製ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <unistd.h>\fP
\fBint dup3(int \fP\fIoldfd\fP\fB, int \fP\fInewfd\fP\fB, int \fP\fIflags\fP\fB);\fP
.fi
.SH 説明
-\fBdup\fP() システムコールは、 ファイルディスクリプタ \fIoldfd\fP のコピーを作成し、 最も小さい番号の未使用のディスクリプタを
-新しいディスクリプタとして使用する。
+\fBdup\fP() システムコールは、 ファイルディスクリプター \fIoldfd\fP のコピーを作成し、 最も小さい番号の未使用のディスクリプターを
+æ\96°ã\81\97ã\81\84ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¨ã\81\97ã\81¦ä½¿ç\94¨ã\81\99ã\82\8bã\80\82
-æ\88\90å\8a\9fã\81\8cè¿\94ã\81\95ã\82\8cã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81 å\8f¤ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¨æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は 互いに可換なものとして使うことができる。
-2つのファイルディスクリプタは同じファイル記述 (description) (\fBopen\fP(2) 参照)
-を参照しており、したがってファイルオフセットやファイル状態フラグが 共有される。例えば、一方のディスクリプタに対して \fBlseek\fP(2)
-を使ってファイルオフセットを変更した場合、もう一方のディスクリプタの オフセットも変化する。
+æ\88\90å\8a\9fã\81\8cè¿\94ã\81\95ã\82\8cã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81 å\8f¤ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¨æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は 互いに可換なものとして使うことができる。
+2ã\81¤ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯å\90\8cã\81\98ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿° (description) (\fBopen\fP(2) å\8f\82ç\85§)
+ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\8aã\82\8aã\80\81ã\81\97ã\81\9fã\81\8cã\81£ã\81¦ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\82\84ã\83\95ã\82¡ã\82¤ã\83«ç\8a¶æ\85\8bã\83\95ã\83©ã\82°ã\81\8c å\85±æ\9c\89ã\81\95ã\82\8cã\82\8bã\80\82ä¾\8bã\81\88ã\81°ã\80\81ä¸\80æ\96¹ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ \fBlseek\fP(2)
+ã\82\92使ã\81£ã\81¦ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\82\92å¤\89æ\9b´ã\81\97ã\81\9få ´å\90\88ã\80\81ã\82\82ã\81\86ä¸\80æ\96¹ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81® ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\82\82å¤\89å\8c\96ã\81\99ã\82\8bã\80\82
.\"
-2ã\81¤ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83\95ã\83©ã\82° (close\-on\-exec flag) ã\82\92å\85±æ\9c\89ã\81\97ã\81ªã\81\84ã\80\82è¤\87製ã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿の
+2ã\81¤ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\83\95ã\83©ã\82° (close\-on\-exec flag) ã\82\92å\85±æ\9c\89ã\81\97ã\81ªã\81\84ã\80\82è¤\87製ã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼の
close\-on\-exec flag (\fBfcntl\fP(2) 参照) は off となる。
.SS dup2()
\fBdup2\fP() システムコールは \fBdup\fP() と同じ処理を実行するが、
-番号が最も小さい未使用のファイルディスクリプタを使用する代わりに、
-\fInewfd\fP で指定されたディスクリプタ番号を使用する。
-ディスクリプタ \fInewfd\fP が以前にオープンされていた場合には、
-黙ってそのディスクリプタをクローズしてから再利用する。
+ç\95ªå\8f·ã\81\8cæ\9c\80ã\82\82å°\8fã\81\95ã\81\84æ\9cªä½¿ç\94¨ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92使ç\94¨ã\81\99ã\82\8b代ã\82\8fã\82\8aã\81«ã\80\81
+\fInewfd\fP で指定されたディスクリプター番号を使用する。
+ディスクリプター \fInewfd\fP が以前にオープンされていた場合には、
+é»\99ã\81£ã\81¦ã\81\9dã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\81¦ã\81\8bã\82\89å\86\8då\88©ç\94¨ã\81\99ã\82\8bã\80\82
-ファイルディスクリプタ \fInewfd\fP をクローズして再利用する処理は
+ファイルディスクリプター \fInewfd\fP をクローズして再利用する処理は
\fIアトミック(不可分)に\fP実行される。これは重要な点である。 なぜなら、
等価な機能を \fBclose\fP(2) と \fBdup\fP() を使って実装しようとすると、
2 つの処理の間に \fInewfd\fP が再利用されてしまうという、
競合状態にさらされることになるからだ。
このような再利用が起こるのは、
-メインプログラムがファイルディスクリプタを割り当てる
+ã\83¡ã\82¤ã\83³ã\83\97ã\83ã\82°ã\83©ã\83 ã\81\8cã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8b
シグナルハンドラーにより割り込まれたり、並行動作するスレッドが
-ファイルディスクリプタを割り当てたりすることがあるからだ。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\81\9fã\82\8aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\81\8bã\82\89ã\81 ã\80\82
以下の点について注意すること:
.IP * 3
-\fIoldfd\fP が有効なファイルディスクリプタでない場合、その呼び出しは失敗し、 \fInewfd\fP はクローズされない。
+\fIoldfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84å ´å\90\88ã\80\81ã\81\9dã\81®å\91¼ã\81³å\87ºã\81\97ã\81¯å¤±æ\95\97ã\81\97ã\80\81 \fInewfd\fP ã\81¯ã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\81ªã\81\84ã\80\82
.IP *
.\"
-\fIoldfd\fP が有効なファイルディスクリプタで、 \fInewfd\fP が \fIoldfd\fP と同じ値の場合、 \fBdup2\fP() は何もせず、
+\fIoldfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\80\81 \fInewfd\fP ã\81\8c \fIoldfd\fP ã\81¨å\90\8cã\81\98å\80¤ã\81®å ´å\90\88ã\80\81 \fBdup2\fP() ã\81¯ä½\95ã\82\82ã\81\9bã\81\9aã\80\81
\fInewfd\fP を返す。
.SS dup3()
\fBdup3\fP() は \fBdup2\fP() と同じだが、以下の点が異なる。
.IP * 3
-呼び出し元が、新しいファイルディスクリプタに対して close\-on\-exec フラグを強制的に設定することができる。 これを行うには、
+å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8cã\80\81æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ close\-on\-exec ã\83\95ã\83©ã\82°ã\82\92å¼·å\88¶ç\9a\84ã\81«è¨å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\82\8cã\82\92è¡\8cã\81\86ã\81«ã\81¯ã\80\81
\fIflags\fP に \fBO_CLOEXEC\fP を指定する。 このフラグが役に立つ理由については、 \fBopen\fP(2) の \fBO_CLOEXEC\fP
フラグの説明を参照のこと。
.IP *
.\" FIXME . To confirm with Al Viro that this was intended, and its rationale
\fIoldfd\fP が \fInewfd\fP と同じ場合、 \fBdup3\fP() は \fBEINVAL\fP エラーで失敗する。
.SH 返り値
-成功すると、これらのシステムコールは新しいディスクリプタを返す。 エラーの場合、\-1 を返し、 \fIerrno\fP を適切に設定する。
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯æ\96°ã\81\97ã\81\84ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81\-1 ã\82\92è¿\94ã\81\97ã\80\81 \fIerrno\fP ã\82\92é\81©å\88\87ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82
.SH エラー
.TP
\fBEBADF\fP
-\fIoldfd\fP がオープンされたファイルディスクリプタではない。
+\fIoldfd\fP ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEBADF\fP
\fInewfd\fP がファイルディスクリプターとして許可されている範囲ではない (\fBgetrlimit\fP(2) の \fBRLIMIT_NOFILE\fP
(\fBdup3\fP()) \fIoldfd\fP が \fInewfd\fP と同じであった。
.TP
\fBEMFILE\fP
-プロセスがすでにオープンできる最大数までファイルディスクリプタ を開いていて、さらに新しいものを開こうとした (\fBgetrlimit\fP(2)
+プロセスがすでにオープンできる最大数までファイルディスクリプター を開いていて、さらに新しいものを開こうとした (\fBgetrlimit\fP(2)
のリソース上限 \fBRLIMIT_NOFILE\fP を参照)。
.SH バージョン
\fBdup3\fP() はバージョン 2.6.27 で Linux に追加された。 glibc によるサポートはバージョン 2.9 以降で利用できる。
\fInewfd\fP がオープンされていた場合、
\fBclose\fP(2) 時に報告されることになるエラーはすべて失われる。
これが心配で、シングルスレッドかつシグナルハンドラーで
-ファイルディスクリプタを割り当てるようなプログラムでない場合には、
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\82\88ã\81\86ã\81ªã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\81ªã\81\84å ´å\90\88ã\81«ã\81¯ã\80\81
正しい方法は \fBdup2\fP() を呼び出す前に
\fInewfd\fP をクローズ「しない」ことである。
なぜなら、上で説明した競合状況があるからである。
.\"
.TH EPOLL_CREATE 2 2012\-04\-15 Linux "Linux Programmer's Manual"
.SH 名前
-epoll_create, epoll_create1 \- epoll ファイルディスクリプタをオープンする
+epoll_create, epoll_create1 \- epoll ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <sys/epoll.h>\fP
Linux 2.6.8 以降では、\fIsize\fP 引き数は無視されるが、 0 より大きな値で
なければならない。下記の「注意」を参照。
-\fBepoll_create\fP() は、新しい epoll インスタンスを参照するファイルディスクリプタを返す。
-ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\80\81ã\81\9dã\81®å¾\8cã\81® \fBepoll\fP ã\82¤ã\83³ã\82¿フェースの呼び出しに使われる。 もう必要でなくなった場合は、
-\fBepoll_create\fP() ã\81§è¿\94ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ \fBclose\fP(2) ã\82\92使ã\81£ã\81¦ã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\82\8bã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 ã\81\82ã\82\8b epoll
-インスタンスを参照する全てのファイルディスクリプタがクローズされると、 カーネルはそのインスタンスを破壊して、対応するリソースを解放し、
+\fBepoll_create\fP() ã\81¯ã\80\81æ\96°ã\81\97ã\81\84 epoll ã\82¤ã\83³ã\82¹ã\82¿ã\83³ã\82¹ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81ã\81\9dã\81®å¾\8cã\81® \fBepoll\fP ã\82¤ã\83³ã\82¿ã\83¼フェースの呼び出しに使われる。 もう必要でなくなった場合は、
+\fBepoll_create\fP() ã\81§è¿\94ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ \fBclose\fP(2) ã\82\92使ã\81£ã\81¦ã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\82\8bã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 ã\81\82ã\82\8b
+epoll インスタンスを参照する全てのファイルディスクリプターがクローズされると、 カーネルはそのインスタンスを破壊して、対応するリソースを解放し、
再使用できるようにする。
.SS epoll_create1()
\fBepoll_create1\fP() は、 \fIflags\fP が 0 の場合、現在では使われていない \fIsize\fP 引き数がなくなっている点を除けば
異なる動作をさせることができる。
.TP
\fBEPOLL_CLOEXEC\fP
-新しいファイルディスクリプタに対して close\-on\-exec (\fBFD_CLOEXEC\fP) フラグをセットする。
+æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ close\-on\-exec (\fBFD_CLOEXEC\fP) ã\83\95ã\83©ã\82°ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\80\82
このフラグが役に立つ理由については、 \fBopen\fP(2) の \fBO_CLOEXEC\fP フラグの説明を参照のこと。
.SH 返り値
-成功すると、これらのシステムコールは 非負のファイルディスクリプタを返す。 エラーの場合、\-1 を返し、 \fIerrno\fP にエラーを示す値を設定する。
+成功すると、これらのシステムコールは 非負のファイルディスクリプターを返す。 エラーの場合、\-1 を返し、 \fIerrno\fP
+にエラーを示す値を設定する。
.SH エラー
.TP
\fBEINVAL\fP
オープンされたファイルの総数がシステム制限に達した。
.TP
\fBENOMEM\fP
-カーネルオブジェクトを作成するのに十分なメモリがなかった。
+ã\82«ã\83¼ã\83\8dã\83«ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82
.SH バージョン
\fBepoll_create\fP() はカーネル 2.6 で追加された。
ライブラリによるサポートは glibc バージョン 2.3.2 以降で提供されている。
\fBepoll_create\fP() は Linux 独自である。
.SH 注意
初期の \fBepoll_create\fP() の実装では、\fIsize\fP 引き数は、呼び出し元が \fBepoll\fP
-インスタンスに追加しようとするファイルディスクリプタ数をカーネルに教えるのに
+インスタンスに追加しようとするファイルディスクリプター数をカーネルに教えるのに
使われていた。カーネルはこの情報をイベントの情報を格納する内部データ構造に最
初に割り当てる大きさを決める際のヒントとして使用していた (\fIsize\fP で渡された
ヒントよりも使用量が大きくなった場合には、必要に応じてカーネルは追加で領域を
.\"
.TH EPOLL_CTL 2 2014\-12\-31 Linux "Linux Programmer's Manual"
.SH 名前
-epoll_ctl \- epoll ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®ã\82¤ã\83³ã\82¿フェースを操作する
+epoll_ctl \- epoll ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\82¤ã\83³ã\82¿ã\83¼フェースを操作する
.SH 書式
\fB#include <sys/epoll.h>\fP
.sp
\fBint epoll_ctl(int \fP\fIepfd\fP\fB, int \fP\fIop\fP\fB, int \fP\fIfd\fP\fB, struct
epoll_event *\fP\fIevent\fP\fB);\fP
.SH 説明
-このシステムコールは、ファイルディスクリプタ \fIepfd\fP が参照する \fBepoll\fP(7)
-インスタンスに対する操作を行う。 対象のファイルディスクリプタ \fIfd\fP に対して、
+このシステムコールは、ファイルディスクリプター \fIepfd\fP が参照する \fBepoll\fP(7)
+インスタンスに対する操作を行う。 対象のファイルディスクリプター \fIfd\fP に対して、
操作 \fIop\fP の実行が要求される。
\fIop\fP 引き数に指定できる有効な値は以下の通りである。
.TP
\fBEPOLL_CTL_ADD\fP
-対象のファイルディスクリプタ \fIfd\fP をファイルディスクリプタ \fIepfd\fP が参照する \fBepoll\fP インスタンスに登録し、イベント
+対象のファイルディスクリプター \fIfd\fP をファイルディスクリプター \fIepfd\fP が参照する \fBepoll\fP インスタンスに登録し、イベント
\fIevent\fP を \fIfd\fP に結び付けられた内部ファイルに関連付ける。
.TP
\fBEPOLL_CTL_MOD\fP
-イベント \fIevent\fP を対象のファイルディスクリプタ \fIfd\fP に関連付けるように変更する。
+イベント \fIevent\fP を対象のファイルディスクリプター \fIfd\fP に関連付けるように変更する。
.TP
\fBEPOLL_CTL_DEL\fP
-対象のファイルディスクリプタ \fIfd\fP を \fIepfd\fP が参照する \fBepoll\fP インスタンスから削除する。 \fIevent\fP
+対象のファイルディスクリプター \fIfd\fP を \fIepfd\fP が参照する \fBepoll\fP インスタンスから削除する。 \fIevent\fP
引き数は無視されるので、NULL にすることもできる (但し、下記の「バグ」を参照)。
.PP
-\fIevent\fP 引き数は、ファイルディスクリプタ \fIfd\fP にリンクされたオブジェクトを表す。 \fIstruct epoll_event\fP
+\fIevent\fP 引き数は、ファイルディスクリプター \fIfd\fP にリンクされたオブジェクトを表す。 \fIstruct epoll_event\fP
は以下のように定義される。
.sp
.in +4n
struct epoll_event {
uint32_t events; /* epoll イベント */
- epoll_data_t data; /* ユーザデータ変数 */
+ epoll_data_t data; /* ã\83¦ã\83¼ã\82¶ã\83¼ã\83\87ã\83¼ã\82¿å¤\89æ\95° */
};
.fi
.in
.TP
\fBEPOLLRDHUP"\fP(Linux\fB2.6.17\fP以降)"
ストリームソケットの他端が、コネクションの close 、 またはコネクションの書き込み側の shutdown を行った。
-(このフラグを使うと、エッジトリガの監視を行う場合に、 通信のもう一端が閉じられたことを検知するコードを 非常に簡潔に書くことができる。)
+(ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\82\92使ã\81\86ã\81¨ã\80\81ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬ã\83¼ã\81®ç\9b£è¦\96ã\82\92è¡\8cã\81\86å ´å\90\88ã\81«ã\80\81 é\80\9aä¿¡ã\81®ã\82\82ã\81\86ä¸\80端ã\81\8cé\96\89ã\81\98ã\82\89ã\82\8cã\81\9fã\81\93ã\81¨ã\82\92æ¤\9cç\9f¥ã\81\99ã\82\8bã\82³ã\83¼ã\83\89ã\82\92 é\9d\9e常ã\81«ç°¡æ½\94ã\81«æ\9b¸ã\81\8fã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82)
.TP
\fBEPOLLPRI\fP
\fBread\fP(2) 操作が可能な緊急 (urgent) データがある。
.TP
\fBEPOLLERR\fP
-関連付けられたファイルディスクリプタにエラー条件が起こった。 \fBepoll_wait\fP(2) は常にこのイベントを待つので、 \fIevents\fP
+é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ã\82¨ã\83©ã\83¼æ\9d¡ä»¶ã\81\8cèµ·ã\81\93ã\81£ã\81\9fã\80\82 \fBepoll_wait\fP(2) ã\81¯å¸¸ã\81«ã\81\93ã\81®ã\82¤ã\83\99ã\83³ã\83\88ã\82\92å¾\85ã\81¤ã\81®ã\81§ã\80\81 \fIevents\fP
に設定する必要はない。
.TP
\fBEPOLLHUP\fP
-関連付けられたファイルディスクリプタにハングアップが起こった。 \fBepoll_wait\fP(2) は常にこのイベントを待つので、 \fIevents\fP
+é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ã\83\8fã\83³ã\82°ã\82¢ã\83\83ã\83\97ã\81\8cèµ·ã\81\93ã\81£ã\81\9fã\80\82 \fBepoll_wait\fP(2) ã\81¯å¸¸ã\81«ã\81\93ã\81®ã\82¤ã\83\99ã\83³ã\83\88ã\82\92å¾\85ã\81¤ã\81®ã\81§ã\80\81 \fIevents\fP
に設定する必要はない。
.TP
\fBEPOLLET\fP
-é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81« ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬動作 (Edge Triggered behavior) を設定する。 \fBepoll\fP
-のデフォルトの動作は、レベルトリガ (Level Triggered) である。 エッジトリガとレベルトリガによるイベント分配機構 (event
+é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81« ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬ã\83¼動作 (Edge Triggered behavior) を設定する。 \fBepoll\fP
+のデフォルトの動作は、レベルトリガー (Level Triggered) である。 エッジトリガーとレベルトリガーによるイベント分配機構 (event
distribution architectures) についての詳細な情報は、 \fBepoll\fP(7) を参照すること。
.TP
\fBEPOLLONESHOT\fP (Linux 2.6.2 以降)
-関連付けられたファイルディスクリプタに 一撃動作 (One\-Shot behavior) を設定する。 これはイベントが
-\fBepoll_wait\fP(2) によって引き出された後、 関連付けられたファイルディスクリプタが内部的に破棄され、 \fBepoll\fP
-ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81«ã\82\88ã\81£ã\81¦ã\82¤ã\83\99ã\83³ã\83\88ã\81\8cå ±å\91\8aã\81\95ã\82\8cã\81ªã\81\8fã\81ªã\82\8bã\81\93ã\81¨ã\82\92æ\84\8få\91³ã\81\99ã\82\8bã\80\82 æ\96°ã\81\97ã\81\84ã\82¤ã\83\99ã\83³ã\83\88ã\83\9eã\82¹ã\82¯ã\81§ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を再度有効にするためには、
+é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81« ä¸\80æ\92\83å\8b\95ä½\9c (One\-Shot behavior) ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ã\82¤ã\83\99ã\83³ã\83\88ã\81\8c
+\fBepoll_wait\fP(2) ã\81«ã\82\88ã\81£ã\81¦å¼\95ã\81\8då\87ºã\81\95ã\82\8cã\81\9få¾\8cã\80\81 é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\86\85é\83¨ç\9a\84ã\81«ç ´æ£\84ã\81\95ã\82\8cã\80\81 \fBepoll\fP
+ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«ã\82\88ã\81£ã\81¦ã\82¤ã\83\99ã\83³ã\83\88ã\81\8cå ±å\91\8aã\81\95ã\82\8cã\81ªã\81\8fã\81ªã\82\8bã\81\93ã\81¨ã\82\92æ\84\8få\91³ã\81\99ã\82\8bã\80\82 æ\96°ã\81\97ã\81\84ã\82¤ã\83\99ã\83³ã\83\88ã\83\9eã\82¹ã\82¯ã\81§ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を再度有効にするためには、
\fBepoll_ctl\fP() に \fBEPOLL_CTL_MOD\fP を指定して呼び出さなければならない。 \fIop\fP
引き数に指定できる有効な値は、以下の通り:
.TP
.\" commit 4d7e30d98939a0340022ccd49325a3d70f7e0238
\fBEPOLLONESHOT\fP と \fBEPOLLET\fP がクリアされており、 プロセスが \fBCAP_BLOCK_SUSPEND\fP
ケーパビリティを持っている場合、 イベントが処理待ちか処理中かにかかわらず、必ずシステムが "suspend" や "hibernate"
-に入らないようにすること。 \fBepoll_wait\fP(2) の呼び出しが返った時点から、 同じ \fBepoll\fP(7) ファイルディスクリプタに対して
-\fBepoll_wait\fP(2) が次に呼び出されるか、 そのファイルディスクリプタが閉じられるか、 イベントファイルディスクリプタが
-\fBEPOLL_CTL_DEL\fP で削除されるか、 \fBEPOLL_CTL_MOD\fP でイベントファイルディスクリプタの \fBEPOLLWAKEUP\fP
-がクリアされるか、 のいずれかになるまで、イベントは「処理中」であるとみなされる。 「バグ」の節も参照のこと。
+に入らないようにすること。 \fBepoll_wait\fP(2) の呼び出しが返った時点から、 同じ \fBepoll\fP(7)
+ファイルディスクリプターに対して \fBepoll_wait\fP(2) が次に呼び出されるか、 そのファイルディスクリプターが閉じられるか、
+イベントファイルディスクリプターが \fBEPOLL_CTL_DEL\fP で削除されるか、 \fBEPOLL_CTL_MOD\fP
+でイベントファイルディスクリプターの \fBEPOLLWAKEUP\fP がクリアされるか、 のいずれかになるまで、イベントは「処理中」であるとみなされる。
+「バグ」の節も参照のこと。
.SH 返り値
成功した場合、 \fBepoll_ctl\fP() は 0 を返す。 エラーが起こった場合、 \fBepoll_ctl\fP() は \-1 を返し、
\fIerrno\fP を適切に設定する。
.SH エラー
.TP
\fBEBADF\fP
-\fIepfd\fP か \fIfd\fP が有効なファイルディスクリプタでない。
+\fIepfd\fP ã\81\8b \fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEEXIST\fP
-\fIop\fP が \fBEPOLL_CTL_ADD\fP であり、かつ与えられたファイルディスクリプタ \fIfd\fP がこの epoll
+\fIop\fP が \fBEPOLL_CTL_ADD\fP であり、かつ与えられたファイルディスクリプター \fIfd\fP がこの epoll
インスタンスに既に登録されている。
.TP
\fBEINVAL\fP
-\fIepfd\fP が \fBepoll\fP ファイルディスクリプタでない。 または \fIfd\fP が \fIepfd\fP と同一である。 または要求された操作
-\fIop\fP がこのインタフェースでサポートされていない。
+\fIepfd\fP ã\81\8c \fBepoll\fP ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82 ã\81¾ã\81\9fã\81¯ \fIfd\fP ã\81\8c \fIepfd\fP ã\81¨å\90\8cä¸\80ã\81§ã\81\82ã\82\8bã\80\82 ã\81¾ã\81\9fã\81¯è¦\81æ±\82ã\81\95ã\82\8cã\81\9fæ\93\8dä½\9c
+\fIop\fP ã\81\8cã\81\93ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81§ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.TP
\fBENOENT\fP
\fIop\fP が \fBEPOLL_CTL_MOD\fP または \fBEPOLL_CTL_DEL\fP で、かつ \fIfd\fP がこの epoll
インスタンスに登録されていない。
.TP
\fBENOMEM\fP
-要求された \fIop\fP 制御操作を扱うのに十分なメモリがない。
+è¦\81æ±\82ã\81\95ã\82\8cã\81\9f \fIop\fP å\88¶å¾¡æ\93\8dä½\9cã\82\92æ\89±ã\81\86ã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOSPC\fP
-epoll インスタンスに新しいファイルディスクリプタを登録 (\fBEPOLL_CTL_ADD\fP) しようとした際に、
+epoll ã\82¤ã\83³ã\82¹ã\82¿ã\83³ã\82¹ã\81«æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\99»é\8c² (\fBEPOLL_CTL_ADD\fP) ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fé\9a\9bã\81«ã\80\81
\fI/proc/sys/fs/epoll/max_user_watches\fP で決まる上限に達した。 詳細は \fBepoll\fP(7) を参照。
.TP
\fBEPERM\fP
\fBepoll_ctl\fP() は Linux 独自である。
ライブラリによるサポートは glibc バージョン 2.3.2 以降で提供されている。
.SH 注意
-\fBepoll\fP ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ã\80\81 \fBpoll\fP(2) ã\81«å¯¾å¿\9cã\81\97ã\81¦ã\81\84ã\82\8bå\85¨ã\81¦ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿に対応している。
+\fBepoll\fP ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ã\80\81 \fBpoll\fP(2) ã\81«å¯¾å¿\9cã\81\97ã\81¦ã\81\84ã\82\8bå\85¨ã\81¦ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼に対応している。
.SH バグ
Linux 2.6.9 より前では、 \fBEPOLL_CTL_DEL\fP 操作の際、引き数 \fIevent\fP に (たとえ無視される場合であっても)
-NULL でないポインタを渡す必要があった。 カーネル 2.6.9 以降では、 \fBEPOLL_CTL_DEL\fP を使う際に \fIevent\fP に
+NULL ã\81§ã\81ªã\81\84ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92渡ã\81\99å¿\85è¦\81ã\81\8cã\81\82ã\81£ã\81\9fã\80\82 ã\82«ã\83¼ã\83\8dã\83« 2.6.9 以é\99\8dã\81§ã\81¯ã\80\81 \fBEPOLL_CTL_DEL\fP ã\82\92使ã\81\86é\9a\9bã\81« \fIevent\fP ã\81«
NULL を指定できるようになっている。 2.6.9 より前のカーネルへの移植性が必要なアプリケーションでは、 \fIevent\fP に NULL
-でないポインタを指定すべきである。
+ã\81§ã\81ªã\81\84ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92æ\8c\87å®\9aã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82
.\" commit a8159414d7e3af7233e7a5a82d1c5d85379bd75c (behavior change)
.\" https://lwn.net/Articles/520198/
.\"
.TH EPOLL_WAIT 2 2014\-08\-19 Linux "Linux Programmer's Manual"
.SH 名前
-epoll_wait, epoll_pwait \- epoll ファイルディスクリプタの I/O イベントを待つ
+epoll_wait, epoll_pwait \- epoll ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81® I/O ã\82¤ã\83\99ã\83³ã\83\88ã\82\92å¾\85ã\81¤
.SH 書式
.nf
\fB#include <sys/epoll.h>\fP
\fB const sigset_t *\fP\fIsigmask\fP\fB);\fP
.fi
.SH 説明
-\fBepoll_wait\fP() システムコールは、ファイルディスクリプタ \fIepfd\fP で参照される
-\fBepoll\fP(7) インスタンスに対するイベントを待つ。 \fIevents\fP が指すメモリ領域には、
+\fBepoll_wait\fP() システムコールは、ファイルディスクリプター \fIepfd\fP で参照される
+\fBepoll\fP(7) インスタンスに対するイベントを待つ。 \fIevents\fP が指すメモリー領域には、
呼び出し側が利用可能なイベントが格納される。最大 \fImaxevents\fP 個のイベントが
\fBepoll_wait\fP() によって返される。
\fImaxevents\fP 引き数は 0 より大きくなければならない。
\fItimeout\fP 引き数は \fBepoll_wait\fP() が停止する時間をミリ秒で指定する。 \fBepoll_wait\fP()
の呼び出しは以下のいずれかになるまで停止する。
.IP * 3
-ファイルディスクリプタがイベントを配送した
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\82¤ã\83\99ã\83³ã\83\88ã\82\92é\85\8dé\80\81ã\81\97ã\81\9f
.IP *
呼び出しがシグナルハンドラーにより割り込まれた
.IP *
struct epoll_event {
uint32_t events; /* epoll イベント */
- epoll_data_t data; /* ユーザデータ変数 */
+ epoll_data_t data; /* ã\83¦ã\83¼ã\82¶ã\83¼ã\83\87ã\83¼ã\82¿å¤\89æ\95° */
};
.fi
.in
-返される構造体の \fIdata\fP メンバには、ユーザが \fBepoll_ctl\fP(2) (\fBEPOLL_CTL_ADD\fP,
+è¿\94ã\81\95ã\82\8cã\82\8bæ§\8bé\80 ä½\93ã\81® \fIdata\fP ã\83¡ã\83³ã\83\90ã\81«ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8c \fBepoll_ctl\fP(2) (\fBEPOLL_CTL_ADD\fP,
\fBEPOLL_CTL_MOD\fP) で指定したデータが格納される。 一方、 \fIevents\fP
メンバには返された利用可能なイベントのビットフィールドが格納される。
.SS epoll_pwait()
\fBepoll_wait\fP() と \fBepoll_pwait\fP() の関係は、 \fBselect\fP(2) と \fBpselect\fP(2)
の関係と同様である。 \fBpselect\fP(2) 同様、 \fBepoll_pwait\fP()
-を使うと、アプリケーションは、ファイルディスクリプタが準備できた状態になるか、 シグナルが捕捉されるまで、安全に待つことができる。
+ã\82\92使ã\81\86ã\81¨ã\80\81ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cæº\96å\82\99ã\81§ã\81\8dã\81\9fç\8a¶æ\85\8bã\81«ã\81ªã\82\8bã\81\8bã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\81\8cæ\8d\95æ\8d\89ã\81\95ã\82\8cã\82\8bã\81¾ã\81§ã\80\81å®\89å\85¨ã\81«å¾\85ã\81¤ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
以下の \fBepoll_pwait\fP() の呼び出しは、
.nf
\fIsigmask\fP 引き数には NULL を指定してもよい。 その場合には、 \fBepoll_pwait\fP() は \fBepoll_wait\fP()
と等価となる。
.SH 返り値
-成功した場合、 \fBepoll_wait\fP() は要求された I/O に対して準備ができているファイルディスクリプタの数を返す。 また要求された
-\fItimeout\fP ã\83\9fã\83ªç§\92ã\81®é\96\93ã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cæº\96å\82\99ã\81§ã\81\8dã\81ªã\81\84å ´å\90\88ã\81¯ã\80\810 ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9få ´å\90\88ã\80\81 \fBepoll_wait\fP() ã\81¯
-\-1 を返し、 \fIerrno\fP を適切に設定する。
+æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 \fBepoll_wait\fP() ã\81¯è¦\81æ±\82ã\81\95ã\82\8cã\81\9f I/O ã\81«å¯¾ã\81\97ã\81¦æº\96å\82\99ã\81\8cã\81§ã\81\8dã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\95°ã\82\92è¿\94ã\81\99ã\80\82 ã\81¾ã\81\9fè¦\81æ±\82ã\81\95ã\82\8cã\81\9f
+\fItimeout\fP ã\83\9fã\83ªç§\92ã\81®é\96\93ã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cæº\96å\82\99ã\81§ã\81\8dã\81ªã\81\84å ´å\90\88ã\81¯ã\80\810 ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9få ´å\90\88ã\80\81 \fBepoll_wait\fP()
+は \-1 を返し、 \fIerrno\fP を適切に設定する。
.SH エラー
.TP
\fBEBADF\fP
-\fIepfd\fP が有効なファイルディスクリプタでない。
+\fIepfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEFAULT\fP
-\fIevents\fP で指されるメモリ領域に書き込み権限でアクセスできない。
+\fIevents\fP で指されるメモリー領域に書き込み権限でアクセスできない。
.TP
\fBEINTR\fP
-(1) 要求されたどのイベントも発生せず、かつ (2) \fItimeout\fP の期限が切れる前に、システムコールがシグナルハンドラによって割り込まれた。
-\fBsignal\fP(7) 参照。
+(1) 要求されたどのイベントも発生せず、かつ (2) \fItimeout\fP
+の期限が切れる前に、システムコールがシグナルハンドラーによって割り込まれた。 \fBsignal\fP(7) 参照。
.TP
\fBEINVAL\fP
-\fIepfd\fP が \fBepoll\fP ファイルディスクリプタでない。 または \fImaxevents\fP が 0 以下である。
+\fIepfd\fP ã\81\8c \fBepoll\fP ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82 ã\81¾ã\81\9fã\81¯ \fImaxevents\fP ã\81\8c 0 以ä¸\8bã\81§ã\81\82ã\82\8bã\80\82
.SH バージョン
.\" To be precise: kernel 2.5.44.
.\" The interface should be finalized by Linux kernel 2.5.66.
\fBepoll_wait\fP() は Linux 独自である。
.SH 注意
あるスレッドが \fBepoll_pwait\fP() を呼び出して停止されている間に、
-別のスレッドが wait 中の \fBepoll\fP インストールにファイルディスクリプタを
-追加することがある。新しいファイルディスクリプタでイベントが発生すると、
+å\88¥ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81\8c wait ä¸ã\81® \fBepoll\fP ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92
+追å\8a ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\80\82æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\82¤ã\83\99ã\83³ã\83\88ã\81\8cç\99ºç\94\9fã\81\99ã\82\8bã\81¨ã\80\81
\fBepoll_wait\fP() の呼び出しによる停止が解除されることになる。
\fBepoll_wait\fP() で監視中の \fBepoll\fP
-インスタンス内のファイルディスクリプタが別のスレッドによってクローズされた場合に何が起こるかの議論については、 \fBselect\fP(2)
+ã\82¤ã\83³ã\82¹ã\82¿ã\83³ã\82¹å\86\85ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\88¥ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81«ã\82\88ã\81£ã\81¦ã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\81\9få ´å\90\88ã\81«ä½\95ã\81\8cèµ·ã\81\93ã\82\8bã\81\8bã\81®è°è«\96ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\80\81 \fBselect\fP(2)
を参照してほしい。
.SH バグ
バージョン 2.6.37 より前のカーネルでは、おおよそ \fILONG_MAX / HZ\fP ミリ秒より大きい \fItimeout\fP 値は \-1
.\"
.TH EVENTFD 2 2014\-07\-08 Linux "Linux Programmer's Manual"
.SH 名前
-eventfd \- イベント通知用のファイルディスクリプタを生成する
+eventfd \- ã\82¤ã\83\99ã\83³ã\83\88é\80\9aç\9f¥ç\94¨ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8b
.SH 書式
\fB#include <sys/eventfd.h>\fP
.sp
\fBint eventfd(unsigned int \fP\fIinitval\fP\fB, int \fP\fIflags\fP\fB);\fP
.SH 説明
\fBeventfd\fP() は "eventfd オブジェクト" を生成する。 eventfd
-オブジェクトはユーザ空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うことができる。また、カーネルがユーザ空間アプリケーションに
+オブジェクトはユーザー空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うことができる。また、カーネルがユーザー空間アプリケーションに
イベントを通知するためにも使うことができる。 このオブジェクトには、unsigned の 64 ビット整数 (\fIuint64_t\fP)
-å\9e\8bã\81®ã\82«ã\82¦ã\83³ã\82¿ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81ã\81\93ã\81®ã\82«ã\82¦ã\83³ã\82¿ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82\88ã\82\8a管ç\90\86ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\82«ã\82¦ã\83³ã\82¿は \fIinitval\fP 引き数で指定された値で初期化される。
+å\9e\8bã\81®ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81ã\81\93ã\81®ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82\88ã\82\8a管ç\90\86ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\82«ã\82¦ã\83³ã\82¿ã\83¼は \fIinitval\fP 引き数で指定された値で初期化される。
以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 \fBeventfd\fP() の振舞いを変更することができる。
.TP
\fBEFD_CLOEXEC\fP (Linux 2.6.27 以降)
-新しいファイルディスクリプタに対して close\-on\-exec (\fBFD_CLOEXEC\fP) フラグをセットする。
+æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ close\-on\-exec (\fBFD_CLOEXEC\fP) ã\83\95ã\83©ã\82°ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\80\82
このフラグが役に立つ理由については、 \fBopen\fP(2) の \fBO_CLOEXEC\fP フラグの説明を参照のこと。
.TP
\fBEFD_NONBLOCK\fP (Linux 2.6.27 以降)
を追加で呼び出す必要がなくなる。
.TP
\fBEFD_SEMAPHORE\fP (Linux 2.6.30 以降)
-新しいファイルディスクリプタからの読み出しにおいて、セマフォ風の動作を行う。 下記参照。
+æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8bã\82\89ã\81®èªã\81¿å\87ºã\81\97ã\81«ã\81\8aã\81\84ã\81¦ã\80\81ã\82»ã\83\9eã\83\95ã\82©é¢¨ã\81®å\8b\95ä½\9cã\82\92è¡\8cã\81\86ã\80\82 ä¸\8bè¨\98å\8f\82ç\85§ã\80\82
.PP
バージョン 2.6.26 以前の Linux では、 \fIflags\fP 引き数は未使用であり、0 を指定しなければならない。
-\fBeventfd\fP() は eventfd オブジェクトを参照するのに使用できる新しいファイルディスクリプタ
-を返す。返されたファイルディスクリプタに対しては以下の操作を実行できる。
+\fBeventfd\fP() は eventfd オブジェクトを参照するのに使用できる新しいファイルディスクリプター
+ã\82\92è¿\94ã\81\99ã\80\82è¿\94ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ã\81¯ä»¥ä¸\8bã\81®æ\93\8dä½\9cã\82\92å®\9fè¡\8cã\81§ã\81\8dã\82\8bã\80\82
.TP
\fBread\fP(2)
-\fBread\fP(2) は成功すると、8 バイトの整数を返す。 渡されたバッファの大きさが 8 バイト未満の場合、 \fBread\fP(2) はエラー
+\fBread\fP(2) ã\81¯æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\818 ã\83\90ã\82¤ã\83\88ã\81®æ\95´æ\95°ã\82\92è¿\94ã\81\99ã\80\82 渡ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å¤§ã\81\8dã\81\95ã\81\8c 8 ã\83\90ã\82¤ã\83\88æ\9cªæº\80ã\81®å ´å\90\88ã\80\81 \fBread\fP(2) ã\81¯ã\82¨ã\83©ã\83¼
\fBEINVAL\fP で失敗する。
.IP
\fBread\fP(2) が返す値は、ホストバイトオーダ、つまり、そのホストマシンにおける整数の通常のバイトオーダである。
.IP
-\fBread\fP(2) ã\81®å\8b\95ä½\9cã\81¯ã\80\81 eventfd ã\82«ã\82¦ã\83³ã\82¿ã\81®ç\8f¾å\9c¨ã\81®å\80¤ã\81\8c 0 以å¤\96ã\81§ã\81\82ã\82\8bã\81\8bã\81¨ã\80\81 eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を作成する際に
+\fBread\fP(2) ã\81®å\8b\95ä½\9cã\81¯ã\80\81 eventfd ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81®ç\8f¾å\9c¨ã\81®å\80¤ã\81\8c 0 以å¤\96ã\81§ã\81\82ã\82\8bã\81\8bã\81¨ã\80\81 eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を作成する際に
\fBEFD_SEMAPHORE\fP フラグが指定されたか、により変化する。
.RS
.IP * 3
-\fBEFD_SEMAPHORE\fP ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\8aã\82\89ã\81\9aã\80\81eventfd ã\82«ã\82¦ã\83³ã\82¿ã\81\8c 0 以å¤\96ã\81®å\80¤ã\81®å ´å\90\88ã\80\81 \fBread\fP(2) ã\81¯ã\82«ã\82¦ã\83³ã\82¿å\80¤ã\82\92æ ¼ç´\8dã\81\97ã\81\9f 8
-バイトの値を返し、 カウンタ値は 0 にリセットされる。
+\fBEFD_SEMAPHORE\fP ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\8aã\82\89ã\81\9aã\80\81eventfd ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81\8c 0 以å¤\96ã\81®å\80¤ã\81®å ´å\90\88ã\80\81 \fBread\fP(2) ã\81¯ã\82«ã\82¦ã\83³ã\82¿ã\83¼å\80¤ã\82\92æ ¼ç´\8dã\81\97ã\81\9f
+8 バイトの値を返し、 カウンター値は 0 にリセットされる。
.IP *
-\fBEFD_SEMAPHORE\fP が指定されていて eventfd カウンタが 0 以外の値の場合、 \fBread\fP(2) は値 1 の 8
-バイト値を返し、カウンタ値は 1 減算される。
+\fBEFD_SEMAPHORE\fP ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81¦ eventfd ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81\8c 0 以å¤\96ã\81®å\80¤ã\81®å ´å\90\88ã\80\81 \fBread\fP(2) ã\81¯å\80¤ 1 ã\81® 8
+バイト値を返し、カウンター値は 1 減算される。
.IP *
-\fBread\fP(2) ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9fæ\99\82ç\82¹ã\81§ eventfd ã\82«ã\82¦ã\83³ã\82¿ã\81\8c 0 ã\81®å ´å\90\88ã\80\81 \fBread\fP(2) ã\81¯ã\82«ã\82¦ã\83³ã\82¿が 0 以外になるまで停止
-(block) する (0 以外になった時点で \fBread\fP(2) は上記で述べた通り実行を再開する)、 もしくはファイルディスクリプタが非停止
+\fBread\fP(2) ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9fæ\99\82ç\82¹ã\81§ eventfd ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81\8c 0 ã\81®å ´å\90\88ã\80\81 \fBread\fP(2) ã\81¯ã\82«ã\82¦ã\83³ã\82¿ã\83¼が 0 以外になるまで停止
+(block) ã\81\99ã\82\8b (0 以å¤\96ã\81«ã\81ªã\81£ã\81\9fæ\99\82ç\82¹ã\81§ \fBread\fP(2) ã\81¯ä¸\8aè¨\98ã\81§è¿°ã\81¹ã\81\9fé\80\9aã\82\8aå®\9fè¡\8cã\82\92å\86\8dé\96\8bã\81\99ã\82\8b)ã\80\81 ã\82\82ã\81\97ã\81\8fã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cé\9d\9eå\81\9cæ¢
(nonblocking) に設定されている場合はエラー \fBEAGAIN\fP で失敗する。
.RE
.TP
\fBwrite\fP(2)
-\fBwrite\fP(2) ã\81¯ã\80\81å¼\95ã\81\8dæ\95°ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\81§æ¸¡ã\81\95ã\82\8cã\81\9f 8 ã\83\90ã\82¤ã\83\88ã\81®æ\95´æ\95°å\80¤ã\82\92ã\82«ã\82¦ã\83³ã\82¿ã\81«å\8a ç®\97ã\81\99ã\82\8bã\80\82 ã\82«ã\82¦ã\83³ã\82¿ã\81«æ ¼ç´\8då\8f¯è\83½ã\81ªæ\9c\80大å\80¤ã\81¯ unsigned ã\81®
-64 ビット整数の最大値から 1 を引いた値 (すなわち 0xfffffffffffffffe) である。
-加算を行うとカウンタ値が最大値を超過する場合には、 そのファイルディスクリプタに対して \fBread\fP(2) が実行されるまで、
-\fBwrite\fP(2) は停止 (block) する、 もしくはファイルディスクリプタが非停止 (nonblocking)
+\fBwrite\fP(2) ã\81¯ã\80\81å¼\95ã\81\8dæ\95°ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§æ¸¡ã\81\95ã\82\8cã\81\9f 8 ã\83\90ã\82¤ã\83\88ã\81®æ\95´æ\95°å\80¤ã\82\92ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81«å\8a ç®\97ã\81\99ã\82\8bã\80\82 ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81«æ ¼ç´\8då\8f¯è\83½ã\81ªæ\9c\80大å\80¤ã\81¯ unsigned
+の 64 ビット整数の最大値から 1 を引いた値 (すなわち 0xfffffffffffffffe) である。
+加算を行うとカウンター値が最大値を超過する場合には、 そのファイルディスクリプターに対して \fBread\fP(2) が実行されるまで、
+\fBwrite\fP(2) ã\81¯å\81\9cæ¢ (block) ã\81\99ã\82\8bã\80\81 ã\82\82ã\81\97ã\81\8fã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cé\9d\9eå\81\9cæ¢ (nonblocking)
に設定されている場合はエラー \fBEAGAIN\fP で失敗する。
.IP
-渡されたバッファの大きさが 8 バイト未満の場合、もしくは 値 0xffffffffffffffff を書き込もうとした場合、 \fBwrite\fP(2)
+渡ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å¤§ã\81\8dã\81\95ã\81\8c 8 ã\83\90ã\82¤ã\83\88æ\9cªæº\80ã\81®å ´å\90\88ã\80\81ã\82\82ã\81\97ã\81\8fã\81¯ å\80¤ 0xffffffffffffffff ã\82\92æ\9b¸ã\81\8dè¾¼ã\82\82ã\81\86ã\81¨ã\81\97ã\81\9få ´å\90\88ã\80\81 \fBwrite\fP(2)
はエラー \fBEINVAL\fP で失敗する。
.TP
\fBpoll\fP(2), \fBselect\fP(2) (と同様の操作)
-返されたファイルディスクリプタは、 \fBpoll\fP(2) (\fBepoll\fP(7) も同じ) や \fBselect\fP(2)
+è¿\94ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81 \fBpoll\fP(2) (\fBepoll\fP(7) ã\82\82å\90\8cã\81\98) ã\82\84 \fBselect\fP(2)
をサポートしており、以下のような動作をする。
.RS
.IP * 3
-ã\82«ã\82¦ã\83³ã\82¿ã\81\8c 0 ã\82\88ã\82\8a大ã\81\8dã\81\84å\80¤ã\81®å ´å\90\88ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は読み出し可能となる (\fBselect\fP(2) の \fIreadfds\fP 引き数や
+ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81\8c 0 ã\82\88ã\82\8a大ã\81\8dã\81\84å\80¤ã\81®å ´å\90\88ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は読み出し可能となる (\fBselect\fP(2) の \fIreadfds\fP 引き数や
\fBpoll\fP(2) の \fBPOLLIN\fP フラグ)。
.IP *
-å°\91ã\81ªã\81\8fã\81¨ã\82\82å\80¤ "1" ã\82\92ã\80\81å\81\9cæ¢ (block) ã\82\92ä¼´ã\82\8fã\81\9aã\81«æ\9b¸ã\81\8dè¾¼ã\82\81ã\82\8bå ´å\90\88ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯æ\9b¸ã\81\8dè¾¼ã\81¿å\8f¯è\83½ã\81¨ã\81ªã\82\8b (\fBselect\fP(2) ã\81®
-\fIwritefds\fP 引き数や \fBpoll\fP(2) の \fBPOLLOUT\fP フラグ)。
+å°\91ã\81ªã\81\8fã\81¨ã\82\82å\80¤ "1" ã\82\92ã\80\81å\81\9cæ¢ (block) ã\82\92ä¼´ã\82\8fã\81\9aã\81«æ\9b¸ã\81\8dè¾¼ã\82\81ã\82\8bå ´å\90\88ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯æ\9b¸ã\81\8dè¾¼ã\81¿å\8f¯è\83½ã\81¨ã\81ªã\82\8b (\fBselect\fP(2)
+の \fIwritefds\fP 引き数や \fBpoll\fP(2) の \fBPOLLOUT\fP フラグ)。
.IP *
-カウンタ値のオーバーフローが検出された場合、 \fBselect\fP(2) はファイルディスクリプタは読み出し可能と書き込み可能の両方を通知し、
+カウンター値のオーバーフローが検出された場合、 \fBselect\fP(2) はファイルディスクリプターは読み出し可能と書き込み可能の両方を通知し、
\fBpoll\fP(2) は \fBPOLLERR\fP イベントを返す。 上述の通り、 \fBwrite\fP(2)
-でカウンタがオーバーフローすることは決してない。 しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "signal
+ã\81§ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81\8cã\82ªã\83¼ã\83\90ã\83¼ã\83\95ã\83ã\83¼ã\81\99ã\82\8bã\81\93ã\81¨ã\81¯æ±ºã\81\97ã\81¦ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89ã\80\81 KAIO ã\82µã\83\96ã\82·ã\82¹ã\83\86ã\83 ã\81«ã\82\88ã\81£ã\81¦ 2^64 å\9b\9eã\81® eventfd "signal
posts" が 実行された場合にはオーバーフローが起こり得る (理論的にはあり得るが、実用的にはあり得ない)。 オーバーフローが発生した場合、
\fBread\fP(2) は \fIuint64_t\fP の最大値 (すなわち 0xffffffffffffffff) を返す。
.RE
.IP
-eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\80\81ã\81\93ã\82\8c以å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ å¤\9aé\87\8d API ã\81§ã\81\82ã\82\8b \fBpselect\fP(2) ã\81¨ \fBppoll\fP(2)
-もサポートしている。
+eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81ã\81\93ã\82\8c以å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ å¤\9aé\87\8d API ã\81§ã\81\82ã\82\8b \fBpselect\fP(2) ã\81¨
+\fBppoll\fP(2) もサポートしている。
.TP
\fBclose\fP(2)
-ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきである。 同じ eventfd
-オブジェクトに関連付けられたファイルディスクリプタが全て クローズされると、そのオブジェクト用の資源がカーネルにより解放される。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\81\9dã\82\8c以é\99\8dã\81¯å¿\85è¦\81ã\81ªã\81\8fã\81ªã\81£ã\81\9fé\9a\9bã\81«ã\81¯ã\80\81ã\82¯ã\83ã\83¼ã\82ºã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 å\90\8cã\81\98 eventfd
+ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81«é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\85¨ã\81¦ ã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\82\8bã\81¨ã\80\81ã\81\9dã\81®ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ç\94¨ã\81®è³\87æº\90ã\81\8cã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82\88ã\82\8a解æ\94¾ã\81\95ã\82\8cã\82\8bã\80\82
.PP
-\fBfork\fP(2) で生成された子プロセスは、 \fBeventfd\fP() で生成されたファイルディスクリプタのコピーを継承する。
-複製されたファイルディスクリプタは同じ eventfd オブジェクトに関連付けられる。 close\-on\-exec フラグが設定されていない場合、
-\fBexecve\fP(2) の前後で \fBeventfd\fP() で生成されたファイルディスクリプタは保持される。
+\fBfork\fP(2) ã\81§ç\94\9fæ\88\90ã\81\95ã\82\8cã\81\9få\90ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\80\81 \fBeventfd\fP() ã\81§ç\94\9fæ\88\90ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\82³ã\83\94ã\83¼ã\82\92ç¶\99æ\89¿ã\81\99ã\82\8bã\80\82
+è¤\87製ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯å\90\8cã\81\98 eventfd ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81«é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\82\8bã\80\82 close\-on\-exec ã\83\95ã\83©ã\82°ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\80\81
+\fBexecve\fP(2) ã\81®å\89\8då¾\8cã\81§ \fBeventfd\fP() ã\81§ç\94\9fæ\88\90ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ä¿\9dæ\8c\81ã\81\95ã\82\8cã\82\8bã\80\82
.SH 返り値
-成功すると、 \fBeventfd\fP() は新規の eventfd ファイルディスクリプタを返す。 エラーの場合、\-1 を返し、 \fIerrno\fP
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 \fBeventfd\fP() ã\81¯æ\96°è¦\8fã\81® eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81\-1 ã\82\92è¿\94ã\81\97ã\80\81 \fIerrno\fP
にエラーを示す値を設定する。
.SH エラー
.TP
\fIflags\fP にサポートされていない値が指定された。
.TP
\fBEMFILE\fP
-オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。
+ã\82ªã\83¼ã\83\97ã\83³æ¸\88ã\81¿ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\95°ã\81\8cã\83\97ã\83ã\82»ã\82¹ã\81\82ã\81\9fã\82\8aã\81®ä¸\8aé\99\90ã\81« é\81\94ã\81\97ã\81¦ã\81\84ã\81\9fã\80\82
.TP
\fBENFILE\fP
オープン済みのファイル総数がシステム全体の上限に達していた。
(カーネル内の) 無名 inode デバイスをマウントできなかった。
.TP
\fBENOMEM\fP
-æ\96°ã\81\97ã\81\84 eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªがなかった。
+æ\96°ã\81\97ã\81\84 eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼がなかった。
.SH バージョン
.\" eventfd() is in glibc 2.7, but reportedly does not build
\fBeventfd\fP() はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作する glibc 側のサポートはバージョン
.SH 準拠
\fBeventfd\fP() と \fBeventfd2\fP() は Linux 固有である。
.SH 注意
-アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場面において、パイプの代わりに eventfd ファイルディスクリプタを
-使用することができる。 eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて
-カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも 一つしか必要としない (パイプの場合は二つ必要である)。
+ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81¯ã\80\81ã\83\91ã\82¤ã\83\97ã\82\92ã\82¤ã\83\99ã\83³ã\83\88ã\82\92é\80\9aç\9f¥ã\81\99ã\82\8bã\81\9fã\82\81ã\81 ã\81\91ã\81«ä½¿ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8b å\85¨ã\81¦ã\81®å ´é\9d¢ã\81«ã\81\8aã\81\84ã\81¦ã\80\81ã\83\91ã\82¤ã\83\97ã\81®ä»£ã\82\8fã\82\8aã\81« eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92
+使ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92使ã\81\86æ\96¹ã\81\8cã\80\81ã\83\91ã\82¤ã\83\97ã\82\92使ã\81\86å ´å\90\88ã\81«æ¯\94ã\81¹ã\81¦
+ã\82«ã\83¼ã\83\8dã\83«ã\81§ã\81®ã\82ªã\83¼ã\83\90ã\83\98ã\83\83ã\83\89ã\81¯æ¯\94ã\81¹ã\82\8bã\81¨ã\81\9aã\81£ã\81¨å°\8fã\81\95ã\81\8fã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\82 ä¸\80ã\81¤ã\81\97ã\81\8bå¿\85è¦\81ã\81¨ã\81\97ã\81ªã\81\84 (ã\83\91ã\82¤ã\83\97ã\81®å ´å\90\88ã\81¯äº\8cã\81¤å¿\85è¦\81ã\81§ã\81\82ã\82\8b)ã\80\82
.\" or eventually syslets/threadlets
-ã\82«ã\83¼ã\83\8dã\83«å\86\85ã\81§ä½¿ç\94¨ã\81\99ã\82\8bã\81¨ã\80\81eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\82«ã\83¼ã\83\8dã\83«ç©ºé\96\93ã\81\8bã\82\89ã\83¦ã\83¼ã\82¶空間へのブリッジ機能を提供することができ、 例えば KAIO
-(kernel AIO) のような機能が、あるファイルディスクリプタに何らかの操作が完了したことを 通知することができる。
+ã\82«ã\83¼ã\83\8dã\83«å\86\85ã\81§ä½¿ç\94¨ã\81\99ã\82\8bã\81¨ã\80\81eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\82«ã\83¼ã\83\8dã\83«ç©ºé\96\93ã\81\8bã\82\89ã\83¦ã\83¼ã\82¶ã\83¼空間へのブリッジ機能を提供することができ、 例えば KAIO
+(kernel AIO) ã\81®ã\82\88ã\81\86ã\81ªæ©\9fè\83½ã\81\8cã\80\81ã\81\82ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ä½\95ã\82\89ã\81\8bã\81®æ\93\8dä½\9cã\81\8cå®\8cäº\86ã\81\97ã\81\9fã\81\93ã\81¨ã\82\92 é\80\9aç\9f¥ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
-eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®é\87\8dè¦\81ã\81ªç\82¹ã\81¯ã\80\81 eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿が \fBselect\fP(2), \fBpoll\fP(2),
-\fBepoll\fP(7) を使って他のファイルディスクリプタと全く同様に監視できる点である。 このことは、アプリケーションは「従来の
-(traditional)」 ファイルの状態変化と eventfd インタフェースをサポートする他のカーネル機構の状態変化を同時に監視
-できることを意味する (\fBeventfd\fP() インタフェースがない時には、これらのカーネル機構は \fBselect\fP(2),
+eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®é\87\8dè¦\81ã\81ªç\82¹ã\81¯ã\80\81 eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼が \fBselect\fP(2), \fBpoll\fP(2),
+\fBepoll\fP(7) ã\82\92使ã\81£ã\81¦ä»\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¨å\85¨ã\81\8få\90\8cæ§\98ã\81«ç\9b£è¦\96ã\81§ã\81\8dã\82\8bç\82¹ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\81\93ã\81¨ã\81¯ã\80\81ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81¯ã\80\8cå¾\93æ\9d¥ã\81®
+(traditional)ã\80\8d ã\83\95ã\82¡ã\82¤ã\83«ã\81®ç\8a¶æ\85\8bå¤\89å\8c\96ã\81¨ eventfd ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92ã\82µã\83\9dã\83¼ã\83\88ã\81\99ã\82\8bä»\96ã\81®ã\82«ã\83¼ã\83\8dã\83«æ©\9fæ§\8bã\81®ç\8a¶æ\85\8bå¤\89å\8c\96ã\82\92å\90\8cæ\99\82ã\81«ç\9b£è¦\96
+ã\81§ã\81\8dã\82\8bã\81\93ã\81¨ã\82\92æ\84\8få\91³ã\81\99ã\82\8b (\fBeventfd\fP() ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81\8cã\81ªã\81\84æ\99\82ã\81«ã\81¯ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\82«ã\83¼ã\83\8dã\83«æ©\9fæ§\8bã\81¯ \fBselect\fP(2),
\fBpoll\fP(2), \fBepoll\fP(7) 経由で多重することはできなかった)。
.SS "C ライブラリとカーネル ABI の違い"
下層にある Linux システムコールは二種類あり、 \fBeventfd\fP() と、もっと新しい \fBeventfd2\fP() である。
\fBeventfd\fP() は \fIflags\fP 引き数を実装していない。 \fBeventfd2\fP() では上記の値の \fIflags\fP
が実装されている。 glibc のラッパー関数は、 \fBeventfd2\fP() が利用可能であれば、これを使用する。
.SS "glibc の追加機能"
-GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに
+GNU C ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81¯ã\80\81eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®èªã\81¿å\87ºã\81\97ã\81¨æ\9b¸ã\81\8dè¾¼ã\81¿ã\81«
を関する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義している。
.in +4n
.nf
.fi
.in
-これらの関数は、eventfd ファイルディスクリプタに対する読み出しと 書き込みの操作を実行し、正しいバイト数が転送された場合には 0
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\80\81eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\99ã\82\8bèªã\81¿å\87ºã\81\97ã\81¨ æ\9b¸ã\81\8dè¾¼ã\81¿ã\81®æ\93\8dä½\9cã\82\92å®\9fè¡\8cã\81\97ã\80\81æ£ã\81\97ã\81\84ã\83\90ã\82¤ã\83\88æ\95°ã\81\8c転é\80\81ã\81\95ã\82\8cã\81\9få ´å\90\88ã\81«ã\81¯ 0
を返し、そうでない場合は \-1 を返す。
.SH 例
.PP
-以下のプログラムは eventfd ファイルディスクリプタを生成し、 その後 fork を実行して子プロセスを生成する。 親プロセスが少しの間
-sleep する間に、子プロセスは プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd ファイルディスクリプタに書き込む。
-親プロセスは sleep を完了すると eventfd ファイルディスクリプタから 読み出しを行う。
+以ä¸\8bã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\94\9fæ\88\90ã\81\97ã\80\81 ã\81\9dã\81®å¾\8c fork ã\82\92å®\9fè¡\8cã\81\97ã\81¦å\90ã\83\97ã\83ã\82»ã\82¹ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\80\82 親ã\83\97ã\83ã\82»ã\82¹ã\81\8cå°\91ã\81\97ã\81®é\96\93
+sleep する間に、子プロセスは プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd
+ファイルディスクリプターに書き込む。 親プロセスは sleep を完了すると eventfd ファイルディスクリプターから 読み出しを行う。
以下に示すシェルセッションにこのプログラムの使い方を示す。
.in +4n
.fi
.in
-å¾\8cè\80\85ã\81®è©³ç´°ã\81¯ã\80\81å¾\8cã\82\8dã\81®ã\80\8cã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿ã\83»スクリプト」の節を参照のこと。
+å¾\8cè\80\85ã\81®è©³ç´°ã\81¯ã\80\81å¾\8cã\82\8dã\81®ã\80\8cã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼スクリプト」の節を参照のこと。
\fIargv\fP は新しいプログラムに渡される引き数文字列の配列である。
慣例では、引き数文字列の最初の要素には実行されたファイルに関連付けられた
ファイル名を含めることになっている。
\fIenvp\fP は文字列の配列であり、伝統的に \fBkey=value\fP の形式をしており、
新しいプログラムの環境変数として渡される。
-\fIargv\fP と \fIenvp\fP はいずれものヌルポインタで終わっている必要がある。
+\fIargv\fP ã\81¨ \fIenvp\fP ã\81¯ã\81\84ã\81\9aã\82\8cã\82\82ã\81®ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§çµ\82ã\82\8fã\81£ã\81¦ã\81\84ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82
引き数配列と環境変数は、呼び出されたプログラムの main 関数を
以下のように定義することによってアクセス可能になる。
\fIfilename\fP で指定されたプログラムファイルに set\-user\-ID ビットが設定されており、 ファイルが存在するファイルシステムが
\fInosuid\fP (\fBmount\fP(2) の \fBMS_NOSUID\fP フラグ) でマウントされておらず、 呼び出したプロセスが ptrace
-されていない場合、 呼び出したプロセスの実効 (effective) ユーザ ID は プログラムファイルの所有者 (owner) に変更される。
+されていない場合、 呼び出したプロセスの実効 (effective) ユーザー ID は プログラムファイルの所有者 (owner) に変更される。
同様に、プログラムファイルに set\-group\-ID ビットが設定されていた場合、 呼び出したプロセスの有効グループ ID は
プログラムファイルのグループに変更される。
-プロセスの実効ユーザ ID は保存 (saved) set\-user\-ID にコピーされる。 同様に、実効グループ ID は保存
+プロセスの実効ユーザー ID は保存 (saved) set\-user\-ID にコピーされる。 同様に、実効グループ ID は保存
set\-group\-ID にコピーされる。 このコピーは、set\-user\-ID / set\-group\-ID 許可ビットにより発生する 実効 ID
の変更後に行われる。
-実行ファイルが動的リンクされた a.out 実行形式で、共有ライブラリの スタブを含むものだった場合、実行の開始時に Linux の ダイナミックリンカ
-\fBld.so\fP(8) が呼び出され、必要な共有ライブラリをメモリに読み込んでリンクを行う。
+実行ファイルが動的リンクされた a.out 実行形式で、共有ライブラリの スタブを含むものだった場合、実行の開始時に Linux の
+ダイナミックリンカー \fBld.so\fP(8) が呼び出され、必要な共有ライブラリをメモリーに読み込んでリンクを行う。
実行ファイルがダイナミックリンクされた ELF 実行形式だった場合、
-PT_INTERP ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿が必要な 共有ライブラリ
+PT_INTERP ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼が必要な 共有ライブラリ
(shared library) を読み込むのに使用される。
-é\80\9a常ã\80\81ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿は glibc をリンクしたバイナリでは
+é\80\9a常ã\80\81ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼は glibc をリンクしたバイナリでは
\fI/lib/ld\-linux.so.2\fP である。
以下に示す以外のすべてのプロセス属性は \fBexecve\fP() の前後で保持される。
.IP *
代替シグナルスタックはどれも保持されない (\fBsigaltstack\fP(2))。
.IP *
-メモリマッピングは保持されない (\fBmmap\fP(2))。
+ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81¯ä¿\9dæ\8c\81ã\81\95ã\82\8cã\81ªã\81\84 (\fBmmap\fP(2))ã\80\82
.IP *
-付加された (attached) System\ V 共有メモリセグメントは分離される (\fBshmat\fP(2))。
+ä»\98å\8a ã\81\95ã\82\8cã\81\9f (attached) System\ V å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81¯å\88\86é\9b¢ã\81\95ã\82\8cã\82\8b (\fBshmat\fP(2))ã\80\82
.IP *
-POSIX 共有メモリ領域はマッピングを解除される (\fBshm_open\fP(3))。
+POSIX 共有メモリー領域はマッピングを解除される (\fBshm_open\fP(3))。
.IP *
-オープンされた POSIX メッセージキューディスクリプタはクローズされる (\fBmq_overview\fP(7))。
+ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9f POSIX ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\82\8b (\fBmq_overview\fP(7))ã\80\82
.IP *
オープンされた POSIX 名前付きセマフォはいずれもクローズされる (\fBsem_overview\fP(7))。
.IP *
-POSIX タイマは保持されない (\fBtimer_create\fP(2))。
+POSIX ã\82¿ã\82¤ã\83\9eã\83¼ã\81¯ä¿\9dæ\8c\81ã\81\95ã\82\8cã\81ªã\81\84 (\fBtimer_create\fP(2))ã\80\82
.IP *
オープンされたディレクトリストリームはいずれもクローズされる (\fBopendir\fP(3))。
.IP *
-メモリロックは保持されない (\fBmlock\fP(2), \fBmlockall\fP(2))。
+ã\83¡ã\83¢ã\83ªã\83¼ã\83ã\83\83ã\82¯ã\81¯ä¿\9dæ\8c\81ã\81\95ã\82\8cã\81ªã\81\84 (\fBmlock\fP(2), \fBmlockall\fP(2))ã\80\82
.IP *
-終了 (exit) ハンドラは保持されない (\fBatexit\fP(3), \fBon_exit\fP(3))。
+çµ\82äº\86 (exit) ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯ä¿\9dæ\8c\81ã\81\95ã\82\8cã\81ªã\81\84 (\fBatexit\fP(3), \fBon_exit\fP(3))ã\80\82
.IP *
浮動小数点関連の環境はデフォルトにリセットされる (\fBfenv\fP(3) 参照)。
.PP
.\" On Linux it appears that these file descriptors are
.\" always open after an execve(), and it looks like
.\" Solaris 8 and FreeBSD 6.1 are the same. -- mtk, 30 Apr 2007
-デフォルトでは、ファイルディスクリプタは \fBexecve\fP() を行った後でもオープンされたままである。 close\-on\-exec
-の印が付いているファイルディスクリプタはクローズされる。 \fBfcntl\fP(2) の \fBFD_CLOEXEC\fP の説明を参照。
-(ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\82\8bã\81¨ã\80\81ã\81\93ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8c ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿に対応するファイルに対して獲得していた
-レコードのロックが全て解放されることになる。) POSIX.1\-2001 では、 ファイルディスクリプタ 0, 1, 2 が \fBexecve\fP()
+ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ \fBexecve\fP() ã\82\92è¡\8cã\81£ã\81\9få¾\8cã\81§ã\82\82ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\81¾ã\81¾ã\81§ã\81\82ã\82\8bã\80\82 close\-on\-exec
+ã\81®å\8d°ã\81\8cä»\98ã\81\84ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\82\8bã\80\82 \fBfcntl\fP(2) ã\81® \fBFD_CLOEXEC\fP ã\81®èª¬æ\98\8eã\82\92å\8f\82ç\85§ã\80\82
+(ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\82\8bã\81¨ã\80\81ã\81\93ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8c ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼に対応するファイルに対して獲得していた
+レコードのロックが全て解放されることになる。) POSIX.1\-2001 では、 ファイルディスクリプター 0, 1, 2 が \fBexecve\fP()
成功後にどこかでクローズされ、かつ 実行されるファイルに set\-user_ID か set\-group_ID の許可ビットが
-セットされていてプロセスが特権を獲得した場合、 システムは何らかのファイルをオープンする際に これらの番号のディスクリプタのどれかを使うことがある、
+ã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\81¦ã\83\97ã\83ã\82»ã\82¹ã\81\8cç\89¹æ¨©ã\82\92ç\8d²å¾\97ã\81\97ã\81\9få ´å\90\88ã\80\81 ã\82·ã\82¹ã\83\86ã\83 ã\81¯ä½\95ã\82\89ã\81\8bã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8bé\9a\9bã\81« ã\81\93ã\82\8cã\82\89ã\81®ç\95ªå\8f·ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\81©ã\82\8cã\81\8bã\82\92使ã\81\86ã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\80\81
とされている。 原則として、移植性が必要なプログラムでは、 特権の有無に関わらず、 \fBexecve\fP() の前後でこれら
-3つのファイルディスクリプタがクローズされたままで あることを前提にすることはできない。
-.SS ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿ã\83»スクリプト
-ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿ã\83»スクリプトとは、実行許可が有効になっていて、 最初の行が以下の形になっているテキストファイルのことである。
+3ã\81¤ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\81\9fã\81¾ã\81¾ã\81§ ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92å\89\8dæ\8f\90ã\81«ã\81\99ã\82\8bã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81ªã\81\84ã\80\82
+.SS ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼スクリプト
+ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼スクリプトとは、実行許可が有効になっていて、 最初の行が以下の形になっているテキストファイルのことである。
.in +4n
.nf
.in
\fIinterpreter\fP は有効な実行ファイルのパス名でなければならず、 それ自身がスクリプトであってはならない。 \fBexecve\fP() の
-\fIfilename\fP å¼\95ã\81\8dæ\95°ã\81\8cã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿スクリプトを指定している場合、 \fIinterpreter\fP は以下の引き数で起動される。
+\fIfilename\fP å¼\95ã\81\8dæ\95°ã\81\8cã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼スクリプトを指定している場合、 \fIinterpreter\fP は以下の引き数で起動される。
.in +4n
.nf
(\fBARG_MAX\fP は \fI<limits.h>\fP で定義されるか、実行時に \fIsysconf(_SC_ARG_MAX)\fP
の呼び出しで入手できるかのいずれかである)。
-カーネル 2.6.23 より前の Linux では、環境変数と引き数の文字列群を 格納するのに使用されるメモリは 32 ページに制限されていた (32
-ページというのはカーネル定数 \fBMAX_ARG_PAGES\fP で定義される)。したがって、 ページサイズが 4 kB のアーキテクチャでは、
+ã\82«ã\83¼ã\83\8dã\83« 2.6.23 ã\82\88ã\82\8aå\89\8dã\81® Linux ã\81§ã\81¯ã\80\81ç\92°å¢\83å¤\89æ\95°ã\81¨å¼\95ã\81\8dæ\95°ã\81®æ\96\87å\97å\88\97群ã\82\92 æ ¼ç´\8dã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81¯ 32 ã\83\9aã\83¼ã\82¸ã\81«å\88¶é\99\90ã\81\95ã\82\8cã\81¦ã\81\84ã\81\9f (32
+ã\83\9aã\83¼ã\82¸ã\81¨ã\81\84ã\81\86ã\81®ã\81¯ã\82«ã\83¼ã\83\8dã\83«å®\9aæ\95° \fBMAX_ARG_PAGES\fP ã\81§å®\9a義ã\81\95ã\82\8cã\82\8b)ã\80\82ã\81\97ã\81\9fã\81\8cã\81£ã\81¦ã\80\81 ã\83\9aã\83¼ã\82¸ã\82µã\82¤ã\82ºã\81\8c 4 kB ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81
最大サイズは 128 kB ということになる。
.\" For some background on the changes to ARG_MAX in kernels 2.6.23 and
.\" checked into 2.6.25 as commit a64e715fc74b1a7dcc5944f848acc38b2c4d4ee2.
.\" Ollie: That doesn't include the lists of pointers, though,
.\" so the actual usage is a bit higher (1 pointer per argument).
-カーネル 2.6.23 以降では、ほとんどのアーキテクチャにおいて、 \fBexecve\fP() が呼び出された時点で適用されているリソースのソフト上限
-\fBRLIMIT_STACK\fP に基づいたサイズ上限が使われる (メモリ管理ユニット (MMU) を持たないアーキテクチャは上記の変更の
-例外であり、これらのアーキテクチャではカーネル 2.6.23 より前と 同じ上限がそのまま使用される)。
-これらのアーキテクチャでは、合計サイズは許可されたスタックサイズの 1/4 に制限されている (1/4
+ã\82«ã\83¼ã\83\8dã\83« 2.6.23 以é\99\8dã\81§ã\81¯ã\80\81ã\81»ã\81¨ã\82\93ã\81©ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\81\8aã\81\84ã\81¦ã\80\81 \fBexecve\fP() ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9fæ\99\82ç\82¹ã\81§é\81©ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83ªã\82½ã\83¼ã\82¹ã\81®ã\82½ã\83\95ã\83\88ä¸\8aé\99\90
+\fBRLIMIT_STACK\fP に基づいたサイズ上限が使われる (メモリー管理ユニット (MMU) を持たないアーキテクチャーは上記の変更の
+ä¾\8bå¤\96ã\81§ã\81\82ã\82\8aã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\82«ã\83¼ã\83\8dã\83« 2.6.23 ã\82\88ã\82\8aå\89\8dã\81¨ å\90\8cã\81\98ä¸\8aé\99\90ã\81\8cã\81\9dã\81®ã\81¾ã\81¾ä½¿ç\94¨ã\81\95ã\82\8cã\82\8b)ã\80\82
+ã\81\93ã\82\8cã\82\89ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81å\90\88è¨\88ã\82µã\82¤ã\82ºã\81¯è¨±å\8f¯ã\81\95ã\82\8cã\81\9fã\82¹ã\82¿ã\83\83ã\82¯ã\82µã\82¤ã\82ºã\81® 1/4 ã\81«å\88¶é\99\90ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b (1/4
の上限を設けているのは、新しいプログラムが必ずある程度の スタック空間を持てることを保証するためである)。 Linux 2.6.25
以降では、カーネルはこのサイズ上限に 32 ページの下限を 設けている。これにより、 \fBRLIMIT_STACK\fP
が非常に小さく設定された場合でも、アプリケーションが少なくとも Linux 2.6.23 以前で提供されていたのと同じ大きさの引き数と環境変数の空間
環境変数 (\fIenvp\fP) と引き数リスト (\fIargv\fP) の合計バイト数が大き過ぎる。
.TP
\fBEACCES\fP
-\fIfilename\fP ã\82\84ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿名の構成要素に検索許可 (search permission) が与えられていない
+\fIfilename\fP ã\82\84ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼名の構成要素に検索許可 (search permission) が与えられていない
(\fBpath_resolution\fP(7) も参照すること)。
.TP
\fBEACCES\fP
-ã\83\95ã\82¡ã\82¤ã\83«ã\82\82ã\81\97ã\81\8fã\81¯ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\81®ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿が通常ファイル (regular file) でない。
+ã\83\95ã\82¡ã\82¤ã\83«ã\82\82ã\81\97ã\81\8fã\81¯ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼が通常ファイル (regular file) でない。
.TP
\fBEACCES\fP
-ã\83\95ã\82¡ã\82¤ã\83«ã\82\84ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\82\84 ELF ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿に 実行許可 (execute permission) が与えられていない。
+ã\83\95ã\82¡ã\82¤ã\83«ã\82\84ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\82\84 ELF ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼に 実行許可 (execute permission) が与えられていない。
.TP
\fBEACCES\fP
ファイルシステムが \fInoexec\fP でマウントされている。
(\fBsetrlimit\fP(2) 参照) を超えてしまう、 現在もまだ超えている。 このエラーの詳細な説明については「注意」の節を参照。
.TP
\fBEFAULT\fP
-\fIfilename\fP または配列 \fIargv\fP か \fIenvp\fP のポインタの一つがアクセス可能なアドレス空間の外を指している。
+\fIfilename\fP ã\81¾ã\81\9fã\81¯é\85\8då\88\97 \fIargv\fP ã\81\8b \fIenvp\fP ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®ä¸\80ã\81¤ã\81\8cã\82¢ã\82¯ã\82»ã\82¹å\8f¯è\83½ã\81ªã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81®å¤\96ã\82\92æ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fBEINVAL\fP
-ELF å®\9fè¡\8cå½¢å¼\8fã\81§è¤\87æ\95°ã\81® PT_INTERP ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\80\82 (ã\81\99ã\81ªã\82\8fã\81¡è¤\87æ\95°ã\81®ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿を指定した。)
+ELF å®\9fè¡\8cå½¢å¼\8fã\81§è¤\87æ\95°ã\81® PT_INTERP ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\80\82 (ã\81\99ã\81ªã\82\8fã\81¡è¤\87æ\95°ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼を指定した。)
.TP
\fBEIO\fP
I/O エラーが発生した。
.TP
\fBEISDIR\fP
-ELF ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿がディレクトリだった。
+ELF ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼がディレクトリだった。
.TP
\fBELIBBAD\fP
-ELF ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿が理解できるフォーマットでなかった。
+ELF ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼が理解できるフォーマットでなかった。
.TP
\fBELOOP\fP
-\fIfilename\fP ã\82\84ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\82\84 ELF ã\81®ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿を解決する際に遭遇した シンボリックリンクが多過ぎる。
+\fIfilename\fP ã\82\84ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\82\84 ELF ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼を解決する際に遭遇した シンボリックリンクが多過ぎる。
.TP
\fBEMFILE\fP
そのプロセスがオープンできるファイル数の上限まで既にオープンしている。
オープンされたファイルの総数がシステム全体の上限に達していた。
.TP
\fBENOENT\fP
-ã\83\95ã\82¡ã\82¤ã\83« \fIfilename\fP ã\81\8bã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\82\84 ELF ã\81®ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿が存在しない。
+ã\83\95ã\82¡ã\82¤ã\83« \fIfilename\fP ã\81\8bã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\82\84 ELF ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼が存在しない。
.TP
\fBENOEXEC\fP
-実行ファイルが理解できない形式であるか、違うアーキテクチャのものか、 その他のフォーマットエラーにより実行ができなかった。
+å®\9fè¡\8cã\83\95ã\82¡ã\82¤ã\83«ã\81\8cç\90\86解ã\81§ã\81\8dã\81ªã\81\84å½¢å¼\8fã\81§ã\81\82ã\82\8bã\81\8bã\80\81é\81\95ã\81\86ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81®ã\82\82ã\81®ã\81\8bã\80\81 ã\81\9dã\81®ä»\96ã\81®ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\82¨ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå®\9fè¡\8cã\81\8cã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBENOMEM\fP
-カーネルに十分なメモリがない。
+ã\82«ã\83¼ã\83\8dã\83«ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
-\fIfilename\fP ã\82\84ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\82\84 ELF ã\81®ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿の構成要素がディレクトリでない。
+\fIfilename\fP ã\82\84ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\82\84 ELF ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼の構成要素がディレクトリでない。
.TP
\fBEPERM\fP
-ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81\8c \fInosuid\fP ã\81§ã\83\9eã\82¦ã\83³ã\83\88ã\81\95ã\82\8cã\80\81ã\83¦ã\83¼ã\82¶ã\81\8cã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶でなく、 ファイルに set\-user\-ID あるいは
+ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81\8c \fInosuid\fP ã\81§ã\83\9eã\82¦ã\83³ã\83\88ã\81\95ã\82\8cã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\83¼でなく、 ファイルに set\-user\-ID あるいは
set\-group\-ID ビットが設定されている。
.TP
\fBEPERM\fP
-プロセスがトレースされ、ユーザがスーパーユーザでなく、 ファイルに set\-user\-ID あるいは set\-group\-ID ビットが設定されている。
+プロセスがトレースされ、ユーザーがスーパーユーザーでなく、 ファイルに set\-user\-ID あるいは set\-group\-ID
+ビットが設定されている。
.TP
\fBETXTBSY\fP
実行ファイルを書き込み用にオープンしているプロセスがある。
どの様に扱うかは、Linux カーネルのバージョンによって異なる: あるバージョンでは、すでに必要な権限を持っている場合を除いて、 その実行を拒否する
(そして \fBEPERM\fP を返す)。別のあるバージョンでは set\-user\-ID/set\-group\-ID ビットのみを無視し \fBexec\fP()
は成功する。 Linux では、 \fIargv\fP と \fIenvp\fP に NULL を指定することができる。 どちらに NULL を指定した場合も、
-これらの引き数にヌルポインタ 1 個だけを含むリストへのポインタを指定したのと同じ効果を持つ。 \fB「この間違った機能を利用しないこと」\fP。
+これらの引き数にヌルポインター 1 個だけを含むリストへのポインターを指定したのと同じ効果を持つ。 \fB「この間違った機能を利用しないこと」\fP。
これは非標準で、移植性もない。 他のほとんどの UNIX システムでは、これを行うとエラー (\fBEFAULT\fP) になる。
POSIX.1\-2001 は、 \fBsysconf\fP(3) が返す値はプロセスの生存中は変化しないべきだとしている。 しかしながら、Linux
呼び出し元に制御が戻る時点を過ぎてからエラーが発生する場合がある。 元の実行可能イメージはすでに破棄されているが、
新しいイメージが完全には構築されていないという状況である。 このような場合、カーネルはそのプロセスをシグナル \fBSIGKILL\fP で停止 (kill)
する。
-.SS ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿ã\83»スクリプト
-ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿スクリプトの 1行目に許されている文字数は、 最大 127 文字である。
+.SS ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼スクリプト
+ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼スクリプトの 1行目に許されている文字数は、 最大 127 文字である。
.\" e.g., Solaris 8
.\" e.g., FreeBSD before 6.0, but not FreeBSD 6.0 onward
-ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿ã\83»ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\81® \fIoptional\-arg\fP å¼\95ã\81\8dæ\95°ã\81®è§£é\87\88æ\96¹æ³\95ã\81¯å®\9fè£\85ã\81«ã\82\88ã\82\8aç\95°ã\81ªã\82\8bã\80\82 Linux ã\81§ã\81¯ã\80\81ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿名
-\fIinterpreter\fP ã\81«ç¶\9aã\81\8fæ\96\87å\97å\88\97å\85¨ä½\93ã\81\8cã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿ã\81« 1å\80\8bã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81å\8b\95ä½\9cã\81\8cç\95°ã\81ªã\82\8bã\82·ã\82¹ã\83\86ã\83 ã\82\82ã\81\82ã\82\8bã\80\82 ã\81\82ã\82\8bã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ã\80\81
-\fIoptional\-arg\fP のうち最初のホワイトスペースまでが 引き数として渡される。 また、別のシステムでは
-ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿ã\83»スクリプトは複数の引き数を持つことができ、 \fIoptional\-arg\fP 内のホワイトスペースが引き数の区切りとなる。
+ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\81® \fIoptional\-arg\fP å¼\95ã\81\8dæ\95°ã\81®è§£é\87\88æ\96¹æ³\95ã\81¯å®\9fè£\85ã\81«ã\82\88ã\82\8aç\95°ã\81ªã\82\8bã\80\82 Linux ã\81§ã\81¯ã\80\81ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼名
+\fIinterpreter\fP ã\81«ç¶\9aã\81\8fæ\96\87å\97å\88\97å\85¨ä½\93ã\81\8cã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼ã\81« 1å\80\8bã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81å\8b\95ä½\9cã\81\8cç\95°ã\81ªã\82\8bã\82·ã\82¹ã\83\86ã\83 ã\82\82ã\81\82ã\82\8bã\80\82
+あるシステムでは、 \fIoptional\-arg\fP のうち最初のホワイトスペースまでが 引き数として渡される。 また、別のシステムでは
+ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼スクリプトは複数の引き数を持つことができ、 \fIoptional\-arg\fP 内のホワイトスペースが引き数の区切りとなる。
.\"
.\" .SH BUGS
.fi
.in
-ã\81\95ã\82\89ã\81«ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92使ã\81£ã\81¦ã\80\81ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\83»ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿ã\81®ä¾\8bã\82\92示ã\81\99ã\80\82 ã\81\93ã\81®ã\81\9fã\82\81ã\81«ã\80\81ã\80\8cã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿ã\80\8dã\81¨ã\81\97ã\81¦å\85\88ã\81»ã\81©ä½\9cæ\88\90ã\81\97ã\81\9fã\83\97ã\83ã\82°ã\83©ã\83 \fImyecho\fP
-を使うスクリプトを作成する。
+ã\81\95ã\82\89ã\81«ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92使ã\81£ã\81¦ã\80\81ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼ã\81®ä¾\8bã\82\92示ã\81\99ã\80\82 ã\81\93ã\81®ã\81\9fã\82\81ã\81«ã\80\81ã\80\8cã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼ã\80\8dã\81¨ã\81\97ã\81¦å\85\88ã\81»ã\81©ä½\9cæ\88\90ã\81\97ã\81\9fã\83\97ã\83ã\82°ã\83©ã\83
+\fImyecho\fP を使うスクリプトを作成する。
.in +4n
.nf
\fBexecve\fP() で発生するのと同じエラーが \fBexecveat\fP() でも起こる。 \fBexecveat\fP() では以下のエラーも発生する。
.TP
\fBEBADF\fP
-\fIdirfd\fP が適切なファイルディスクリプタでない。
+\fIdirfd\fP ã\81\8cé\81©å\88\87ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fIflags\fP に無効なフラグが指定された。
その結果プログラムファイルは起動されたインタープリターにアクセスできないことになる。 「バグ」を参照。
.TP
\fBENOTDIR\fP
-\fIpathname\fP が相対パスで、 \fIdirfd\fP がディレクトリ以外のファイルを参照しているファイルディスクリプタである。
+\fIpathname\fP ã\81\8cç\9b¸å¯¾ã\83\91ã\82¹ã\81§ã\80\81 \fIdirfd\fP ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä»¥å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH バージョン
.\" FIXME . check for glibc support in a future release
\fBexecveat\fP() はバージョン 3.19 で Linux に追加された。 GNU C ライブラリによるサポートは検討中である。
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP が有効なファイルディスクリプタでないか、 書き込み用としてオープンされていない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\81\8bã\80\81 æ\9b¸ã\81\8dè¾¼ã\81¿ç\94¨ã\81¨ã\81\97ã\81¦ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.TP
\fBEFBIG\fP
\fIoffset + len\fP がファイルサイズの最大値よりも大きい。
.SH バージョン
.\" See http://sourceware.org/bugzilla/show_bug.cgi?id=14964
\fBfallocate\fP() はカーネル 2.6.23 以降の Linux で利用可能である。 glibc での対応はバージョン 3.10
-以降で行われている。 \fBFALLOC_FL_*\fP が glibc のヘッダファイルで定義されているのは、バージョン 2.18 以降のみである。
+以é\99\8dã\81§è¡\8cã\82\8fã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 \fBFALLOC_FL_*\fP ã\81\8c glibc ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81§å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81®ã\81¯ã\80\81ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.18 以é\99\8dã\81®ã\81¿ã\81§ã\81\82ã\82\8bã\80\82
.SH 準拠
\fBfallocate\fP() は Linux 固有である。
.SH 関連項目
このエラーはマークされていないオブジェクトからマークを削除しようとした場合にも発生する。
.TP
\fBENOMEM\fP
-必要なメモリを割り当てできなかった。
+å¿\85è¦\81ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBENOSPC\fP
マークの数が 8192 の上限を超過し、 \fBfanotify_init\fP(2) で fanotify ファイルディスクリプターが作成された際に
.\"
.TH FCNTL 2 2015\-01\-22 Linux "Linux Programmer's Manual"
.SH 名前
-fcntl \- ファイルディスクリプタの操作を行う
+fcntl \- ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\93\8dä½\9cã\82\92è¡\8cã\81\86
.SH 書式
.nf
\fB#include <unistd.h>\fP
\fBint fcntl(int \fP\fIfd\fP\fB, int \fP\fIcmd\fP\fB, ... /* \fP\fIarg\fP\fB */ );\fP
.fi
.SH 説明
-\fBfcntl\fP() は、オープンされたファイルディスクリプタ \fIfd\fP に関して下記の操作を行う。操作は \fIcmd\fP によって決まる:
+\fBfcntl\fP() は、オープンされたファイルディスクリプター \fIfd\fP に関して下記の操作を行う。操作は \fIcmd\fP によって決まる:
\fBfcntl\fP() はオプションとして第三引き数をとることができる。 第三引き数が必要
かどうかは \fIcmd\fP により決まる。必要な引き数の型は \fIcmd\fP 名の後ろの括弧内で
下記のいくつかの操作は特定のバージョンの Linux カーネルでのみサポートされている。
ホストカーネルが特定の操作をサポートしているかを確認する推奨の方法は、 \fBfcntl\fP() を所望の \fIcmd\fP 値で呼び出し、 \fBEINVAL\fP
で失敗するかを検査することである。 \fBEINVAL\fP が返った場合、カーネルがこの値を認識していないことを示す。
-.SS ファイルディスクリプタの複製
+.SS ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®è¤\87製
.TP
\fBF_DUPFD\fP (\fIint\fP)
-利用可能なファイルディスクリプタのうち、 \fIarg\fP 以上で最小のものを探し、 \fIfd\fP のコピーとする。これは別の形の \fBdup2\fP(2)
-である。 \fBdup2\fP(2) では指定されたディスクリプタが使われる点が違う。
+å\88©ç\94¨å\8f¯è\83½ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\81\86ã\81¡ã\80\81 \fIarg\fP 以ä¸\8aã\81§æ\9c\80å°\8fã\81®ã\82\82ã\81®ã\82\92æ\8e¢ã\81\97ã\80\81 \fIfd\fP ã\81®ã\82³ã\83\94ã\83¼ã\81¨ã\81\99ã\82\8bã\80\82ã\81\93ã\82\8cã\81¯å\88¥ã\81®å½¢ã\81® \fBdup2\fP(2)
+ã\81§ã\81\82ã\82\8bã\80\82 \fBdup2\fP(2) ã\81§ã\81¯æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c使ã\82\8fã\82\8cã\82\8bç\82¹ã\81\8cé\81\95ã\81\86ã\80\82
.IP
-成功すると、新しいディスクリプタが返される。
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81æ\96°ã\81\97ã\81\84ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82
.IP
詳細は \fBdup\fP(2) を参照のこと。
.TP
\fBF_DUPFD_CLOEXEC\fP (\fIint\fP; Linux 2.6.24 以降)
-\fBF_DUPFD\fP と同様だが、それに加えて複製されたディスクリプタに対して close\-on\-exec フラグをセットする。
+\fBF_DUPFD\fP ã\81¨å\90\8cæ§\98ã\81 ã\81\8cã\80\81ã\81\9dã\82\8cã\81«å\8a ã\81\88ã\81¦è¤\87製ã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ close\-on\-exec ã\83\95ã\83©ã\82°ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\80\82
このフラグを指定することで、プログラムは \fBFD_CLOEXEC\fP フラグをセットするために \fBfcntl\fP() の \fBF_SETFD\fP
操作を追加で行う必要がなくなる。 このフラグがなぜ有用かについては、 \fBopen\fP(2) の \fBO_CLOEXEC\fP の説明を参照のこと。
-.SS ファイルディスクリプタフラグ
-以下のコマンドを使って、ファイルディスクリプタに関連するフラグ を操作することができる。 現在のところ、定義されているフラグは一つだけである:
-\fBFD_CLOEXEC\fP (close\-on\-exec フラグ)。 \fBFD_CLOEXEC\fP ビットが 0 なら、ファイルディスクリプタは
+.SS ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\83\95ã\83©ã\82°
+以ä¸\8bã\81®ã\82³ã\83\9eã\83³ã\83\89ã\82\92使ã\81£ã\81¦ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«é\96¢é\80£ã\81\99ã\82\8bã\83\95ã\83©ã\82° ã\82\92æ\93\8dä½\9cã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ç\8f¾å\9c¨ã\81®ã\81¨ã\81\93ã\82\8dã\80\81å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\95ã\83©ã\82°ã\81¯ä¸\80ã\81¤ã\81 ã\81\91ã\81§ã\81\82ã\82\8b:
+\fBFD_CLOEXEC\fP (close\-on\-exec ã\83\95ã\83©ã\82°)ã\80\82 \fBFD_CLOEXEC\fP ã\83\93ã\83\83ã\83\88ã\81\8c 0 ã\81ªã\82\89ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯
\fBexecve\fP(2) を行ってもオープンされたままだが、そうでない場合はクローズされる。
.TP
\fBF_GETFD\fP (\fIvoid\fP)
-ファイルディスクリプタフラグを読み出す。 \fIarg\fP は無視される。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\83\95ã\83©ã\82°ã\82\92èªã\81¿å\87ºã\81\99ã\80\82 \fIarg\fP ã\81¯ç\84¡è¦\96ã\81\95ã\82\8cã\82\8bã\80\82
.TP
\fBF_SETFD\fP (\fIint\fP)
-ファイルディスクリプタフラグに \fIarg\fP で指定した値を設定する。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\83\95ã\83©ã\82°ã\81« \fIarg\fP ã\81§æ\8c\87å®\9aã\81\97ã\81\9få\80¤ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82
.PP
マルチスレッドプログラムでは、 \fBfcntl\fP() の \fBF_SETFD\fP を使って close\-on\-exec フラグを設定するのと同時に、
別のスレッドで \fBexecve\fP(2) と \fBfork\fP(2) を実行することは、競合条件次第では、
-そのファイルディスクリプタが子プロセスで実行されるプログラムに意図せず見えてしまうという危険性がある。 詳細とこの問題への対処法については
+ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\90ã\83\97ã\83ã\82»ã\82¹ã\81§å®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\83\97ã\83ã\82°ã\83©ã\83 ã\81«æ\84\8få\9b³ã\81\9bã\81\9aè¦\8bã\81\88ã\81¦ã\81\97ã\81¾ã\81\86ã\81¨ã\81\84ã\81\86å\8d±é\99ºæ\80§ã\81\8cã\81\82ã\82\8bã\80\82 詳細ã\81¨ã\81\93ã\81®å\95\8fé¡\8cã\81¸ã\81®å¯¾å\87¦æ³\95ã\81«ã\81¤ã\81\84ã\81¦ã\81¯
\fBopen\fP(2) の \fBO_CLOEXEC\fP フラグの議論を参照のこと。
.SS ファイル状態フラグ
.\" or
.\" .BR creat (2),
オープンファイル記述 (open file description) には、 ファイル記述毎に設定される状態フラグがいくつかある。これらのフラグは
\fBopen\fP(2) によって初期化され、 \fBfcntl\fP(2) により変更することもできる。これらは、 (\fBdup\fP(2),
-\fBfcntl\fP(F_DUPFD), \fBfork\fP(2) などで) 複製されたファイルディスクリプタ同士は 同じオープンファイル記述を参照する。
+\fBfcntl\fP(F_DUPFD), \fBfork\fP(2) などで) 複製されたファイルディスクリプター同士は 同じオープンファイル記述を参照する。
そのため、 同じファイル状態フラグが共有される。
ファイル状態フラグとその意味は \fBopen\fP(2) で説明されている。
\fBF_SETLK\fP, \fBF_SETLKW\fP, \fBF_GETLK\fP は、レコードロックの獲得/解放/テストのために使用する
(レコードロックは、バイト範囲ロック、ファイルセグメントロック、ファイル領域ロックとも呼ばれる)。 三番目の引き数 \fIlock\fP
-は、以下に示すフィールドを含む構造体へのポインタである (フィールドの順序は関係なく、構造体に他のフィールドがあってもよい)。
+ã\81¯ã\80\81以ä¸\8bã\81«ç¤ºã\81\99ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\82\92å\90«ã\82\80æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8b (ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81®é \86åº\8fã\81¯é\96¢ä¿\82ã\81ªã\81\8fã\80\81æ§\8bé\80 ä½\93ã\81«ä»\96ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81\8cã\81\82ã\81£ã\81¦ã\82\82ã\82\88ã\81\84)ã\80\82
.in +4n
.nf
.sp
.TP
\fBF_SETLKW\fP (\fIstruct flock *\fP)
\fBF_SETLK\fP と同様だが、こちらではそのファイルに対して衝突するロックが 適用されていた場合に、そのロックが解放されるのを待つ点が異なる。
-å¾\85ã\81£ã\81¦ã\81\84ã\82\8bé\96\93ã\81«ã\82·ã\82°ã\83\8aã\83«ã\82\92å\8f\97ã\81\91ã\81\9få ´å\90\88ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ä¸æ\96ã\81\95ã\82\8cã\80\81 (ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81\8cæ\88»ã\81£ã\81\9fç\9b´å¾\8cã\81«) è¿\94ã\82\8aå\80¤ \-1 ã\82\92è¿\94ã\81\99 (ã\81¾ã\81\9f \fIerrno\fP ã\81«
-\fBEINTR\fP が設定される; \fBsignal\fP(7) 参照)。
+å¾\85ã\81£ã\81¦ã\81\84ã\82\8bé\96\93ã\81«ã\82·ã\82°ã\83\8aã\83«ã\82\92å\8f\97ã\81\91ã\81\9få ´å\90\88ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ä¸æ\96ã\81\95ã\82\8cã\80\81 (ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cæ\88»ã\81£ã\81\9fç\9b´å¾\8cã\81«) è¿\94ã\82\8aå\80¤ \-1 ã\82\92è¿\94ã\81\99 (ã\81¾ã\81\9f \fIerrno\fP
+に \fBEINTR\fP が設定される; \fBsignal\fP(7) 参照)。
.TP
\fBF_GETLK\fP (\fIstruct flock *\fP)
このコールの呼び出し時には、 \fIlock\fP にはそのファイルに適用しようとするロックに関する情報が入っている。 ロックを適用できる場合には、
.P
レコードのロックは \fBfork\fP(2) で作成された子プロセスには継承されないが、 \fBexecve\fP(2) の前後では保存される。
.P
-\fBstdio\fP(3) ではバッファリングが行われるので、 stdio 関連の関数ではレコードのロックの使用は回避される; 代わりに
+\fBstdio\fP(3) ã\81§ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\8cè¡\8cã\82\8fã\82\8cã\82\8bã\81®ã\81§ã\80\81 stdio é\96¢é\80£ã\81®é\96¢æ\95°ã\81§ã\81¯ã\83¬ã\82³ã\83¼ã\83\89ã\81®ã\83ã\83\83ã\82¯ã\81®ä½¿ç\94¨ã\81¯å\9b\9eé\81¿ã\81\95ã\82\8cã\82\8b; 代ã\82\8fã\82\8aã\81«
\fBread\fP(2) や \fBwrite\fP(2) を使用すること。
上記で説明したレコードロックはプロセスと関連付けられる (以下で説明するオープンファイル記述ロックと異なる点である)。 そのため、
\fBF_OFD_SETLKW\fP (\fIstruct flock *\fP)
\fBF_OFD_SETLK\fP と同様だが、こちらではそのファイルに対して衝突するロックが
適用されていた場合に、そのロックが解放されるのを待つ点が異なる。 待っている間にシグナルを受けた場合は、システムコールは中断され、
-(シグナルハンドラが戻った直後に) 返り値 \-1 を返す (また \fIerrno\fP に \fBEINTR\fP が設定される; \fBsignal\fP(7)
+(ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cæ\88»ã\81£ã\81\9fç\9b´å¾\8cã\81«) è¿\94ã\82\8aå\80¤ \-1 ã\82\92è¿\94ã\81\99 (ã\81¾ã\81\9f \fIerrno\fP ã\81« \fBEINTR\fP ã\81\8cè¨å®\9aã\81\95ã\82\8cã\82\8b; \fBsignal\fP(7)
参照)。
.TP
\fBF_OFD_GETLK\fP (\fIstruct flock *\fP)
\fBF_SETSIG\fP は、I/O が利用可能になったことを示すシグナルを管理するために使用される。
.TP
\fBF_GETOWN\fP (\fIvoid\fP)
-ファイルディスクリプタ \fIfd\fP のイベントに対するシグナル \fBSIGIO\fP および \fBSIGURG\fP を受けているプロセスのプロセスID
+ファイルディスクリプター \fIfd\fP のイベントに対するシグナル \fBSIGIO\fP および \fBSIGURG\fP を受けているプロセスのプロセスID
かプロセスグループを (関数の結果として) 返す。 プロセスID は正の値として返される。 プロセスグループID は負の値として返される
(下記のバグの章を参照)。 \fIarg\fP は無視される。
.TP
\fBF_SETOWN\fP (\fIint\fP)
-ファイルディスクリプタ \fIfd\fP のイベント発生を知らせるシグナル \fBSIGIO\fP や \fBSIGURG\fP を受けるプロセスの プロセス ID
+ファイルディスクリプター \fIfd\fP のイベント発生を知らせるシグナル \fBSIGIO\fP や \fBSIGURG\fP を受けるプロセスの プロセス ID
またはプロセスグループID を \fIarg\fP で指定された ID に設定する。 プロセスID は正の値として指定し、 プロセスグループID
は負の値として指定する。 ほとんどの場合、呼び出し元プロセスは所有者として自分自身を指定する (つまり \fIarg\fP に \fBgetpid\fP(2)
を指定する)。
.\" From glibc.info:
-\fBfcntl\fP() の \fBF_SETFL\fP コマンドを使用してファイルディスクリプタに \fBO_ASYNC\fP
-ç\8a¶æ\85\8bã\83\95ã\83©ã\82°ã\82\92è¨å®\9aã\81\97ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¸ã\81® å\85¥å\87ºå\8a\9bã\81\8cå\8f¯è\83½ã\81«ã\81ªã\82\8b度ã\81« \fBSIGIO\fP ã\82·ã\82°ã\83\8aã\83«ã\81\8cé\80\81ã\82\89ã\82\8cã\82\8bã\80\82 \fBF_SETSIG\fP ã\81¯
-\fBSIGIO\fP 以外の別のシグナルの配送を受けられるように するのにも使うことができる。 許可 (permission)
+\fBfcntl\fP() ã\81® \fBF_SETFL\fP ã\82³ã\83\9eã\83³ã\83\89ã\82\92使ç\94¨ã\81\97ã\81¦ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81« \fBO_ASYNC\fP
+ç\8a¶æ\85\8bã\83\95ã\83©ã\82°ã\82\92è¨å®\9aã\81\97ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¸ã\81® å\85¥å\87ºå\8a\9bã\81\8cå\8f¯è\83½ã\81«ã\81ªã\82\8b度ã\81« \fBSIGIO\fP ã\82·ã\82°ã\83\8aã\83«ã\81\8cé\80\81ã\82\89ã\82\8cã\82\8bã\80\82 \fBF_SETSIG\fP
+は \fBSIGIO\fP 以外の別のシグナルの配送を受けられるように するのにも使うことができる。 許可 (permission)
のチェックで失敗した場合には、 シグナルは黙って捨てられる。
\fBF_SETOWN\fP により指定された所有者のプロセス (またはプロセスグループ) に シグナルを送る際には、 \fBkill\fP(2)
.\" .I fd
.\" refers to a terminal device, then SIGIO
.\" signals are sent to the foreground process group of the terminal.
-ファイルディスクリプタがソケットを参照している場合は、 \fBF_SETOWN\fP を使用して、ソケットに帯域外 (out\-of\-band)
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\82½ã\82±ã\83\83ã\83\88ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\80\81 \fBF_SETOWN\fP ã\82\92使ç\94¨ã\81\97ã\81¦ã\80\81ã\82½ã\82±ã\83\83ã\83\88ã\81«å¸¯å\9f\9få¤\96 (out\-of\-band)
データが届いた時に \fBSIGURG\fP シグナルを配送する相手を選択することもできる (\fBSIGURG\fP が送られた場合には \fBselect\fP(2)
がソケットが「特別な状態」にあると報告することだろう)。
\fBSIGIO\fP と \fBSIGURG\fP を送るには \fBF_SETOWN_EX\fP を使うこと。
.TP
\fBF_GETOWN_EX\fP (struct f_owner_ex *) (Linux 2.6.32 以降)
-直前の \fBF_SETOWN_EX\fP 操作で定義された現在のファイルディスクリプタの所有者設定 を返す。情報は \fIarg\fP
+ç\9b´å\89\8dã\81® \fBF_SETOWN_EX\fP æ\93\8dä½\9cã\81§å®\9a義ã\81\95ã\82\8cã\81\9fç\8f¾å\9c¨ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\89\80æ\9c\89è\80\85è¨å®\9a ã\82\92è¿\94ã\81\99ã\80\82æ\83\85å ±ã\81¯ \fIarg\fP
が指す構造体に格納されて返される。構造体は以下の通りである。
.nf
.in +4n
\fBF_SETOWN_EX\fP (struct f_owner_ex *) (Linux 2.6.32 以降)
この操作は \fBF_SETOWN\fP と同様の処理を行う。 この操作を使うと、I/O が利用可能になったことを示すシグナルを、
特定のスレッド、プロセス、プロセスグループに送ることができる ようになる。 呼び出し元は、 \fIarg\fP 経由でシグナルの配送先を指定する。
-\fIarg\fP は \fIf_owner_ex\fP 構造体へのポインタである。 \fItype\fP フィールドは以下のいずれかの値を取り、 この値により
+\fIarg\fP ã\81¯ \fIf_owner_ex\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 \fItype\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ä»¥ä¸\8bã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81®å\80¤ã\82\92å\8f\96ã\82\8aã\80\81 ã\81\93ã\81®å\80¤ã\81«ã\82\88ã\82\8a
\fIpid\fP がどのように解釈されるかが規定される。
.RS
.TP
.TP
\fBF_GETSIG\fP (\fIvoid\fP)
入力や出力が可能になった場合に送るシグナルを (関数の結果として) 返す。 値ゼロは \fBSIGIO\fP を送ることを意味する。 (\fBSIGIO\fP
-を含む) 他の値はいずれも、 \fBSIGIO\fP の代わりに送るシグナル番号を表す。 後者の場合、シグナルハンドラを \fBSA_SIGINFO\fP
-フラグ付きで設定すれば、ハンドラで追加の情報を得ることができる。 \fIarg\fP は無視される。
+ã\82\92å\90«ã\82\80) ä»\96ã\81®å\80¤ã\81¯ã\81\84ã\81\9aã\82\8cã\82\82ã\80\81 \fBSIGIO\fP ã\81®ä»£ã\82\8fã\82\8aã\81«é\80\81ã\82\8bã\82·ã\82°ã\83\8aã\83«ç\95ªå\8f·ã\82\92表ã\81\99ã\80\82 å¾\8cè\80\85ã\81®å ´å\90\88ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92 \fBSA_SIGINFO\fP
+ã\83\95ã\83©ã\82°ä»\98ã\81\8dã\81§è¨å®\9aã\81\99ã\82\8cã\81°ã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81§è¿½å\8a ã\81®æ\83\85å ±ã\82\92å¾\97ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 \fIarg\fP ã\81¯ç\84¡è¦\96ã\81\95ã\82\8cã\82\8bã\80\82
.TP
\fBF_SETSIG\fP (\fIint\fP)
.\"
.\" .B F_SETOWN
.\" for more details.
入力や出力が可能になった場合に送るシグナルを \fIarg\fP に指定された値に設定する。 値ゼロは \fBSIGIO\fP を送ることを意味する。
-(\fBSIGIO\fP を含む) 他の値はいずれも、 \fBSIGIO\fP の代わりに送るシグナル番号を表す。 後者の場合、シグナルハンドラを
-\fBSA_SIGINFO\fP フラグ付きで設定すれば、 ハンドラで追加の情報を得ることができる。
+(\fBSIGIO\fP ã\82\92å\90«ã\82\80) ä»\96ã\81®å\80¤ã\81¯ã\81\84ã\81\9aã\82\8cã\82\82ã\80\81 \fBSIGIO\fP ã\81®ä»£ã\82\8fã\82\8aã\81«é\80\81ã\82\8bã\82·ã\82°ã\83\8aã\83«ç\95ªå\8f·ã\82\92表ã\81\99ã\80\82 å¾\8cè\80\85ã\81®å ´å\90\88ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92
+\fBSA_SIGINFO\fP ã\83\95ã\83©ã\82°ä»\98ã\81\8dã\81§è¨å®\9aã\81\99ã\82\8cã\81°ã\80\81 ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81§è¿½å\8a ã\81®æ\83\85å ±ã\82\92å¾\97ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
-\fBF_SETSIG\fP にゼロ以外の値を設定し、シグナルハンドラに \fBSA_SIGINFO\fP フラグを設定すると、 (\fBsigaction\fP(2)
-を参照) I/O イベントに関する追加の情報が \fIsiginfo_t\fP 構造体でシグナルハンドラへ渡される。 \fIsi_code\fP
+\fBF_SETSIG\fP ã\81«ã\82¼ã\83以å¤\96ã\81®å\80¤ã\82\92è¨å®\9aã\81\97ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81« \fBSA_SIGINFO\fP ã\83\95ã\83©ã\82°ã\82\92è¨å®\9aã\81\99ã\82\8bã\81¨ã\80\81 (\fBsigaction\fP(2)
+ã\82\92å\8f\82ç\85§) I/O ã\82¤ã\83\99ã\83³ã\83\88ã\81«é\96¢ã\81\99ã\82\8b追å\8a ã\81®æ\83\85å ±ã\81\8c \fIsiginfo_t\fP æ§\8bé\80 ä½\93ã\81§ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¸æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82 \fIsi_code\fP
フィールドが示すシグナルの原因が \fBSI_SIGIO\fP である場合、 \fIsi_fd\fP
-ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ã\81¯ã\82¤ã\83\99ã\83³ã\83\88ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cå\85¥ã\81£ã\81¦ã\81\84ã\82\8bã\80\82 ã\81\9dã\82\8c以å¤\96ã\81®å ´å\90\88ã\81¯ã\80\81ã\81©ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿が利用可能かを示す情報は
-ないので、どのファイルディスクリプタで I/O が可能かを判断するためには 通常の機構 (\fBselect\fP(2), \fBpoll\fP(2),
+ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ã\81¯ã\82¤ã\83\99ã\83³ã\83\88ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\85¥ã\81£ã\81¦ã\81\84ã\82\8bã\80\82 ã\81\9dã\82\8c以å¤\96ã\81®å ´å\90\88ã\81¯ã\80\81ã\81©ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼が利用可能かを示す情報は
+ã\81ªã\81\84ã\81®ã\81§ã\80\81ã\81©ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ I/O ã\81\8cå\8f¯è\83½ã\81\8bã\82\92å\88¤æ\96ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\81¯ é\80\9a常ã\81®æ©\9fæ§\8b (\fBselect\fP(2), \fBpoll\fP(2),
\fBO_NONBLOCK\fP を設定した \fBread\fP(2) など) を使用しなければならない。
リアルタイムシグナル (値が \fBSIGRTMIN\fP 以上) を選択している場合は、 同じシグナル番号を持つ複数の I/O
-イベントがキューに入ることがある (キューに入れるかどうかは利用可能なメモリに依存している)。 上記と同様、 \fBSA_SIGINFO\fP
-が設定されている場合、シグナルハンドラのための追加の情報が得られる。
+ã\82¤ã\83\99ã\83³ã\83\88ã\81\8cã\82ã\83¥ã\83¼ã\81«å\85¥ã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8b (ã\82ã\83¥ã\83¼ã\81«å\85¥ã\82\8cã\82\8bã\81\8bã\81©ã\81\86ã\81\8bã\81¯å\88©ç\94¨å\8f¯è\83½ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8b)ã\80\82 ä¸\8aè¨\98ã\81¨å\90\8cæ§\98ã\80\81 \fBSA_SIGINFO\fP
+ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®ã\81\9fã\82\81ã\81®è¿½å\8a ã\81®æ\83\85å ±ã\81\8cå¾\97ã\82\89ã\82\8cã\82\8bã\80\82
.\" See fs/fcntl.c::send_sigio_to_task() (2.4/2.6) sources -- MTK, Apr 05
以下の点に注意すること。 Linux では一つのプロセスに対してキューに入れられるリアルタイム シグナルの数に上限が設けられており
(Linix 2.4 以降で利用可能) \fBF_SETLEASE\fP は、 \fIfd\fP
が参照するオープンファイル記述に対して新しいリースを設定するのに使用される。 \fBF_GETLEASE\fP は、 \fIfd\fP
が参照するオープンファイル記述に対して設定されている 現在のリースを取得するのに使用される。 ファイルのリースにより、 あるプロセス ("lease
-breaker") がそのファイルディスクリプタが参照 しているファイルに対して \fBopen\fP(2) や \fBtruncate\fP(2)
+breaker") ã\81\8cã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\8f\82ç\85§ ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81«å¯¾ã\81\97ã\81¦ \fBopen\fP(2) ã\82\84 \fBtruncate\fP(2)
を行おうとした際に、リースを保持しているプロセス ("lease holder") へ (シグナルの配送による) 通知が行われるという機構が提供される。
.TP
\fBF_SETLEASE\fP (\fIint\fP)
.\" See the man-pages-2.09 Changelog for further info.
読み出しリースを取得する。これにより、 そのファイルが書き込み用にオープンされたり、ファイルが切り詰められた場合に、
呼び出し元のプロセスに通知が行われるようになる。 読み出しリースを設定できるのは、読み出し専用でオープンされている
-ファイルディスクリプタに対してのみである。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ã\81®ã\81¿ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBF_WRLCK\fP
書き込みリースを取得する。これにより、 (読み出し用か書き込み用にかかわらず) そのファイルがオープンされたり、
ファイルが切り詰められた場合に、呼び出し元のプロセスに通知が行われるようになる。
-書き込みリースは、そのファイルに対するオープンされたファイルディスクリプタが 他にない場合にのみ設定できる。
+æ\9b¸ã\81\8dè¾¼ã\81¿ã\83ªã\83¼ã\82¹ã\81¯ã\80\81ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«å¯¾ã\81\99ã\82\8bã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c ä»\96ã\81«ã\81ªã\81\84å ´å\90\88ã\81«ã\81®ã\81¿è¨å®\9aã\81§ã\81\8dã\82\8bã\80\82
.TP
\fBF_UNLCK\fP
そのファイルからリースを削除する。
.RE
.P
リースはオープンファイル記述に対して関連付けられる (\fBopen\fP(2) 参照)。 つまり、 (\fBfork\fP(2) や \fBdup\fP(2)
-ã\81ªã\81©ã\81«ã\82\88ã\82\8aä½\9cæ\88\90ã\81\95ã\82\8cã\81\9f) ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®è¤\87製ã\81¯å\90\8cã\81\98ã\83ªã\83¼ã\82¹ã\82\92å\8f\82ç\85§ã\81\97ã\80\81 è¤\87製ã\82\82å\90«ã\82\81ã\81\9fã\81©ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を使ってもこのリースを変更したり
-解放したりできる。 また、これらのファイルディスクリプタのいずれかに対して \fBF_UNLCK\fP
-操作が明示的に実行された場合や、すべてのファイルディスクリプタが 閉じられた場合にも、リースは解放される。
+ã\81ªã\81©ã\81«ã\82\88ã\82\8aä½\9cæ\88\90ã\81\95ã\82\8cã\81\9f) ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®è¤\87製ã\81¯å\90\8cã\81\98ã\83ªã\83¼ã\82¹ã\82\92å\8f\82ç\85§ã\81\97ã\80\81 è¤\87製ã\82\82å\90«ã\82\81ã\81\9fã\81©ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を使ってもこのリースを変更したり
+解æ\94¾ã\81\97ã\81\9fã\82\8aã\81§ã\81\8dã\82\8bã\80\82 ã\81¾ã\81\9fã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81«å¯¾ã\81\97ã\81¦ \fBF_UNLCK\fP
+æ\93\8dä½\9cã\81\8cæ\98\8e示ç\9a\84ã\81«å®\9fè¡\8cã\81\95ã\82\8cã\81\9få ´å\90\88ã\82\84ã\80\81ã\81\99ã\81¹ã\81¦ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c é\96\89ã\81\98ã\82\89ã\82\8cã\81\9få ´å\90\88ã\81«ã\82\82ã\80\81ã\83ªã\83¼ã\82¹ã\81¯è§£æ\94¾ã\81\95ã\82\8cã\82\8bã\80\82
.P
リースの取得は通常のファイル (regular file) に対してのみ可能である。 非特権プロセスがリースを取得できるのは、UID (所有者)
がプロセスの ファイルシステム UID と一致するファイルに対してだけである。 \fBCAP_LEASE\fP
ケーパビリティを持つプロセスは任意のファイルに対してリースを取得できる。
.TP
\fBF_GETLEASE\fP (\fIvoid\fP)
-ファイルディスクリプタ \fIfd\fP に対して設定されているリースの種別を取得する。 \fBF_RDLCK\fP, \fBF_WRLCK\fP, \fBF_UNLCK\fP
-のいずれかが返される。 \fBF_RDLCK\fP, \fBF_WRLCK\fP はそれぞれ、読み出しリース、書き込みリースが設定されていることを示し、
-\fBF_UNLCK\fP はリースが何も設定されていないことを示す。 \fIarg\fP は無視される。
+ファイルディスクリプター \fIfd\fP に対して設定されているリースの種別を取得する。 \fBF_RDLCK\fP, \fBF_WRLCK\fP,
+\fBF_UNLCK\fP のいずれかが返される。 \fBF_RDLCK\fP, \fBF_WRLCK\fP
+はそれぞれ、読み出しリース、書き込みリースが設定されていることを示し、 \fBF_UNLCK\fP はリースが何も設定されていないことを示す。 \fIarg\fP
+は無視される。
.PP
あるプロセス ("lease breaker") が \fBF_SETLEASE\fP で設定されたリースと矛
盾するような \fBopen\fP(2) や \fBtruncate\fP(2) を実行した場合、 そのシステム
(デフォルトでは \fBSIGIO\fP) を送って通知を行う。 lease holder はこのシグ
ナルを受信したときにはきちんと対応すべきである。 具体的には、別のプロセ
スがそのファイルにアクセスするための準備として 必要な後片付け (例えば、
-キャッシュされたバッファのフラッシュ) を すべて行ってから、そのファイル
+ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\95ã\83©ã\83\83ã\82·ã\83¥) ã\82\92 ã\81\99ã\81¹ã\81¦è¡\8cã\81£ã\81¦ã\81\8bã\82\89ã\80\81ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«
のリースの削除または格下げを行う。リースを削除をするには、 \fIarg\fP に
\fBF_UNLCK\fP を指定して \fBF_SETLEASE\fP を実行する。lease holder がファイル
に書き込みリースを保持していて、 lease breaker が読み出し用にそのファイ
一度リースの削除か格下げが自発的もしくは強制的に行われると、 lease breaker がまだシステムコールを再開していない場合には、 カーネルが
lease breaker のシステムコールの続行を許可する。
-lease breaker が実行した \fBopen\fP(2) や \fBtruncate\fP(2) が停止中にシグナルハンドラにより中断された場合、
+lease breaker ã\81\8cå®\9fè¡\8cã\81\97ã\81\9f \fBopen\fP(2) ã\82\84 \fBtruncate\fP(2) ã\81\8cå\81\9cæ¢ä¸ã\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å ´å\90\88ã\80\81
そのシステムコールは \fBEINTR\fP エラーで失敗するが、上で述べた他の処理は そのまま行われる。 \fBopen\fP(2) や
\fBtruncate\fP(2) が停止中に lease breaker がシグナルにより kill された場合、 上で述べた他の処理はそのまま行われる。
lease breaker が \fBopen\fP(2) を呼ぶ際に \fBO_NONBLOCK\fP フラグを指定した場合、そのシステムコールは
lease holder への通知に使われるデフォルトのシグナルは \fBSIGIO\fP だが、 \fBfcntl\fP() の \fBF_SETSIG\fP
コマンドで変更することができる。 \fBF_SETSIG\fP コマンドが実行され (\fBSIGIO\fP を指定された場合も含む)、 \fBSA_SIGINFO\fP
-ã\83\95ã\83©ã\82°ä»\98ã\81\8dã\81§ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81 ã\83\8fã\83³ã\83\89ã\83©の第二引き数として \fIsiginfo_t\fP 構造体が渡され、この引き数の
-\fIsi_fd\fP フィールドには別のプロセスがアクセスしたリース設定済みファイルの ディスクリプタが入っている
+ã\83\95ã\83©ã\82°ä»\98ã\81\8dã\81§ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81 ã\83\8fã\83³ã\83\89ã\83©ã\83¼の第二引き数として \fIsiginfo_t\fP 構造体が渡され、この引き数の
+\fIsi_fd\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ã\81¯å\88¥ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82¢ã\82¯ã\82»ã\82¹ã\81\97ã\81\9fã\83ªã\83¼ã\82¹è¨å®\9aæ¸\88ã\81¿ã\83\95ã\82¡ã\82¤ã\83«ã\81® ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\85¥ã\81£ã\81¦ã\81\84ã\82\8b
(この機能は複数のファイルに対してリースを設定する場合に有用である)。
.SS "ファイルやディレクトリの変更の通知 (dnotify)"
.TP
.PD
.RE
.IP
-(上記の定義を利用するには、\fIどの\fP ヘッダファイルをインクルードするより前に、
+(ä¸\8aè¨\98ã\81®å®\9a義ã\82\92å\88©ç\94¨ã\81\99ã\82\8bã\81«ã\81¯ã\80\81\fIã\81©ã\81®\fP ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\99ã\82\8bã\82\88ã\82\8aå\89\8dã\81«ã\80\81
\fB_GNU_SOURCE\fP 機能検査マクロを定義しなければならない。)
ディレクトリの変更通知は通常「一回限り (one\-shot)」であり、 アプリケーション側でその後さらに通知を受信したい場合は
通知はシグナルの配送で行われる。 デフォルトのシグナルは \fBSIGIO\fP だが、 \fBfcntl\fP() の \fBF_SETSIG\fP
コマンドで変更することができる。 (\fBSIGIO\fP はキューイングされない標準のシグナルの一つである点に注意。
リアルタイムシグナルを使うように変更すると、 複数の通知がそのプロセス宛のキューに入ることがあることを意味する。) 後者の場合には、
-(\fBSA_SIGINFO\fP ã\83\95ã\83©ã\82°ä»\98ã\81\8dã\81§ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«ã\81¯) ã\83\8fã\83³ã\83\89ã\83©の第二引き数として \fIsiginfo_t\fP
-構造体が渡され、この構造体の \fIsi_fd\fP フィールドには通知の行われたファイルディスクリプタが入っている
+(\fBSA_SIGINFO\fP ã\83\95ã\83©ã\82°ä»\98ã\81\8dã\81§ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«ã\81¯) ã\83\8fã\83³ã\83\89ã\83©ã\83¼の第二引き数として \fIsiginfo_t\fP
+æ§\8bé\80 ä½\93ã\81\8c渡ã\81\95ã\82\8cã\80\81ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81® \fIsi_fd\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ã\81¯é\80\9aç\9f¥ã\81®è¡\8cã\82\8fã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\85¥ã\81£ã\81¦ã\81\84ã\82\8b
(この機能は複数のディレクトリに対して通知を設定する場合に有用である)。
特に \fBDN_MULTISHOT\fP を使う場合は、通知にはリアルタイムシグナルを使うべきである。
それは、リアルタイムシグナルを使うことで、複数の通知をキューに入れる ことができるからである。
\fB注意:\fP 新しくアプリケーションを書く際には、(カーネル 2.6.13 以降で利用可能となった) \fIinotify\fP
-ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\82\92使ç\94¨ã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 \fIinotify\fP ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\82¤ã\83\99ã\83³ã\83\88ã\81®é\80\9aç\9f¥ã\82\92å\8f\96å¾\97ã\81\99ã\82\8bã\81\9fã\82\81ã\81® ã\81\9aã\81£ã\81¨å\84ªã\82\8cã\81\9fã\82¤ã\83³ã\82¿フェースである。
+ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92使ç\94¨ã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 \fIinotify\fP ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\82¤ã\83\99ã\83³ã\83\88ã\81®é\80\9aç\9f¥ã\82\92å\8f\96å¾\97ã\81\99ã\82\8bã\81\9fã\82\81ã\81® ã\81\9aã\81£ã\81¨å\84ªã\82\8cã\81\9fã\82¤ã\83³ã\82¿ã\83¼フェースである。
\fBinotify\fP(7) を参照。
.SS パイプの容量の変更
.TP
された上限より大きな値に設定しようとした場合は、エラー \fBEPERM\fP が
発生する。特権プロセス (\fBCAP_SYS_RESOURCE\fP ケーパビリティを持つ
プロセス) はこの上限を上書きできる。
-パイプにバッファを割り当てる場合、実装側の都合に応じて、
+ã\83\91ã\82¤ã\83\97ã\81«ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bå ´å\90\88ã\80\81å®\9fè£\85å\81´ã\81®é\83½å\90\88ã\81«å¿\9cã\81\98ã\81¦ã\80\81
カーネルは \fIarg\fP よりも大きな容量を割り当ててもよい。
実際に設定された大きさが関数の返り値として返される。
-パイプの容量を現在データを格納するのに使用されているバッファの
+ã\83\91ã\82¤ã\83\97ã\81®å®¹é\87\8fã\82\92ç\8f¾å\9c¨ã\83\87ã\83¼ã\82¿ã\82\92æ ¼ç´\8dã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®
サイズよりも小さくしようとした場合は、エラー \fBEBUSY\fP が発生する。
.TP
\fBF_GETPIPE_SZ\fP (\fIvoid\fP; Linux 2.6.35 以降)
したがって、 この seal は通常は他の seal のいずれかと組み合わせて使用される。 この seal は \fBwrite\fP(2) と
\fBfallocate\fP(2) (\fBFALLOC_FL_PUNCH_HOLE\fP フラグとの組み合わせの場合のみ) に影響する。 この seal
が設定されると、 これらの呼び出しは \fBEPERM\fP で失敗する。 また、 \fBmmap\fP(2)
-による新しい書き込み可能な共有メモリマッピングの作成も \fBEPERM\fP で失敗する。
+ã\81«ã\82\88ã\82\8bæ\96°ã\81\97ã\81\84æ\9b¸ã\81\8dè¾¼ã\81¿å\8f¯è\83½ã\81ªå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81®ä½\9cæ\88\90ã\82\82 \fBEPERM\fP ã\81§å¤±æ\95\97ã\81\99ã\82\8bã\80\82
\fBfcntl\fP(2) の \fBF_ADD_SEALS\fP で \fBF_SEAL_WRITE\fP を設定しようとした場合、
書き込み可能な共有マッピングが存在すると \fBEBUSY\fP で失敗する。 このようなマッピングは、 この seal
成功した場合の返り値は操作の種類により違う:
.TP 0.9i
\fBF_DUPFD\fP
-新しいディスクリプタを返す。
+æ\96°ã\81\97ã\81\84ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.TP
\fBF_GETFD\fP
-ファイルディスクリプタフラグの値
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\83\95ã\83©ã\82°ã\81®å\80¤
.TP
\fBF_GETFL\fP
ファイル状態フラグの値
.TP
\fBF_GETLEASE\fP
-ファイルディスクリプタに対して保持されているリースの種別を返す。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ä¿\9dæ\8c\81ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83ªã\83¼ã\82¹ã\81®ç¨®å\88¥ã\82\92è¿\94ã\81\99ã\80\82
.TP
\fBF_GETOWN\fP
-ディスクリプタの所有者を返す。
+ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\89\80æ\9c\89è\80\85ã\82\92è¿\94ã\81\99ã\80\82
.TP
\fBF_GETSIG\fP
読み込みや書き出しが可能になった時に送られるシグナルの値、もしくは 伝統的な \fBSIGIO\fP 動作の場合にはゼロを返す。
他のプロセスが保持しているロックによって操作が禁止されている。
.TP
\fBEAGAIN\fP
-そのファイルは他のプロセスによってメモリマップされているため、 操作が禁止されている。
+ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ä»\96ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«ã\82\88ã\81£ã\81¦ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\9fã\82\81ã\80\81 æ\93\8dä½\9cã\81\8cç¦\81æ¢ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fBEBADF\fP
-\fIfd\fP がオープンされたファイルディスクリプタではない。
+\fIfd\fP ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEBADF\fP
-\fIcmd\fP が \fBF_SETLK\fP または \fBF_SETLKW\fP だったが、対象のファイルディスクリプタのオープンモードが
+\fIcmd\fP ã\81\8c \fBF_SETLK\fP ã\81¾ã\81\9fã\81¯ \fBF_SETLKW\fP ã\81 ã\81£ã\81\9fã\81\8cã\80\81対象ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\82ªã\83¼ã\83\97ã\83³ã\83¢ã\83¼ã\83\89ã\81\8c
必要となるロックの型にマッチしていない。
.TP
\fBEBUSY\fP
\fIcmd\fP が \fBF_SETPIPE_SZ\fP で、 \fIarg\fP で指定されたパイプの新しい容量がパイプが、
-現在パイプにあるデータを格納するのに使用されているバッファ容量よりも小さい。
+現在パイプにあるデータを格納するのに使用されているバッファー容量よりも小さい。
.TP
\fBEBUSY\fP
\fIcmd\fP が \fBF_ADD_SEALS\fP で、 \fIarg\fP に \fBF_SEAL_WRITE\fP が含まれており、 \fIfd\fP
0 が指定されなかった。
.TP
\fBEMFILE\fP
-\fIcmd\fP が \fBF_DUPFD\fPで、 プロセスがすでに最大数までファイルディスクリプタをオープンしている。
+\fIcmd\fP ã\81\8c \fBF_DUPFD\fPã\81§ã\80\81 ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\81\99ã\81§ã\81«æ\9c\80大æ\95°ã\81¾ã\81§ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fBENOLCK\fP
オープンされているロックの数が多過ぎて、ロックテーブルがいっぱいである。 または remote locking protocol (例えば NFS
.\" indicate that ANY negative PGID value will cause F_GETOWN
.\" to misinterpret the return as an error. Some other architectures
.\" seem to have the same range check as i386.
-いくつかのアーキテクチャ (特に i386) における Linux システムコールの慣習
+いくつかのアーキテクチャー (特に i386) における Linux システムコールの慣習
のため以下の制限が存在する。
\fBF_GETOWN\fP が返す (負の) プロセスグループID が \-1 から \-4095 の範囲に入った場合、
glibc はこの返り値をシステムコールでエラーが起こったと間違って解釈してしまう。
\fBF_GETOWN\fP を実装することで、カーネルの \fBF_GETOWN\fP の問題を見えないようにしている。
.SS F_SETOWN
.\"
-Linux 2.4 以前では、非特権プロセスが \fBF_SETOWN\fP を使って、ソケットのファイルディスクリプタの所有者に 呼び出し元以外のプロセス
+Linux 2.4 以å\89\8dã\81§ã\81¯ã\80\81é\9d\9eç\89¹æ¨©ã\83\97ã\83ã\82»ã\82¹ã\81\8c \fBF_SETOWN\fP ã\82\92使ã\81£ã\81¦ã\80\81ã\82½ã\82±ã\83\83ã\83\88ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\89\80æ\9c\89è\80\85ã\81« å\91¼ã\81³å\87ºã\81\97å\85\83以å¤\96ã\81®ã\83\97ã\83ã\82»ã\82¹
(やプロセスグループ) を指定すると 発生するバグがある。この場合、 呼び出し元が所有者として指定したプロセス (やプロセスグループ) に
シグナルを送る許可を持っていたとしても、 \fBfcntl\fP() が \-1 を返し \fIerrno\fP に \fBEPERM\fP を設定することがある。
-このエラーが返ったにもかかわらず、ファイルディスクリプタの所有者 は設定され、シグナルはその所有者に送られる。
+ã\81\93ã\81®ã\82¨ã\83©ã\83¼ã\81\8cè¿\94ã\81£ã\81\9fã\81«ã\82\82ã\81\8bã\81\8bã\82\8fã\82\89ã\81\9aã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\89\80æ\9c\89è\80\85 ã\81¯è¨å®\9aã\81\95ã\82\8cã\80\81ã\82·ã\82°ã\83\8aã\83«ã\81¯ã\81\9dã\81®æ\89\80æ\9c\89è\80\85ã\81«é\80\81ã\82\89ã\82\8cã\82\8bã\80\82
.SS デッドロックの検出
.\"
\fBF_SETLKW\fP 要求を処理する際にカーネルが使用するデッドロック検出アルゴリズムは、 false negative になる場合
一つのファイルに共有ロックと排他ロックを同時に設定することはできない。
\fBflock\fP() によって作られるロックは、 オープンファイル記述 (open file description) (\fBopen\fP(2) 参照)
-と関連付けられる。 したがって、ファイルディスクリプタの複製 (\fBfork\fP(2) や \fBdup\fP(2) などにより作成される)
-は同じロックを参照し、 これらのファイルディスクリプタのどれを使っても このロックを変更したり解放したりできる。 また、ロックの解放は、
-ä¸\8aè¨\98ã\81®è¤\87æ\95°ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81«å¯¾ã\81\97ã\81¦ æ\98\8e示ç\9a\84ã\81« \fBLOCK_UN\fP æ\93\8dä½\9cã\82\92æ\8c\87示ã\81\97ã\81\9få ´å\90\88ã\81\8bã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿がすべて
+ã\81¨é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\82\8bã\80\82 ã\81\97ã\81\9fã\81\8cã\81£ã\81¦ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®è¤\87製 (\fBfork\fP(2) ã\82\84 \fBdup\fP(2) ã\81ªã\81©ã\81«ã\82\88ã\82\8aä½\9cæ\88\90ã\81\95ã\82\8cã\82\8b)
+ã\81¯å\90\8cã\81\98ã\83ã\83\83ã\82¯ã\82\92å\8f\82ç\85§ã\81\97ã\80\81 ã\81\93ã\82\8cã\82\89ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\81©ã\82\8cã\82\92使ã\81£ã\81¦ã\82\82 ã\81\93ã\81®ã\83ã\83\83ã\82¯ã\82\92å¤\89æ\9b´ã\81\97ã\81\9fã\82\8a解æ\94¾ã\81\97ã\81\9fã\82\8aã\81§ã\81\8dã\82\8bã\80\82 ã\81¾ã\81\9fã\80\81ã\83ã\83\83ã\82¯ã\81®è§£æ\94¾ã\81¯ã\80\81
+ä¸\8aè¨\98ã\81®è¤\87æ\95°ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81«å¯¾ã\81\97ã\81¦ æ\98\8e示ç\9a\84ã\81« \fBLOCK_UN\fP æ\93\8dä½\9cã\82\92æ\8c\87示ã\81\97ã\81\9få ´å\90\88ã\81\8bã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼がすべて
閉じられた場合に行われる。
-あるプロセスが \fBopen\fP(2) (もしくは同様の方法) を使って同じファイルに対して 複数のディスクリプタを取得した場合、 \fBflock\fP()
-はこれら複数のディスクリプタを各々独立のものとして扱う。 これらのファイルディスクリプタの一つを使ってファイルをロックしようと
-した際、そのロック要求は、呼び出し元のプロセスがそのファイルの別の ディスクリプタ経由ですでに設定しているロックによって拒否される場合がある。
+あるプロセスが \fBopen\fP(2) (もしくは同様の方法) を使って同じファイルに対して 複数のディスクリプターを取得した場合、
+\fBflock\fP() はこれら複数のディスクリプターを各々独立のものとして扱う。
+これらのファイルディスクリプターの一つを使ってファイルをロックしようと した際、そのロック要求は、呼び出し元のプロセスがそのファイルの別の
+ディスクリプター経由ですでに設定しているロックによって拒否される場合がある。
一つのプロセスは、一つのファイルに対して (共有ロックと排他ロックのうち) いずれか一種類のロックしか設定できない。 既にロックされたファイルに対して
\fBflock\fP() を呼び出すと、既存のロックを新しいロックモードに変更することになる。
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP がオープンされたファイルディスクリプタではない。
+\fIfd\fP ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEINTR\fP
-ロックの獲得を待っている間に、ハンドラにより捕捉されたシグナルを 受信し、 \fBflock\fP() が中断された。 \fBsignal\fP(7) 参照。
+ã\83ã\83\83ã\82¯ã\81®ç\8d²å¾\97ã\82\92å¾\85ã\81£ã\81¦ã\81\84ã\82\8bé\96\93ã\81«ã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aæ\8d\95æ\8d\89ã\81\95ã\82\8cã\81\9fã\82·ã\82°ã\83\8aã\83«ã\82\92 å\8f\97ä¿¡ã\81\97ã\80\81 \fBflock\fP() ã\81\8cä¸æ\96ã\81\95ã\82\8cã\81\9fã\80\82 \fBsignal\fP(7) å\8f\82ç\85§ã\80\82
.TP
\fBEINVAL\fP
\fIoepration\fP が無効である。
.TP
\fBENOLCK\fP
-ロックレコードを割り当てるためのメモリが不足している。
+ã\83ã\83\83ã\82¯ã\83¬ã\82³ã\83¼ã\83\89ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81\9fã\82\81ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cä¸\8d足ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fBEWOULDBLOCK\fP
指定したファイルがロックされており、 \fBLOCK_NB\fP フラグが指定されている。
.IP *
子プロセスの親プロセス ID は、親プロセスのプロセス ID と同じである。
.IP *
-子プロセスは親プロセスのメモリロック (\fBmlock\fP(2), \fBmlockall\fP(2)) を引き継がない。
+å\90ã\83\97ã\83ã\82»ã\82¹ã\81¯è¦ªã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83ã\83\83ã\82¯ (\fBmlock\fP(2), \fBmlockall\fP(2)) ã\82\92å¼\95ã\81\8dç¶\99ã\81\8cã\81ªã\81\84ã\80\82
.IP *
-プロセスの資源利用量 (\fBgetrusage\fP(2)) と CPU タイムカウンタ (\fBtimes\fP(2)) が、子プロセスでは 0
+プロセスの資源利用量 (\fBgetrusage\fP(2)) と CPU タイムカウンター (\fBtimes\fP(2)) が、子プロセスでは 0
にリセットされる。
.IP *
子プロセスの処理待ちのシグナルの集合 (\fBsigpending\fP(2)) は、初期状態では空になる。
timer slack value のデフォルト値には、親プロセスの現在の timer slack value が設定される。 \fBprctl\fP(2)
の \fBPR_SET_TIMERSLACK\fP の説明を参照。
.IP *
-\fBmadvise\fP(2) の \fBMADV_DONTFORK\fP フラグでマークされたメモリマッピングは、 \fBfork\fP()
+\fBmadvise\fP(2) ã\81® \fBMADV_DONTFORK\fP ã\83\95ã\83©ã\82°ã\81§ã\83\9eã\83¼ã\82¯ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81¯ã\80\81 \fBfork\fP()
によって引き継がれない。
.IP *
子プロセスの終了シグナルは常に \fBSIGCHLD\fP である (\fBclone\fP(2) を参照)。
親プロセスの仮想アドレス空間全体が子プロセスに複製される。 これにはミューテックス (mutex) の状態・条件変数・ pthread
オブジェクトが含まれる。 これが引き起こす問題を扱うには、 \fBpthread_atfork\fP(3) を使うと良いだろう。
.IP *
-å\90ã\83\97ã\83ã\82»ã\82¹ã\81¯è¦ªã\83\97ã\83ã\82»ã\82¹ã\81\8cæ\8c\81ã\81¤ ã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®é\9b\86å\90\88ã\81®ã\82³ã\83\94ã\83¼ã\82\92å¼\95ã\81\8dç¶\99ã\81\90ã\80\82 å\90ã\83\97ã\83ã\82»ã\82¹ã\81®å\90\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は、
-親プロセスのファイルディスクリプタに対応する 同じオープンファイル記述 (file description) を参照する (\fBopen\fP(2)
-ã\82\92å\8f\82ç\85§)ã\80\82 ã\81\93ã\82\8cã\81¯ 2 ã\81¤ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cã\80\81ã\83\95ã\82¡ã\82¤ã\83«ç\8a¶æ\85\8bã\83\95ã\83©ã\82°ã\83» ç\8f¾å\9c¨ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\80\81ã\82·ã\82°ã\83\8aã\83«é§\86å\8b\95 (signal\-driven) I/O å±\9eæ\80§
-(\fBfcntl\fP(2) における \fBF_SETOWN\fP, \fBF_SETSIG\fP の説明を参照) を共有することを意味する。
+å\90ã\83\97ã\83ã\82»ã\82¹ã\81¯è¦ªã\83\97ã\83ã\82»ã\82¹ã\81\8cæ\8c\81ã\81¤ ã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®é\9b\86å\90\88ã\81®ã\82³ã\83\94ã\83¼ã\82\92å¼\95ã\81\8dç¶\99ã\81\90ã\80\82 å\90ã\83\97ã\83ã\82»ã\82¹ã\81®å\90\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は、
+親ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾å¿\9cã\81\99ã\82\8b å\90\8cã\81\98ã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿° (file description) ã\82\92å\8f\82ç\85§ã\81\99ã\82\8b (\fBopen\fP(2)
+ã\82\92å\8f\82ç\85§)ã\80\82 ã\81\93ã\82\8cã\81¯ 2 ã\81¤ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\80\81ã\83\95ã\82¡ã\82¤ã\83«ç\8a¶æ\85\8bã\83\95ã\83©ã\82°ã\83» ç\8f¾å\9c¨ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\80\81ã\82·ã\82°ã\83\8aã\83«é§\86å\8b\95 (signal\-driven) I/O
+属性 (\fBfcntl\fP(2) における \fBF_SETOWN\fP, \fBF_SETSIG\fP の説明を参照) を共有することを意味する。
.IP *
-子プロセスは親プロセスが持つオープンメッセージキューディスクリプタ (\fBmq_overview\fP(7) を参照) の集合のコピーを引き継ぐ。
-å\90ã\83\97ã\83ã\82»ã\82¹ã\81®å\90\84ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\80\81 親ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81«å¯¾å¿\9cã\81\99ã\82\8b å\90\8cã\81\98ã\82ªã\83¼ã\83\97ã\83³ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を参照する。 これは 2
-つのディスクリプタが同じフラグ (\fImq_flags\fP) を共有することを意味する。
+子プロセスは親プロセスが持つオープンメッセージキューディスクリプター (\fBmq_overview\fP(7) を参照) の集合のコピーを引き継ぐ。
+å\90ã\83\97ã\83ã\82»ã\82¹ã\81®å\90\84ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81 親ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾å¿\9cã\81\99ã\82\8b å\90\8cã\81\98ã\82ªã\83¼ã\83\97ã\83³ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を参照する。 これは 2
+ã\81¤ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\90\8cã\81\98ã\83\95ã\83©ã\82° (\fImq_flags\fP) ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\81\93ã\81¨ã\82\92æ\84\8få\91³ã\81\99ã\82\8bã\80\82
.IP *
子プロセスは、親プロセスのオープン済みのディレクトリストリームの集合 (\fBopendir\fP(3) 参照) のコピーを継承する。
POSIX.1\-2001 では、親プロセスと子プロセス間の対応するディレクトリストリーム はディレクトリストリームの位置 (positioning)
.SH エラー
.TP
\fBEAGAIN\fP
-親プロセスのページテーブルのコピーと 子プロセスのタスク構造に生成に必要なメモリを \fBfork\fP() が割り当てることができなかった。
+親ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\9aã\83¼ã\82¸ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\82³ã\83\94ã\83¼ã\81¨ å\90ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82¿ã\82¹ã\82¯æ§\8bé\80 ã\81«ç\94\9fæ\88\90ã\81«å¿\85è¦\81ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\82\92 \fBfork\fP() ã\81\8cå\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBEAGAIN\fP
.\" NOTE! The following should match the description in pthread_create(3)
-システムで設定されたスレッド数の上限に達していた。 このエラーの原因となる上限値はいくつかある。 実ユーザ ID
+システムで設定されたスレッド数の上限に達していた。 このエラーの原因となる上限値はいくつかある。 実ユーザー ID
当たりのプロセス数とスレッド数の上限である、ソフトリソース上限 \fBRLIMIT_NPROC\fP に達していた (\fBsetrlimit\fP(2)
で設定できる)。 カーネルのシステム全体のプロセスとスレッドの上限数である \fI/proc/sys/kernel/threads\-max\fP が達していた
(\fBproc\fP(5) 参照)。 PID の最大値 \fI/proc/sys/kernel/pid_max\fP に達していた (\fBproc\fP(5)
フラグがセットされていない。 \fBsched\fP(7) 参照。
.TP
\fBENOMEM\fP
-メモリが足りないために、 \fBfork\fP() は必要なカーネル構造体を割り当てることができなかった。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\81\9fã\82\81ã\81«ã\80\81 \fBfork\fP() ã\81¯å¿\85è¦\81ã\81ªã\82«ã\83¼ã\83\8dã\83«æ§\8bé\80 ä½\93ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBENOSYS\fP
.\" e.g., arm (optionally), blackfin, c6x, frv, h8300, microblaze, xtensa
\fBfork\fP() はこのプラットフォームではサポートされていない
-(例えば、メモリ管理ユニット (MMU) がないハードウェア)。
+(例えば、メモリー管理ユニット (MMU) がないハードウェア)。
.SH 準拠
SVr4, 4.3BSD, POSIX.1\-2001.
.SH 注意
.PP
Linux では、 \fBfork\fP() を 書き込み時コピー (copy\-on\-write) ページを用いて実装している。 したがって、fork
-を行うことの唯一のデメリットは、 親プロセスのページテーブルを複製と 子プロセス自身のタスク構造の作成のための時間とメモリが必要なことである。
+ã\82\92è¡\8cã\81\86ã\81\93ã\81¨ã\81®å\94¯ä¸\80ã\81®ã\83\87ã\83¡ã\83ªã\83\83ã\83\88ã\81¯ã\80\81 親ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\9aã\83¼ã\82¸ã\83\86ã\83¼ã\83\96ã\83«ã\82\92è¤\87製ã\81¨ å\90ã\83\97ã\83ã\82»ã\82¹è\87ªèº«ã\81®ã\82¿ã\82¹ã\82¯æ§\8bé\80 ã\81®ä½\9cæ\88\90ã\81®ã\81\9fã\82\81ã\81®æ\99\82é\96\93ã\81¨ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå¿\85è¦\81ã\81ªã\81\93ã\81¨ã\81§ã\81\82ã\82\8bã\80\82
.\" nptl/sysdeps/unix/sysv/linux/fork.c
.\" and does some magic to ensure that getpid(2) returns the right value.
同じ効果が得られるようなフラグが指定される (\fBfork\fP() の呼び出しは、
\fIflags\fP に \fBSIGCHLD\fP だけを指定して \fBclone\fP(2) を呼び出すのと等価である)。
glibc のラッパー関数は \fBpthread_atfork\fP(3) を使って設定されている
-任意の fork ハンドラを起動する。
+ä»»æ\84\8fã\81® fork ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92èµ·å\8b\95ã\81\99ã\82\8bã\80\82
.SH 例
\fBpipe\fP(2) および \fBwait\fP(2) を参照。
.SH 関連項目
.\"
.TH FSYNC 2 2014\-08\-19 Linux "Linux Programmer's Manual"
.SH 名前
-fsync \- メモリ上にあるファイルの内容をストレージデバイス上のものと同期させる
+fsync \- メモリー上にあるファイルの内容をストレージデバイス上のものと同期させる
.SH 書式
\fB#include <unistd.h>\fP
.sp
.br
\fBfdatasync\fP(): _POSIX_C_SOURCE\ >=\ 199309L || _XOPEN_SOURCE\ >=\ 500
.SH 説明
-\fBfsync\fP() は、ファイル記述子 \fIfd\fP で参照されるファイルの、メモリ内で存在す
-る修正されたデータ (つまり修正されたバッファキャッシュページ) を、ディスクデ
+\fBfsync\fP() は、ファイルディスクリプター \fIfd\fP で参照されるファイルの、メモリー内で存在す
+ã\82\8bä¿®æ£ã\81\95ã\82\8cã\81\9fã\83\87ã\83¼ã\82¿ (ã\81¤ã\81¾ã\82\8aä¿®æ£ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82ã\83£ã\83\83ã\82·ã\83¥ã\83\9aã\83¼ã\82¸) ã\82\92ã\80\81ã\83\87ã\82£ã\82¹ã\82¯ã\83\87
バイス(またはその他の永続ストレージデバイス) に転送 (「フラッシュ」) し、これ
により、システムがクラッシュしたり、再起動された後も、変更された全ての情報が
取り出せるようになる。「フラッシュ」には、ライトスルー (write through) や
転送が終わったとデバイスが報告するまでブロックする。またファイルに結びついた
メタデータ情報 (\fBstat\fP(2) 参照) もフラッシュする。
-\fBfsync\fP() の呼び出しは、ファイルが存在しているディレクトリのエントリがディスクへ 書き込まれたことを保証するわけではない。
-保証するためには明示的にそのディレクトリのファイル記述子に対しても \fBfsync\fP() する必要がある。
+\fBfsync\fP() ã\81®å\91¼ã\81³å\87ºã\81\97ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå\98å\9c¨ã\81\97ã\81¦ã\81\84ã\82\8bã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\83\87ã\82£ã\82¹ã\82¯ã\81¸ æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\81\9fã\81\93ã\81¨ã\82\92ä¿\9d証ã\81\99ã\82\8bã\82\8fã\81\91ã\81§ã\81¯ã\81ªã\81\84ã\80\82
+保証するためには明示的にそのディレクトリのファイルディスクリプターに対しても \fBfsync\fP() する必要がある。
\fBfdatasync\fP() は \fBfsync\fP() と同様であるが、メタデータの扱いが異なる。 \fBfdatasync\fP()
は、それ以降のデータ読み込みを正しく扱うためにそのメタデータが必要に ならない限り、変更されたメタデータをフラッシュしない。 例えば、 st_atime
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP が有効なオープンされたディスクリプタでない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEIO\fP
同期操作の間にエラーが発生した。
\fI<unistd.h>\fP で 0 より大きな値に定義される (\fBsysconf\fP(3) 参照)。
.SH 注意
(Linux はそうではないが) いくつかの UNIX システムでは
-\fIfd\fP が\fI書き込み可能な\fPファイルディスクリプタでなければならない。
+\fIfd\fP ã\81\8c\fIæ\9b¸ã\81\8dè¾¼ã\81¿å\8f¯è\83½ã\81ª\fPã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
Linux 2.2 以前では、 \fBfdatasync\fP() は \fBfsync\fP() と等価であり、性能面でのメリットはない。
.\"
.TH FUTEX 2 2014\-05\-21 Linux "Linux Programmer's Manual"
.SH 名前
-futex \- 高速ユーザ空間ロック
+futex \- 高速ユーザー空間ロック
.SH 書式
.nf
.sp
.SH 説明
.PP
\fBfutex\fP() システムコールは、 指定したアドレスの値が変更されるのをプログラムが待つ手段や 特定のアドレスに対して待機中のプロセスを
-wake (起床) させる手段を提供する (プロセスが異なれば同じメモリに対するアドレスも同じではないかもしれないが、
-カーネルは異なる位置にマップされた同じメモリを \fBfutex\fP() で使えるよう内部でマップする)。 通常は、このシステムコールは
-\fBfutex\fP(7) に書かれているように、 共有メモリ中のロックが競合する場合の処理を実装するのに用いられる。
+wake (èµ·åº\8a) ã\81\95ã\81\9bã\82\8bæ\89\8b段ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8b (ã\83\97ã\83ã\82»ã\82¹ã\81\8cç\95°ã\81ªã\82\8cã\81°å\90\8cã\81\98ã\83¡ã\83¢ã\83ªã\83¼ã\81«å¯¾ã\81\99ã\82\8bã\82¢ã\83\89ã\83¬ã\82¹ã\82\82å\90\8cã\81\98ã\81§ã\81¯ã\81ªã\81\84ã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\81\8cã\80\81
+ã\82«ã\83¼ã\83\8dã\83«ã\81¯ç\95°ã\81ªã\82\8bä½\8dç½®ã\81«ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9få\90\8cã\81\98ã\83¡ã\83¢ã\83ªã\83¼ã\82\92 \fBfutex\fP() ã\81§ä½¿ã\81\88ã\82\8bã\82\88ã\81\86å\86\85é\83¨ã\81§ã\83\9eã\83\83ã\83\97ã\81\99ã\82\8b)ã\80\82 é\80\9a常ã\81¯ã\80\81ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯
+\fBfutex\fP(7) に書かれているように、 共有メモリー中のロックが競合する場合の処理を実装するのに用いられる。
.PP
-\fBfutex\fP(7) の操作がユーザ空間で競合なく完了しなかった場合、 カーネルに仲裁させるためにシステムコールを呼ぶ必要がある。
+\fBfutex\fP(7) の操作がユーザー空間で競合なく完了しなかった場合、 カーネルに仲裁させるためにシステムコールを呼ぶ必要がある。
仲裁というのは、呼び出しプロセスを sleep (起床待ち) させたり、反対に 待ちプロセスを wake させたりすることを意味する。
.PP
この関数を呼び出すプロセスは \fBfutex\fP(7) に記述されているセマンティクスに忠実であることが要求される。
このセマンティクスには移植不可能なアセンブリ命令を書くことが含まれる。 このことは言い換えると futex
-のユーザのほとんどは実際はライブラリの作者であり、 一般アプリケーションの開発者ではないということである。
+ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\81»ã\81¨ã\82\93ã\81©ã\81¯å®\9fé\9a\9bã\81¯ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81®ä½\9cè\80\85ã\81§ã\81\82ã\82\8aã\80\81 ä¸\80è\88¬ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81®é\96\8bç\99ºè\80\85ã\81§ã\81¯ã\81ªã\81\84ã\81¨ã\81\84ã\81\86ã\81\93ã\81¨ã\81§ã\81\82ã\82\8bã\80\82
.PP
-\fIuaddr\fP 引き数は、カウンタを格納する、 アラインメントの揃った int 型変数を指している必要がある。 実行する操作は \fIop\fP
+\fIuaddr\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\82\92æ ¼ç´\8dã\81\99ã\82\8bã\80\81 ã\82¢ã\83©ã\82¤ã\83³ã\83¡ã\83³ã\83\88ã\81®æ\8f\83ã\81£ã\81\9f int å\9e\8bå¤\89æ\95°ã\82\92æ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82 å®\9fè¡\8cã\81\99ã\82\8bæ\93\8dä½\9cã\81¯ \fIop\fP
引き数を介して、値 \fIval\fP とともに渡される。
.PP
現在のところ 5 つの操作が定義されている:
.TP
\fBFUTEX_FD\fP (Linux 2.6.25 以前)
.\" , suitable for .BR poll (2).
-非同期の wake に対応するため、この操作はファイルディスクリプタを futex に 関連づける。 別のプロセスが \fBFUTEX_WAKE\fP
-を実行すると、プロセスは \fIval\fP で渡されたシグナル番号のシグナルを受信する。 呼び出しプロセスは使用後、返されたファイルディスクリプタを
+é\9d\9eå\90\8cæ\9c\9fã\81® wake ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\81\9fã\82\81ã\80\81ã\81\93ã\81®æ\93\8dä½\9cã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92 futex ã\81« é\96¢é\80£ã\81¥ã\81\91ã\82\8bã\80\82 å\88¥ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8c \fBFUTEX_WAKE\fP
+ã\82\92å®\9fè¡\8cã\81\99ã\82\8bã\81¨ã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81¯ \fIval\fP ã\81§æ¸¡ã\81\95ã\82\8cã\81\9fã\82·ã\82°ã\83\8aã\83«ç\95ªå\8f·ã\81®ã\82·ã\82°ã\83\8aã\83«ã\82\92å\8f\97ä¿¡ã\81\99ã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\97ã\83\97ã\83ã\82»ã\82¹ã\81¯ä½¿ç\94¨å¾\8cã\80\81è¿\94ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92
クローズしなければならない。 引き数 \fItimeout\fP, \fIuaddr2\fP, \fIval3\fP は無視される。
競合状態を防止するため、呼び出しプロセスは \fBFUTEX_FD\fP が返ったあと futex が up されたかどうかを確認しなければならない。
wake したプロセスの数を返す。
.TP
\fBFUTEX_FD\fP
-futex に関連づけられた新たなファイルディスクリプタを返す。
+futex ã\81«é\96¢é\80£ã\81¥ã\81\91ã\82\89ã\82\8cã\81\9fæ\96°ã\81\9fã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.TP
\fBFUTEX_REQUEUE\fP
wake したプロセスの数を返す。
.SH エラー
.TP
\fBEACCES\fP
-futex メモリに読み込みアクセス権がなかった。
+futex ã\83¡ã\83¢ã\83ªã\83¼ã\81«èªã\81¿è¾¼ã\81¿ã\82¢ã\82¯ã\82»ã\82¹æ¨©ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBEAGAIN\fP
\fBFUTEX_CMP_REQUEUE\fP で、\fIuaddr\fP が指す値が期待値 \fIval3\fP と異なる状況が検出された。
(これは競合を示しているかもしれない。この場合は安全な \fBFUTEX_WAKE\fP を使うこと。)
.TP
\fBEFAULT\fP
-ユーザ空間から \fItimeout\fP の情報を取得する際にエラーが発生した。
+ユーザー空間から \fItimeout\fP の情報を取得する際にエラーが発生した。
.TP
\fBEINTR\fP
\fBFUTEX_WAIT\fP 操作がシグナル (\fBsignal\fP(7) 参照) もしくは偽の wakeup により中断された。
.PP
最初の futex 対応は Linux 2.5.7 で組み込まれたが、 上記のセマンティクスとは異なる。 4
つの引き数のここに書かれているセマンティクスを持つ システムコールは、Linux 2.5.40 で導入された。 Linux 2.5.70 では 1
-つの引き数が追加された。 Linux 2.6.7 では 6 番目の引き数が追加された。 これは汚く、s390 アーキテクチャ上の特別のものである。
+つの引き数が追加された。 Linux 2.6.7 では 6 番目の引き数が追加された。 これは汚く、s390 アーキテクチャー上の特別のものである。
.SH 準拠
このシステムコールは Linux 固有である。
.SH 注意
.\" Matthew Kirkwood, Ingo Molnar (Red Hat)
.\" and Rusty Russell (IBM Linux Technology Center).
.\" This page written by bert hubert.
-繰り返すが、裸の futex はエンドユーザが容易に使うことのできる概念として 意図されたものではない (glibc
-にはこのシステムコールに対するラッパー関数はない)。 実装者は、アセンブリ言語に慣れており、以下に挙げる futex ユーザ空間ライブラリの
+ç¹°ã\82\8aè¿\94ã\81\99ã\81\8cã\80\81裸ã\81® futex ã\81¯ã\82¨ã\83³ã\83\89ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8c容æ\98\93ã\81«ä½¿ã\81\86ã\81\93ã\81¨ã\81®ã\81§ã\81\8dã\82\8bæ¦\82念ã\81¨ã\81\97ã\81¦ æ\84\8få\9b³ã\81\95ã\82\8cã\81\9fã\82\82ã\81®ã\81§ã\81¯ã\81ªã\81\84 (glibc
+にはこのシステムコールに対するラッパー関数はない)。 実装者は、アセンブリ言語に慣れており、以下に挙げる futex ユーザー空間ライブラリの
ソースを読み終えていることが要求される。
.SH 関連項目
\fBrestart_syscall\fP(2), \fBfutex\fP(7)
.\"
.TH FUTIMESAT 2 2012\-05\-10 Linux "Linux Programmer's Manual"
.SH 名前
-futimesat \- ディレクトリファイルディスクリプタに対する相対パスのファイルのタイムスタンプを変更する
+futimesat \- ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\99ã\82\8bç\9b¸å¯¾ã\83\91ã\82¹ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¿ã\82¤ã\83 ã\82¹ã\82¿ã\83³ã\83\97ã\82\92å¤\89æ\9b´ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <fcntl.h> /* AT_* 定数の定義 */\fP
また、 以下のエラーも \fBfutimesat\fP() では発生することがある。
.TP
\fBEBADF\fP
-\fIdirfd\fP が有効なファイルディスクリプタでない。
+\fIdirfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
-\fIpathname\fP が相対パスで、 \fIdirfd\fP がディレクトリ以外のファイルを参照するファイルディスクリプタである。
+\fIpathname\fP ã\81\8cç\9b¸å¯¾ã\83\91ã\82¹ã\81§ã\80\81 \fIdirfd\fP ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä»¥å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH バージョン
\fBfutimesat\fP() はカーネル 2.6.16 で Linux に追加された。 ライブラリのサポートは glibc バージョン 2.4
で追加された。
.SH 準拠
\fBget_kernel_syms\fP() は Linux 固有である。
.SH バグ
-\fItable\fP 用に確保したバッファの大きさを伝える方法がない。 プログラムがシンボルテーブルの大きさを問い合わせた後に、カーネルに
-シンボルが追加されると、メモリの内容が破壊されることになる。
+\fItable\fP ç\94¨ã\81«ç¢ºä¿\9dã\81\97ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å¤§ã\81\8dã\81\95ã\82\92ä¼\9dã\81\88ã\82\8bæ\96¹æ³\95ã\81\8cã\81ªã\81\84ã\80\82 ã\83\97ã\83ã\82°ã\83©ã\83 ã\81\8cã\82·ã\83³ã\83\9cã\83«ã\83\86ã\83¼ã\83\96ã\83«ã\81®å¤§ã\81\8dã\81\95ã\82\92å\95\8fã\81\84å\90\88ã\82\8fã\81\9bã\81\9få¾\8cã\81«ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81«
+ã\82·ã\83³ã\83\9cã\83«ã\81\8c追å\8a ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\86\85容ã\81\8cç ´å£\8aã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\81«ã\81ªã\82\8bã\80\82
.PP
公開されるシンボル名の長さが 59 文字に制限されている。
.PP
これらの制限があるので、このシステムコールを使うよりは \fBquery_module\fP(2) を使うのが望ましい (現在では
-\fBquery_module\fP(2) 自身もそのマニュアルページに書かれているように 他のインタフェースを使うのが望ましいとされている)。
+\fBquery_module\fP(2) è\87ªèº«ã\82\82ã\81\9dã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81«æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\82\88ã\81\86ã\81« ä»\96ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92使ã\81\86ã\81®ã\81\8cæ\9c\9bã\81¾ã\81\97ã\81\84ã\81¨ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b)ã\80\82
.SH 関連項目
\fBcreate_module\fP(2), \fBdelete_module\fP(2), \fBinit_module\fP(2),
\fBquery_module\fP(2)
.\"
.TH GET_MEMPOLICY 2 2008\-08\-15 Linux "Linux Programmer's Manual"
.SH 名前
-get_mempolicy \- プロセスの NUMA メモリのポリシーを取得する
+get_mempolicy \- ã\83\97ã\83ã\82»ã\82¹ã\81® NUMA ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83\9dã\83ªã\82·ã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
\fB#include <numaif.h>\fP
.nf
\fI\-lnuma\fP でリンクする。
.fi
.SH 説明
-\fBget_mempolicy\fP() は、呼び出し元プロセスもしくは指定されたメモリアドレスの NUMA ポリシーを \fIflags\fP
+\fBget_mempolicy\fP() ã\81¯ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83ã\82»ã\82¹ã\82\82ã\81\97ã\81\8fã\81¯æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\81® NUMA ã\83\9dã\83ªã\82·ã\83¼ã\82\92 \fIflags\fP
の設定に従って取得する。
-NUMA (é\9d\9e対称ã\83¡ã\83¢ã\83ªã\82¢ã\82¯ã\82»ã\82¹) ã\83\9eã\82·ã\83³ã\81§ã\81¯ã\80\81CPU ã\81«ã\82\88ã\82\8a ã\83¡ã\83¢ã\83ªã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©が異なり、距離も異なっている。
-ã\83¡ã\83¢ã\83ªã\83\9dã\83ªã\82·ã\83¼ã\81¯ã\80\81ã\81©ã\81®ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89ã\83¡ã\83¢ã\83ªをそのプロセスに 割り当てるかを定めるものである。
+NUMA (é\9d\9e対称ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\82¯ã\82»ã\82¹) ã\83\9eã\82·ã\83³ã\81§ã\81¯ã\80\81CPU ã\81«ã\82\88ã\82\8a ã\83¡ã\83¢ã\83ªã\83¼ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼が異なり、距離も異なっている。
+ã\83¡ã\83¢ã\83ªã\83¼ã\83\9dã\83ªã\82·ã\83¼ã\81¯ã\80\81ã\81©ã\81®ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89ã\83¡ã\83¢ã\83ªã\83¼をそのプロセスに 割り当てるかを定めるものである。
\fIflags\fP に 0 が指定された場合、 (\fBset_mempolicy\fP(2) で設定された)
呼び出し元プロセスのデフォルトポリシーに関する情報を返す。 返されたポリシー [\fImode\fP と \fInodemask\fP] を
\fIflags\fP に \fBMPOL_F_MEMS_ALLOWED\fP (Linux 2.6.24 以降で利用可能) を指定すると、 \fImode\fP
引き数は無視され、 そのプロセスがその後の \fBmbind\fP(2) や \fBset_mempolicy\fP(2) で [\fIモードフラグ\fP
-が指定されていない場合に ] 指定できるノード (メモリ) の集合が \fInodemask\fP に返される。 \fBMPOL_F_MEMS_ALLOWED\fP
-を、 \fBMPOL_F_ADDR\fP や \fBMPOL_F_NODE\fP と同時に指定することはできない。
+が指定されていない場合に ] 指定できるノード (メモリー) の集合が \fInodemask\fP に返される。
+\fBMPOL_F_MEMS_ALLOWED\fP を、 \fBMPOL_F_ADDR\fP や \fBMPOL_F_NODE\fP と同時に指定することはできない。
\fIflags\fP に \fBMPOL_F_ADDR\fP が指定された場合、 \fIaddr\fP
-で指定されたメモリアドレスに適用されているポリシーに関する情報を返す。 \fBmbind\fP(2) や \fBnuma\fP(3)
-で説明されているヘルパー関数を使って、 \fIaddr\fP を含むメモリ領域に対するポリシーが設定されていた場合には、
+ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\81«é\81©ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\9dã\83ªã\82·ã\83¼ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92è¿\94ã\81\99ã\80\82 \fBmbind\fP(2) ã\82\84 \fBnuma\fP(3)
+で説明されているヘルパー関数を使って、 \fIaddr\fP を含むメモリー領域に対するポリシーが設定されていた場合には、
返されるポリシーはプロセスのデフォルトポリシーと違うことがある。
\fImode\fP 引き数が NULL でない場合、 \fBget_mempolicy\fP() は要求された NUMA ポリシーのモードと追加の
そのプロセスの現在のポリシーが \fBMPOL_INTERLEAVE\fP の場合、 \fBget_mempolicy\fP()
は、そのプロセスに対して割り当てられたカーネルの内部ページで 次にインターリーブ用に使用されるノードのノード ID を、 NULL でない
\fImode\fP 引き数が指す場所に入れて返す。 読み込みアクセス用として \fBMAP_PRIVATE\fP フラグ付きで \fBmmap\fP(2)
-したプロセスメモリ領域や、 任意のアクセス用として \fBMAP_SHARED\fP フラグ付きで \fBmmap\fP(2)
-したメモリ領域の、メモリマップされたファイルに対するページも 上記のプロセスに対して割り当てられたページに含まれる。
+したプロセスメモリー領域や、 任意のアクセス用として \fBMAP_SHARED\fP フラグ付きで \fBmmap\fP(2)
+したメモリー領域の、メモリーマップされたファイルに対するページも 上記のプロセスに対して割り当てられたページに含まれる。
他のフラグは予約されている。
.SH エラー
.TP
\fBEFAULT\fP
-\fInodemask\fP と \fImaxnode\fP で指定されたメモリ領域の一部または全部が、 呼び出し元がアクセス可能なアドレス空間外を指している。
+\fInodemask\fP と \fImaxnode\fP で指定されたメモリー領域の一部または全部が、 呼び出し元がアクセス可能なアドレス空間外を指している。
.TP
\fBEINVAL\fP
\fImaxnode\fP で指定された値がシステムがサポートするノード ID の数よりも少ない。 または、 \fIflags\fP に
\fI注\fP: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。
.SH 説明
\fBget_thread_area\fP() は、カレントスレッドのスレッド局所記憶 (thread\-local storage; TLS)
-é\85\8då\88\97ã\81®ä¸ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83³ã\83\88ã\83ªã\81®ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶から引き数として渡される \fIu_info\->entry_number\fP
-の値に対応している。 値が範囲内にある場合、 \fBget_thread_info\fP() は対応する TLS エントリを \fIu_info\fP
+é\85\8då\88\97ã\81®ä¸ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼から引き数として渡される \fIu_info\->entry_number\fP
+ã\81®å\80¤ã\81«å¯¾å¿\9cã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 å\80¤ã\81\8cç¯\84å\9b²å\86\85ã\81«ã\81\82ã\82\8bå ´å\90\88ã\80\81 \fBget_thread_info\fP() ã\81¯å¯¾å¿\9cã\81\99ã\82\8b TLS ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 \fIu_info\fP
で指された領域にコピーする。
.SH 返り値
成功した場合、 \fBget_thread_area\fP() は 0 を返す。 そうでない場合、 \-1 を返し、 \fIerrno\fP
.SH エラー
.TP
\fBEFAULT\fP
-\fIu_info\fP が不正なポインタである。
+\fIu_info\fP ã\81\8cä¸\8dæ£ã\81ªã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBEINVAL\fP
\fIu_info\->entry_number\fP が範囲外である。
.\" over the course of the caching interval.
\fItcache\fP 引き数は Linux 2.6.24 以降では使用されない。以前のバージョン
のカーネルでは、この引き数が NULL 以外の場合、この引き数には、呼び出し
-元が割り当てたスレッド専用の記憶領域 (thread\-local storage) 内のバッファ
-ã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\80\81ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡は \fBgetcpu\fP() 用のキャッシュ機構
+元が割り当てたスレッド専用の記憶領域 (thread\-local storage) 内のバッファー
+ã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\80\81ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼は \fBgetcpu\fP() 用のキャッシュ機構
を提供するために利用されていた。非常に低い確率だが古い情報を返してしま
うデメリットはあるものの、このキャッシュを使うことで \fBgetcpu\fP() システ
ムコールを高速化できた。このキャッシュ機構はCPU 間でのスレッドの移動時
.\"
.TH GETDENTS 2 2012\-08\-03 Linux "Linux Programmer's Manual"
.SH 名前
-getdents \- ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\82¨ã\83³ã\83\88ã\83ªを取得する
+getdents \- ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼を取得する
.SH 書式
.nf
\fBint getdents(unsigned int \fP\fIfd\fP\fB, struct linux_dirent *\fP\fIdirp\fP\fB,\fP
これはあなたの関心を引くような関数ではない。 POSIX 準拠の C ライブラリインターフェースについては \fBreaddir\fP(3) を見ること。
このページは、カーネルシステムコールの生のインターフェースについて 記載したものである。
.PP
-\fBgetdents\fP() システムコールは、オープン済みのファイルディスクリプタ \fIfd\fP で参照されるディレクトリから
-\fIlinux_dirent\fP 構造体をいくつか読み出し、 \fIdirp\fP が指しているバッファに格納する。 \fIcount\fP
-引き数はそのバッファのサイズを示す。
+\fBgetdents\fP() システムコールは、オープン済みのファイルディスクリプター \fIfd\fP で参照されるディレクトリから
+\fIlinux_dirent\fP æ§\8bé\80 ä½\93ã\82\92ã\81\84ã\81\8fã\81¤ã\81\8bèªã\81¿å\87ºã\81\97ã\80\81 \fIdirp\fP ã\81\8cæ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82 \fIcount\fP
+å¼\95ã\81\8dæ\95°ã\81¯ã\81\9dã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82µã\82¤ã\82ºã\82\92示ã\81\99ã\80\82
.PP
\fIlinux_dirent\fP 構造体は以下のように宣言されている:
.PP
ブロックデバイスである。
.TP
\fBDT_CHR\fP
-キャラクタデバイスである。
+ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\83\87ã\83\90ã\82¤ã\82¹ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBDT_DIR\fP
ディレクトリである。
.SH エラー
.TP
\fBEBADF\fP
-ファイルディスクリプタ \fIfd\fP が不正である。
+ファイルディスクリプター \fIfd\fP が不正である。
.TP
\fBEFAULT\fP
引き数が呼び出したプロセスのアドレス空間外を指している。
そのようなディレクトリは存在しない。
.TP
\fBENOTDIR\fP
-ファイルディスクリプタがディレクトリを参照していない。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.SH 準拠
.\" SVr4 documents additional ENOLINK, EIO error conditions.
SVr4.
\fBsetdomainname\fP() は以下のエラーで失敗する可能性がある。
.TP
\fBEFAULT\fP
-\fIname\fP がユーザアドレス空間の外を指した。
+\fIname\fP ã\81\8cã\83¦ã\83¼ã\82¶ã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81®å¤\96ã\82\92æ\8c\87ã\81\97ã\81\9fã\80\82
.TP
\fBEINVAL\fP
\fIlen\fP が負であるか、長すぎる。
.SH 注意
Linux 1.0 以降では、ドメイン名の長さの上限は 終端のヌルバイトを含めて 64 バイトである。 もっと古いカーネルでは 8 バイトであった。
-(x86 を含む) Linux のほとんどのアーキテクチャでは、 \fBgetdomainname\fP() というシステムコールは存在しない。
+(x86 ã\82\92å\90«ã\82\80) Linux ã\81®ã\81»ã\81¨ã\82\93ã\81©ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81 \fBgetdomainname\fP() ã\81¨ã\81\84ã\81\86ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯å\98å\9c¨ã\81\97ã\81ªã\81\84ã\80\82
その代わり、glibc で \fBgetdomainname\fP() がライブラリ関数として実装されており、この関数は \fBuname\fP(2)
の呼び出しで返された \fIdomainname\fP フィールドのコピーを返す。
.SH 関連項目
.SH 説明
.PP
\fBgetgroups\fP() は呼び出し元プロセスの補助グループ (supplementary group) ID を \fIlist\fP に返す。
-\fIsize\fP å¼\95ã\81\8dæ\95°ã\81«ã\81¯ã\80\81 \fIlist\fP ã\81«ã\82\88ã\82\8aå\8f\82ç\85§ã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\81«æ ¼ç´\8dã\81§ã\81\8dã\82\8bè¦\81ç´ ã\81®æ\9c\80大æ\95°ã\82\92è¨å®\9aã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83ã\82»ã\82¹ã\81\8c \fIsize\fP
-個より多くの補助グループのメンバの場合には、エラーとなる。 この関数を呼び出したプロセスの実効グループ ID が、
+\fIsize\fP å¼\95ã\81\8dæ\95°ã\81«ã\81¯ã\80\81 \fIlist\fP ã\81«ã\82\88ã\82\8aå\8f\82ç\85§ã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81§ã\81\8dã\82\8bè¦\81ç´ ã\81®æ\9c\80大æ\95°ã\82\92è¨å®\9aã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83ã\82»ã\82¹ã\81\8c
+\fIsize\fP 個より多くの補助グループのメンバの場合には、エラーとなる。 この関数を呼び出したプロセスの実効グループ ID が、
返されるリストに含まれるかどうかは規定されていない (したがって、アプリケーションは \fBgetegid\fP(2)
を呼び出し、その結果の値を追加・削除すべきである)。
\fIsize\fP が 0 ならば、 \fIlist\fP は修正されないが、そのプロセスの補助グループ ID の合計数が返される。 これを使うことで、それ以降の
-\fBgetgroups\fP() の呼び出しで必要となる動的割り当てバッファ \fIlist\fP のサイズを、呼び出し元が決定することができる。
+\fBgetgroups\fP() の呼び出しで必要となる動的割り当てバッファー \fIlist\fP のサイズを、呼び出し元が決定することができる。
.PP
\fBsetgroups\fP() は、呼び出し元プロセスの補助グループ ID を設定する。 適切な特権 (Linux では \fBCAP_SETGID\fP
ケーパビリティ (capability)) が必要である。 \fIsize\fP 引き数には、 \fIlist\fP
-により参照されるバッファに格納された補助グループ ID の数を指定する。
+ã\81«ã\82\88ã\82\8aå\8f\82ç\85§ã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\81\9fè£\9cå\8a©ã\82°ã\83«ã\83¼ã\83\97 ID ã\81®æ\95°ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82
.SH 返り値
\fBgetgroups\fP() は、成功すると補助グループ ID の数を返す。 エラーの場合 \-1 を返し、 \fIerrno\fP を適切に設定する。
2.6.4 以降では 65536)。
.TP
\fBENOMEM\fP
-メモリ不足。
+メモリー不足。
.TP
\fBEPERM\fP
呼び出し元プロセスが十分な特権を持っていない。
のバイト数を指定する (そのため、 \fIname\fP では文字列終端のヌルバイトは必要ない)。
\fBgethostname\fP() は、NULL 終端されたホスト名を、 \fIlen\fP バイトの長さの文字配列 \fIname\fP
-に格納して返す。ヌル終端されたホスト名が格納先のバッファよりも長い場合は、 ホスト名は切り詰められ、エラーは返されない (下記の「注意」の節を参照)。
-POSIX.1\-2001 では、結果の切り詰めが発生した場合に、 返されたバッファに終端のヌルバイトが含まれているかどうかは 規定されていない。
+ã\81«æ ¼ç´\8dã\81\97ã\81¦è¿\94ã\81\99ã\80\82ã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\81\9fã\83\9bã\82¹ã\83\88å\90\8dã\81\8cæ ¼ç´\8då\85\88ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\88ã\82\8aã\82\82é\95·ã\81\84å ´å\90\88ã\81¯ã\80\81 ã\83\9bã\82¹ã\83\88å\90\8dã\81¯å\88\87ã\82\8aè©°ã\82\81ã\82\89ã\82\8cã\80\81ã\82¨ã\83©ã\83¼ã\81¯è¿\94ã\81\95ã\82\8cã\81ªã\81\84 (ä¸\8bè¨\98ã\81®ã\80\8c注æ\84\8fã\80\8dã\81®ç¯\80ã\82\92å\8f\82ç\85§)ã\80\82
+POSIX.1\-2001 ã\81§ã\81¯ã\80\81çµ\90æ\9e\9cã\81®å\88\87ã\82\8aè©°ã\82\81ã\81\8cç\99ºç\94\9fã\81\97ã\81\9få ´å\90\88ã\81«ã\80\81 è¿\94ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«çµ\82端ã\81®ã\83\8cã\83«ã\83\90ã\82¤ã\83\88ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8bã\81©ã\81\86ã\81\8bã\81¯ è¦\8få®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.SH 返り値
成功した場合は 0 が返される。エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
.SH エラー
\fBsethostname\fP() において、呼び出した人が \fBCAP_SYS_ADMIN\fP ケーパビリティ (capability)
を持っていなかった。
.SH 準拠
-SVr4, 4.4BSD (これらのインタフェースは 4.2BSD で初めて登場した)。 POSIX.1\-2001 では
+SVr4, 4.4BSD (ã\81\93ã\82\8cã\82\89ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ 4.2BSD ã\81§å\88\9dã\82\81ã\81¦ç\99»å ´ã\81\97ã\81\9f)ã\80\82 POSIX.1\-2001 ã\81§ã\81¯
\fBgethostname\fP() については規定しているが、 \fBsethostname\fP() は規定していない。
.SH 注意
SUSv2 では「ホスト名が 255 バイトに制限される」ことを保証している。 POSIX.1\-2001 では「ホスト名 (終端のヌルバイトは含まない)
.\"
.TH GETITIMER 2 2014\-07\-08 Linux "Linux Programmer's Manual"
.SH 名前
-getitimer, setitimer \- ã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83«ã\83»ã\82¿ã\82¤ã\83\9eã\83¼ã\81®å\80¤ã\82\92å\8f\96å¾\97ã\81¾ã\81\9fã\81¯è¨å®\9aã\81\99ã\82\8b
+getitimer, setitimer \- インターバルタイマーの値を取得または設定する
.SH 書式
.nf
\fB#include <sys/time.h>\fP
\fB struct itimerval *\fP\fIold_value\fP\fB);\fP
.fi
.SH 説明
-ã\82·ã\82¹ã\83\86ã\83 ã\81¯ 1 å\80\8bã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«ã\81¤ã\81\8d 3 å\80\8bã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83«ã\83»ã\82¿ã\82¤ã\83\9eã\83¼ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\80\82 ã\81\9dã\82\8cã\81\9eã\82\8cã\81®ã\82¿ã\82¤ã\83\9eã\83¼ã\81¯å\88¥ã\80\85ã\81®æ\99\82é\96\93é \98å\9f\9fã\81§æ¸\9bå°\91ã\81\99ã\82\8bã\80\82
-ã\81\82ã\82\8bã\82¿ã\82¤ã\83\9eã\83¼ã\81\8cæº\80äº\86ã\81\99ã\82\8bã\81¨ã\80\81 ã\83\97ã\83ã\82»ã\82¹ã\81«ã\82·ã\82°ã\83\8aã\83«ã\81\8cé\80\81ã\82\89ã\82\8cã\80\81 ã\82¿ã\82¤ã\83\9eã\83¼ã\81¯ (0 ã\81§ã\81ªã\81\91ã\82\8cã\81°) æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83«ã\81«å\86\8dè¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82
+ã\82·ã\82¹ã\83\86ã\83 ã\81¯ 1 å\80\8bã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«ã\81¤ã\81\8d 3 å\80\8bã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83«ã\82¿ã\82¤ã\83\9eã\83¼ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\80\82 ã\81\9dã\82\8cã\81\9eã\82\8cã\81®ã\82¿ã\82¤ã\83\9eã\83¼ã\81¯å\88¥ã\80\85ã\81®æ\99\82é\96\93é \98å\9f\9fã\81§æ¸\9bå°\91ã\81\99ã\82\8bã\80\82 ã\81\82ã\82\8bã\82¿ã\82¤ã\83\9eã\83¼ã\81\8cæº\80äº\86ã\81\99ã\82\8bã\81¨ã\80\81
+プロセスにシグナルが送られ、 タイマーは (0 でなければ) 指定されたインターバルに再設定される。
.TP 1.5i
\fBITIMER_REAL\fP
実時間 (real time) で減少し、満了すると \fBSIGALRM\fP が送られる。
.SH エラー
.TP
\fBEFAULT\fP
-\fInew_value\fP, \fIold_value\fP, \fIcurr_value\fP が有効なポインタではない。
+\fInew_value\fP, \fIold_value\fP, \fIcurr_value\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fIwhich\fP が \fBITIMER_REAL\fP, \fBITIMER_VIRTUAL\fP, \fBITIMER_PROF\fP のどれでもない。 または
\fBgetitimer\fP() と \fBsetitimer\fP() は廃止予定とされており、 代わりに POSIX タイマー API
(\fBtimer_gettime\fP(2), \fBtimer_settime\fP(2) など) を使うことが推奨されている。
.SH 注意
-\fBfork\fP(2) ã\81§ä½\9cæ\88\90ã\81\95ã\82\8cã\81\9få\90ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\80\81 親ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83«ã\83»ã\82¿ã\82¤ã\83\9eã\83¼ã\82\92ç¶\99æ\89¿ã\81\97ã\81ªã\81\84ã\80\82 \fBexecve\fP(2)
-ã\81®å\89\8då¾\8cã\81§ã\81¯ã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83«ã\83»ã\82¿ã\82¤ã\83\9eã\83¼ã\81¯ä¿\9då\98ã\81\95ã\82\8cã\82\8bã\80\82
+\fBfork\fP(2) で作成された子プロセスは、 親プロセスのインターバルタイマーを継承しない。 \fBexecve\fP(2)
+の前後ではインターバルタイマーは保存される。
POSIX.1 では、 \fBsetitimer\fP() と、 \fBalarm\fP(2), \fBsleep\fP(3), \fBusleep\fP(3) という 3
-つのインタフェースとの相互の影響については規定していない。
+ã\81¤ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¨ã\81®ç\9b¸äº\92ã\81®å½±é\9f¿ã\81«ã\81¤ã\81\84ã\81¦ã\81¯è¦\8få®\9aã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\80\82
標準では、次の呼び出しの意味については規定されていない。
.\"
.TH GETPAGESIZE 2 2014\-08\-19 Linux "Linux Programmer's Manual"
.SH 名前
-getpagesize \- メモリのページサイズを取得する
+getpagesize \- ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83\9aã\83¼ã\82¸ã\82µã\82¤ã\82ºã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
\fB#include <unistd.h>\fP
.sp
.SH 説明
.\" .SH HISTORY
.\" This call first appeared in 4.2BSD.
-\fBgetpagesize\fP() 関数はメモリページの大きさをバイト数で返す。
+\fBgetpagesize\fP() é\96¢æ\95°ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\83\9aã\83¼ã\82¸ã\81®å¤§ã\81\8dã\81\95ã\82\92ã\83\90ã\82¤ã\83\88æ\95°ã\81§è¿\94ã\81\99ã\80\82
ここでいう「ページ」は固定長のブロックであり、
-\fBmmap\fP(2) で実行されるメモリ割り当てとファイルマッピングの単位である。
+\fBmmap\fP(2) で実行されるメモリー割り当てとファイルマッピングの単位である。
.SH 準拠
SVr4, 4.4BSD, SUSv2.
SUSv2 では \fBgetpagesize\fP() システムコールは「過去の遺物 (LEGACY)」とされており、
(ほとんどのシステムでは \fB_SC_PAGESIZE\fP の同義語として
\fB_SC_PAGE_SIZE\fP を使用することができる。)
-\fBgetpagesize\fP() が Linux のシステムコールとして存在するかどうかは、そのアーキテクチャに 依存している。
+\fBgetpagesize\fP() ã\81\8c Linux ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¨ã\81\97ã\81¦å\98å\9c¨ã\81\99ã\82\8bã\81\8bã\81©ã\81\86ã\81\8bã\81¯ã\80\81ã\81\9dã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81« ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
システムコールとして存在する場合には、カーネルシンボルの \fBPAGE_SIZE\fP を返す。 \fBPAGE_SIZE\fP
-ã\81®å\80¤ã\81¯ã\80\81ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81¨ã\83\9eã\82·ã\83³ã\83¢ã\83\87ã\83«ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82 ä¸\80è\88¬ã\81«ã\80\81ã\83\90ã\82¤ã\83\8aã\83ªã\81¯ã\80\81ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ごとに1つのバイナリ配布で済ませるために、
-ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81«ã\81¯ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\81\8cã\83\9eã\82·ã\83³ã\83¢ã\83\87ã\83«ã\81«ã\81¯ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\80\82 ã\81¤ã\81¾ã\82\8aã\80\81ã\83¦ã\83¼ã\82¶ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\82³ã\83³ã\83\91ã\82¤ã\83«æ\99\82ã\81«ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89 \fBPAGE_SIZE\fP
-を見つけて使用すべきではない。 少なくとも、マシンモデルについても依存性が存在する (sun4 のような)
-アーキテクチャにおいては本物のシステムコールを使用する必要がある。 尚、 glibc 2.0 では、 \fBgetpagesize\fP()
+ã\81®å\80¤ã\81¯ã\80\81ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81¨ã\83\9eã\82·ã\83³ã\83¢ã\83\87ã\83«ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82 ä¸\80è\88¬ã\81«ã\80\81ã\83\90ã\82¤ã\83\8aã\83ªã\81¯ã\80\81ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ごとに1つのバイナリ配布で済ませるために、
+ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\81¯ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\81\8cã\83\9eã\82·ã\83³ã\83¢ã\83\87ã\83«ã\81«ã\81¯ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\80\82 ã\81¤ã\81¾ã\82\8aã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\82³ã\83³ã\83\91ã\82¤ã\83«æ\99\82ã\81«ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89
+\fBPAGE_SIZE\fP を見つけて使用すべきではない。 少なくとも、マシンモデルについても依存性が存在する (sun4 のような)
+ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\81\8aã\81\84ã\81¦ã\81¯æ\9c¬ç\89©ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\92使ç\94¨ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82 å°\9aã\80\81 glibc 2.0 ã\81§ã\81¯ã\80\81 \fBgetpagesize\fP()
がシステムコールを使用せず、固定の値を返すために、この方法は 失敗する。glibc 2.1 では大丈夫である。
.SH 関連項目
\fBmmap\fP(2), \fBsysconf\fP(3)
*\fP\fIaddrlen\fP\fB);\fP
.SH 説明
\fBgetpeername\fP() は、ソケット(socket) \fIsockfd\fP に接続している相手のアドレスを、 \fIaddr\fP
-が指すバッファに格納して返す。 \fIaddrlen\fP 引き数は、 \fIaddr\fP が指している領域のサイズに初期化しておかなければならない。
+ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\97ã\81¦è¿\94ã\81\99ã\80\82 \fIaddrlen\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81 \fIaddr\fP ã\81\8cæ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bé \98å\9f\9fã\81®ã\82µã\82¤ã\82ºã\81«å\88\9dæ\9c\9få\8c\96ã\81\97ã\81¦ã\81\8aã\81\8bã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
関数が返る時には、 \fIaddrlen\fP には実際に返された名前のサイズが (バイト単位で) 格納される。
-提供されたバッファが小さすぎた場合には、名前は切り詰められる。
+æ\8f\90ä¾\9bã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cå°\8fã\81\95ã\81\99ã\81\8eã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81å\90\8då\89\8dã\81¯å\88\87ã\82\8aè©°ã\82\81ã\82\89ã\82\8cã\82\8bã\80\82
-渡されたバッファが小さ過ぎた場合は、返されるアドレスの末尾が切り詰められる。 この場合には、 \fIaddrlen\fP
+渡ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cå°\8fã\81\95é\81\8eã\81\8eã\81\9få ´å\90\88ã\81¯ã\80\81è¿\94ã\81\95ã\82\8cã\82\8bã\82¢ã\83\89ã\83¬ã\82¹ã\81®æ\9c«å°¾ã\81\8cå\88\87ã\82\8aè©°ã\82\81ã\82\89ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®å ´å\90\88ã\81«ã\81¯ã\80\81 \fIaddrlen\fP
には、呼び出し時に指定された値よりも大きな値が格納される。
.SH 返り値
成功した場合は 0 が返される。エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
.SH エラー
.TP
\fBEBADF\fP
-引き数 \fIsockfd\fP が有効なディスクリプタでない。
+å¼\95ã\81\8dæ\95° \fIsockfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEFAULT\fP
-\fIaddr\fP 引き数の指しているメモリが有効なプロセスのアドレス空間の 一部でない。
+\fIaddr\fP å¼\95ã\81\8dæ\95°ã\81®æ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\97ã\83ã\82»ã\82¹ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81® ä¸\80é\83¨ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fIaddrlen\fP が不正である (例えば、負で場合など)。
\fIwhich\fP の値は \fBPRIO_PROCESS\fP, \fBPRIO_PGRP\fP, \fBPRIO_USER\fP, のどれか一つで、 \fIwho\fP は
\fIwhich\fP に応じて解釈される (\fBPRIO_PROCESS\fP だとプロセス識別子、 \fBPRIO_PGRP\fP だとプロセスグループ識別子、
-\fBPRIO_USER\fP だと UID (ユーザID) と解釈される)。 \fIwho\fP がゼロならば、(それぞれ)呼び出したプロセス、
+\fBPRIO_USER\fP だと UID (ユーザーID) と解釈される)。 \fIwho\fP がゼロならば、(それぞれ)呼び出したプロセス、
呼び出したプロセスのプロセスグループ、 呼び出したプロセスの実UID を意味する。 \fIprio\fP は \-20 から 19 の範囲の値で
(但し以下の注意の項を参照のこと)、 デフォルトの優先度は 0 である; 小さな数字ほど、有利なスケジューリングとなる。
.SS "C ライブラリとカーネル ABI の違い"
カーネル内部では、nice 値は実際には 40 〜 1 の範囲を使って 表現されており (負の値はエラーコードとなるため)、こちらの値が システムコール
\fBsetpriority\fP() と \fBgetpriority\fP() で使用されている。 glibc
-のこれらのシステムコールのラッパー関数において、nice 値の ユーザ領域 (user\-land) とカーネル表現の間の変換が行われる。 変換式は
+のこれらのシステムコールのラッパー関数において、nice 値の ユーザー領域 (user\-land) とカーネル表現の間の変換が行われる。 変換式は
\fIunice\ =\ 20\ \-\ knice\fP となる。 (したがって、カーネルの 40..1 の範囲はユーザー空間で見える \-20..19
の範囲に対応する。)
.SH バグ
.TP
\fBRLIMIT_AS\fP
.\" since 2.0.27 / 2.1.12
-プロセスの仮想メモリ (アドレス空間) の最大サイズ (バイト単位)。 この制限は \fBbrk\fP(2), \fBmmap\fP(2),
+プロセスの仮想メモリー (アドレス空間) の最大サイズ (バイト単位)。 この制限は \fBbrk\fP(2), \fBmmap\fP(2),
\fBmremap\fP(2) の呼び出しに影響し、この制限を超えた場合は エラー \fBENOMEM\fP で失敗する。 また自動的なスタック拡張にも失敗する
(さらに \fBsigaltstack\fP(2) を使った代替スタックを利用可能にしていなかった場合には、 \fBSIGSEGV\fP を生成してそのプロセスを
kill する)。 この値は \fIlong\fP 型なので、32 ビットの \fIlong\fP 型を持つマシンでは、 この制限は最大で 2 GiB
\fBRLIMIT_CPU\fP
CPU 時間の上限 (秒数)。プロセスがソフトリミットに達した場合に、
\fBSIGXCPU\fP シグナルを送る。このシグナルに対するデフォルトの動作は、
-プロセスの終了である。ただし、シグナルをキャッチして、ハンドラがメイン
+ã\83\97ã\83ã\82»ã\82¹ã\81®çµ\82äº\86ã\81§ã\81\82ã\82\8bã\80\82ã\81\9fã\81 ã\81\97ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\82\92ã\82ã\83£ã\83\83ã\83\81ã\81\97ã\81¦ã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cã\83¡ã\82¤ã\83³
プログラムに制御を返すこともできる。プロセスが CPU 時間を使い続けた
場合は、ハードリミットに達するまで 1 秒毎にプロセスに \fBSIGXCPU\fP を送り、
ハードリミットに達すると \fBSIGKILL\fP を送る。
このプロセスが実行できる \fBflock\fP(2) ロック数と \fBfcntl\fP(2) リース数の合計値を制限する。
.TP
\fBRLIMIT_MEMLOCK\fP
-RAM 内にロックできるメモリの最大バイト数。 実際には、この制限はシステムページサイズの最も近い倍数に 切り捨てて丸められる。 この制限は
+RAM å\86\85ã\81«ã\83ã\83\83ã\82¯ã\81§ã\81\8dã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81®æ\9c\80大ã\83\90ã\82¤ã\83\88æ\95°ã\80\82 å®\9fé\9a\9bã\81«ã\81¯ã\80\81ã\81\93ã\81®å\88¶é\99\90ã\81¯ã\82·ã\82¹ã\83\86ã\83 ã\83\9aã\83¼ã\82¸ã\82µã\82¤ã\82ºã\81®æ\9c\80ã\82\82è¿\91ã\81\84å\80\8dæ\95°ã\81« å\88\87ã\82\8aæ\8d¨ã\81¦ã\81¦ä¸¸ã\82\81ã\82\89ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®å\88¶é\99\90ã\81¯
\fBmlock\fP(2), \fBmlockall\fP(2), \fBmmap\fP(2) の \fBMAP_LOCKED\fP 操作に影響する。 Linux
2.6.9 以降では \fBshmctl\fP(2) \fBSHM_LOCK\fP 操作にも影響する。 この操作は呼び出し元プロセスの実 (real) ユーザー
-ID にロックされる 共有メモリセグメント (\fBshmget\fP(2) を参照) の合計バイト数の最大値を設定する。 \fBshmctl\fP(2)
+ID ã\81«ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8b å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88 (\fBshmget\fP(2) ã\82\92å\8f\82ç\85§) ã\81®å\90\88è¨\88ã\83\90ã\82¤ã\83\88æ\95°ã\81®æ\9c\80大å\80¤ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82 \fBshmctl\fP(2)
\fBSHM_LOCK\fP によるロックは、 \fBmlock\fP(2), \fBmlockall\fP(2), \fBmmap\fP(2) の
-\fBMAP_LOCKED\fP によって確立されるプロセス毎のメモリロックとは分けて数える。 1 つのプロセスはこの制限までのバイトをロックできる。
+\fBMAP_LOCKED\fP ã\81«ã\82\88ã\81£ã\81¦ç¢ºç«\8bã\81\95ã\82\8cã\82\8bã\83\97ã\83ã\82»ã\82¹æ¯\8eã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83ã\83\83ã\82¯ã\81¨ã\81¯å\88\86ã\81\91ã\81¦æ\95°ã\81\88ã\82\8bã\80\82 1 ã\81¤ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\81\93ã\81®å\88¶é\99\90ã\81¾ã\81§ã\81®ã\83\90ã\82¤ã\83\88ã\82\92ã\83ã\83\83ã\82¯ã\81§ã\81\8dã\82\8bã\80\82
この制限には 2 つの種類がある。 2.6.9 より前の Linux カーネル では、
-この制限は特権プロセスによってロックされるメモリの合計を制御していた。 Linux 2.6.9
-以é\99\8dã\81§ã\81¯ã\80\81ç\89¹æ¨©ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\83ã\83\83ã\82¯ã\81\99ã\82\8bã\83¡ã\83¢ã\83ªã\81®å\90\88è¨\88ã\81«å\88¶é\99\90ã\81¯ã\81ªã\81\8fã\80\81 代ã\82\8fã\82\8aã\81«ã\81\93ã\81®å\88¶é\99\90ã\81¯é\9d\9eç\89¹æ¨©ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\83ã\83\83ã\82¯ã\81\99ã\82\8bã\83¡ã\83¢ã\83ªの合計に 適用されるようになった。
+ã\81\93ã\81®å\88¶é\99\90ã\81¯ç\89¹æ¨©ã\83\97ã\83ã\82»ã\82¹ã\81«ã\82\88ã\81£ã\81¦ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81®å\90\88è¨\88ã\82\92å\88¶å¾¡ã\81\97ã\81¦ã\81\84ã\81\9fã\80\82 Linux 2.6.9
+以é\99\8dã\81§ã\81¯ã\80\81ç\89¹æ¨©ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\83ã\83\83ã\82¯ã\81\99ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81®å\90\88è¨\88ã\81«å\88¶é\99\90ã\81¯ã\81ªã\81\8fã\80\81 代ã\82\8fã\82\8aã\81«ã\81\93ã\81®å\88¶é\99\90ã\81¯é\9d\9eç\89¹æ¨©ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\83ã\83\83ã\82¯ã\81\99ã\82\8bã\83¡ã\83¢ã\83ªã\83¼の合計に 適用されるようになった。
.TP
\fBRLIMIT_MSGQUEUE\fP (Linux 2.6.8 以降)
呼び出し元プロセスの実ユーザー ID に対して、 POSIX メッセージキューのために確保できるバイト数の制限を指定する。 この制限は
-\fBmq_open\fP(3) に対して適用される。 ユーザが作成した各々のメッセージキューのバイト数は
+\fBmq_open\fP(3) ã\81«å¯¾ã\81\97ã\81¦é\81©ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cä½\9cæ\88\90ã\81\97ã\81\9få\90\84ã\80\85ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\81®ã\83\90ã\82¤ã\83\88æ\95°ã\81¯
以下の式により計算され、(そのキューが削除されるまでの間) この制限の計算対象に含められる。
.nf
\fImsg_msg\fP と \fIposix_msg_tree_node\fP はカーネル内部の構造体である。
上記の式での「オーバーヘッド」加算分は、実装において必要となるオーバーヘッドを考慮したものである。 また、これにより、ユーザーが長さ 0
-のメッセージを無制限に作れないことが保証される (このようなメッセージであっても、 記録のためのオーバーヘッドでシステムメモリを消費する)。
+ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92ç\84¡å\88¶é\99\90ã\81«ä½\9cã\82\8cã\81ªã\81\84ã\81\93ã\81¨ã\81\8cä¿\9d証ã\81\95ã\82\8cã\82\8b (ã\81\93ã\81®ã\82\88ã\81\86ã\81ªã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81§ã\81\82ã\81£ã\81¦ã\82\82ã\80\81 è¨\98é\8c²ã\81®ã\81\9fã\82\81ã\81®ã\82ªã\83¼ã\83\90ã\83¼ã\83\98ã\83\83ã\83\89ã\81§ã\82·ã\82¹ã\83\86ã\83 ã\83¡ã\83¢ã\83ªã\83¼ã\82\92æ¶\88è²»ã\81\99ã\82\8b)ã\80\82
.TP
\fBRLIMIT_NICE\fP (Linux 2.6.12 以降, 下記の「バグ」の節も参照)
\fBsetpriority\fP(2) や \fBnice\fP(2) を使って引き上げられるプロセスの nice 値の上限を指定する。 nice
発生する。通常、負の値は特別な意味を持っているからである。 例えば、通常は \fBRLIM_INFINITY\fP の値は \-1 である)。
.TP
\fBRLIMIT_NOFILE\fP
-このプロセスがオープンできるファイルディスクリプタ数の最大値より 1 大きい値を指定する。 (\fBopen\fP(2), \fBpipe\fP(2),
+このプロセスがオープンできるファイルディスクリプター数の最大値より 1 大きい値を指定する。 (\fBopen\fP(2), \fBpipe\fP(2),
\fBdup\fP(2) などにより) この上限を超えようとした場合、エラー \fBEMFILE\fP が発生する (歴史的に、BSD ではこの上限は
\fBRLIMIT_OFILE\fP という名前となっている)。
.TP
.\" "Inconsistent credential checking in prlimit() syscall"
\fIpid\fP 引き数は呼び出しの操作対象となるプロセス ID を指定する。 \fIpid\fP が 0
の場合、呼び出しは呼び出し元プロセスに対して適用される。 自分以外のプロセスのリソースの設定と取得を行うためには、 呼び出し元プロセスが
-\fBCAP_SYS_RESOURCE\fP ケーパビリティを持っているか、 対象となるプロセスの実ユーザ ID、 実効ユーザ ID、 保存
-set\-user\-ID が呼び出し元プロセスの実ユーザ ID と一致し、 かつ、 対象となるプロセスの実グループ ID、 実効グループ ID、 保存
+\fBCAP_SYS_RESOURCE\fP ケーパビリティを持っているか、 対象となるプロセスの実ユーザー ID、 実効ユーザー ID、 保存
+set\-user\-ID が呼び出し元プロセスの実ユーザー ID と一致し、 かつ、 対象となるプロセスの実グループ ID、 実効グループ ID、 保存
set\-group\-ID が呼び出し元プロセスの実グループ ID と一致していなければならない。
.SH 返り値
成功した場合、これらのシステムコールは 0 を返す。
.SH エラー
.TP
\fBEFAULT\fP
-場所を指すポインタ引き数がアクセス可能なアドレス空間外を指している。
+場所を指すポインター引き数がアクセス可能なアドレス空間外を指している。
.TP
\fBEINVAL\fP
\fIresource\fP で指定された値が有効でない。
.\" Tested Solaris 10, FreeBSD 9, OpenBSD 5.0
.\" FIXME . https://bugzilla.kernel.org/show_bug.cgi?id=50951
Linux 2.6.12 以降では、 プロセスがその \fBRLIMIT_CPU\fP ソフトリミットに達し、 \fBSIGXCPU\fP
-ã\81«å¯¾ã\81\97ã\81¦ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©を起動するだけでなく、 カーネルは 1 秒間ソフトリミットを増やす。 そのプロセスが
+ã\81«å¯¾ã\81\97ã\81¦ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼を起動するだけでなく、 カーネルは 1 秒間ソフトリミットを増やす。 そのプロセスが
CPU 時間を消費し続けている限り、 ハードリミットに達するまで、この動作が繰り返される。 ハードリミットに達すると、その時点でプロセスは kill
される。 他の実装では、上記のような \fBRLIMIT_CPU\fP ソフトリミットの変更は行われず、 おそらく Linux の動作は標準に準拠していない。
移植性が必要なアプリケーションではこの Linux 固有の動作を前提にするのは避けるべきである。 Linux 固有の上限
.TP
\fBRUSAGE_THREAD\fP (Linux 2.6.26 以降)
呼び出したスレッドに関する資源使用量の統計を返す。 \fI<sys/resource.h>\fP からこの定数の定義を得るためには、
-((\fIどの\fPヘッダファイルをインクルードするよりも前に) 機能検査マクロ \fB_GNU_SOURCE\fP を定義しなければならない。
+((\fIã\81©ã\81®\fPã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\99ã\82\8bã\82\88ã\82\8aã\82\82å\89\8dã\81«) æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83 \fB_GNU_SOURCE\fP ã\82\92å®\9a義ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.PP
資源使用量は \fIusage\fP が指す構造体に格納されて返される。 構造体は以下の形式である。
.PP
struct timeval ru_stime; /* 使用されたシステム CPU 時間 */
long ru_maxrss; /* RAM 上に存在する仮想ページのサイズ
(resident set size) の最大値 */
- long ru_ixrss; /* 共有メモリの合計サイズ */
+ long ru_ixrss; /* å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\90\88è¨\88ã\82µã\82¤ã\82º */
long ru_idrss; /* 非共有データの合計サイズ */
long ru_isrss; /* 非共有スタックの合計サイズ */
long ru_minflt; /* ページの再利用 (ソフトページフォルト) */
各フィールドの詳細は以下の通りである。
.TP
\fIru_utime\fP
-ユーザモードでの実行で消費された合計時間。 \fItimeval\fP 構造体 (秒とミリ秒) で表現される。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\83¢ã\83¼ã\83\89ã\81§ã\81®å®\9fè¡\8cã\81§æ¶\88è²»ã\81\95ã\82\8cã\81\9få\90\88è¨\88æ\99\82é\96\93ã\80\82 \fItimeval\fP æ§\8bé\80 ä½\93 (ç§\92ã\81¨ã\83\9fã\83ªç§\92) ã\81§è¡¨ç\8f¾ã\81\95ã\82\8cã\82\8bã\80\82
.TP
\fIru_stime\fP
カーネルモードでの実行で消費された合計時間。 \fItimeval\fP 構造体 (秒とミリ秒) で表現される。
.fi
.SH 説明
\fBgetsockname\fP() は、ソケット \fIsockfd\fP に結び付けられている現在のアドレスを、 \fIaddr\fP
-が指すバッファに格納して返す。 \fIaddrlen\fP 引き数は、 \fIaddr\fP が指している領域のサイズ (バイト単位)
+ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\97ã\81¦è¿\94ã\81\99ã\80\82 \fIaddrlen\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81 \fIaddr\fP ã\81\8cæ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bé \98å\9f\9fã\81®ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d)
に初期化しておかなければならない。 関数が返る時には、 \fIaddrlen\fP にはソケットアドレスの実際のサイズ (バイト単位) が格納される。
-渡されたバッファが小さ過ぎた場合は、返されるアドレスの末尾が切り詰められる。
+渡ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cå°\8fã\81\95é\81\8eã\81\8eã\81\9få ´å\90\88ã\81¯ã\80\81è¿\94ã\81\95ã\82\8cã\82\8bã\82¢ã\83\89ã\83¬ã\82¹ã\81®æ\9c«å°¾ã\81\8cå\88\87ã\82\8aè©°ã\82\81ã\82\89ã\82\8cã\82\8bã\80\82
この場合には、 \fIaddrlen\fP には、呼び出し時に指定された値よりも大きな値が格納される。
.SH 返り値
成功した場合にはゼロが返される。エラー時には \-1 が返され、 \fIerrno\fP が適切に設定される。
引き数 \fIsockfd\fP は有効なディスクリプターでない。
.TP
\fBEFAULT\fP
-引き数 \fIaddr\fP の指しているメモリがプロセスのアドレス空間の有効な部分ではない。
+å¼\95ã\81\8dæ\95° \fIaddr\fP ã\81®æ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\83\97ã\83ã\82»ã\82¹ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81®æ\9c\89å\8a¹ã\81ªé\83¨å\88\86ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fIaddrlen\fP が不正である (例えば、負で場合など)。
\fB const void *\fP\fIoptval\fP\fB, socklen_t \fP\fIoptlen\fP\fB);\fP
.fi
.SH 説明
-\fBgetsockopt\fP() と \fBsetsockopt\fP() は、ファイルディスクリプタ \fIsocket\fP
+\fBgetsockopt\fP() と \fBsetsockopt\fP() は、ファイルディスクリプター \fIsocket\fP
で参照されるソケットに関連するオプションの操作を行う。 オプションは複数のプロトコル層(level)に存在するかもしれないが、
これらは常に最上位のソケット層へと設定される。
-ã\82½ã\82±ã\83\83ã\83\88ã\83»ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92æ\93\8dä½\9cã\81\99ã\82\8bé\9a\9bã\81«ã\81¯ã\80\81ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81®å±¤ (level) ã\81¨ ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81®å\90\8då\89\8dã\82\92æ\8c\87å®\9aã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\82½ã\82±ã\83\83ã\83\88 API
+ソケットオプションを操作する際には、オプションの層 (level) と オプションの名前を指定しなければならない。 ソケット API
層でオプションを操作する為には、 \fIlevel\fP を \fBSOL_SOCKET\fP に指定する。
他の全ての層でオプションを操作する為には、与えられたオプションの 制御主体となるプロトコルのプロトコル番号を指定する。例えば、 オプションが
\fBTCP\fP プロトコルで解釈されるべきことを指示するには、 \fIlevel\fP に \fBTCP\fP のプロトコル番号を指定しなければならない。
\fIoptlen\fP は値と結果両用の引き数で、最初に \fIoptval\fP の指しているバッファーのサイズを与え、実際に返される値のサイズに
書き換えられる。もしオプション値を与えず、返されもしない場合には \fIoptval\fP は NULL でも良い。
-\fIoptname\fP ã\81\8aã\82\88ã\81³æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¯è§£é\87\88ã\81\95ã\82\8cã\81\9aã\81«ã\80\81é\81©å\88\87ã\81ªã\83\97ã\83ã\83\88ã\82³ã\83«ã\83»ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81« 渡ã\81\95ã\82\8cã\81¦è§£é\87\88ã\81\95ã\82\8cã\82\8bã\80\82ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\83»ファイル
+\fIoptname\fP ã\81\8aã\82\88ã\81³æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¯è§£é\87\88ã\81\95ã\82\8cã\81\9aã\81«ã\80\81é\81©å\88\87ã\81ªã\83\97ã\83ã\83\88ã\82³ã\83«ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81« 渡ã\81\95ã\82\8cã\81¦è§£é\87\88ã\81\95ã\82\8cã\82\8bã\80\82ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ファイル
\fI<sys/socket.h>\fP には後述のソケット層のオプションの定義が含まれている。 他のプロトコル層では名前や形式は異なる。
-マニュアルのセクション 4 の適切なエントリを参照すること。
+ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ 4 ã\81®é\81©å\88\87ã\81ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82
ほとんどのソケット層のオプションは \fIoptval\fP に \fIint\fP 引き数を利用する。 \fBsetsockopt\fP()
で、二値(boolean)オプションを有効(enable)にするにはゼロ以外を指定し、 無効(disable)にするにはゼロを指定する。
.\" not document the
.\" .BR SO_SNDLOWAT ", " SO_RCVLOWAT ", " SO_SNDTIMEO ", " SO_RCVTIMEO
.\" options
-SVr4, 4.4BSD (ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81¯ 4.2BSD ã\81§æ\9c\80å\88\9dã\81«ç\8f¾ã\82\8cã\81\9f), POSIX.1\-2001.
+SVr4, 4.4BSD (これらのシステムコールは 4.2BSD で最初に現れた), POSIX.1\-2001.
.SH 注意
POSIX.1\-2001 では \fI<sys/types.h>\fP のインクルードは必須とされておらず、 Linux
-ã\81§ã\81¯ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83\95ã\82¡ã\82¤ã\83«ã\81¯å¿\85è¦\81ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81æ´å\8f²ç\9a\84ã\81«ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å®\9fè£\85 (BSD ç³») ã\81§ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ファイルが
+ã\81§ã\81¯ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81¯å¿\85è¦\81ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81æ´å\8f²ç\9a\84ã\81«ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å®\9fè£\85 (BSD ç³») ã\81§ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ファイルが
必要であり、移植性が必要なアプリケーションではこのファイルを インクルードするのが賢明であろう。
\fBgetsockopt\fP() と \fBsetsockopt\fP() の \fIoptlen\fP 引き数は実際は \fIint [*]\fP である (そして
.PP
当然のことながら、夏時間がどの期間に実施されるかを国ごとの簡単なアルゴリズムで
導くことができないことが判明した。 実際、夏時間の期間は予測不可能な政治的決定で
-決å®\9aã\81\95ã\82\8cã\82\8bã\80\82ã\81\9dã\81®ã\81\9fã\82\81ã\80\81ã\81\93ã\81®æ\96¹æ³\95ã\81§ã\82¿ã\82¤ã\83 ã\83»ã\82¾ã\83¼ã\83³ã\82\92表ã\81\99ã\81\93ã\81¨ã\81¯æ\96念ã\81\95ã\82\8cã\81\9fã\80\82
+決定される。そのため、この方法でタイムゾーンを表すことは断念された。
Linux において \fBsettimeofday\fP() を呼び出すときは、
\fItz_dsttime\fP フィールドを 0 にするべきである。
.SH 関連項目
で参照されたオープン済みファイルの情報だけを取得する点が異なる (\fIfd\fP は \fBopen\fP(2) によって返される)。
.PP
拡張属性の名前 \fIname\fP は普通のヌル終端された文字列である。 名前には、名前空間を表す接頭辞 (prefix) が含まれる; 個々の inode
-ã\81«å¯¾ã\81\97ã\81¦ã\80\81äº\92ã\81\84ã\81«ç\8b¬ç«\8bã\81ªå\90\8då\89\8d空é\96\93ã\81\8cè¤\87æ\95°ã\81\82ã\81£ã\81¦ã\82\82ã\82\88ã\81\84ã\80\82 æ\8b¡å¼µå±\9eæ\80§ã\81®å\80¤ã\81¯ã\80\81ã\81\82ã\82\8bä¸\80å®\9aã\81®é\95·ã\81\95ã\81®ä»»æ\84\8fã\81®ã\83\86ã\82ã\82¹ã\83\88ã\83»ã\83\87ã\83¼ã\82¿ã\81¾ã\81\9fã\81¯ ã\83\90ã\82¤ã\83\8aã\83ªã\83»データの集合である。
+ã\81«å¯¾ã\81\97ã\81¦ã\80\81äº\92ã\81\84ã\81«ç\8b¬ç«\8bã\81ªå\90\8då\89\8d空é\96\93ã\81\8cè¤\87æ\95°ã\81\82ã\81£ã\81¦ã\82\82ã\82\88ã\81\84ã\80\82 æ\8b¡å¼µå±\9eæ\80§ã\81®å\80¤ã\81¯ã\80\81ã\81\82ã\82\8bä¸\80å®\9aã\81®é\95·ã\81\95ã\81®ä»»æ\84\8fã\81®ã\83\86ã\82ã\82¹ã\83\88ã\83\87ã\83¼ã\82¿ã\81¾ã\81\9fã\81¯ ã\83\90ã\82¤ã\83\8aã\83ªデータの集合である。
.PP
-\fIsize\fP に 0 を指定して空のバッファをこれらのシステムコールに渡すことができ、 この場合には指定された名前の拡張属性の現在のサイズが返される。
-この方法は、拡張属性の値を保持するのに十分な大きさのバッファ・サイズを 見積もるのに使うことができる、
+\fIsize\fP に 0 を指定して空のバッファーをこれらのシステムコールに渡すことができ、
+この場合には指定された名前の拡張属性の現在のサイズが返される。 この方法は、拡張属性の値を保持するのに十分な大きさのバッファーサイズを
+見積もるのに使うことができる、
.PP
-ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\83»ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ã\80\81å\88\9dæ\9c\9fã\83\90ã\83\83ã\83\95ã\82¡ã\81®ã\82µã\82¤ã\82ºã\81®æ\8e¨æ¸¬ã\82\92ã\81\97ã\81\9fã\82\8aã\80\81 ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\81\8cå°\8fã\81\95ã\81\99ã\81\8eã\81\9fã\81\93ã\81¨ã\82\92è¿\94ã\82\8aå\80¤ã\81§ç\9f¥ã\82\89ã\81\9bã\82\8bã\81\93ã\81¨ã\81§ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92大ã\81\8dã\81\8f
-したりできるように設計されている。
+ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ã\80\81å\88\9dæ\9c\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82µã\82¤ã\82ºã\81®æ\8e¨æ¸¬ã\82\92ã\81\97ã\81\9fã\82\8aã\80\81
+与えられたバッファーが小さすぎたことを返り値で知らせることでバッファーを大きく したりできるように設計されている。
.SH 返り値
成功した場合、拡張属性の値の長さを表す非負の数が返される。 失敗した場合、 \-1 が返され、 \fIerrno\fP に適切な値がセットされる。
.SH エラー
拡張属性がそのファイルシステムでサポートされていない、 もしくは無効になっている。
.TP
\fBERANGE\fP
-\fIvalue\fP バッファの大きさ \fIsize\fP が結果を保持するのに十分な大きさでなかった。
+\fIvalue\fP ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å¤§ã\81\8dã\81\95 \fIsize\fP ã\81\8cçµ\90æ\9e\9cã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªå¤§ã\81\8dã\81\95ã\81§ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.PP
上記に加えて、 \fBstat\fP(2) に書かれているエラーが発生する場合もある。
.SH バージョン
.SH エラー
.TP
\fBEPERM\fP
-ユーザプロセスに対しては、常にこのエラーとなる。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\83\97ã\83ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦ã\81¯ã\80\81常ã\81«ã\81\93ã\81®ã\82¨ã\83©ã\83¼ã\81¨ã\81ªã\82\8bã\80\82
.SH バージョン
Linux 2.3.13 以降では、もはやこのシステムコールは存在しない。
.SH 準拠
リンク切れのシンボリックリンクである。
.TP
\fBENOMEM\fP
-カーネルメモリが十分になかった。
+ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå\8d\81å\88\86ã\81«ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBENOSPC\fP
-inotify 監視対象の総数がユーザが追加できる上限に達していた。 もしくは、必要な資源の割り当てにカーネルが失敗した。
+inotify ç\9b£è¦\96対象ã\81®ç·\8fæ\95°ã\81\8cã\83¦ã\83¼ã\82¶ã\83¼ã\81\8c追å\8a ã\81§ã\81\8dã\82\8bä¸\8aé\99\90ã\81«é\81\94ã\81\97ã\81¦ã\81\84ã\81\9fã\80\82 ã\82\82ã\81\97ã\81\8fã\81¯ã\80\81å¿\85è¦\81ã\81ªè³\87æº\90ã\81®å\89²ã\82\8aå½\93ã\81¦ã\81«ã\82«ã\83¼ã\83\8dã\83«ã\81\8c失æ\95\97ã\81\97ã\81\9fã\80\82
.SH バージョン
inotify は Linux カーネル 2.6.13 に組み込まれた。
.SH 準拠
(\fBinotify_init1\fP()) 無効な値が \fIflags\fP に指定された。
.TP
\fBEMFILE\fP
-inotify インスタンスの総数がユーザ単位の上限に達していた。
+inotify インスタンスの総数がユーザー単位の上限に達していた。
.TP
\fBENFILE\fP
inotify ファイルディスクリプターの総数がシステムの上限に達していた。
.TP
\fBENOMEM\fP
-カーネルメモリが十分になかった。
+ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå\8d\81å\88\86ã\81«ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.SH バージョン
\fBinotify_init\fP() は Linux 2.6.13 で初めて登場し、
ライブラリによるサポートは glibc バージョン 2.4 で追加された。
.SH 名前
intro \- システムコールの説明
.SH 説明
-マニュアルの 2 章では Linux のシステムコールについて説明している。 システムコールは Linux カーネルへのエントリポイントである。
+ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\81® 2 ç« ã\81§ã\81¯ Linux ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81«ã\81¤ã\81\84ã\81¦èª¬æ\98\8eã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ Linux ã\82«ã\83¼ã\83\8dã\83«ã\81¸ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\83\9dã\82¤ã\83³ã\83\88ã\81§ã\81\82ã\82\8bã\80\82
通常は、システムコールは直接起動される訳ではなく、 ほとんどのシステムコールには対応する C ライブラリのラッパー関数があり、
そのラッパー関数がシステムコールを呼び出すのに必要な処理を実行する。 そのため、システムコールを呼び出すのは通常のライブラリ関数を呼び出すのと
同じように見える。
成功時にシステムコールが返す値はシステムコールにより異なる。 多くのシステムコールは成功時に 0 を返すが、 成功時に 0
以外の値を返すシステムコールもある。 詳細は個々のマニュアルページで説明されている。
-マニュアルページの「書式」の節に規定されたヘッダファイルから関数の定義を 得るために、プログラマが機能検査マクロを定義しなければならない場合がある
-(機能検査マクロの定義が必要な場合、これらの機能検査マクロの定義は 「どの」ヘッダファイルのインクルードよりも前で行われなければならない)。
+ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81®ã\80\8cæ\9b¸å¼\8fã\80\8dã\81®ç¯\80ã\81«è¦\8få®\9aã\81\95ã\82\8cã\81\9fã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89é\96¢æ\95°ã\81®å®\9a義ã\82\92 å¾\97ã\82\8bã\81\9fã\82\81ã\81«ã\80\81ã\83\97ã\83ã\82°ã\83©ã\83\9eã\81\8cæ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83ã\82\92å®\9a義ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84å ´å\90\88ã\81\8cã\81\82ã\82\8b
+(æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83ã\81®å®\9a義ã\81\8cå¿\85è¦\81ã\81ªå ´å\90\88ã\80\81ã\81\93ã\82\8cã\82\89ã\81®æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83ã\81®å®\9a義ã\81¯ ã\80\8cã\81©ã\81®ã\80\8dã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\82\88ã\82\8aã\82\82å\89\8dã\81§è¡\8cã\82\8fã\82\8cã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84)ã\80\82
このような場合には、必要なマクロがマニュアルページで説明されている。 機能検査マクロのさらなる情報については、
\fBfeature_test_macros\fP(7) を参照のこと。
.SH 準拠
このような場合は、プログラマは \fBsyscall\fP(2) を使って、自分でシステムコールを呼び出さなければならない。 過去には、
\fB_syscall\fP(2) マクロの一つを使ってシステムコールの呼び出すこともできた。
.SS 著者と著作権
-著者と著作権に関しては各マニュアルページのソースのヘッダを参照すること。 これらはページごとに異なる可能性があることに注意してほしい。
+è\91\97è\80\85ã\81¨è\91\97ä½\9c権ã\81«é\96¢ã\81\97ã\81¦ã\81¯å\90\84ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81®ã\82½ã\83¼ã\82¹ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82 ã\81\93ã\82\8cã\82\89ã\81¯ã\83\9aã\83¼ã\82¸ã\81\94ã\81¨ã\81«ç\95°ã\81ªã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\80\82
.SH 関連項目
.ad l
.nh
.PP
\fBio_cancel\fP() システムコールは、過去に \fBio_submit\fP(2) を使って登録された非同期 I/O (AIO)
操作の取り消しを行おうとする。 \fIiocb\fP 引き数は取り消したい操作が示し、 \fIctx_id\fP 引き数は、取り消しを行う操作が登録された AIO
-コンテキストである。操作の取り消しに成功すると、対象のイベントは \fIresult\fP で指されたメモリに コピーされる
+ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81§ã\81\82ã\82\8bã\80\82æ\93\8dä½\9cã\81®å\8f\96ã\82\8aæ¶\88ã\81\97ã\81«æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81対象ã\81®ã\82¤ã\83\99ã\83³ã\83\88ã\81¯ \fIresult\fP ã\81§æ\8c\87ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81« ã\82³ã\83\94ã\83¼ã\81\95ã\82\8cã\82\8b
(このとき、完了キューへの移動は行われない)。
.SH 返り値
成功した場合、 \fBio_cancel\fP() は 0 を返す。 失敗時の返り値については、「注意」の節を参照すること。
\fIctx_id\fP で指定された AIO コンテキストが無効である。
.TP
\fBENOSYS\fP
-\fBio_cancel\fP() はこのアーキテクチャでは実装されていない。
+\fBio_cancel\fP() ã\81¯ã\81\93ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯å®\9fè£\85ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.SH バージョン
.PP
-é\9d\9eå\90\8cæ\9c\9f I/O ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81¯ Linux 2.5 ã\81§å\88\9dã\82\81ã\81¦ç\99»å ´ã\81\97ã\81\9fã\80\82
+非同期 I/O システムコールは Linux 2.5 で初めて登場した。
.SH 準拠
.PP
\fBio_cancel\fP() は Linux 固有であり、移植を想定したプログラムで使用すべきではない。
\fIctx_id\fP で指定された AIO コンテキストが無効である。
.TP
\fBENOSYS\fP
-\fBio_destroy\fP() はこのアーキテクチャでは実装されていない。
+\fBio_destroy\fP() ã\81¯ã\81\93ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯å®\9fè£\85ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.SH バージョン
.PP
-é\9d\9eå\90\8cæ\9c\9f I/O ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81¯ Linux 2.5 ã\81§å\88\9dã\82\81ã\81¦ç\99»å ´ã\81\97ã\81\9fã\80\82
+非同期 I/O システムコールは Linux 2.5 で初めて登場した。
.SH 準拠
.PP
\fBio_destroy\fP() は Linux 固有であり、移植を想定したプログラムで使用すべきではない。
.SH エラー
.TP
\fBEFAULT\fP
-\fIevents\fP または \fItimeout\fP が無効なポインタである。
+\fIevents\fP ã\81¾ã\81\9fã\81¯ \fItimeout\fP ã\81\8cç\84¡å\8a¹ã\81ªã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBEINVAL\fP
\fIctx_id\fP が無効である。もしくは、\fImin_nr\fP または \fInr\fP が 範囲外の値である。
.TP
\fBEINTR\fP
-シグナルハンドラにより割り込まれた。 \fBsignal\fP(7) 参照。
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9fã\80\82 \fBsignal\fP(7) å\8f\82ç\85§ã\80\82
.TP
\fBENOSYS\fP
-\fBio_getevents\fP() がこのアーキテクチャでは実装されていない。
+\fBio_getevents\fP() ã\81\8cã\81\93ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯å®\9fè£\85ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.SH バージョン
.PP
-é\9d\9eå\90\8cæ\9c\9f I/O ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81¯ Linux 2.5 ã\81§å\88\9dã\82\81ã\81¦ç\99»å ´ã\81\97ã\81\9fã\80\82
+非同期 I/O システムコールは Linux 2.5 で初めて登場した。
.SH 準拠
.PP
\fBio_getevents\fP() は Linux 固有であり、移植を想定したプログラムで 使用すべきではない。
は、すでに存在する AIO コンテキストを指していてはならず、
\fBio_setup\fP() の呼び出しの前に 0 に初期化されていなければならない。
AIO コンテキストの作成に成功すると、 \fI*ctx_idp\fP に作成された AIO
-コンテキストへのポインタがセットされる。
+ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82
.SH 返り値
成功した場合、 \fBio_setup\fP() は 0 を返す。 失敗時の返り値については、「注意」の節を参照すること。
.SH エラー
.TP
\fBEAGAIN\fP
-指定された \fInr_events\fP がユーザが使用できるイベント数の上限を越えている。イベント数の上限は
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9f \fInr_events\fP ã\81\8cã\83¦ã\83¼ã\82¶ã\83¼ã\81\8c使ç\94¨ã\81§ã\81\8dã\82\8bã\82¤ã\83\99ã\83³ã\83\88æ\95°ã\81®ä¸\8aé\99\90ã\82\92è¶\8aã\81\88ã\81¦ã\81\84ã\82\8bã\80\82ã\82¤ã\83\99ã\83³ã\83\88æ\95°ã\81®ä¸\8aé\99\90ã\81¯
\fI/proc/sys/fs/aio\-max\-nr\fP で定義されている。
.TP
\fBEFAULT\fP
-\fIctx_idp\fP に無効なポインタが指定されている。
+\fIctx_idp\fP ã\81«ç\84¡å\8a¹ã\81ªã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fBEINVAL\fP
\fIctx_idp\fP が初期化されていないか、指定された \fInr_events\fP が内部の
すべきである。
.TP
\fBENOMEM\fP
-å¿\85è¦\81ã\81ªã\82«ã\83¼ã\83\8dã\83«ã\83»ã\83ªã\82½ã\83¼ã\82¹ã\82\92å¾\97ã\82\89ã\82\8cã\81ªã\81\84ã\80\82
+必要なカーネルリソースを得られない。
.TP
\fBENOSYS\fP
-\fBio_setup\fP() がこのアーキテクチャでは実装されていない。
+\fBio_setup\fP() ã\81\8cã\81\93ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯å®\9fè£\85ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.SH バージョン
.PP
-é\9d\9eå\90\8cæ\9c\9f I/O ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81¯ Linux 2.5 ã\81§å\88\9dã\82\81ã\81¦ç\99»å ´ã\81\97ã\81\9fã\80\82
+非同期 I/O システムコールは Linux 2.5 で初めて登場した。
.SH 準拠
.PP
\fBio_setup\fP() は Linux 固有であり、移植を想定したプログラムで 使用すべきではない。
何個かの \fIiocb\fP をキューに入れるのに必要なリソースが得られない。
.TP
\fBEBADF\fP
-å\85\88é ã\81® \fIiocb\fP ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿が無効である。
+å\85\88é ã\81® \fIiocb\fP ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼が無効である。
.TP
\fBEFAULT\fP
データ構造の中に無効なデータを指しているものがある。
\fBEINVAL\fP
\fIctx_id\fP で指定された AIO コンテキストが無効である。 \fInr\fP が 0 未満で
ある。 \fI*iocbpp[0]\fP の \fIiocb\fP が適切に初期化されていないか、
-æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fæ\93\8dä½\9cã\81\8cã\81\9dã\81® \fIiocb\fP ä¸ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿に対して 無効
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fæ\93\8dä½\9cã\81\8cã\81\9dã\81® \fIiocb\fP ä¸ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼に対して 無効
である。
.TP
\fBENOSYS\fP
-\fBio_submit\fP() はこのアーキテクチャでは実装されていない。
+\fBio_submit\fP() ã\81¯ã\81\93ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯å®\9fè£\85ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.SH バージョン
.PP
-é\9d\9eå\90\8cæ\9c\9f I/O ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81¯ Linux 2.5 ã\81§å\88\9dã\82\81ã\81¦ç\99»å ´ã\81\97ã\81\9fã\80\82
+非同期 I/O システムコールは Linux 2.5 で初めて登場した。
.SH 準拠
.PP
\fBio_submit\fP() は Linux 固有であり、移植を想定したプログラムで 使用すべきではない。
.\" See https://bugzilla.kernel.org/show_bug.cgi?id=42705
\fBint ioctl(int \fP\fIfd\fP\fB, unsigned long \fP\fIrequest\fP\fB, ...);\fP
.SH 説明
-\fBioctl\fP() é\96¢æ\95°ã\81¯ã\82¹ã\83\9aã\82·ã\83£ã\83«ã\83\95ã\82¡ã\82¤ã\83«ã\82\92æ§\8bæ\88\90ã\81\99ã\82\8bã\83\87ã\83\90ã\82¤ã\82¹ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\82\92 æ\93\8dä½\9cã\81\99ã\82\8bã\80\82ç\89¹ã\81«ã\80\81ã\82ã\83£ã\83©ã\82¯ã\82¿型のスペシャルファイル (例えば端末
+\fBioctl\fP() é\96¢æ\95°ã\81¯ã\82¹ã\83\9aã\82·ã\83£ã\83«ã\83\95ã\82¡ã\82¤ã\83«ã\82\92æ§\8bæ\88\90ã\81\99ã\82\8bã\83\87ã\83\90ã\82¤ã\82¹ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92 æ\93\8dä½\9cã\81\99ã\82\8bã\80\82ç\89¹ã\81«ã\80\81ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼型のスペシャルファイル (例えば端末
(terminal)) の多くの動作特性を \fBioctl\fP() リクエストによって制御することができる。引き数 \fIfd\fP
-はオープンされたファイルディスクリプタでなければならない。
+ã\81¯ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.PP
-2 ç\95ªç\9b®ã\81®å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\83\87ã\83\90ã\82¤ã\82¹ä¾\9då\98ã\81®ã\83ªã\82¯ã\82¨ã\82¹ã\83\88ã\82³ã\83¼ã\83\89ã\81§ã\81\82ã\82\8bã\80\82 3 ç\95ªç\9b®ã\81®å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\81¸ã\81®å\9e\8bã\82\92æ\8c\87å®\9aã\81\97ã\81ªã\81\84ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®å¼\95ã\81\8dæ\95°ã\81¯ä¼\9dçµ±ç\9a\84ã\81« (C ã\81§
-\fBvoid *\fP という書き方が有効になる前から) \fBchar *\fP\fIargp\fP
+2 ç\95ªç\9b®ã\81®å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\83\87ã\83\90ã\82¤ã\82¹ä¾\9då\98ã\81®ã\83ªã\82¯ã\82¨ã\82¹ã\83\88ã\82³ã\83¼ã\83\89ã\81§ã\81\82ã\82\8bã\80\82 3 ç\95ªç\9b®ã\81®å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\81¸ã\81®å\9e\8bã\82\92æ\8c\87å®\9aã\81\97ã\81ªã\81\84ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®å¼\95ã\81\8dæ\95°ã\81¯ä¼\9dçµ±ç\9a\84ã\81« (C
+で \fBvoid *\fP という書き方が有効になる前から) \fBchar *\fP\fIargp\fP
と表記されている。したがって、この文章でもそう名付けることとする。
.PP
-\fBioctl\fP() ã\81® \fIrequest\fP ã\81«ã\81¯ã\80\81 ã\81\9dã\81®å¼\95ã\81\8dæ\95°ã\81\8c \fIå\85¥å\8a\9b\fP ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81¨ \fIå\87ºå\8a\9b\fP ã\83\91ã\83©ã\83¡ã\83¼ã\82¿のどちらであるかの区別や、
+\fBioctl\fP() ã\81® \fIrequest\fP ã\81«ã\81¯ã\80\81 ã\81\9dã\81®å¼\95ã\81\8dæ\95°ã\81\8c \fIå\85¥å\8a\9b\fP ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¨ \fIå\87ºå\8a\9b\fP ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼のどちらであるかの区別や、
\fIargp\fP 引き数のバイト単位のサイズ、といった情報がエンコードされている。 \fBioctl\fP() の \fIrequest\fP
を指定するためのマクロ (macro) と定義は \fI<sys/ioctl.h>\fP ファイルにある。
.SH 返り値
-たいていの場合、成功するとゼロが返される。 ただし、 \fBioctl\fP() リクエストの中にはパラメータの出力に返り値を使用しているものが若干あり、
+ã\81\9fã\81\84ã\81¦ã\81\84ã\81®å ´å\90\88ã\80\81æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\82¼ã\83ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\9fã\81 ã\81\97ã\80\81 \fBioctl\fP() ã\83ªã\82¯ã\82¨ã\82¹ã\83\88ã\81®ä¸ã\81«ã\81¯ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®å\87ºå\8a\9bã\81«è¿\94ã\82\8aå\80¤ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bã\82\82ã\81®ã\81\8cè\8b¥å¹²ã\81\82ã\82\8aã\80\81
その場合は、成功したときに非負の値が返される。 エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
.SH エラー
.TP 0.7i
\fIfd\fP が無効なディスクリプターである。
.TP
\fBEFAULT\fP
-\fIargp\fP がアクセス不可能なメモリを参照している。
+\fIargp\fP ã\81\8cã\82¢ã\82¯ã\82»ã\82¹ä¸\8då\8f¯è\83½ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fBEINVAL\fP
\fIrequest\fP または \fIargp\fP が不正である。
.TP
\fBENOTTY\fP
-\fIfd\fP がキャラクタ型のスペシャルデバイスを参照していない。
+\fIfd\fP がキャラクター型のスペシャルデバイスを参照していない。
.TP
\fBENOTTY\fP
-指定されたリクエストはディスクリプタ \fIfd\fP が参照する種類のオブジェクトには適用することができない。
+指定されたリクエストはディスクリプター \fIfd\fP が参照する種類のオブジェクトには適用することができない。
.SH 準拠
どれか一つの標準に対応しているわけではない。 \fBioctl\fP() の引き数、返り値、解釈は、処理対象のデバイスドライバごとに 異なる (この関数は
UNIX の ストリーム I/O モデル に きちんと適合していない操作のための便利屋として使用される)。 よく知られている \fBioctl\fP()
のリストについては \fBioctl_list\fP(2) を参照すること。 \fBioctl\fP() 関数コールは Version 7 AT&T UNIX
で登場した。
.SH 注意
-このシステムコールを使うには、オープンされたファイルディスクリプタが 必要である。 \fBopen\fP(2)
+ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\92使ã\81\86ã\81«ã\81¯ã\80\81ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c å¿\85è¦\81ã\81§ã\81\82ã\82\8bã\80\82 \fBopen\fP(2)
コールはしばしば望んでいない副作用を伴うことがあるが、Linux では \fBopen\fP(2) に \fBO_NONBLOCK\fP
フラグをつけることでこの副作用を避けることができる。
.SH 関連項目
を使ったバグを含んだマクロや、過去から受け継いだ値が原因です。
.LP
したがって、新しい構造は不都合な点しかないように思われます: この構造はチェックの手助けにはならず、
-様々なアーキテクチャによって値を変化させてしまいます。
+æ§\98ã\80\85ã\81ªã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\82\88ã\81£ã\81¦å\80¤ã\82\92å¤\89å\8c\96ã\81\95ã\81\9bã\81¦ã\81\97ã\81¾ã\81\84ã\81¾ã\81\99ã\80\82
.SH 返り値
きちんとした ioctl は、成功した場合は 0 を返し、 エラーの場合は \-1 を返します。 また出力値は引き数に格納します。
しかし実際は、かなり多くの ioctl が出力値を返します。 これは今のところ以下では示されていません。
0x0000560A VT_RESIZEX const struct vt_consize *
.TE
-// More arguments. ã\81\84ã\81\8fã\81¤ã\81\8bã\81® ioctl ã\81¯è¿½å\8a ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92å\90«ã\82\80æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を使用します。
+// More arguments. ã\81\84ã\81\8fã\81¤ã\81\8bã\81® ioctl ã\81¯è¿½å\8a ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å\90«ã\82\80æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を使用します。
ここでこれらをアルファベット順に説明します。
-\fBCDROMREADAUDIO\fP は入力ポインタ \fIconst struct cdrom_read_audio\ *\fP を使用します。 \fIbuf\fP
-フィールドは大きさ \fInframes\ * CD_FRAMESIZE_RAW\fP の出力バッファへのポインタです。
+\fBCDROMREADAUDIO\fP は入力ポインター \fIconst struct cdrom_read_audio\ *\fP を使用します。
+\fIbuf\fP フィールドは大きさ \fInframes\ * CD_FRAMESIZE_RAW\fP の出力バッファーへのポインターです。
\fBCDROMREADCOOKED\fP, \fBCDROMREADMODE1\fP, \fBCDROMREADMODE2\fP, \fBCDROMREADRAW\fP
-は入力ポインタ \fIconst struct cdrom_msf\ *\fP を使用します。これらは同じポインタを \fIchar []\fP
-への出力ポインタとして使用します。 長さは要求によって変化します。 \fBCDROMREADMODE1\fP には、多くのデバイスが CD_FRAMESIZE
-を使用しますが、光学記憶装置 (光ディスク) のドライバは OPT_BLOCKSIZE を使用します (どちらも同じ値で 2048 です)。
+は入力ポインター \fIconst struct cdrom_msf\ *\fP を使用します。これらは同じポインターを \fIchar []\fP
+への出力ポインターとして使用します。 長さは要求によって変化します。 \fBCDROMREADMODE1\fP には、多くのデバイスが
+CD_FRAMESIZE を使用しますが、光学記憶装置 (光ディスク) のドライバは OPT_BLOCKSIZE を使用します (どちらも同じ値で
+2048 です)。
.nf
CDROMREADCOOKED char [CD_FRAMESIZE]
.fi
\fBEQL_ENSLAVE\fP, \fBEQL_EMANCIPATE\fP, \fBEQL_GETSLAVECFG\fP, \fBEQL_SETSLAVECFG\fP,
\fBEQL_GETMASTERCFG\fP, \fBEQL_SETMASTERCFG\fP は \fIstruct ifreq\ *\fP を使用します。
-\fIifr_data\fP フィールドは以下に示す別の構造体へのポインタです:
+\fIifr_data\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ä»¥ä¸\8bã\81«ç¤ºã\81\99å\88¥ã\81®æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\99:
.nf
EQL_ENSLAVE const struct slaving_request *
.fi
\fBFDRAWCMD\fP は \fIstruct floppy raw_cmd\ *\fP を使用します。 \fIflags & FD_RAW_WRITE\fP
-ã\81\8cã\82¼ã\83以å¤\96ã\81®å ´å\90\88ã\80\81 \fIdata\fP ã\81¯å¤§ã\81\8dã\81\95 \fIlength\fP ã\81®å\85¥å\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81«ã\81ªã\82\8aã\81¾ã\81\99ã\80\82 \fIflags & FD_RAW_READ\fP
-がゼロ以外の場合、 \fIdata\fP は大きさ \fIlength\fP の出力バッファへのポインタになります。
+ã\81\8cã\82¼ã\83以å¤\96ã\81®å ´å\90\88ã\80\81 \fIdata\fP ã\81¯å¤§ã\81\8dã\81\95 \fIlength\fP ã\81®å\85¥å\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81«ã\81ªã\82\8aã\81¾ã\81\99ã\80\82 \fIflags &
+FD_RAW_READ\fP がゼロ以外の場合、 \fIdata\fP は大きさ \fIlength\fP の出力バッファーへのポインターになります。
\fBGIO_FONTX\fP, \fBPIO_FONTX\fP はそれぞれ \fIstruct console_font_desc\ *\fP と \fIconst
struct console_font_desc\ *\fP を使用します。 \fIchardata\fP は \fIchar [charcount]\fP
-ã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81\99ã\80\82 ã\81\93ã\82\8cã\81¯ \fBGIO_FONTX\fP ã\81®å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\81¨ \fBPIO_FONTX\fP ã\81®å\85¥å\8a\9bã\83\90ã\83\83ã\83\95ã\82¡です。
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\99ã\80\82 ã\81\93ã\82\8cã\81¯ \fBGIO_FONTX\fP ã\81®å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¨ \fBPIO_FONTX\fP ã\81®å\85¥å\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼です。
\fBGIO_UNIMAP\fP, \fBPIO_UNIMAP\fP はそれぞれ \fIstruct unimapdesc\ *\fP と \fIconst struct
unimapdesc\ *\fP を使用します。 \fIentries\fP は \fIstruct unipair [entry_ct]\fP
-ã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81\99ã\80\82 ã\81\93ã\82\8cã\81¯ \fBGIO_UNIMAP\fP ã\81®å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\81¨ \fBPIO_UNIMAP\fP ã\81®å\85¥å\8a\9bã\83\90ã\83\83ã\83\95ã\82¡です。
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\99ã\80\82 ã\81\93ã\82\8cã\81¯ \fBGIO_UNIMAP\fP ã\81®å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¨ \fBPIO_UNIMAP\fP ã\81®å\85¥å\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼です。
KDADDIO, KDDELIO, KDDISABIO, KDENABIO は I/O ポートへのアクセスを
可能/不可能にします。これらは本質的に、'ioperm' への別の インターフェースです。
-\fBKDMAPDISP\fP, \fBKDUNMAPDISP\fP はメモリマッピングや I/O ポートへのアクセスを可能/不可能にします。
+\fBKDMAPDISP\fP, \fBKDUNMAPDISP\fP ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\82\84 I/O ã\83\9dã\83¼ã\83\88ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ã\82\92å\8f¯è\83½/ä¸\8då\8f¯è\83½ã\81«ã\81\97ã\81¾ã\81\99ã\80\82
これらはカーネルに実装されていません。
-\fBSCSI_IOCTL_PROBE_HOST\fP は入力ポインタ \fIconst int\ *\fP を大きさとして使用します。これは同じ大きさの
-\fIchar []\fP バッファ への出力ポインタとしても使用します。
+\fBSCSI_IOCTL_PROBE_HOST\fP は入力ポインター \fIconst int\ *\fP を大きさとして使用します。これは同じ大きさの
+\fIchar []\fP バッファー への出力ポインターとしても使用します。
-\fBSIOCADDRT\fP, \fBSIOCDELRT\fP は型が以下のプロトコルに依存する入力ポインタを使用します:
+\fBSIOCADDRT\fP, \fBSIOCDELRT\fP ã\81¯å\9e\8bã\81\8c以ä¸\8bã\81®ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81«ä¾\9då\98ã\81\99ã\82\8bå\85¥å\8a\9bã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92使ç\94¨ã\81\97ã\81¾ã\81\99:
.nf
Most protocols const struct rtentry *
.fi
\fBSIOCGIFCONF\fP は \fIstruct ifconf\ *\fP を使用します。この \fIifc_buf\fP フィールドは長さ
-\fIifc_len\fP ã\83\90ã\82¤ã\83\88ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿です。 これにカーネルが \fIstruct ifreq []\fP 型のリストへ書き込みます。
+\fIifc_len\fP ã\83\90ã\82¤ã\83\88ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼です。 これにカーネルが \fIstruct ifreq []\fP 型のリストへ書き込みます。
-\fBSIOCSIFHWADDR\fP は型が以下のプロトコルに依存する入力ポインタを使用します:
+\fBSIOCSIFHWADDR\fP ã\81¯å\9e\8bã\81\8c以ä¸\8bã\81®ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81«ä¾\9då\98ã\81\99ã\82\8bå\85¥å\8a\9bã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92使ç\94¨ã\81\97ã\81¾ã\81\99:
.nf
Most protocols const struct ifreq *
AX.25 const char [AX25_ADDR_LEN]
.fi
-\fBTIOCLINUX\fP は \fIconst char\ *\fP を使用します。このポインタをいくつかの
+\fBTIOCLINUX\fP ã\81¯ \fIconst char\ *\fP ã\82\92使ç\94¨ã\81\97ã\81¾ã\81\99ã\80\82ã\81\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92ã\81\84ã\81\8fã\81¤ã\81\8bã\81®
独立したサブクラスを識別する為に使用します。以下のテーブルの中で、 \fIN + foo\fP は N バイトの詰めものの後にある \fIfoo\fP
を意味します。 \fIstruct selection\fP は暗黙的に \fIdrivers/char/selection.c\fP の中で定義されています。
.nf
の後で必要なアクセス権を有効にしなければならない。 \fBexecve\fP(2) の前後でアクセス権は保存される。この機能は
非特権プログラムにポートへのアクセス権を 与えるのに使用できる。
-ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\81»ã\81¨ã\82\93ã\81© i386 ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81®ã\81\9fã\82\81ã\81 ã\81\91ã\81®ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82 ã\81\9dã\81®ä»\96ã\81®å¤\9aã\81\8fã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£では存在しないか、常にエラーを返す。
+ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\81»ã\81¨ã\82\93ã\81© i386 ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81®ã\81\9fã\82\81ã\81 ã\81\91ã\81®ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82 ã\81\9dã\81®ä»\96ã\81®å¤\9aã\81\8fã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼では存在しないか、常にエラーを返す。
.SH 返り値
成功した場合は 0 が返される。エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
.SH エラー
.TP
\fBENOMEM\fP
.\" Could not allocate I/O bitmap.
-メモリ不足。
+メモリー不足。
.TP
\fBEPERM\fP
呼び出し元スレッドに十分な権限がなかった。
通常のプロセスの I/O 特権レベルは 0 である。
-ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\81»ã\81¨ã\82\93ã\81© i386 ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81®ã\81\9fã\82\81ã\81 ã\81\91ã\81®ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82 ã\81\9dã\81®ä»\96ã\81®å¤\9aã\81\8fã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£では存在しないか、常にエラーを返す。
+ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\81»ã\81¨ã\82\93ã\81© i386 ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81®ã\81\9fã\82\81ã\81 ã\81\91ã\81®ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82 ã\81\9dã\81®ä»\96ã\81®å¤\9aã\81\8fã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼では存在しないか、常にエラーを返す。
.SH 返り値
成功した場合は 0 が返される。エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
.SH エラー
\fBIOPRIO_WHO_USER\fP
.\" FIXME . Need to document the behavior when 'who" is specified as 0
.\" See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=652443
-\fIwho\fP はユーザID であり、実 UID に一致する全プロセスが対象となる。
+\fIwho\fP はユーザーID であり、実 UID に一致する全プロセスが対象となる。
.PP
\fBioprio_get\fP() の呼び出し時に \fIwhich\fP に \fBIOPRIO_WHO_PGRP\fP か \fBIOPRIO_WHO_USER\fP
が指定され、 \fIwho\fP に一致するプロセスが複数あった場合、 一致するプロセス全体の中で最も高い優先度が返される。
スケジューリングクラスと優先度に関する詳しい情報は、 「備考」の節を参照のこと。
I/O 優先度は読み出しと同期書き込み (\fBO_DIRECT\fP, \fBO_SYNC\fP) に対応している。 I/O
-優先度は非同期書き込みには対応していない。なぜなら、 非同期書き込みはメモリ書き換えを行うプログラムの動作 (context) とは
+優先度は非同期書き込みには対応していない。なぜなら、 非同期書き込みはメモリー書き換えを行うプログラムの動作 (context) とは
関係なく発行され、そのためプログラム単位の優先度は適用されないから である。
.SH 返り値
成功すると、 \fBioprio_get\fP() は、 \fIwhich\fP と \fIwho\fP で指定された基準に合致した全プロセスで最も高い I/O
将来的には、優先度レベルは、希望するデータレートを渡すなど、 より直接的に性能条件を反映できるように変更されるかもしれない。
.TP
\fBIOPRIO_CLASS_BE\fP (2)
-これは ベストエフォート・スケジューリングクラスである。 このクラスは、特定の I/O 優先度を設定していないプロセスの デフォルト値である。
-class data (優先度レベル) により、そのプロセスがどの程度の I/O 帯域を得られるかが決定される。
-ベストエフォート・優先度レベルは、CPU の nice 値 (\fBgetpriority\fP(2) 参照) と同様のものである。
-優先度レベルは、ベストエフォート・スケジューリングクラスの中で 他のプロセスとの相対的な優先度を決定する。 優先度レベルの値の範囲は 0 (最高) から
-7 (最低) である。
+これは ベストエフォートスケジューリングクラスである。 このクラスは、特定の I/O 優先度を設定していないプロセスの デフォルト値である。 class
+data (優先度レベル) により、そのプロセスがどの程度の I/O 帯域を得られるかが決定される。 ベストエフォート優先度レベルは、CPU の
+nice 値 (\fBgetpriority\fP(2) 参照) と同様のものである。 優先度レベルは、ベストエフォートスケジューリングクラスの中で
+他のプロセスとの相対的な優先度を決定する。 優先度レベルの値の範囲は 0 (最高) から 7 (最低) である。
.TP
\fBIOPRIO_CLASS_IDLE\fP (3)
これは idle スケジューリングクラスである。 このレベルで動作するプロセスは他にディスクアクセスをしようとする プロセスがない場合にのみ I/O
.\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=4464
.\" Ulrich Drepper replied that he wasn't going to add these
.\" to glibc.
-glibc は、このページに記載された関数プロトタイプやマクロを定義する 適切なヘッダファイルをまだ提供していない。 必要な定義については
+glibc ã\81¯ã\80\81ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81«è¨\98è¼\89ã\81\95ã\82\8cã\81\9fé\96¢æ\95°ã\83\97ã\83ã\83\88ã\82¿ã\82¤ã\83\97ã\82\84ã\83\9eã\82¯ã\83ã\82\92å®\9a義ã\81\99ã\82\8b é\81©å\88\87ã\81ªã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\81¾ã\81 æ\8f\90ä¾\9bã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\80\82 å¿\85è¦\81ã\81ªå®\9a義ã\81«ã\81¤ã\81\84ã\81¦ã\81¯
\fIlinux/ioprio.h\fP を見ればよい。
.SH 関連項目
\fBionice\fP(1), \fBgetpriority\fP(2), \fBopen\fP(2), \fBcapabilities\fP(7)
\fB void *\fP\fIptr\fP\fB, long \fP\fIfifth\fP\fB);\fP
.fi
.SH 説明
-\fBipc\fP() ã\81¯ ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\80\81ã\82»ã\83\9eã\83\95ã\82©ã\83¼ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\81«é\96¢ã\81\99ã\82\8b System\ V IPC ã\82³ã\83¼ã\83«ã\81® å\85±é\80\9aã\81®ã\82«ã\83¼ã\83\8dã\83«ã\81¸ã\81®ã\82¨ã\83³ã\83\88ã\83ªポイントである。
+\fBipc\fP() ã\81¯ ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\80\81ã\82»ã\83\9eã\83\95ã\82©ã\83¼ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81«é\96¢ã\81\99ã\82\8b System\ V IPC ã\82³ã\83¼ã\83«ã\81® å\85±é\80\9aã\81®ã\82«ã\83¼ã\83\8dã\83«ã\81¸ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ポイントである。
\fIcall\fP はどの IPC 関数を呼び出すかを決め; 他の引き数は適切なコールへと渡される。
.PP
ユーザープログラムは通常の名前で適切な関数を呼び出すべきである。 標準ライブラリの実装者やカーネルハッカーのみが \fBipc\fP()
.SH 準拠
\fBipc\fP() は Linux 特有であり、 移植を意図したプログラムでは 使用してはいけない。
.SH 注意
-いくつかのアーキテクチャ\(emfor 例えば x86\-64 や ARM\(emでは、システムコール \fBipc\fP()
+いくつかのアーキテクチャー\(emfor 例えば x86\-64 や ARM\(emでは、システムコール \fBipc\fP()
が存在しない。実際には、その代わりに \fBmsgctl\fP(2), \fBsemctl\fP(2), \fBshmctl\fP(2)
などが独立したシステムコールとして実装されている。
.SH 関連項目
\fI注\fP: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。
.SH 説明
システムコール \fBkcmp\fP() を使うと、 ID が \fIpid1\fP と \fIpid2\fP の二つのプロセスが、
-ä»®æ\83³ã\83¡ã\83¢ã\83ªã\82\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿などの、 同じカーネルリソースを共有しているかどうかを検査できる。
+ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\82\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼などの、 同じカーネルリソースを共有しているかどうかを検査できる。
\fItype\fP 引き数は 2 つのプロセス間でどのリソースを比較するかを指定する。 以下のいずれかの値を指定する。
.TP
\fBKCMP_FILE\fP
-プロセス \fIpid1\fP のファイルディスクリプタ \fIidx1\fP が、 プロセス \fIpid2\fP のファイルディスクリプタ \fIidx2\fP
+プロセス \fIpid1\fP のファイルディスクリプター \fIidx1\fP が、 プロセス \fIpid2\fP のファイルディスクリプター \fIidx2\fP
と同じオープンファイル記述 (open file description) を参照しているかを検査する。
.TP
\fBKCMP_FILES\fP
意味のある結果を得るためには、 このシステムコールで検査を行う前に、 \fBSIGSTOP\fP を送信してタスクを停止すべきだということだ
(\fBsignal\fP(7) 参照)。
.SH 返り値
-\fBkcmp\fP() の呼び出しが成功した場合の返り値は、単にカーネルポインタを数値で比較した結果となる
-(カーネルはリソースを比較する際、リソースのメモリアドレスを使用する)。
+\fBkcmp\fP() ã\81®å\91¼ã\81³å\87ºã\81\97ã\81\8cæ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\81®è¿\94ã\82\8aå\80¤ã\81¯ã\80\81å\8d\98ã\81«ã\82«ã\83¼ã\83\8dã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92æ\95°å\80¤ã\81§æ¯\94è¼\83ã\81\97ã\81\9fçµ\90æ\9e\9cã\81¨ã\81ªã\82\8b
+(ã\82«ã\83¼ã\83\8dã\83«ã\81¯ã\83ªã\82½ã\83¼ã\82¹ã\82\92æ¯\94è¼\83ã\81\99ã\82\8bé\9a\9bã\80\81ã\83ªã\82½ã\83¼ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92使ç\94¨ã\81\99ã\82\8b)ã\80\82
これを説明するには、例を見るのが一番簡単である。 \fIv1\fP と \fIv2\fP を適切なリソースのアドレスとすると、 返り値は以下のいずれか一つとなる。
.RS 4
.PP
エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
-\fBkcmp\fP() は、ソートに適した値を返すように設計された。 大量のファイルディスクリプタを比較する必要がある場合に、特に役に立つ。
+\fBkcmp\fP() ã\81¯ã\80\81ã\82½ã\83¼ã\83\88ã\81«é\81©ã\81\97ã\81\9få\80¤ã\82\92è¿\94ã\81\99ã\82\88ã\81\86ã\81«è¨è¨\88ã\81\95ã\82\8cã\81\9fã\80\82 大é\87\8fã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92æ¯\94è¼\83ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\81«ã\80\81ç\89¹ã\81«å½¹ã\81«ç«\8bã\81¤ã\80\82
.SH エラー
.TP
\fBEBADF\fP
glibc はこのシステムコールに対するラッパー関数を提供していない。 \fBsyscall\fP(2) を使って呼び出すこと。
このシステムコールが利用できるのは、 カーネルの \fBCONFIG_CHECKPOINT_RESTORE\fP オプションが有効になっている場合だけである。
-このシステムコールの主な用途は、 ユーザ空間でのチェックポイント/リストア (checkpoint/restore in user space;
+このシステムコールの主な用途は、 ユーザー空間でのチェックポイント/リストア (checkpoint/restore in user space;
CRIU) 機能である。 このシステムコールを使わないとすると、 \fBproc\fP(5) ファイルシステム経由で必要なプロセス情報を公開することになるが、
これはセキュリティ上の理由から不適切とみなされた。
利用可能であり、 \fInr_segments\fP が 0 より大きい場合のみ効果がある。
.PP
\fIflags\fP の上位ビット (マスク 0xffff0000 に対応) には、
-実行されるカーネルのアーキテクチャが入る。
-現在のアーキテクチャを使うことを意味する定数 \fBKEXEC_ARCH_DEFAULT\fP か、
-アーキテクチャ定数 \fBKEXEC_ARCH_386\fP, \fBKEXEC_ARCH_68K\fP, \fBKEXEC_ARCH_X86_64\fP,
+å®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\82«ã\83¼ã\83\8dã\83«ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81\8cå\85¥ã\82\8bã\80\82
+ç\8f¾å\9c¨ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\82\92使ã\81\86ã\81\93ã\81¨ã\82\92æ\84\8få\91³ã\81\99ã\82\8bå®\9aæ\95° \fBKEXEC_ARCH_DEFAULT\fP ã\81\8bã\80\81
+アーキテクチャー定数 \fBKEXEC_ARCH_386\fP, \fBKEXEC_ARCH_68K\fP, \fBKEXEC_ARCH_X86_64\fP,
\fBKEXEC_ARCH_PPC\fP, \fBKEXEC_ARCH_PPC64\fP, \fBKEXEC_ARCH_IA_64\fP,
\fBKEXEC_ARCH_ARM\fP, \fBKEXEC_ARCH_S390\fP, \fBKEXEC_ARCH_SH\fP,
\fBKEXEC_ARCH_MIPS\fP, \fBKEXEC_ARCH_MIPS_LE\fP の
-いずれか一つを (OR で) 指定する。指定するアーキテクチャは、
+ã\81\84ã\81\9aã\82\8cã\81\8bä¸\80ã\81¤ã\82\92 (OR ã\81§) æ\8c\87å®\9aã\81\99ã\82\8bã\80\82æ\8c\87å®\9aã\81\99ã\82\8bã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81¯ã\80\81
システムの CPU で実行可能なものでなければならない。
\fIentry\fP 引き数は、カーネルイメージの物理エントリーアドレスである。 \fInr_segments\fP 引き数は、 \fIsegments\fP
-ポインタが指すセグメントの数である。 なお、セグメント数には、カーネルにより 16 という (強制的な) 上限が課される。 \fIsegments\fP
+ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cæ\8c\87ã\81\99ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®æ\95°ã\81§ã\81\82ã\82\8bã\80\82 ã\81ªã\81\8aã\80\81ã\82»ã\82°ã\83¡ã\83³ã\83\88æ\95°ã\81«ã\81¯ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82\88ã\82\8a 16 ã\81¨ã\81\84ã\81\86 (å¼·å\88¶ç\9a\84ã\81ª) ä¸\8aé\99\90ã\81\8c課ã\81\95ã\82\8cã\82\8bã\80\82 \fIsegments\fP
引き数は \fIkexec_segment\fP 構造体の配列で、 この構造体によりカーネルの配置が定義される。
.in +4n
.nf
.\" FIXME Explain the details of how the kernel image defined by segments
.\" is copied from the calling process into previously reserved memory.
\fIsegments\fP で定義されたカーネルイメージは、
-呼び出したプロセスから予約済みメモリにコピーされる。
+å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81\8bã\82\89äº\88ç´\84æ¸\88ã\81¿ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\82³ã\83\94ã\83¼ã\81\95ã\82\8cã\82\8bã\80\82
.SH 返り値
成功すると、 \fBkexec_load\fP は 0 を返す。
エラーの場合、 \-1 が返り、 \fIerrno\fP にエラーを示す値が設定される。
\fBkill\fP(): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE
.ad b
.SH 説明
-ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81® \fBkill\fP() ã\81¯ã\80\81ä»»æ\84\8fã\81®ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\82\82ã\81\97ã\81\8fã\81¯ã\83\97ã\83ã\82»ã\82¹ã\81«ã\82·ã\82°ã\83\8aã\83«ã\82\92 é\80\81ã\82\8bã\81®ã\81«ä½¿ã\82\8fã\82\8cã\82\8bã\80\82
+システムコールの \fBkill\fP() は、任意のプロセスグループもしくはプロセスにシグナルを 送るのに使われる。
.PP
\fIpid\fP に正の値を指定した場合、シグナル \fIsig\fP が \fIpid\fP で指定された ID を持つプロセスに送られる。
.PP
-\fIpid\fP ã\81« 0 ã\82\92æ\8c\87å®\9aã\81\97ã\81\9få ´å\90\88ã\80\81 å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81«å±\9eã\81\99ã\82\8bã\81\99ã\81¹ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81« \fIsig\fP ã\81§æ\8c\87å®\9aã\81\97ã\81\9fã\82·ã\82°ã\83\8aã\83«ã\81\8cé\80\81ã\82\89ã\82\8cã\82\8bã\80\82
+\fIpid\fP に 0 を指定した場合、 呼び出し元のプロセスのプロセスグループに属するすべてのプロセスに \fIsig\fP で指定したシグナルが送られる。
.PP
\fIpid\fP に \-1 を指定した場合、 \fIsig\fP で指定したシグナルが、 呼び出し元のプロセスがシグナルを送る許可を持つ全てのプロセスに
送られる。但し、プロセス番号 1 (\fIinit\fP) へはシグナルは送られない。 以下の関連部分も参照のこと。
.PP
-\fIpid\fP ã\81« \-1 ã\82\88ã\82\8aå°\8fã\81\95ã\81ªå\80¤ã\82\92æ\8c\87å®\9aã\81\97ã\81\9få ´å\90\88ã\80\81 ID ã\81\8c \fI\-pid\fP ã\81®ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81«å±\9eã\81\99ã\82\8bã\81\99ã\81¹ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81« \fIsig\fP
+\fIpid\fP に \-1 より小さな値を指定した場合、 ID が \fI\-pid\fP のプロセスグループに属するすべてのプロセスに \fIsig\fP
で指定したシグナルが送られる。
.PP
\fIsig\fP に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われる。これを使って、プロセス ID や プロセスグループ ID
プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていない。
.TP
\fBESRCH\fP
-æ\8c\87å®\9aã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81¾ã\81\9fã\81¯ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\8bã\81£ã\81\9fã\80\82 ã\82¾ã\83³ã\83\93ã\83\97ã\83ã\82»ã\82¹ã\81¯å\98å\9c¨ã\81\99ã\82\8bã\83\97ã\83ã\82»ã\82¹ã\81¨ã\81\97ã\81¦ã\81¿ã\81ªã\81\95ã\82\8cã\82\8bã\80\82
+指定したプロセスまたはプロセスグループが存在しなかった。 ゾンビプロセスは存在するプロセスとしてみなされる。
ゾンビプロセスとはすでに処理は終了しているが、親プロセスによる \fBwait\fP() 処理が行われていないプロセスのことである。
.SH 準拠
SVr4, 4.3BSD, POSIX.1\-2001.
.SH 注意
-プロセス番号 1 の \fIinit\fP プロセスに送ることができるシグナルは、 \fIinit\fP が明示的にシグナルハンドラを設定したシグナルだけである。
+ã\83\97ã\83ã\82»ã\82¹ç\95ªå\8f· 1 ã\81® \fIinit\fP ã\83\97ã\83ã\82»ã\82¹ã\81«é\80\81ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\82·ã\82°ã\83\8aã\83«ã\81¯ã\80\81 \fIinit\fP ã\81\8cæ\98\8e示ç\9a\84ã\81«ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92è¨å®\9aã\81\97ã\81\9fã\82·ã\82°ã\83\8aã\83«ã\81 ã\81\91ã\81§ã\81\82ã\82\8bã\80\82
こうなっているのは、誤ってシステムをダウンさせないようにするためである。
.LP
POSIX.1\-2001 では、 \fIkill(\-1,sig)\fP が 呼び出し元のプロセスがシグナルを送ることが出来るプロセス全てに \fIsig\fP
.\"
.TH KILLPG 2 2010\-09\-20 Linux "Linux Programmer's Manual"
.SH 名前
-killpg \- ã\82·ã\82°ã\83\8aã\83«ã\82\92ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81«é\80\81ã\82\8b
+killpg \- シグナルをプロセスグループに送る
.SH 書式
\fB#include <signal.h>\fP
.sp
_BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
.ad
.SH 説明
-\fBkillpg\fP() ã\81¯ \fIsig\fP ã\81§æ\8c\87å®\9aã\81\97ã\81\9fã\82·ã\82°ã\83\8aã\83«ã\82\92 \fIpgrp\fP ã\81§æ\8c\87å®\9aã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81«é\80\81ã\82\8bã\80\82 ã\82·ã\82°ã\83\8aã\83«ã\81®å®\9a義ã\81®ä¸\80覧ã\81¯
+\fBkillpg\fP() は \fIsig\fP で指定したシグナルを \fIpgrp\fP で指定したプロセスグループに送る。 シグナルの定義の一覧は
\fBsignal\fP(7) を参照のこと。
-引き数 \fIpgrp\fP に 0 を指定した場合には \fBkillpg\fP()
-は呼び出し元のプロセスが属しているプロセス・グループに対してシグナルを送る。 (POSIX では以下のように記述されている: \fIpgrp\fP が 1
-以下である場合、動作は未定義である。)
+引き数 \fIpgrp\fP に 0 を指定した場合には \fBkillpg\fP() は呼び出し元のプロセスが属しているプロセスグループに対してシグナルを送る。
+(POSIX では以下のように記述されている: \fIpgrp\fP が 1 以下である場合、動作は未定義である。)
プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では \fBCAP_KILL\fP ケーパビリティ (capability))
を持つか、 送信元プロセスの実ユーザー ID または実効ユーザー ID が 送信先プロセスの実 set\-user\-ID または保存
プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていない。
.TP
\fBESRCH\fP
-\fIpgrp\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\97ã\83ã\82»ã\82¹ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81«å±\9eã\81\99ã\82\8bã\83\97ã\83ã\82»ã\82¹ã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\8bã\81£ã\81\9fã\80\82
+\fIpgrp\fP で指定されたプロセスグループに属するプロセスが存在しなかった。
.TP
\fBESRCH\fP
-ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81¨ã\81\97ã\81¦ 0 ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\81\8cã\80\81é\80\81ä¿¡ã\83\97ã\83ã\82»ã\82¹ã\81¯ ã\83\97ã\83ã\82»ã\82¹ã\83»グループを持っていない。
+ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\81¨ã\81\97ã\81¦ 0 ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\81\8cã\80\81é\80\81ä¿¡ã\83\97ã\83ã\82»ã\82¹ã\81¯ ã\83\97ã\83ã\82»ã\82¹グループを持っていない。
.SH 準拠
SVr4, 4.4BSD (\fBkillpg\fP() は 4BSD で初めて追加された), POSIX.1\-2001。
.SH 注意
へのディレクトリのどれかに検索許可がない (\fBpath_resolution\fP(7) を参照)。
.TP
\fBEDQUOT\fP
-ディスクブロックか inode がそのファイルシステムのユーザクォータに達していた。
+ã\83\87ã\82£ã\82¹ã\82¯ã\83\96ã\83ã\83\83ã\82¯ã\81\8b inode ã\81\8cã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82¯ã\82©ã\83¼ã\82¿ã\81«é\81\94ã\81\97ã\81¦ã\81\84ã\81\9fã\80\82
.TP
\fBEEXIST\fP
\fInewpath\fP が既に存在する。
十分なカーネルメモリーがない。
.TP
\fBENOSPC\fP
-そのファイルを含んでいるデバイスに新しいディレクトリエントリを 作成するための空きがない。
+ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\90«ã\82\93ã\81§ã\81\84ã\82\8bã\83\87ã\83\90ã\82¤ã\82¹ã\81«æ\96°ã\81\97ã\81\84ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 ä½\9cæ\88\90ã\81\99ã\82\8bã\81\9fã\82\81ã\81®ç©ºã\81\8dã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
\fIoldpath\fP または \fInewpath\fP のディレクトリ部分が、実際には、ディレクトリでない。
\fBlinkat\fP() では以下のエラーも発生する。
.TP
\fBEBADF\fP
-\fIolddirfd\fP か \fInewdirfd\fP が有効なファイルディスクリプタでない。
+\fIolddirfd\fP ã\81\8b \fInewdirfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
無効なフラグ値が \fIflags\fP に指定された。
接続待ちソケットとは、 \fBaccept\fP(2) を使って到着した接続要求を受け付けるのに使用されるソケットである。
\fIsockfd\fP 引き数は、 \fBSOCK_STREAM\fP 型か \fBSOCK_SEQPACKET\fP
-型のソケットを参照するファイルディスクリプタである。
+å\9e\8bã\81®ã\82½ã\82±ã\83\83ã\83\88ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
\fIbacklog\fP 引き数は、 \fIsockfd\fP についての保留中の接続のキューの最大長を指定する。
キューがいっぱいの状態で接続要求が到着すると、クライアントは \fBECONNREFUSED\fP
.RE
.PP
POSIX.1\-2001 では \fI<sys/types.h>\fP のインクルードは必須とされておらず、 Linux
-ã\81§ã\81¯ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83\95ã\82¡ã\82¤ã\83«ã\81¯å¿\85è¦\81ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81æ´å\8f²ç\9a\84ã\81«ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å®\9fè£\85 (BSD ç³») ã\81§ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ファイルが
+ã\81§ã\81¯ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81¯å¿\85è¦\81ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81æ´å\8f²ç\9a\84ã\81«ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å®\9fè£\85 (BSD ç³») ã\81§ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ファイルが
必要であり、移植性が必要なアプリケーションではこのファイルを インクルードするのが賢明であろう。
TCP ソケットでの \fIbacklog\fP 引き数の振る舞いは Linux 2.2 で変更された。 現在ではこの引き数は、
拡張属性のコンセプトは \fBattr\fP(5) に書かれている。
.PP
\fBlistxattr\fP() は、ファイルシステム内の指定された \fIpath\fP に対応する拡張属性の名前リストを取得する。取得したリストは
-\fIlist\fP ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82 \fIlist\fP ã\81¯å\91¼ã\81³å\87ºã\81\97å\81´ã\81§ç¢ºä¿\9dã\81\99ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\81§ã\80\81å¼\95ã\81\8dæ\95° \fIsize\fP ã\81§ã\83\90ã\83\83ã\83\95ã\82¡のサイズを (バイト単位で)
+\fIlist\fP ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82 \fIlist\fP ã\81¯å\91¼ã\81³å\87ºã\81\97å\81´ã\81§ç¢ºä¿\9dã\81\99ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§ã\80\81å¼\95ã\81\8dæ\95° \fIsize\fP ã\81§ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼のサイズを (バイト単位で)
指定する。リストは名前の集合で、ヌル終端された文字列が連続して並んでいる。呼び出したプロセスがアクセスする権限のない拡張属性の名前は、リストに含まれない。拡張属性の名前の
\fIlist\fP の長さが返される。
.PP
個々の拡張属性の \fIname\fP は普通のヌル終端された文字列である。 名前には、名前空間を表す接頭辞 (prefix) が含まれる; 個々の
inode に対して、互いに独立な名前空間が複数あってもよい。
.PP
-\fIsize\fP に 0 を指定して空のバッファをこれらのシステムコールに渡すことができ、 この場合には拡張属性の名前リストの現在のサイズが返される。
-ã\81\93ã\81®æ\96¹æ³\95ã\81¯å\90\8då\89\8dã\83ªã\82¹ã\83\88ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªå¤§ã\81\8dã\81\95ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83»サイズを 見積もるのに使うことができる、
+\fIsize\fP ã\81« 0 ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ç©ºã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81«æ¸¡ã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\80\81 ã\81\93ã\81®å ´å\90\88ã\81«ã\81¯æ\8b¡å¼µå±\9eæ\80§ã\81®å\90\8då\89\8dã\83ªã\82¹ã\83\88ã\81®ç\8f¾å\9c¨ã\81®ã\82µã\82¤ã\82ºã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82
+ã\81\93ã\81®æ\96¹æ³\95ã\81¯å\90\8då\89\8dã\83ªã\82¹ã\83\88ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªå¤§ã\81\8dã\81\95ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼サイズを 見積もるのに使うことができる、
.SS Example
返される名前の \fIlist\fP は、ヌル終端された文字列の配列 (属性名はヌルバイト (\(aq\e0\(aq) で区切られている)
で、各要素は整列されている訳ではない。 以下に例を示す:
拡張属性がそのファイルシステムでサポートされていない、 もしくは無効になっている。
.TP
\fBERANGE\fP
-\fIlist\fP バッファの大きさ \fIsize\fP が結果を保持するのに十分な大きさでなかった。
+\fIlist\fP ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å¤§ã\81\8dã\81\95 \fIsize\fP ã\81\8cçµ\90æ\9e\9cã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªå¤§ã\81\8dã\81\95ã\81§ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.PP
上記に加えて、 \fBstat\fP(2) に書かれているエラーが発生する場合もある。
.SH バージョン
\fI注\fP: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。
.SH 説明
-\fB_llseek\fP() 関数は、ファイルディスクリプタ (descriptor) \fIfd\fP
+\fB_llseek\fP() 関数は、ファイルディスクリプター (descriptor) \fIfd\fP
に関連づけられたオープンされたファイルのオフセットの位置を、相対的に \fI(offset_high<<32) | offset_low\fP
バイトだけ変更する。 基準となる位置を表す \fIwhence\fP には \fBSEEK_SET\fP, \fBSEEK_CUR\fP, \fBSEEK_END\fP
のいずれかを指定し、それぞれ ファイルの先頭、ファイルの現在位置、 ファイルの最後を表す。 結果のファイル位置を \fIresult\fP 引き数に返す。
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP がオープンされたファイルディスクリプタでない。
+\fIfd\fP ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEFAULT\fP
-結果をユーザ空間にコピーするときに問題があった。
+結果をユーザー空間にコピーするときに問題があった。
.TP
\fBEINVAL\fP
\fIwhence\fP が不正である。
.\"
.TH LOOKUP_DCOOKIE 2 2004\-06\-17 Linux "Linux Programmer's Manual"
.SH 名前
-lookup_dcookie \- ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\82¨ã\83³ã\83\88ã\83ªのパス名を返す
+lookup_dcookie \- ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼のパス名を返す
.SH 書式
\fBint lookup_dcookie(u64 \fP\fIcookie\fP\fB, char *\fP\fIbuffer\fP\fB, size_t
\fP\fIlen\fP\fB);\fP
.SH 説明
-\fIcookie\fP å\80¤ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\82¨ã\83³ã\83\88ã\83ªã\81®ã\83\95ã\83«ã\83\91ã\82¹å\90\8dã\82\92æ¤\9cç´¢ã\81\99ã\82\8bã\80\82 cookie ã\81¯ã\80\81å\80\8bã\80\85ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\82¨ã\83³ã\83\88ã\83ªを区別する内部識別子
-(opaque identifier) ã\81§ã\81\82ã\82\8bã\80\82å¼\95ã\81\8dæ\95°ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\81«ã\80\81ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\82¨ã\83³ã\83\88ã\83ªの フルパス名が格納される。
+\fIcookie\fP å\80¤ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\83\95ã\83«ã\83\91ã\82¹å\90\8dã\82\92æ¤\9cç´¢ã\81\99ã\82\8bã\80\82 cookie ã\81¯ã\80\81å\80\8bã\80\85ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼を区別する内部識別子
+(opaque identifier) ã\81§ã\81\82ã\82\8bã\80\82å¼\95ã\81\8dæ\95°ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\80\81ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼の フルパス名が格納される。
-\fBlookup_dcookie\fP() ã\81\8cæ£å¸¸ã\81«å\80¤ã\82\92è¿\94ã\81\99ã\81\9fã\82\81ã\81«ã\81¯ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\82¨ã\83³ã\83\88ã\83ªへの cookie 参照を
+\fBlookup_dcookie\fP() ã\81\8cæ£å¸¸ã\81«å\80¤ã\82\92è¿\94ã\81\99ã\81\9fã\82\81ã\81«ã\81¯ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼への cookie 参照を
保持していなければならない。
.SH 返り値
-成功した場合、 \fBlookup_dcookie\fP() はバッファにコピーしたパス文字列の長さを返す。 エラーの場合は \-1 を返し、
+æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 \fBlookup_dcookie\fP() ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\82³ã\83\94ã\83¼ã\81\97ã\81\9fã\83\91ã\82¹æ\96\87å\97å\88\97ã\81®é\95·ã\81\95ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\81¯ \-1 ã\82\92è¿\94ã\81\97ã\80\81
\fIerrno\fP に適切な値を設定する。
.SH エラー
.TP
\fBEFAULT\fP
-バッファが有効でなかった。
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cæ\9c\89å\8a¹ã\81§ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBEINVAL\fP
-æ¤\9cç´¢ã\81\8cè¡\8cã\82\8fã\82\8cã\81\9fæ\99\82ã\80\81cookie ã\81¨ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\82¨ã\83³ã\83\88ã\83ªのマッピングがカーネルに 登録されていなかったか、または cookie
-ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\82¨ã\83³ã\83\88ã\83ªを 参照していない。
+æ¤\9cç´¢ã\81\8cè¡\8cã\82\8fã\82\8cã\81\9fæ\99\82ã\80\81cookie ã\81¨ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼のマッピングがカーネルに 登録されていなかったか、または cookie
+ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼を 参照していない。
.TP
\fBENAMETOOLONG\fP
-名前がバッファに入り切らなかった。
+å\90\8då\89\8dã\81\8cã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8aå\88\87ã\82\89ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBENOMEM\fP
-カーネルが、パス名を保持する一時バッファ用のメモリを割り当てることが できなかった。
+カーネルが、パス名を保持する一時バッファー用のメモリーを割り当てることが できなかった。
.TP
\fBEPERM\fP
プロセスが cookie 値を検索するのに必要なケーパビリティ \fBCAP_SYS_ADMIN\fP を持っていない。
.TP
\fBERANGE\fP
-ã\83\90ã\83\83ã\83\95ã\82¡ã\81\8cã\80\81ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\82¨ã\83³ã\83\88ã\83ªのパス名を収容するのに 十分な大きさではなかった。
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cã\80\81ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼のパス名を収容するのに 十分な大きさではなかった。
.SH バージョン
Linux 2.5.43 以降で利用できる。 エラー \fBENAMETOOLONG\fP を返す仕様は 2.5.70 で追加された。
.SH 準拠
\fBlookup_dcookie\fP() は特殊な用途に使われるシステムコールで、現在のところ oprofile profiler で
使われているだけである。
-æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\82¨ã\83³ã\83\88ã\83ªが削除されていた場合、返されるパス名の最後に " (deleted)" という文字列が付加されることがある。
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼が削除されていた場合、返されるパス名の最後に " (deleted)" という文字列が付加されることがある。
.SH この文書について
この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.78 の一部
である。プロジェクトの説明とバグ報告に関する情報は
.sp
\fBoff_t lseek(int \fP\fIfd\fP\fB, off_t \fP\fIoffset\fP\fB, int \fP\fIwhence\fP\fB);\fP
.SH 説明
-\fBlseek\fP() 関数は、ファイルディスクリプタ (descriptor) \fIfd\fP に対応するオープンされたファイルのオフセットを、
+\fBlseek\fP() 関数は、ファイルディスクリプター (descriptor) \fIfd\fP に対応するオープンされたファイルのオフセットを、
\fIwhence\fP に基づき \fIoffset\fP 引き数の位置へ以下のように変更する:
.TP
\fBSEEK_SET\fP
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP がオープンされたファイルディスクリプタでない。
+\fIfd\fP ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
.\" Some systems may allow negative offsets for character devices
\fBSEEK_DATA\fP と \fBSEEK_HOLE\fP は非標準の拡張で、 Solaris, FreeBSD, DragonFly BSD
にも存在する。 これらは POSIX の次の版 (Issue 8) に入れるよう提案されている。
.SH 注意
-ファイルディスクリプタ、オープンファイル記述、ファイルの関係の説明については \fBopen\fP(2) を参照。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\80\81ã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿°ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81®é\96¢ä¿\82ã\81®èª¬æ\98\8eã\81«ã\81¤ã\81\84ã\81¦ã\81¯ \fBopen\fP(2) ã\82\92å\8f\82ç\85§ã\80\82
いくつかのデバイスでは seek ができない。 POSIX はどのデバイスが \fBlseek\fP() に対応すべきかは規定していない。
.\" SVr1-3 returns \fIlong\fP instead of \fIoff_t\fP,
.\" (ancient) BSD returns \fIint\fP.
.PP
-\fBdup\fP(2) ã\82\84 \fBfork\fP(2) ã\81§ä½\9cæ\88\90ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83\95ã\82¡ã\82¤ã\83«ä½\8dç½®ã\83\9dã\82¤ã\83³ã\82¿ (current file
+\fBdup\fP(2) ã\82\84 \fBfork\fP(2) ã\81§ä½\9cæ\88\90ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83\95ã\82¡ã\82¤ã\83«ä½\8dç½®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ (current file
position pointer) を共有しているので、 このようなファイルで移動を行うと競合状態を引き起こす可能性がある。
.SH 関連項目
\fBdup\fP(2), \fBfork\fP(2), \fBopen\fP(2), \fBfseek\fP(3), \fBlseek64\fP(3),
.\"
.TH MADVISE 2 2014\-12\-31 Linux "Linux Programmer's Manual"
.SH 名前
-madvise \- メモリ利用に関するアドバイスを与える
+madvise \- メモリー利用に関するアドバイスを与える
.SH 書式
\fB#include <sys/mman.h>\fP
.sp
\fBmadvise\fP(): _BSD_SOURCE
.SH 説明
\fBmadvise\fP() システムコールは、アドレス \fIaddr\fP からはじまる \fIlength\fP
-バイトのメモリブロックのページング入出力をどう扱えば良いか、 カーネルにアドバイスする。 これを用いると、 アプリケーションからカーネルに、
-ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\82\84å\85±æ\9c\89ã\83¡ã\83¢ã\83ªをどのように扱ってほしいか伝えることができ、 カーネルはそれに応じて先読みやキャッシュなどの適切な手法を選択できる。
+ã\83\90ã\82¤ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\96ã\83ã\83\83ã\82¯ã\81®ã\83\9aã\83¼ã\82¸ã\83³ã\82°å\85¥å\87ºå\8a\9bã\82\92ã\81©ã\81\86æ\89±ã\81\88ã\81°è\89¯ã\81\84ã\81\8bã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82¢ã\83\89ã\83\90ã\82¤ã\82¹ã\81\99ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\92ç\94¨ã\81\84ã\82\8bã\81¨ã\80\81 ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81\8bã\82\89ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\80\81
+ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\84å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼をどのように扱ってほしいか伝えることができ、 カーネルはそれに応じて先読みやキャッシュなどの適切な手法を選択できる。
このコールはアプリケーションの動作そのものには影響しない (\fBMADV_DONTNEED\fP の場合は別) が、 性能には影響しうる。
なおこのアドバイスを受け入れるかどうかはカーネルに任される。
.LP
.TP
\fBMADV_DONTNEED\fP
しばらくアクセスはなさそうだ。 (現時点でアプリケーションは与えた範囲の処理を終えている。 したがってカーネルはこれに関連するリソースを解放して良い。)
-これ以降この範囲のページへのアクセスがあると、 成功はするが、メモリの内容をマップ元のファイルからロードし直すことになる (\fBmmap\fP(2)
+ã\81\93ã\82\8c以é\99\8dã\81\93ã\81®ç¯\84å\9b²ã\81®ã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ã\81\8cã\81\82ã\82\8bã\81¨ã\80\81 æ\88\90å\8a\9fã\81¯ã\81\99ã\82\8bã\81\8cã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\86\85容ã\82\92ã\83\9eã\83\83ã\83\97å\85\83ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89ã\83ã\83¼ã\83\89ã\81\97ç\9b´ã\81\99ã\81\93ã\81¨ã\81«ã\81ªã\82\8b (\fBmmap\fP(2)
を見よ) か、 または元ファイルがないマップページでは アクセスがあったときに 0 埋めが行われることになる。
.TP
\fBMADV_REMOVE\fP (Linux 2.6.16 以降)
の前後でマッピングは継承されるようになる。
.TP
\fBMADV_HWPOISON\fP (Linux 2.6.32 以降)
-ページに毒入れを行い、ハードウェアメモリの破損のようにそのページを取り扱う。 この操作は特権 (\fBCAP_SYS_ADMIN\fP を持った)
+ã\83\9aã\83¼ã\82¸ã\81«æ¯\92å\85¥ã\82\8cã\82\92è¡\8cã\81\84ã\80\81ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\83¡ã\83¢ã\83ªã\83¼ã\81®ç ´æ\90\8dã\81®ã\82\88ã\81\86ã\81«ã\81\9dã\81®ã\83\9aã\83¼ã\82¸ã\82\92å\8f\96ã\82\8aæ\89±ã\81\86ã\80\82 ã\81\93ã\81®æ\93\8dä½\9cã\81¯ç\89¹æ¨© (\fBCAP_SYS_ADMIN\fP ã\82\92æ\8c\81ã\81£ã\81\9f)
プロセスだけが利用できる。 この操作の結果、呼び出したプロセスは \fBSIGBUS\fP を受け取り、そのページはアンマップされる。
-この機能はメモリのエラー処理コードをテストするためのものである。 カーネルで \fBCONFIG_MEMORY_FAILURE\fP
+ã\81\93ã\81®æ©\9fè\83½ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82¨ã\83©ã\83¼å\87¦ç\90\86ã\82³ã\83¼ã\83\89ã\82\92ã\83\86ã\82¹ã\83\88ã\81\99ã\82\8bã\81\9fã\82\81ã\81®ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82 ã\82«ã\83¼ã\83\8dã\83«ã\81§ \fBCONFIG_MEMORY_FAILURE\fP
が有効になっている場合にのみ利用可能である。
.TP
\fBMADV_SOFT_OFFLINE\fP (Linux 2.6.33 以降)
-\fIaddr\fP と \fIlength\fP で指定された範囲のページをソフトオフラインにする。 指定された範囲の各ページのメモリの内容は保持され
+\fIaddr\fP ã\81¨ \fIlength\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fç¯\84å\9b²ã\81®ã\83\9aã\83¼ã\82¸ã\82\92ã\82½ã\83\95ã\83\88ã\82ªã\83\95ã\83©ã\82¤ã\83³ã\81«ã\81\99ã\82\8bã\80\82 æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fç¯\84å\9b²ã\81®å\90\84ã\83\9aã\83¼ã\82¸ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\86\85容ã\81¯ä¿\9dæ\8c\81ã\81\95ã\82\8c
(すなわち、次にアクセスされた際に、同じ内容が見えるが、新しい物理ページフレームになる)、 元のフレームはオフラインになる (すなわち、
-そのフレームは使用される、通常のメモリ管理からは取り除かれる)。 \fBMADV_SOFT_OFFLINE\fP 操作の影響は呼び出したプロセスには見えない
-(つまり呼び出したプロセスの動作は変化しない)。 この機能はメモリのエラー処理コードをテストすることを目的に作られた。 カーネルで
+そのフレームは使用される、通常のメモリー管理からは取り除かれる)。 \fBMADV_SOFT_OFFLINE\fP 操作の影響は呼び出したプロセスには見えない
+(ã\81¤ã\81¾ã\82\8aå\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81®å\8b\95ä½\9cã\81¯å¤\89å\8c\96ã\81\97ã\81ªã\81\84)ã\80\82 ã\81\93ã\81®æ©\9fè\83½ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82¨ã\83©ã\83¼å\87¦ç\90\86ã\82³ã\83¼ã\83\89ã\82\92ã\83\86ã\82¹ã\83\88ã\81\99ã\82\8bã\81\93ã\81¨ã\82\92ç\9b®ç\9a\84ã\81«ä½\9cã\82\89ã\82\8cã\81\9fã\80\82 ã\82«ã\83¼ã\83\8dã\83«ã\81§
\fBCONFIG_MEMORY_FAILURE\fP が有効になっている場合にのみ利用可能である。
.TP
\fBMADV_MERGEABLE\fP (Linux 2.6.32 以降)
Kernel Samepage Merging (KSM; カーネルによる同じページの統合) を \fIaddr\fP と \fIlength\fP
-で指定された領域に対して有効にする。 カーネルは、 統合可能の印がついたユーザーメモリの領域を定期的にスキャンし、内容が全く同じページを探す。
+ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fé \98å\9f\9fã\81«å¯¾ã\81\97ã\81¦æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\80\82 ã\82«ã\83¼ã\83\8dã\83«ã\81¯ã\80\81 çµ±å\90\88å\8f¯è\83½ã\81®å\8d°ã\81\8cã\81¤ã\81\84ã\81\9fã\83¦ã\83¼ã\82¶ã\83¼ã\83¡ã\83¢ã\83ªã\83¼ã\81®é \98å\9f\9fã\82\92å®\9aæ\9c\9fç\9a\84ã\81«ã\82¹ã\82ã\83£ã\83³ã\81\97ã\80\81å\86\85容ã\81\8cå\85¨ã\81\8få\90\8cã\81\98ã\83\9aã\83¼ã\82¸ã\82\92æ\8e¢ã\81\99ã\80\82
内容が全く同じページがあれば、それらのページは書き込み保護 (write\-protected) がかかった一つのページで置き換えられる
(プロセスが後でページの内容を更新しようとした際には自動的にページのコピーが行われる)。 KSM はプライベートな無名ページ (anonymous
pages) だけを統合する (\fBmmap\fP(2) 参照)。 KSM 機能は、 同じデータのインスタンスを大量に生成するアプリケーション (KVM
現在のところ、Transparent Huge Pages はプライベートな無名ページ (anonymous pages) についてのみ機能する。
カーネルは定期的にヒュージページ (huge page) 候補の印がついたページをスキャンし、ヒュージページと置き換える。
また、カーネルはその領域がヒュージページのサイズに合っている場合、ヒュージページを直接割り当てる (\fBposix_memalign\fP(2) 参照)。
-この機能は、大きなデータマッピングを使用し、一度にそのメモリの大きな範囲にアクセスするようなアプリケーション (例えば QEMU
-ã\81®ã\82\88ã\81\86ã\81ªä»®æ\83³å\8c\96ã\82·ã\82¹ã\83\86ã\83 ) ã\81§ä½¿ã\81\86ã\81\93ã\81¨ã\82\92主ã\81«æ\83³å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\81®æ©\9fè\83½ã\81¯é\9d\9e常ã\81«ç°¡å\8d\98ã\81«ã\83¡ã\83¢ã\83ªã\82\92浪費ã\81\97ã\81¦ã\81\97ã\81¾ã\81\86 (ä¾\8bã\81\88ã\81°ã\80\811 ã\83\90ã\82¤ã\83\88ã\81\97ã\81\8bã\82¢ã\82¯ã\82»ã\82¹ã\81\97ã\81ªã\81\84 2MB
-のマッピングが、 4KB ページではなく 2MB の実際のメモリを使ってしまう)。 詳細は Linux カーネルソースファイル
+ã\81\93ã\81®æ©\9fè\83½ã\81¯ã\80\81大ã\81\8dã\81ªã\83\87ã\83¼ã\82¿ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\82\92使ç\94¨ã\81\97ã\80\81ä¸\80度ã\81«ã\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81®å¤§ã\81\8dã\81ªç¯\84å\9b²ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8bã\82\88ã\81\86ã\81ªã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ (ä¾\8bã\81\88ã\81° QEMU
+ã\81®ã\82\88ã\81\86ã\81ªä»®æ\83³å\8c\96ã\82·ã\82¹ã\83\86ã\83 ) ã\81§ä½¿ã\81\86ã\81\93ã\81¨ã\82\92主ã\81«æ\83³å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\81®æ©\9fè\83½ã\81¯é\9d\9e常ã\81«ç°¡å\8d\98ã\81«ã\83¡ã\83¢ã\83ªã\83¼ã\82\92浪費ã\81\97ã\81¦ã\81\97ã\81¾ã\81\86 (ä¾\8bã\81\88ã\81°ã\80\811 ã\83\90ã\82¤ã\83\88ã\81\97ã\81\8bã\82¢ã\82¯ã\82»ã\82¹ã\81\97ã\81ªã\81\84
+2MB のマッピングが、 4KB ページではなく 2MB の実際のメモリーを使ってしまう)。 詳細は Linux カーネルソースファイル
\fIDocumentation/vm/transhuge.txt\fP を参照。 \fBMADV_HUGEPAGE\fP と \fBMADV_NOHUGEPAGE\fP
は、 カーネルで \fBCONFIG_TRANSPARENT_HUGEPAGE\fP オプションを有効になっている場合にのみ利用できる。
.TP
\fBMADV_NOHUGEPAGE\fP (Linux 2.6.38 以降)
-\fIaddr\fP と \fIlength\fP で指定されたアドレス範囲のメモリがヒュージページに組み込まれないようにする。
+\fIaddr\fP ã\81¨ \fIlength\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¢ã\83\89ã\83¬ã\82¹ç¯\84å\9b²ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\81«çµ\84ã\81¿è¾¼ã\81¾ã\82\8cã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\80\82
.TP
\fBMADV_DONTDUMP\fP (Linux 3.4 以降)
コアダンプから \fIaddr\fP と \fIlength\fP で指定された範囲のページを除外する。 これは、
-コアダンプに含めても役に立たないことが分かっている大きなメモリ領域があるアプリケーションで有用である。 \fBMADV_DONTDUMP\fP の効果は
+コアダンプに含めても役に立たないことが分かっている大きなメモリー領域があるアプリケーションで有用である。 \fBMADV_DONTDUMP\fP の効果は
\fI/proc/PID/coredump_filter\fP ファイル経由で設定されたビットマスクよりも優先される (\fBcore\fP(5) 参照)。
.TP
\fBMADV_DODUMP\fP (Linux 3.4 以降)
の最大値を越えてしまう。
.TP
\fBENOMEM\fP
-(\fBMADV_WILLNEED\fP の場合) メモリが足りず、ページングに失敗した。
+(\fBMADV_WILLNEED\fP ã\81®å ´å\90\88) ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81\9aã\80\81ã\83\9aã\83¼ã\82¸ã\83³ã\82°ã\81«å¤±æ\95\97ã\81\97ã\81\9fã\80\82
.TP
\fBENOMEM\fP
指定した範囲のアドレスが、現在マップされていない。 あるいはプロセスのアドレス空間の内部にない。
.\"
.TH MBIND 2 2015\-01\-22 Linux "Linux Programmer's Manual"
.SH 名前
-mbind \- メモリ領域に対してメモリポリシーを設定する
+mbind \- メモリー領域に対してメモリーポリシーを設定する
.SH 書式
.nf
\fB#include <numaif.h>\fP
\fI\-lnuma\fP でリンクする。
.fi
.SH 説明
-\fBmbind\fP() ã\81¯ã\80\81 \fIaddr\fP ã\81\8bã\82\89å§\8bã\81¾ã\82\8bé\95·ã\81\95 \fIlen\fP ã\83\90ã\82¤ã\83\88ã\81®ç¯\84å\9b²ã\81®ã\83¡ã\83¢ã\83ªã\81« NUMA ã\83¡ã\83¢ã\83ªポリシーを設定する。 NUMA
-ã\83\9dã\83ªã\82·ã\83¼ã\81¯ã\83\9dã\83ªã\82·ã\83¼ã\83¢ã\83¼ã\83\89ã\81¨ 0 å\80\8b以ä¸\8aã\81®ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89æ§\8bæ\88\90ã\81\95ã\82\8cã\82\8bã\80\82 ã\83¡ã\83¢ã\83ªã\83\9dã\83ªã\82·ã\83¼ã\81¯ã\81©ã\81®ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89ã\83¡ã\83¢ã\83ªを割り当てるかを決定する。
+\fBmbind\fP() ã\81¯ã\80\81 \fIaddr\fP ã\81\8bã\82\89å§\8bã\81¾ã\82\8bé\95·ã\81\95 \fIlen\fP ã\83\90ã\82¤ã\83\88ã\81®ç¯\84å\9b²ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81« NUMA ã\83¡ã\83¢ã\83ªã\83¼ポリシーを設定する。 NUMA
+ã\83\9dã\83ªã\82·ã\83¼ã\81¯ã\83\9dã\83ªã\82·ã\83¼ã\83¢ã\83¼ã\83\89ã\81¨ 0 å\80\8b以ä¸\8aã\81®ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89æ§\8bæ\88\90ã\81\95ã\82\8cã\82\8bã\80\82 ã\83¡ã\83¢ã\83ªã\83¼ã\83\9dã\83ªã\82·ã\83¼ã\81¯ã\81©ã\81®ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89ã\83¡ã\83¢ã\83ªã\83¼を割り当てるかを決定する。
-\fIaddr\fP と \fIlen\fP で指定されたメモリ範囲に、 メモリの「無名」領域 \(em \fBMAP_ANONYMOUS\fP 付きの
-\fBmmap\fP(2) システムコールを使って作成されたメモリ領域 \(em や \fBMAP_PRIVATE\fP 付きの \fBmmap\fP(2)
-ã\82\92使ã\81£ã\81¦ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83\9eã\83\83ã\83\97ã\83»ファイルが含まれている場合、アプリケーションがそのページへの書き込み (データの格納)
+\fIaddr\fP と \fIlen\fP で指定されたメモリー範囲に、 メモリーの「無名」領域 \(em \fBMAP_ANONYMOUS\fP 付きの
+\fBmmap\fP(2) システムコールを使って作成されたメモリー領域 \(em や \fBMAP_PRIVATE\fP 付きの \fBmmap\fP(2)
+ã\82\92使ã\81£ã\81¦ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\97ファイルが含まれている場合、アプリケーションがそのページへの書き込み (データの格納)
を行った時には指定されたポリシーのみに基づいてページが割り当てられる。無名領域の場合、最初の読み出しアクセスの際には カーネル内の全データが 0
である共有ページが使用される。 \fBMAP_PRIVATE\fP でマップされたファイルの場合、最初の読み出しアクセスがあると、
ページ割り当てが発生するきっかけとなったプロセスのデフォルトポリシー にしたがってページの割り当てが行われる。
ページ割り当てのきっかけとなったプロセスは、 \fBmbind\fP() を呼び出したプロセスと同じとは限らない。
-指定されたメモリ範囲内にある \fBMAP_SHARED\fP のマッピングでは指定されたポリシーは無視され、
+指定されたメモリー範囲内にある \fBMAP_SHARED\fP のマッピングでは指定されたポリシーは無視され、
ページ割り当てが発生するきっかけとなったプロセスのデフォルトポリシーに したがってページの割り当てが行われることになる。
繰り返しになるが、ページ割り当てのきっかけとなったプロセスは、 \fBmbind\fP() を呼び出したプロセスと同じとは限らない。
-指定されたメモリ範囲に、 \fBshmget\fP(2) システムコールを使って作成されたり、 \fBshmat\fP(2) システムコールを使って付加
-(attach) されたりした共有メモリ領域が 含まれる場合、無名メモリ領域や共有メモリ領域に対するページ割り当ては、
-共有メモリセグメントへポリシーの設定を行ったプロセスがページ割り当て のきっかけとなったかに関わらず、指定されたポリシーにしたがって割り当て
-が行われる。 しかしながら、共有メモリ領域が \fBSHM_HUGETLB\fP フラグを指定して作成された場合には、ヒュージページ (huge page)
+指定されたメモリー範囲に、 \fBshmget\fP(2) システムコールを使って作成されたり、 \fBshmat\fP(2) システムコールを使って付加
+(attach) されたりした共有メモリー領域が 含まれる場合、無名メモリー領域や共有メモリー領域に対するページ割り当ては、
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81¸ã\83\9dã\83ªã\82·ã\83¼ã\81®è¨å®\9aã\82\92è¡\8cã\81£ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81\8cã\83\9aã\83¼ã\82¸å\89²ã\82\8aå½\93ã\81¦ ã\81®ã\81\8dã\81£ã\81\8bã\81\91ã\81¨ã\81ªã\81£ã\81\9fã\81\8bã\81«é\96¢ã\82\8fã\82\89ã\81\9aã\80\81æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\9dã\83ªã\82·ã\83¼ã\81«ã\81\97ã\81\9fã\81\8cã\81£ã\81¦å\89²ã\82\8aå½\93ã\81¦
+が行われる。 しかしながら、共有メモリー領域が \fBSHM_HUGETLB\fP フラグを指定して作成された場合には、ヒュージページ (huge page)
の割り当てが 指定されたポリシーにしたがって行われるのは、その領域に対して \fBmbind\fP()
を呼び出したプロセスがページ割り当てのきっかけとなった場合のみである。
-デフォルトでは、 \fBmbind\fP() は新規のメモリ割り当てに対してのみ効果を持つ。
+デフォルトでは、 \fBmbind\fP() は新規のメモリー割り当てに対してのみ効果を持つ。
ポリシーが設定される前にすでに使用されている範囲内のページに対しては、 ポリシーは影響しない。 このデフォルトの動作は、以下で説明するフラグ
\fBMPOL_MF_MOVE\fP や \fBMPOL_MF_MOVE_ALL\fP により上書きされる可能性がある。
\fIsizeof(unsigned long)\fP の倍数に切り上げられるが、カーネルが使用するのは \fImaxnode\fP 個までのビットだけである。
NULL 値の \fInodemask\fP もしくは値が 0 の \fImaxnode\fP はノードの空集合を表す。 \fImaxnode\fP の値が 0 の場合、
\fInodemask\fP 引き数は無視される。 \fInodemask\fP が必須の場面では、 \fInodemask\fP に、オンラインで、そのプロセスの現在の
-CPU 集合コンテキストで 許可されており (\fBMPOL_F_STATIC_NODES\fP モードフラグが指定されていない場合)、メモリがあるノードが
+CPU é\9b\86å\90\88ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81§ 許å\8f¯ã\81\95ã\82\8cã\81¦ã\81\8aã\82\8a (\fBMPOL_F_STATIC_NODES\fP ã\83¢ã\83¼ã\83\89ã\83\95ã\83©ã\82°ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88)ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81\82ã\82\8bã\83\8eã\83¼ã\83\89ã\81\8c
少なくとも一つ入っていなければならない。
-モード \fBMPOL_DEFAULT\fP はデフォルトではないプロセスのメモリポリシーを削除し、 デフォルトの動作に戻すことを指定するものである。
-\fBmbind\fP() 経由で、あるメモリ領域に対して \fBMPOL_DEFAULT\fP
+ã\83¢ã\83¼ã\83\89 \fBMPOL_DEFAULT\fP ã\81¯ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\81ªã\81\84ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\9dã\83ªã\82·ã\83¼ã\82\92å\89\8aé\99¤ã\81\97ã\80\81 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®å\8b\95ä½\9cã\81«æ\88»ã\81\99ã\81\93ã\81¨ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82
+\fBmbind\fP() 経由で、あるメモリー領域に対して \fBMPOL_DEFAULT\fP
が適用された場合、プロセスのデフォルトポリシーを使用することを意味する。 プロセスのデフォルトポリシーは、 \fBset_mempolicy\fP(2)
で変更されているかもしれない。 プロセスのポリシーのモードも \fBMPOL_DEFAULT\fP の場合、システム全体のデフォルトポリシーが使用される。
システム全体のデフォルトポリシーでは、割り当てのきっかけとなった CPU のノードからページの割り当てを行う。 \fBMPOL_DEFAULT\fP
では、引き数 \fInodemask\fP と \fImaxnode\fP にノードの空集合を指定しなければならない。
-\fBMPOL_BIND\fP は厳しいポリシーで、メモリ割り当ては \fInodemask\fP に指定されたノードに限定される。
+\fBMPOL_BIND\fP は厳しいポリシーで、メモリー割り当ては \fInodemask\fP に指定されたノードに限定される。
他のノードへの割り当ては行われない。 \fInodemask\fP に 2 個以上のノードが指定された場合、ページの割り当ては ノード ID
-が数字として最小のノードから開始され、 そのノードに空きメモリがなくなるまでそのノードから
-ページ割り当てが行われる。そのノードに空きメモリがなくなったら、 次に小さなノード ID を持つノードからページ割り当てが行われる。 これを、
-\fInodemask\fP で指定された全てのノードで空きメモリがなくなるまで繰り返す。 \fInodemask\fP
+ã\81\8cæ\95°å\97ã\81¨ã\81\97ã\81¦æ\9c\80å°\8fã\81®ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89é\96\8bå§\8bã\81\95ã\82\8cã\80\81 ã\81\9dã\81®ã\83\8eã\83¼ã\83\89ã\81«ç©ºã\81\8dã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\8fã\81ªã\82\8bã\81¾ã\81§ã\81\9dã\81®ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89
+ã\83\9aã\83¼ã\82¸å\89²ã\82\8aå½\93ã\81¦ã\81\8cè¡\8cã\82\8fã\82\8cã\82\8bã\80\82ã\81\9dã\81®ã\83\8eã\83¼ã\83\89ã\81«ç©ºã\81\8dã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\8fã\81ªã\81£ã\81\9fã\82\89ã\80\81 次ã\81«å°\8fã\81\95ã\81ªã\83\8eã\83¼ã\83\89 ID ã\82\92æ\8c\81ã\81¤ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89ã\83\9aã\83¼ã\82¸å\89²ã\82\8aå½\93ã\81¦ã\81\8cè¡\8cã\82\8fã\82\8cã\82\8bã\80\82 ã\81\93ã\82\8cã\82\92ã\80\81
+\fInodemask\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\85¨ã\81¦ã\81®ã\83\8eã\83¼ã\83\89ã\81§ç©ºã\81\8dã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\8fã\81ªã\82\8bã\81¾ã\81§ç¹°ã\82\8aè¿\94ã\81\99ã\80\82 \fInodemask\fP
で指定された以外のノードからはページの割り当ては行われない。
-\fBMPOL_INTERLEAVE\fP は、メモリ割り当てが \fInodemask\fP に指定されたノード間で交互に行われることを指定するものである。
-このポリシーでは、複数のノードにページを広げて配置し、これらのページへの メモリアクセスを分散することで、遅延ではなく、帯域を最適化する。
-効果を得るには、メモリ領域をある程度大きくすべきであり、 メモリアクセスのパターンがかなり均一な場合でも 少なくとも 1MB 以上にすべきである。
-このモードでも、一つのページへのアクセスに関しては 一つのノードのメモリ帯域が上限となることは変わりない。
+\fBMPOL_INTERLEAVE\fP は、メモリー割り当てが \fInodemask\fP に指定されたノード間で交互に行われることを指定するものである。
+ã\81\93ã\81®ã\83\9dã\83ªã\82·ã\83¼ã\81§ã\81¯ã\80\81è¤\87æ\95°ã\81®ã\83\8eã\83¼ã\83\89ã\81«ã\83\9aã\83¼ã\82¸ã\82\92åº\83ã\81\92ã\81¦é\85\8dç½®ã\81\97ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\9aã\83¼ã\82¸ã\81¸ã\81® ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\82¯ã\82»ã\82¹ã\82\92å\88\86æ\95£ã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81é\81\85延ã\81§ã\81¯ã\81ªã\81\8fã\80\81帯å\9f\9fã\82\92æ\9c\80é\81©å\8c\96ã\81\99ã\82\8bã\80\82
+効果を得るには、メモリー領域をある程度大きくすべきであり、 メモリーアクセスのパターンがかなり均一な場合でも 少なくとも 1MB 以上にすべきである。
+このモードでも、一つのページへのアクセスに関しては 一つのノードのメモリー帯域が上限となることは変わりない。
\fBMPOL_PREFERRED\fP は、割り当て時に優先されるノードを設定する。 カーネルはまず優先ノードにページ割り当てを行おうとし、
-優先ノードに空きメモリが少ない場合に他のノードに割り当てを行う。 \fInodemask\fP に複数のノード ID が指定された場合は、
+å\84ªå\85\88ã\83\8eã\83¼ã\83\89ã\81«ç©ºã\81\8dã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå°\91ã\81ªã\81\84å ´å\90\88ã\81«ä»\96ã\81®ã\83\8eã\83¼ã\83\89ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\92è¡\8cã\81\86ã\80\82 \fInodemask\fP ã\81«è¤\87æ\95°ã\81®ã\83\8eã\83¼ã\83\89 ID ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9få ´å\90\88ã\81¯ã\80\81
\fInodemask\fP 内の最初のノードが優先ノードとして選択される。 引き数 \fInodemask\fP, \fImaxnode\fP
-で空集合が指定された場合は、割り当てのきっかけとなった CPU のノードに メモリ割り当てが行われる。 \fBmbind\fP(2)
-で、あるメモリ領域に対して「ローカルからの割り当て (local allocation)」を 指定する方法はこれしかない。
+で空集合が指定された場合は、割り当てのきっかけとなった CPU のノードに メモリー割り当てが行われる。 \fBmbind\fP(2)
+で、あるメモリー領域に対して「ローカルからの割り当て (local allocation)」を 指定する方法はこれしかない。
.\" According to the kernel code, the following is not true
.\" --Lee Schermerhorn
.\" In 2.6.16 or later the kernel will also try to move pages
.\" to the requested node with this flag.
\fIflags\fP に \fBMPOL_MF_STRICT\fP が 指定され、 \fImode\fP が \fBMPOL_DEFAULT\fP でない場合、
-指定されたポリシーに従っていないメモリ領域にページが存在すると、 \fBmbind\fP() はエラー \fBEIO\fP で失敗する。
+指定されたポリシーに従っていないメモリー領域にページが存在すると、 \fBmbind\fP() はエラー \fBEIO\fP で失敗する。
-\fIflags\fP に \fBMPOL_MF_MOVE\fP が指定されると、カーネルはそのメモリ領域内の既存の全てのページを移動し、
+\fIflags\fP に \fBMPOL_MF_MOVE\fP が指定されると、カーネルはそのメモリー領域内の既存の全てのページを移動し、
指定されたポリシーに従うようにしようとする。 他のプロセスと共有されているページは移動されない。 \fBMPOL_MF_STRICT\fP
も指定された場合、移動できなかったページがあると、 \fBmbind\fP() はエラー \fBEIO\fP で失敗する。
.\" ---------------------------------------------------------------
-\fIflags\fP に \fBMPOL_MF_MOVE_ALL\fP が指定されると、カーネルはそのメモリ領域内の既存の全てのページを、
+\fIflags\fP に \fBMPOL_MF_MOVE_ALL\fP が指定されると、カーネルはそのメモリー領域内の既存の全てのページを、
他のプロセスがページを使用しているかどうかに関わらず移動する。 このフラグを使用するには、呼び出し元のプロセスは特権 (\fBCAP_SYS_NICE\fP)
を持っていなければならない。 \fBMPOL_MF_STRICT\fP も指定された場合、移動できなかったページがあると、 \fBmbind\fP() はエラー
\fBEIO\fP で失敗する。
.\" I think I got all of the error returns. --Lee Schermerhorn
.TP
\fBEFAULT\fP
-\fInodemask\fP と \fImaxnode\fP で指定されたメモリ領域の一部または全部が、 呼び出し元がアクセス可能なアドレス空間外を指している。
-もしくは \fIaddr\fP と \fIlen\fP で指定されたメモリ領域にマップされていない部分 (unmapped hole) があった、
+\fInodemask\fP と \fImaxnode\fP で指定されたメモリー領域の一部または全部が、 呼び出し元がアクセス可能なアドレス空間外を指している。
+もしくは \fIaddr\fP と \fIlen\fP で指定されたメモリー領域にマップされていない部分 (unmapped hole) があった、
.TP
\fBEINVAL\fP
.\" As at 2.6.23, this limit is "a page worth of bits", e.g.,
に空でない集合が指定された。 \fImode\fP が \fBMPOL_BIND\fP か \fBMPOL_INTERLEAVE\fP で \fInodemask\fP
が空であった。 \fImaxnode\fP がカーネルに適用された上限を超えている。 \fInodemask\fP に、サポートされている最大ノード ID
より大きいノードが指定された。 \fInodemask\fP に、オンラインで、かつそのプロセスの現在の CPU 集合コンテキストで
-許可されているノードが一つも含まれていないか、 メモリを含むノードが一つも指定されていない。 \fImode\fP 引き数に
+許å\8f¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\8eã\83¼ã\83\89ã\81\8cä¸\80ã\81¤ã\82\82å\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\81\8bã\80\81 ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\90«ã\82\80ã\83\8eã\83¼ã\83\89ã\81\8cä¸\80ã\81¤ã\82\82æ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82 \fImode\fP å¼\95ã\81\8dæ\95°ã\81«
\fBMPOL_F_STATIC_NODES\fP と \fBMPOL_F_RELATIVE_NODES\fP の両方が指定された。
.TP
\fBEIO\fP
移動することができなかった。
.TP
\fBENOMEM\fP
-利用可能なカーネルメモリが十分でなかった。
+å\88©ç\94¨å\8f¯è\83½ã\81ªã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå\8d\81å\88\86ã\81§ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBEPERM\fP
.\" ---------------------------------------------------------------
.SH 注意
ライブラリによるサポートについては \fBnuma\fP(7) を参照。
-NUMA ã\83\9dã\83ªã\82·ã\83¼ã\81¯ã\80\81 \fBMAP_SHARED\fP ã\83\95ã\83©ã\82°ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83\9eã\83\83ã\83\97ã\83»ファイルの領域では サポートされていない。
+NUMA ã\83\9dã\83ªã\82·ã\83¼ã\81¯ã\80\81 \fBMAP_SHARED\fP ã\83\95ã\83©ã\82°ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\97ファイルの領域では サポートされていない。
\fBMPOL_DEFAULT\fP モードは、 \fBmbind\fP() と \fBset_mempolicy\fP(2) で異なる効果を持つことができる。
\fBset_mempolicy\fP(2) で \fBMPOL_DEFAULT\fP が指定された場合、そのプロセスのポリシーはシステムの
-デフォルトポリシー、すなわちローカルからの割り当て、に戻る。 \fBmbind\fP() を使ってメモリのある領域に \fBMPOL_DEFAULT\fP
+ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\83\9dã\83ªã\82·ã\83¼ã\80\81ã\81\99ã\81ªã\82\8fã\81¡ã\83ã\83¼ã\82«ã\83«ã\81\8bã\82\89ã\81®å\89²ã\82\8aå½\93ã\81¦ã\80\81ã\81«æ\88»ã\82\8bã\80\82 \fBmbind\fP() ã\82\92使ã\81£ã\81¦ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\81\82ã\82\8bé \98å\9f\9fã\81« \fBMPOL_DEFAULT\fP
が指定された場合、その範囲に対してそれ以降に行われるページの割り当てでは、 \fBset_mempolicy\fP(2)
-で設定したのと同じように、そのプロセスのポリシーが適用される。 これにより、特定のメモリ領域についてだけ明示的なポリシーを削除し、
-デフォルトのポリシーに「戻す」ことができる。 あるメモリ領域に対して「ローカルからの割り当て」を明示的に設定するには、 \fImode\fP に
+で設定したのと同じように、そのプロセスのポリシーが適用される。 これにより、特定のメモリー領域についてだけ明示的なポリシーを削除し、
+デフォルトのポリシーに「戻す」ことができる。 あるメモリー領域に対して「ローカルからの割り当て」を明示的に設定するには、 \fImode\fP に
\fBMPOL_PREFERRED\fP を指定し、 \fInodemask\fP に空集合のノードを指定すればよい。 この方法は
\fBset_mempolicy\fP(2) でも通用する。
-2.6.16 ã\81§ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\83»ã\83\9dã\83ªã\82·ã\83¼ã\81¸ã\81®å¯¾å¿\9cã\81\8c追å\8a ã\81\95ã\82\8cã\81\9fã\80\82 ã\82¤ã\83³ã\82¿ã\83¼ã\83ªã\83¼ã\83\96ã\83»ポリシーがヒュージページのマッピングで効果を持つには、
-ポリシーが適用されるメモリが数十メガバイト以上である必要がある。
+2.6.16 ã\81§ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\83\9dã\83ªã\82·ã\83¼ã\81¸ã\81®å¯¾å¿\9cã\81\8c追å\8a ã\81\95ã\82\8cã\81\9fã\80\82 ã\82¤ã\83³ã\82¿ã\83¼ã\83ªã\83¼ã\83\96ポリシーがヒュージページのマッピングで効果を持つには、
+ã\83\9dã\83ªã\82·ã\83¼ã\81\8cé\81©ç\94¨ã\81\95ã\82\8cã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8cæ\95°å\8d\81ã\83¡ã\82¬ã\83\90ã\82¤ã\83\88以ä¸\8aã\81§ã\81\82ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82
\fBMPOL_MF_STRICT\fP はヒュージページのマッピングでは無視される。
システム全体でオープンされているファイルの総数が上限に達した。
.TP
\fBENOMEM\fP
-新しい無名ファイルを作成するのに十分なメモリがなかった。
+æ\96°ã\81\97ã\81\84ç\84¡å\90\8dã\83\95ã\82¡ã\82¤ã\83«ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82
.SH バージョン
.\" FIXME . When glibc support appears, update the following sentence:
\fBmemfd_create\fP() システムコールは Linux 3.17 で初めて登場した。 GNU C ライブラリでのサポートは検討中である。
ファイルシステムに実際にファイルを残す意図がない場合、 \fItmp\fP にファイルを作成したり \fBopen\fP(2) \fBO_TMPFILE\fP
を使ったりする際の代替手段として使用できる。
.SS "file sealing"
-file sealing がない場合、 共有メモリ経由で通信するプロセスは、 互いに信頼するか、
-信頼していない相手が共有メモリ領域を問題がある方法で操作する可能性に対処するための対策を講じなければならない。
-ä¾\8bã\81\88ã\81°ã\80\81 ä¿¡é ¼ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ç\9b¸æ\89\8bã\81¯ã\80\81 ã\81\84ã\81¤ã\81§ã\82\82å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\81®å\86\85容ã\82\92å¤\89æ\9b´ã\81\97ã\81\9fã\82\8aã\80\81 å\85±æ\9c\89ã\83¡ã\83¢ã\83ª領域を縮小したりする可能性がある。 前者の場合は、
+file sealing がない場合、 共有メモリー経由で通信するプロセスは、 互いに信頼するか、
+信頼していない相手が共有メモリー領域を問題がある方法で操作する可能性に対処するための対策を講じなければならない。
+ä¾\8bã\81\88ã\81°ã\80\81 ä¿¡é ¼ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ç\9b¸æ\89\8bã\81¯ã\80\81 ã\81\84ã\81¤ã\81§ã\82\82å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\86\85容ã\82\92å¤\89æ\9b´ã\81\97ã\81\9fã\82\8aã\80\81 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼領域を縮小したりする可能性がある。 前者の場合は、
ローカルプロセスでは、 データの確認時点と使用時点の競合条件の問題が起こり得る
-(通常はこの問題への対処は共有メモリ領域からデータをこぴーしてからデータを確認、使用することである)。 後者の場合は、 ローカルプロセスでは、
-共有メモリ領域の存在しなくなった場所にアクセスしようとした際にシグナル \fBSIGBUS\fP が発生する可能性がある (この可能性に対処するにはシグナル
+(通常はこの問題への対処は共有メモリー領域からデータをこぴーしてからデータを確認、使用することである)。 後者の場合は、 ローカルプロセスでは、
+共有メモリー領域の存在しなくなった場所にアクセスしようとした際にシグナル \fBSIGBUS\fP が発生する可能性がある (この可能性に対処するにはシグナル
\fBSIGBUS\fP に対してハンドラーを使用する必要がある)。
-信頼していない相手への対処により、 共有メモリを利用するコードに余計な複雑性が増すことになる。 メモリー sealing
-により余計な複雑性をなくすことができる。 相手が望まない方法で共有メモリを変更できないことを知っていることで、 プロセスは安全に動作できるようになる。
+ä¿¡é ¼ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ç\9b¸æ\89\8bã\81¸ã\81®å¯¾å\87¦ã\81«ã\82\88ã\82\8aã\80\81 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\88©ç\94¨ã\81\99ã\82\8bã\82³ã\83¼ã\83\89ã\81«ä½\99è¨\88ã\81ªè¤\87é\9b\91æ\80§ã\81\8cå¢\97ã\81\99ã\81\93ã\81¨ã\81«ã\81ªã\82\8bã\80\82 ã\83¡ã\83¢ã\83ªã\83¼ sealing
+ã\81«ã\82\88ã\82\8aä½\99è¨\88ã\81ªè¤\87é\9b\91æ\80§ã\82\92ã\81ªã\81\8fã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ç\9b¸æ\89\8bã\81\8cæ\9c\9bã\81¾ã\81ªã\81\84æ\96¹æ³\95ã\81§å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å¤\89æ\9b´ã\81§ã\81\8dã\81ªã\81\84ã\81\93ã\81¨ã\82\92ç\9f¥ã\81£ã\81¦ã\81\84ã\82\8bã\81\93ã\81¨ã\81§ã\80\81 ã\83\97ã\83ã\82»ã\82¹ã\81¯å®\89å\85¨ã\81«å\8b\95ä½\9cã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\82\8bã\80\82
sealing 機構の使い方の例は以下のとおりである。
はこれ以降のステップで使用するファイルディスクリプターを返す。
.IP 2.
最初のプロセスは \fBftruncate\fP(2) を使って直前のステップで作成したファイルのサイズを変更し、 \fBmmap\fP(2)
-を使ってそのファイルをマッピングし、 共有メモリに所望のデータを配置する。
+ã\82\92使ã\81£ã\81¦ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81\97ã\80\81 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81«æ\89\80æ\9c\9bã\81®ã\83\87ã\83¼ã\82¿ã\82\92é\85\8dç½®ã\81\99ã\82\8bã\80\82
.IP 3.
最初のプロセスは、 このファイルに対する今後の変更を制限するために、 \fBfcntl\fP(2) の \fBF_ADD_SEALS\fP 操作を使って、
そのファイルに seal をいくつか設定する。 (seal \fBF_SEAL_WRITE\fP を設定する場合、
以下では \fBmemfd_create\fP() と file sealing API の使用例を示すサンプルプログラムを 2 つとりあげる。
最初のプログラム \fIt_memfd_create.c\fP は、 \fBmemfd_create\fP() を使って \fItmpfs\fP ファイルを作成し、
-そのファイルのサイズを設定し、 メモリにマッピングし、 要求された場合にはそのファイルに seal を設定する。 このプログラムは最大で 3
+ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82µã\82¤ã\82ºã\82\92è¨å®\9aã\81\97ã\80\81 ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81\97ã\80\81 è¦\81æ±\82ã\81\95ã\82\8cã\81\9få ´å\90\88ã\81«ã\81¯ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81« seal ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯æ\9c\80大ã\81§ 3
つのコマンドライン引き数を取り、 最初の 2 つは必須である。 最初の引き数はファイルに関連付けられる名前で、 2
番目の引き数はファイルに設定されるサイズである。 省略可能な 3 番目の引き数は、 このファイルに設定する seal を指定する文字列である。
.sp
\fI\-lnuma\fP とリンクする。
.SH 説明
-\fBMIGRATE_PAGES\fP() は、メモリノード \fIold_nodes\fP にあるプロセス \fIpid\fP
-の全ページを、メモリノード \fInew_nodes\fP に移動しようとする。\fIold_nodes\fP で
-指定されたメモリノードに置かれていないページは移動されない。
+\fBMIGRATE_PAGES\fP() ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\83\8eã\83¼ã\83\89 \fIold_nodes\fP ã\81«ã\81\82ã\82\8bã\83\97ã\83ã\82»ã\82¹ \fIpid\fP
+ã\81®å\85¨ã\83\9aã\83¼ã\82¸ã\82\92ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\83\8eã\83¼ã\83\89 \fInew_nodes\fP ã\81«ç§»å\8b\95ã\81\97ã\82\88ã\81\86ã\81¨ã\81\99ã\82\8bã\80\82\fIold_nodes\fP ã\81§
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\83\8eã\83¼ã\83\89ã\81«ç½®ã\81\8bã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\83\9aã\83¼ã\82¸ã\81¯ç§»å\8b\95ã\81\95ã\82\8cã\81ªã\81\84ã\80\82
カーネルは、 \fInew_nodes\fP への移動の際に、 \fIold_nodes\fP 内の相対的な
トポロジー関係を可能な限り維持しようとする。
引き数 \fIold_nodes\fP と \fInew_nodes\fP は、最大で \fImaxnode\fP ビットから
-構成されるノード番号のビットマスクへのポインタである。
+æ§\8bæ\88\90ã\81\95ã\82\8cã\82\8bã\83\8eã\83¼ã\83\89ç\95ªå\8f·ã\81®ã\83\93ã\83\83ã\83\88ã\83\9eã\82¹ã\82¯ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
各ビットマスクは符号なし \fIlong\fP 整数の配列として管理される
(\fImaxnode\fP で指定された長さを越えた部分のビットは無視される)。
引き数 \fImaxnode\fP は最大ノード番号であり、ビットマスクの長さに 1 を
引き数 \fIpid\fP は、移動を行うページの所有者のプロセス ID である。
別のプロセスのページを移動するには、呼び出したプロセスが特権
-(\fBCAP_SYS_NICE\fP) を持っているか、呼び出したプロセスの実ユーザ ID か
-実効ユーザ ID がページ移動の対象プロセスの実ユーザ ID か saved\-set
-ユーザ ID と一致していなければならない。\fIpid\fP が 0 の場合、
+(\fBCAP_SYS_NICE\fP) を持っているか、呼び出したプロセスの実ユーザー ID か
+実効ユーザー ID がページ移動の対象プロセスの実ユーザー ID か saved\-set
+ユーザー ID と一致していなければならない。\fIpid\fP が 0 の場合、
\fBmigrate_pages\fP() は呼び出したプロセスのページを移動する。
別のプロセスと共有しているページは、呼び出したプロセスが
変更されることがある点に注意してほしい。
\fBmigrate_pages\fP を使用すると、ページが置かれる場所 (ノード) が、指定
-されたアドレスに対して設定されたメモリポリシー (\fBmbind\fP(2) 参照) や
-指定されたプロセスに対して設定されたメモリポリシー
+ã\81\95ã\82\8cã\81\9fã\82¢ã\83\89ã\83¬ã\82¹ã\81«å¯¾ã\81\97ã\81¦è¨å®\9aã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\83\9dã\83ªã\82·ã\83¼ (\fBmbind\fP(2) å\8f\82ç\85§) ã\82\84
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦è¨å®\9aã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\83\9dã\83ªã\82·ã\83¼
(\fBset_mempolicy\fP(2) 参照) に違反する状況になる可能性がある。
-すなわち、メモリポリシーによる制約は \fBmigrate_pages\fP() による移動先
+ã\81\99ã\81ªã\82\8fã\81¡ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\83\9dã\83ªã\82·ã\83¼ã\81«ã\82\88ã\82\8bå\88¶ç´\84ã\81¯ \fBmigrate_pages\fP() ã\81«ã\82\88ã\82\8b移å\8b\95å\85\88
ノードの選択には適用されないということである。
-ヘッダファイル \fI<numaif.h>\fP は glibc には含まれておらず、 \fIlibnuma\-devel\fP
+ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83« \fI<numaif.h>\fP ã\81¯ glibc ã\81«ã\81¯å\90«ã\81¾ã\82\8cã\81¦ã\81\8aã\82\89ã\81\9aã\80\81 \fIlibnuma\-devel\fP
か同様のパッケージをインストールする必要がある。
.SH 関連項目
\fBget_mempolicy\fP(2), \fBmbind\fP(2), \fBset_mempolicy\fP(2), \fBnuma\fP(3),
.\"
.TH MINCORE 2 2008\-04\-22 Linux "Linux Programmer's Manual"
.SH 名前
-mincore \- ページがメモリ内にあるかどうかを判定する
+mincore \- ページがメモリー内にあるかどうかを判定する
.SH 書式
\fB#include <unistd.h>\fP
.br
.sp
\fBmincore\fP(): _BSD_SOURCE || _SVID_SOURCE
.SH 説明
-\fBmincore\fP() は、呼び出し元プロセスの仮想メモリのページがコア (RAM) 内に存在し、 ページ参照時にディスクアクセス
+\fBmincore\fP() ã\81¯ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83ã\82»ã\82¹ã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83\9aã\83¼ã\82¸ã\81\8cã\82³ã\82¢ (RAM) å\86\85ã\81«å\98å\9c¨ã\81\97ã\80\81 ã\83\9aã\83¼ã\82¸å\8f\82ç\85§æ\99\82ã\81«ã\83\87ã\82£ã\82¹ã\82¯ã\82¢ã\82¯ã\82»ã\82¹
(ページフォールト) を起こさないか どうかを示すベクトルを返す。カーネルは、アドレス \fIaddr\fP から始まる \fIlength\fP
バイトの範囲のページに関する存在情報を返す。
(\fBPAGE_SIZE\fP) は \fIsysconf(_SC_PAGESIZE)\fP を使って入手できる。
\fIvec\fP 引き数は、少なくとも \fI(length+PAGE_SIZE\-1) / PAGE_SIZE\fP
-バイトが格納できる配列を指していなければならない。 この呼び出しが返るとき、 各バイトの最下位ビットは、対応するページがメモリ内にそのとき存在すれば
+バイトが格納できる配列を指していなければならない。 この呼び出しが返るとき、 各バイトの最下位ビットは、対応するページがメモリー内にそのとき存在すれば
セットされ、そうでない場合はクリアされる (各バイトのその他のビットは未定義であり、これらのビットは将来の使用に そなえて予約されている)。 もちろん、
-\fIvec\fP で返された情報はスナップショットでしかない。 メモリ内にロックされていないページは、任意の時点でメモリ内に
+\fIvec\fP で返された情報はスナップショットでしかない。 メモリー内にロックされていないページは、任意の時点でメモリー内に
入ったり出たりでき、この呼び出しが返るときには \fIvec\fP の内容はすでに古くなっているかもしれない。
.SH 返り値
成功した場合、 \fBmincore\fP() は 0 を返す。 エラーの場合は \-1 を返して、 \fIerrno\fP を適切な値に設定する。
が返されていた。
.TP
\fBENOMEM\fP
-\fIaddr\fP から \fIaddr\fP + \fIlength\fP の間にマップされていないメモリがあった。
+\fIaddr\fP ã\81\8bã\82\89 \fIaddr\fP + \fIlength\fP ã\81®é\96\93ã\81«ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81\82ã\81£ã\81\9fã\80\82
.SH バージョン
Linux 2.3.99pre1 と glibc 2.2 から利用可能である。
.SH 準拠
による修正が加えられる。 したがって、作成されたディレクトリの許可属性は (\fImode\fP & ~\fIumask\fP & 0777) となる。
作成されたディレクトリのその他のモードビットはオペレーティングシステムに 依存する。Linux の場合は、以下の通りである。
-新しく作成されたディレクトリの所有者はプロセスの実効ユーザ ID に設定される。 新たに作成されたディレクトリが含まれる親ディレクトリに set
+新しく作成されたディレクトリの所有者はプロセスの実効ユーザー ID に設定される。 新たに作成されたディレクトリが含まれる親ディレクトリに set
group ID ビットがセットされていたり、ファイルシステムが BSD の グループセマンティクス (\fImount \-o bsdgroups\fP
あるいは、同じ意味の \fImount \-o grpid\fP) に従ってマウントされている場合には、
新たに作成されたディレクトリのグループ所有権は親ディレクトリの ものが継承される (親ディレクトリと同じになる)。
(\fBpath_resolution\fP(7) も参照)。
.TP
\fBEDQUOT\fP
-ディスクブロックか inode がそのファイルシステムのユーザクォータに達していた。
+ã\83\87ã\82£ã\82¹ã\82¯ã\83\96ã\83ã\83\83ã\82¯ã\81\8b inode ã\81\8cã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82¯ã\82©ã\83¼ã\82¿ã\81«é\81\94ã\81\97ã\81¦ã\81\84ã\81\9fã\80\82
.TP
\fBEEXIST\fP
\fIpathname\fP が既に存在している(ただしそれがディレクトリであるとは限らない)。 \fIpathname\fP がシンボリックリンクの場合も
\fIpathname\fP の構成要素のディレクトリのいずれかが存在しないか、 またはリンク先が存在しないシンボリックリンクである。
.TP
\fBENOMEM\fP
-カーネルに十分なメモリがない。
+ã\82«ã\83¼ã\83\8dã\83«ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOSPC\fP
\fIpathname\fP を含むデバイスに新たにディレクトリを作成する空きが無い。
\fBmkdirat\fP() では以下のエラーも発生する。
.TP
\fBEBADF\fP
-\fIdirfd\fP が適切なファイルディスクリプタでない。
+\fIdirfd\fP ã\81\8cé\81©å\88\87ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
-\fIpathname\fP が相対パスで、 \fIdirfd\fP がディレクトリ以外のファイルを参照しているファイルディスクリプタである。
+\fIpathname\fP ã\81\8cç\9b¸å¯¾ã\83\91ã\82¹ã\81§ã\80\81 \fIdirfd\fP ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä»¥å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH バージョン
\fBmkdirat\fP() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポートはバージョン 2.4 で glibc
に追加された。
.RE
.ad
.SH 説明
-ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83« \fBmknod\fP() ã\81¯ \fIpathname\fP ã\81¨ã\81\84ã\81\86å\90\8då\89\8dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\83\8eã\83¼ã\83\89
+システムコール \fBmknod\fP() は \fIpathname\fP という名前のファイルシステムノード
(ファイル、デバイススペシャルファイル、名前付きパイプ) を、 属性 \fImode\fP と \fIdev\fP の指定にしたがって作成する。
\fImode\fP 引き数には、作成するノードの許可属性 (permission) とタイプを指定する。 \fImode\fP
.\" (S_IFSOCK since Linux 1.2.4)
ファイルタイプには \fBS_IFREG\fP, \fBS_IFCHR\fP, \fBS_IFBLK\fP, \fBS_IFIFO\fP, \fBS_IFSOCK\fP
のいずれかを指定しなければならない。 それぞれ順に、通常のファイル (空のファイルとして作成される)・
-キャラクタスペシャルファイル・ブロックスペシャルファイル・ FIFO (名前付きパイプ)・UNIX ドメインソケットである (ファイルタイプ 0 は
+ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\82¹ã\83\9aã\82·ã\83£ã\83«ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\96ã\83ã\83\83ã\82¯ã\82¹ã\83\9aã\82·ã\83£ã\83«ã\83\95ã\82¡ã\82¤ã\83«ã\83» FIFO (å\90\8då\89\8dä»\98ã\81\8dã\83\91ã\82¤ã\83\97)ã\83»UNIX ã\83\89ã\83¡ã\82¤ã\83³ã\82½ã\82±ã\83\83ã\83\88ã\81§ã\81\82ã\82\8b (ã\83\95ã\82¡ã\82¤ã\83«ã\82¿ã\82¤ã\83\97 0 ã\81¯
\fBS_IFREG\fP と同じである)。
ファイルタイプが \fBS_IFCHR\fP または \fBS_IFBLK\fP のとき、 \fIdev\fP には作成するデバイススペシャルファイルのメジャー番号と
.\"
.\"
-新しく作成されたノードの所有者はプロセスの実効ユーザ ID にセットされる。 新たに作られたノードを保持する 親ディレクトリの set\-group\-ID
-ビットがセットされていたり、 ファイルシステムが BSD のグループセマンティクスにしたがって
+新しく作成されたノードの所有者はプロセスの実効ユーザー ID にセットされる。 新たに作られたノードを保持する 親ディレクトリの
+set\-group\-ID ビットがセットされていたり、 ファイルシステムが BSD のグループセマンティクスにしたがって
マウントされている場合には、新しいノードのグループ所有権は親ディレクトリの グループ所有権を継承する (親ディレクトリと同じになる)。
また、そうでなかった場合の所有グループはプロセスの実効グループ ID となる。
.SS mknodat()
(\fBpath_resolution\fP(7) も参照すること)。
.TP
\fBEDQUOT\fP
-ディスクブロックか inode がそのファイルシステムのユーザクォータに達していた。
+ã\83\87ã\82£ã\82¹ã\82¯ã\83\96ã\83ã\83\83ã\82¯ã\81\8b inode ã\81\8cã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82¯ã\82©ã\83¼ã\82¿ã\81«é\81\94ã\81\97ã\81¦ã\81\84ã\81\9fã\80\82
.TP
\fBEEXIST\fP
\fIpathname\fP がすでに存在する。 これには \fIpathname\fP がシンボリックリンクである場合も含まれる
\fIpathname\fP 中のディレクトリ部分が存在しない、 もしくはリンク先の無いシンボリックリンクである。
.TP
\fBENOMEM\fP
-十分なカーネルメモリが無い。
+å\8d\81å\88\86ã\81ªã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cç\84¡ã\81\84ã\80\82
.TP
\fBENOSPC\fP
\fIpathname\fP のあるデバイスに新たにノードを作成する空きが無い。
\fBmknodat\fP() では以下のエラーも発生する。
.TP
\fBEBADF\fP
-\fIdirfd\fP が有効なファイルディスクリプタでない。
+\fIdirfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
-\fIpathname\fP が相対パスで、 \fIdirfd\fP がディレクトリ以外のファイルを参照しているファイルディスクリプタである。
+\fIpathname\fP ã\81\8cç\9b¸å¯¾ã\83\91ã\82¹ã\81§ã\80\81 \fIdirfd\fP ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä»¥å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH バージョン
\fBmknodat\fP() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポートはバージョン 2.4 で glibc
に追加された。
.\"
.TH MLOCK 2 2014\-04\-14 Linux "Linux Programmer's Manual"
.SH 名前
-mlock \- メモリのロックとロック解除を行う
+mlock \- ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83ã\83\83ã\82¯ã\81¨ã\83ã\83\83ã\82¯è§£é\99¤ã\82\92è¡\8cã\81\86
.SH 書式
.nf
\fB#include <sys/mman.h>\fP
.fi
.SH 説明
\fBmlock\fP() と \fBmlockall\fP() はそれぞれ、呼び出し元プロセスの仮想アドレス空間の一部または全部を RAM
-上にロックし、メモリがスワップエリアにページングされるのを防ぐ。 \fBmunlock\fP() と \fBmunlockall\fP()
+ä¸\8aã\81«ã\83ã\83\83ã\82¯ã\81\97ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\82¹ã\83¯ã\83\83ã\83\97ã\82¨ã\83ªã\82¢ã\81«ã\83\9aã\83¼ã\82¸ã\83³ã\82°ã\81\95ã\82\8cã\82\8bã\81®ã\82\92é\98²ã\81\90ã\80\82 \fBmunlock\fP() ã\81¨ \fBmunlockall\fP()
は逆の操作で、それぞれ呼び出し元プロセスの仮想アドレス空間の一部または全部を ロック解除する。つまり、指定された仮想アドレス範囲のページは
-ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83\9eã\83\8dã\83¼ã\82¸ã\83£ã\83¼ã\81\8bã\82\89è¦\81æ±\82ã\81\95ã\82\8cã\82\8cã\81°ã\82¹ã\83¯ã\83\83ã\83\97ã\82¢ã\82¦ã\83\88ã\81\99ã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\82\8bã\80\82 ã\83¡ã\83¢ã\83ªのロックとロック解除はページ単位で行われる。
+ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\8dã\83¼ã\82¸ã\83£ã\83¼ã\81\8bã\82\89è¦\81æ±\82ã\81\95ã\82\8cã\82\8cã\81°ã\82¹ã\83¯ã\83\83ã\83\97ã\82¢ã\82¦ã\83\88ã\81\99ã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\82\8bã\80\82 ã\83¡ã\83¢ã\83ªã\83¼のロックとロック解除はページ単位で行われる。
.SS "mlock() と munlock()"
\fBmlock\fP() は \fIaddr\fP から始まる長さ \fIlen\fP バイトのアドレス範囲のページをロックする。 呼び出しが成功した場合には、
指定されたアドレス範囲を含む全てのページは RAM に残り続けることが保証される。 これらのページは後でロック解除されるまで RAM
に残り続けることが保証される。
\fBmunlock\fP() は、 \fIaddr\fP から始まる長さ \fIlen\fP バイトのアドレス範囲のページのロックを解除する。
-この呼び出しを行った後は、カーネルが、指定されたメモリ範囲を含む 全てのページを外部のスワップ空間に移動できるようになる。
+この呼び出しを行った後は、カーネルが、指定されたメモリー範囲を含む 全てのページを外部のスワップ空間に移動できるようになる。
.SS "mlockall() と munlockall()"
\fBmlockall\fP() は呼び出し元プロセスのアドレス空間にマップされている全てのページを ロックする。これにはコード、データ、スタックの
-å\90\84ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\80\81å\85±æ\9c\89ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ç©ºé\96\93ã\83\87ã\83¼ã\82¿ã\80\81 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\80\81ã\83¡ã\83¢ã\83ªã\83»マップされたファイルが含まれる。
-ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81\8cæ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\81«ã\81¯å\85¨ã\81¦ã\81®ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83\9aã\83¼ã\82¸ã\81¯ RAM ã\81« æ®\8bã\82\8bã\81\93ã\81¨ã\82\92ä¿\9d証ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\83\9aã\83¼ã\82¸ã\81¯å¾\8cã\81§ã\83ã\83\83ã\82¯è§£é\99¤ã\81\95ã\82\8cã\82\8bã\81¾ã\81§ RAM
+å\90\84ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\80\81å\85±æ\9c\89ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ç©ºé\96\93ã\83\87ã\83¼ã\82¿ã\80\81 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\80\81ã\83¡ã\83¢ã\83ªã\83¼マップされたファイルが含まれる。
+システムコールが成功した場合には全てのマップされたページは RAM に 残ることを保証される。 これらのページは後でロック解除されるまで RAM
に残り続けることが保証される。
\fIflags\fP 引数は以下の内容の一つまたは複数のビット OR から構成される:
.TP
\fBMCL_FUTURE\fP
将来、プロセスのアドレス空間にマップされる全てのページをロックする。 例えば、ヒープ (heap) やスタックの成長により新しく必要になったページだけで
-ã\81ªã\81\8fã\80\81æ\96°ã\81\97ã\81\8fã\83¡ã\83¢ã\83ªã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\82\84å\85±æ\9c\89ã\83¡ã\83¢ã\83ª領域もロックされる。
+ã\81ªã\81\8fã\80\81æ\96°ã\81\97ã\81\8fã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\82\84å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼領域もロックされる。
.PP
\fBMCL_FUTURE\fP が指定されていると、以後のシステムコール (例えば、 \fBmmap\fP(2), \fBsbrk\fP(2),
\fBmalloc\fP(3)) は、ロックするバイト数が許可された最大値 (下記参照) を超えた場合に 失敗する可能性がある。
.TP
\fBENOMEM\fP
(Linux 2.6.9 以降) 呼び出し元は非ゼロの ソフト資源制限 \fBRLIMIT_MEMLOCK\fP
-を持つが、制限が許可している以上のメモリをロックしようとした。 この制限は、プロセスが特権 (\fBCAP_IPC_LOCK\fP)
+ã\82\92æ\8c\81ã\81¤ã\81\8cã\80\81å\88¶é\99\90ã\81\8c許å\8f¯ã\81\97ã\81¦ã\81\84ã\82\8b以ä¸\8aã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92ã\83ã\83\83ã\82¯ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\80\82 ã\81\93ã\81®å\88¶é\99\90ã\81¯ã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81\8cç\89¹æ¨© (\fBCAP_IPC_LOCK\fP)
を持っている場合は適用されない。
.TP
\fBENOMEM\fP
\fBmlockall\fP() と \fBmunlockall\fP() が利用可能な POSIX システムでは、 \fB_POSIX_MEMLOCK\fP は
\fI<unistd.h>\fP で 0 より大きい値に定義されている (\fBsysconf\fP(3) も参照のこと)。
.SH 注意
-メモリのロックの用途としては主に二つある: リアルタイム アルゴリズムと高いセキュリティの必要なデータ処理である。リアルタイムの
+ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83ã\83\83ã\82¯ã\81®ç\94¨é\80\94ã\81¨ã\81\97ã\81¦ã\81¯ä¸»ã\81«äº\8cã\81¤ã\81\82ã\82\8b: ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\82¢ã\83«ã\82´ã\83ªã\82ºã\83 ã\81¨é«\98ã\81\84ã\82»ã\82ã\83¥ã\83ªã\83\86ã\82£ã\81®å¿\85è¦\81ã\81ªã\83\87ã\83¼ã\82¿å\87¦ç\90\86ã\81§ã\81\82ã\82\8bã\80\82ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\81®
アプリケーションは決定的なタイミングやスケジューリングを必要とするが、 ページングは予期しないプログラムの実行遅延をもたらす主要な要因となる。
リアルタイムのアプリケーションはたいていは \fBsched_setscheduler\fP(2) でリアルタイムスケジューラに変更される。
暗号やセキュリティのソフトウェアはしばしばパスワードや秘密鍵のデータの ような重要なバイト列を扱う。ページングの結果、これらの秘密が
-スワップ用の固定媒体に転送されるかもしれない。そして、セキュリティ・ ソフトウェアが RAM 上の秘密を削除して終了したずっと後になっても、
+スワップ用の固定媒体に転送されるかもしれない。そして、セキュリティ ソフトウェアが RAM 上の秘密を削除して終了したずっと後になっても、
このスワップされたデータには敵がアクセスできる可能性がある (しかし、ラップトップといくつかのデスクトップコンピュータの サスペンドモードはシステムの
-RAM の内容をメモリのロックに関わらず ディスクに保存することに注意)。
+RAM ã\81®å\86\85容ã\82\92ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83ã\83\83ã\82¯ã\81«é\96¢ã\82\8fã\82\89ã\81\9a ã\83\87ã\82£ã\82¹ã\82¯ã\81«ä¿\9då\98ã\81\99ã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8f)ã\80\82
リアルタイムプロセスが \fBmlockall\fP() を使ってページフォールトによる遅延を防ごうとする場合、
関数呼び出しによってページフォールトが発生しないように、 時間制限の厳しい部分 (time\-critical section) に入る前に
十分な量のロックされたスタックを確保しておく必要がある。 これを実現するには、十分な大きさの自動変数 (の配列) を確保し、
-これらのスタック用のページがメモリ上に確保されるようにこの配列に 書き込みを行う関数を用意し、これを呼び出せばよい。こうすることで、
+これらのスタック用のページがメモリー上に確保されるようにこの配列に 書き込みを行う関数を用意し、これを呼び出せばよい。こうすることで、
十分な量のページがスタックにマッピングされ、RAM にロックされる。 ダミーの書き込みを行うことによって、 時間制限の厳しい部分 (critical
section) 内では書き込み時コピーによる ページフォールトさえも発生しないことが保証される。
-メモリロックは \fBfork\fP(2) で作成された子プロセスには継承されず、 \fBexecve\fP(2) が呼ばれたり、プロセスが終了した場合は
+ã\83¡ã\83¢ã\83ªã\83¼ã\83ã\83\83ã\82¯ã\81¯ \fBfork\fP(2) ã\81§ä½\9cæ\88\90ã\81\95ã\82\8cã\81\9få\90ã\83\97ã\83ã\82»ã\82¹ã\81«ã\81¯ç¶\99æ\89¿ã\81\95ã\82\8cã\81\9aã\80\81 \fBexecve\fP(2) ã\81\8cå\91¼ã\81°ã\82\8cã\81\9fã\82\8aã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81\8cçµ\82äº\86ã\81\97ã\81\9få ´å\90\88ã\81¯
自動的に削除される (ロック解除される)。 \fBmlockall\fP() の \fBMCL_FUTURE\fP 設定は \fBfork\fP(2)
で作成された子プロセスには継承されず、 \fBexecve\fP(2) の中でクリアされる。
-あるアドレス範囲に対するメモリロックは、そのアドレス範囲が \fBmunmap\fP(2) によってアンマップされた場合は削除される。
+ã\81\82ã\82\8bã\82¢ã\83\89ã\83¬ã\82¹ç¯\84å\9b²ã\81«å¯¾ã\81\99ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\83ã\83\83ã\82¯ã\81¯ã\80\81ã\81\9dã\81®ã\82¢ã\83\89ã\83¬ã\82¹ç¯\84å\9b²ã\81\8c \fBmunmap\fP(2) ã\81«ã\82\88ã\81£ã\81¦ã\82¢ã\83³ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9få ´å\90\88ã\81¯å\89\8aé\99¤ã\81\95ã\82\8cã\82\8bã\80\82
-メモリのロックは累積しない。 すなわち複数回 \fBmlock\fP() や \fBmlockall\fP() を呼び出してロックされたページでも、
+ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83ã\83\83ã\82¯ã\81¯ç´¯ç©\8dã\81\97ã\81ªã\81\84ã\80\82 ã\81\99ã\81ªã\82\8fã\81¡è¤\87æ\95°å\9b\9e \fBmlock\fP() ã\82\84 \fBmlockall\fP() ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81¦ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81\9fã\83\9aã\83¼ã\82¸ã\81§ã\82\82ã\80\81
対応する範囲に対して \fBmunlock\fP() を 1 回呼び出したり \fBmunlockall\fP() を呼び出したりするだけでロック解除される。
複数の場所や複数のプロセスにマップされているページは、少なくとも一つの場所、 一つのプロセスでロックされている限りは RAM に残り続ける。
.SS "Linux での注意"
Linux 固有の \fI/proc/PID/status\fP ファイルの \fIVmLck\fP フィールドには、
\fBmlock\fP(), \fBmlockall\fP() および \fBmmap\fP(2) \fBMAP_LOCKED\fP を使って、
-ID が \fIPID\fP のプロセスがロックしているメモリ量 (キロバイト単位) が
+ID が \fIPID\fP のプロセスがロックしているメモリー量 (キロバイト単位) が
表示される。
.SS 制限と権限
-Linux 2.6.8 以前では、メモリをロックするためには特権 (\fBCAP_IPC_LOCK\fP) が必要で、 ソフト資源制限
-\fBRLIMIT_MEMLOCK\fP はプロセスがどれだけのメモリをロックできるかの制限を定義する。
+Linux 2.6.8 以å\89\8dã\81§ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\82\92ã\83ã\83\83ã\82¯ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\81¯ç\89¹æ¨© (\fBCAP_IPC_LOCK\fP) ã\81\8cå¿\85è¦\81ã\81§ã\80\81 ã\82½ã\83\95ã\83\88è³\87æº\90å\88¶é\99\90
+\fBRLIMIT_MEMLOCK\fP ã\81¯ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\81©ã\82\8cã\81 ã\81\91ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92ã\83ã\83\83ã\82¯ã\81§ã\81\8dã\82\8bã\81\8bã\81®å\88¶é\99\90ã\82\92å®\9a義ã\81\99ã\82\8bã\80\82
-Linux 2.6.9 以降では、特権を持つプロセスがロックできるメモリ量は無制限となり、 代わりにソフト資源制限 \fBRLIMIT_MEMLOCK\fP
-は特権を持たないプロセスがロックできるメモリ量の制限を定義する。
+Linux 2.6.9 以降では、特権を持つプロセスがロックできるメモリー量は無制限となり、 代わりにソフト資源制限 \fBRLIMIT_MEMLOCK\fP
+は特権を持たないプロセスがロックできるメモリー量の制限を定義する。
.SH バグ
2.4.17 までの 2.4 シリーズの Linux カーネルには、 \fBmlockall\fP() \fBMCL_FUTURE\fP フラグが
\fBfork\fP(2) で継承されると言うバグがある。 これはカーネル 2.4.18 で修正された。
.\" 23 Jan 2006
カーネル 2.6.9 以降では、特権を持ったプロセスが \fImlockall(MCL_FUTURE)\fP を呼び出した後で、特権をなくした場合 (例えば、
実効 UID を 0 以外の値に変更するなどにより、 \fBCAP_IPC_LOCK\fP ケーパビリティを失った場合)、リソース上限
-\fBRLIMIT_MEMLOCK\fP に達すると、それ以降のメモリ割り当て (例えば \fBmmap\fP(2), \fBbrk\fP(2)) は失敗する。
+\fBRLIMIT_MEMLOCK\fP に達すると、それ以降のメモリー割り当て (例えば \fBmmap\fP(2), \fBbrk\fP(2)) は失敗する。
.SH 関連項目
\fBmmap\fP(2), \fBsetrlimit\fP(2), \fBshmctl\fP(2), \fBsysconf\fP(3), \fBproc\fP(5),
\fBcapabilities\fP(7)
.\"
.TH MMAP 2 2015\-01\-22 Linux "Linux Programmer's Manual"
.SH 名前
-mmap, munmap \- ファイルやデバイスをメモリにマップ/アンマップする
+mmap, munmap \- ã\83\95ã\82¡ã\82¤ã\83«ã\82\84ã\83\87ã\83\90ã\82¤ã\82¹ã\82\92ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\83\9eã\83\83ã\83\97/ã\82¢ã\83³ã\83\9eã\83\83ã\83\97ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <sys/mman.h>\fP
\fIaddr\fP が NULL でない場合、カーネルはマッピングをどこに配置するかのヒントとして \fIaddr\fP を使用する。Linux
では、マッピングはすぐ近くのページ境界に作成される。 新しいマッピングのアドレスは、呼び出しの返り値として返される。
-ファイルマッピングの内容は、 ファイルディスクリプタ \fIfd\fP で参照されるファイル (もしくは他のオブジェクト) のオフセット \fIoffset\fP
+ファイルマッピングの内容は、 ファイルディスクリプター \fIfd\fP で参照されるファイル (もしくは他のオブジェクト) のオフセット \fIoffset\fP
から開始される \fIlength\fP バイトのデータで初期化される (ファイルマッピングは無名マッピングの反対語である。 \fBMAP_ANONYMOUS\fP
を参照)。 \fIoffset\fP は \fIsysconf(_SC_PAGE_SIZE)\fP が返すページサイズの倍数でなければならない。
.LP
-引き数 \fIprot\fP には、マッピングのメモリ保護をどのように行なうかを指定する (ファイルのオープンモードと矛盾してはいけない)。 \fIprot\fP
+引き数 \fIprot\fP には、マッピングのメモリー保護をどのように行なうかを指定する (ファイルのオープンモードと矛盾してはいけない)。 \fIprot\fP
には、 \fBPROT_NONE\fP か、以下のフラグをひとつ以上ビット毎の論理和 (OR) をとったものを 指定できる。
.TP 1.1i
\fBPROT_EXEC\fP
.TP
\fBMAP_32BIT\fP (Linux 2.4.20, 2.6 以降)
.\" See http://lwn.net/Articles/294642 "Tangled up in threads", 19 Aug 08
-マッピングをプロセスのアドレス空間の先頭 2 ギガバイト以内に配置する。 このフラグがサポートされているのは x86\-64 アーキテクチャ上の 64
-ビットプログラムのみである。 このフラグが追加されたのは、スレッドのスタックをメモリの先頭 2GB 以内の どこかに割り当てることで、初期のいくつかの
+マッピングをプロセスのアドレス空間の先頭 2 ギガバイト以内に配置する。 このフラグがサポートされているのは x86\-64 アーキテクチャー上の 64
+ã\83\93ã\83\83ã\83\88ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®ã\81¿ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81\8c追å\8a ã\81\95ã\82\8cã\81\9fã\81®ã\81¯ã\80\81ã\82¹ã\83¬ã\83\83ã\83\89ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\82\92ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\85\88é 2GB 以å\86\85ã\81® ã\81©ã\81\93ã\81\8bã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81\93ã\81¨ã\81§ã\80\81å\88\9dæ\9c\9fã\81®ã\81\84ã\81\8fã\81¤ã\81\8bã\81®
64 ビットプロセッサにおける コンテキストスイッチの性能問題を改善するためである。 最近の x86\-64 プロセッサではこの性能問題はもはや存在せず、
そのようなシステムではこのフラグを使用する必要はない。 \fBMAP_FIXED\fP がセットされている場合は、 \fBMAP_32BIT\fP
フラグは無視される。
\fBMAP_FIXED\fP
\fIaddr\fP をアドレスのヒントとして使用するのではなく、 \fIaddr\fP で指定されたアドレスをそのまま使用してマッピングを配置する。
\fIaddr\fP はページサイズの倍数でなければならない。 \fIaddr\fP と \fIlen\fP
-で指定されたメモリ領域が既存のマッピングのページと重なる場合、 既存のマッピングの重なった部分は捨てられる。 もし指定されたアドレスが使用できない場合、
-\fBmmap\fP() は失敗する。 マッピングに対して固定アドレスを要求するのは移植性の面で劣るので、 このオプションは使用しないことを推奨する。
+で指定されたメモリー領域が既存のマッピングのページと重なる場合、 既存のマッピングの重なった部分は捨てられる。
+もし指定されたアドレスが使用できない場合、 \fBmmap\fP() は失敗する。 マッピングに対して固定アドレスを要求するのは移植性の面で劣るので、
+このオプションは使用しないことを推奨する。
.TP
\fBMAP_GROWSDOWN\fP
-スタック用に使用される。マッピングをメモリ内で逆向きに行うことを カーネル仮想メモリシステムに指示する。
-(訳注ï¼\9aã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81¯é\80\9a常ã\81¯ã\83¡ã\83¢ã\83ªã\83»アドレスが増加する向きに行うが、 このオプションを指定すると逆向きにマッピングを行う)
+スタック用に使用される。マッピングをメモリー内で逆向きに行うことを カーネル仮想メモリーシステムに指示する。
+(訳注ï¼\9aã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81¯é\80\9a常ã\81¯ã\83¡ã\83¢ã\83ªã\83¼アドレスが増加する向きに行うが、 このオプションを指定すると逆向きにマッピングを行う)
.TP
\fBMAP_HUGETLB\fP (Linux 2.6.32 以降)
"huge page" を使ってマッピングを割り当てる。詳しい情報は、Linux カーネルソースの
.TP
\fBMAP_LOCKED\fP (Linux 2.5.37 以降)
.\" If set, the mapped pages will not be swapped out.
-マップされた領域のページを \fBmlock\fP(2) の方法でメモリ内にロックする。 それ以前のカーネルでは、このフラグは無視される。
+マップされた領域のページを \fBmlock\fP(2) の方法でメモリー内にロックする。 それ以前のカーネルでは、このフラグは無視される。
.TP
\fBMAP_NONBLOCK\fP (Linux 2.5.46 以降)
\fBMAP_POPULATE\fP と組み合わせた場合のみ意味を持つ。 read\-ahead (前もって読み込むこと) を実行しない。 単に、すでに RAM
-上に存在するページに対してのみページテーブルエントリを作成する。 Linux 2.6.23 以降では、このフラグは \fBMAP_POPULATE\fP
+ä¸\8aã\81«å\98å\9c¨ã\81\99ã\82\8bã\83\9aã\83¼ã\82¸ã\81«å¯¾ã\81\97ã\81¦ã\81®ã\81¿ã\83\9aã\83¼ã\82¸ã\83\86ã\83¼ã\83\96ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82 Linux 2.6.23 以é\99\8dã\81§ã\81¯ã\80\81ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ \fBMAP_POPULATE\fP
に何の影響も与えない。 いつか \fBMAP_POPULATE\fP と \fBMAP_NONBLOCK\fP
を組み合わせた場合の動作は実装し直されるかもしれない。
.TP
\fBMAP_NORESERVE\fP
このマッピングに対するスワップ空間の予約を行わない。 スワップ空間を予約した場合は、このマッピングの変更が必ず可能なことが
-保証される。予約を行わなかった場合、物理メモリに空きがないと 書き込み時に \fBSIGSEGV\fP エラーを受け取ることがある。 \fBproc\fP(5)
+ä¿\9d証ã\81\95ã\82\8cã\82\8bã\80\82äº\88ç´\84ã\82\92è¡\8cã\82\8fã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\80\81ç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\83¼ã\81«ç©ºã\81\8dã\81\8cã\81ªã\81\84ã\81¨ æ\9b¸ã\81\8dè¾¼ã\81¿æ\99\82ã\81« \fBSIGSEGV\fP ã\82¨ã\83©ã\83¼ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\80\82 \fBproc\fP(5)
の \fI/proc/sys/vm/overcommit_memory\fP ファイルについての議論も参照。 バージョン 2.6
-ã\82\88ã\82\8aå\89\8dã\81®ã\82«ã\83¼ã\83\8dã\83«ã\81§ã\81¯ã\80\81ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯æ\9b¸ã\81\8dè¾¼ã\81¿å\8f¯è\83½ã\81ª ã\83\97ã\83©ã\82¤ã\83\99ã\83¼ã\83\88ã\83»ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81«ã\81¤ã\81\84ã\81¦ã\81®ã\81¿å\8a¹æ\9e\9cã\81\8cã\81\82ã\81£ã\81\9fã\80\82
+より前のカーネルでは、このフラグは書き込み可能な プライベートマッピングについてのみ効果があった。
.TP
\fBMAP_POPULATE\fP (Linux 2.5.46 以降)
マッピング用のページテーブルを配置 (populate) する ファイルマッピングの場合には、これによりファイルが先読み (read\-ahead)
が行われる。この以後は、マッピングに対するアクセスがページフォールトで ブロックされることがなくなる。 Linux 2.6.23
-以é\99\8dã\81§ã\81®ã\81¿ã\83\97ã\83©ã\82¤ã\83\99ã\83¼ã\83\88ã\83»ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81«ã\81¤ã\81\84ã\81¦ \fBMAP_POPULATE\fP ã\81\8cã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
+以降でのみプライベートマッピングについて \fBMAP_POPULATE\fP がサポートされている。
.TP
\fBMAP_STACK\fP (Linux 2.6.27 以降)
.\" See http://lwn.net/Articles/294642 "Tangled up in threads", 19 Aug 08
.\" "pthread_create() slow for many threads; also time to revisit 64b
.\" context switch optimization?"
プロセスやスレッドのスタックに適したアドレスにマッピングを割り当てる。 現在のところ、このフラグは何もしないが、 glibc
-のスレッド実装では使用されている。 これは、いくつかのアーキテクチャではスタックの割り当てに関して特別な扱い が必要な場合に、glibc
+ã\81®ã\82¹ã\83¬ã\83\83ã\83\89å®\9fè£\85ã\81§ã\81¯ä½¿ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\82¹ã\82¿ã\83\83ã\82¯ã\81®å\89²ã\82\8aå½\93ã\81¦ã\81«é\96¢ã\81\97ã\81¦ç\89¹å\88¥ã\81ªæ\89±ã\81\84 ã\81\8cå¿\85è¦\81ã\81ªå ´å\90\88ã\81«ã\80\81glibc
にそのサポートを後で透過的に実装できるようにする ためである。
.TP
\fBMAP_UNINITIALIZED\fP (Linux 2.6.33 以降)
\fBCONFIG_MMAP_ALLOW_UNINITIALIZED\fP オプションが有効になっている場合のみ、
このフラグは効果を持つ。
セキュリティ面の考慮から、このオプションは通常組み込みデバイス (すなわち、
-ã\83¦ã\83¼ã\82¶ã\83¡ã\83¢ã\83ªの内容を完全に制御化におけるデバイス) においてのみ有効にされる。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\83¡ã\83¢ã\83ªã\83¼の内容を完全に制御化におけるデバイス) においてのみ有効にされる。
.LP
上記のフラグの中では、 \fBMAP_FIXED\fP だけが POSIX.1\-2001 で規定されている。 しかしながら、ほとんどのシステムで
\fBMAP_ANONYMOUS\fP (またはその同義語である \fBMAP_ANON\fP) もサポートされている。
いくつかのシステムでは、上記以外にフラグとして \fBMAP_AUTOGROW\fP, \fBMAP_AUTORESRV\fP, \fBMAP_COPY\fP,
\fBMAP_LOCAL\fP が規定されている。
.LP
-\fBmmap\fP() によってマップされたメモリの属性は \fBfork\fP(2) の際に継承される。
+\fBmmap\fP() ã\81«ã\82\88ã\81£ã\81¦ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81®å±\9eæ\80§ã\81¯ \fBfork\fP(2) ã\81®é\9a\9bã\81«ç¶\99æ\89¿ã\81\95ã\82\8cã\82\8bã\80\82
.LP
ファイルはページサイズの整数倍の領域にマップされる。サイズがページサイズの 整数倍でないファイルの場合、マップ時に残りの領域は 0
で埋められ、この領域へ 書きこみを行ってもファイルに書き出されることはない。マッピングを行った元
ファイルのサイズを変更した場合、元ファイルの追加されたり削除された領域に対応 するマップされたページに対してどのような影響があるかは規定されていない。
.SS munmap()
-システムコール \fBmunmap\fP() は指定されたアドレス範囲のマップを消去し、 これ以降のその範囲内へのメモリ参照は不正となる。
-この領域は、プロセスが終了したときにも自動的にアンマップされる。 一方、ファイル記述子をクローズしても、この領域はアンマップされない。
+システムコール \fBmunmap\fP() は指定されたアドレス範囲のマップを消去し、 これ以降のその範囲内へのメモリー参照は不正となる。
+この領域は、プロセスが終了したときにも自動的にアンマップされる。 一方、ファイルディスクリプターをクローズしても、この領域はアンマップされない。
.LP
\fIaddr\fP アドレスはページサイズの整数倍でなければならない。指定された範囲の一部分を
含む全てのページはアンマップされ、これ以降にこれらのページへの参照があると \fBSIGSEGV\fP が発生する。
\fIst_mtime\fP の両フィールドは、マップされた領域への書き込みより後で、 \fBMS_SYNC\fP または \fBMS_ASYNC\fP フラグを指定して
\fBmsync\fP(2) が呼ばれる前までに更新される。
.SH 返り値
-\fBmmap\fP() は成功するとマップされた領域へのポインタを返す。 失敗すると値 \fBMAP_FAILED\fP (つまり \fI(void\ *)\ \-1\fP) を返し、 \fIerrno\fP がエラーの内容にしたがってセットされる。 \fBmunmap\fP() は成功すると 0 を返す。失敗すると \-1
+\fBmmap\fP() ã\81¯æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fé \98å\9f\9fã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 失æ\95\97ã\81\99ã\82\8bã\81¨å\80¤ \fBMAP_FAILED\fP (ã\81¤ã\81¾ã\82\8a \fI(void\ *)\ \-1\fP) ã\82\92è¿\94ã\81\97ã\80\81 \fIerrno\fP ã\81\8cã\82¨ã\83©ã\83¼ã\81®å\86\85容ã\81«ã\81\97ã\81\9fã\81\8cã\81£ã\81¦ã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82 \fBmunmap\fP() ã\81¯æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ 0 ã\82\92è¿\94ã\81\99ã\80\82失æ\95\97ã\81\99ã\82\8bã\81¨ \-1
を返し、 \fIerrno\fP がセットされる (多くの場合 \fBEINVAL\fP になるだろう)。
.SH エラー
.TP
\fBEACCES\fP
-以下のいずれかの場合。 ファイル記述子の参照先が通常のファイルではない (non\-regular file) 。 ファイルマッピングを要求したが
-\fIfd\fP は読み込み用にオープンされていない。 \fBMAP_SHARED\fP を要求して \fBPROT_WRITE\fP をセットしたが \fIfd\fP
-ã\81¯èªã\81¿æ\9b¸ã\81\8dã\83¢ã\83¼ã\83\89 (\fBO_RDWR\fP) ã\81§ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\81 \fBPROT_WRITE\fP ã\82\92ã\82»ã\83\83ã\83\88ã\81\97ã\81\9fã\81\8cã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81¯è¿½å\8a (append)
-専用である。
+以下のいずれかの場合。 ファイルディスクリプターの参照先が通常のファイルではない (non\-regular file) 。
+ファイルマッピングを要求したが \fIfd\fP は読み込み用にオープンされていない。 \fBMAP_SHARED\fP を要求して \fBPROT_WRITE\fP
+ã\82\92ã\82»ã\83\83ã\83\88ã\81\97ã\81\9fã\81\8c \fIfd\fP ã\81¯èªã\81¿æ\9b¸ã\81\8dã\83¢ã\83¼ã\83\89 (\fBO_RDWR\fP) ã\81§ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\81 \fBPROT_WRITE\fP
+をセットしたが、ファイルは追加 (append) 専用である。
.TP
\fBEAGAIN\fP
-ファイルがロックされている。またはロックされているメモリが多すぎる (\fBsetrlimit\fP(2) を参照)。
+ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82ã\81¾ã\81\9fã\81¯ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå¤\9aã\81\99ã\81\8eã\82\8b (\fBsetrlimit\fP(2) ã\82\92å\8f\82ç\85§)ã\80\82
.TP
\fBEBADF\fP
-\fIfd\fP が有効なファイル記述子 (file descriptor) ではない (かつ \fBMAP_ANONYMOUS\fP がセットされていない)。
+\fIfd\fP が有効なファイルディスクリプター (file descriptor) ではない (かつ \fBMAP_ANONYMOUS\fP
+がセットされていない)。
.TP
\fBEINVAL\fP
\fIaddr\fP か \fIlength\fP か \fIoffset\fP が適切でない (例えば、大きすぎるとか、ページ境界にアラインメントされていない)。
システム全体でオープンされているファイルの総数が上限に達した。
.TP
\fBENODEV\fP
-指定されたファイルが置かれているファイルシステムがメモリマッピングをサポート していない。
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81\8cç½®ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81\8cã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\82\92ã\82µã\83\9dã\83¼ã\83\88 ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.TP
\fBENOMEM\fP
-メモリに空きがない、または処理中のプロセスのマッピング数が最大数を超過した。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81«ç©ºã\81\8dã\81\8cã\81ªã\81\84ã\80\81ã\81¾ã\81\9fã\81¯å\87¦ç\90\86ä¸ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\9eã\83\83ã\83\94ã\83³ã\82°æ\95°ã\81\8cæ\9c\80大æ\95°ã\82\92è¶\85é\81\8eã\81\97ã\81\9fã\80\82
.TP
\fBEPERM\fP
.\" (Since 2.4.25 / 2.6.0.)
\fBMAP_DENYWRITE\fP がセットされているが \fIfd\fP で指定されているオブジェクトは書き込み用に開かれている。
.TP
\fBEOVERFLOW\fP
-32 ã\83\93ã\83\83ã\83\88ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81§ large file æ\8b¡å¼µã\82\92使ã\81£ã\81¦ã\81\84ã\82\8bå ´å\90\88 (ã\81¤ã\81¾ã\82\8a 64 ã\83\93ã\83\83ã\83\88ã\81® \fIoff_t\fP ã\82\92使ã\81\86å ´å\90\88)ã\80\81 \fIlength\fP
-で使うページ数と \fIoffset\fP で使うページ数を足した値は \fIunsigned long\fP (32 ビット) を超えてしまう
+32 ã\83\93ã\83\83ã\83\88ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ large file æ\8b¡å¼µã\82\92使ã\81£ã\81¦ã\81\84ã\82\8bå ´å\90\88 (ã\81¤ã\81¾ã\82\8a 64 ã\83\93ã\83\83ã\83\88ã\81® \fIoff_t\fP ã\82\92使ã\81\86å ´å\90\88)ã\80\81
+\fIlength\fP で使うページ数と \fIoffset\fP で使うページ数を足した値は \fIunsigned long\fP (32 ビット) を超えてしまう
(オーバーフローしてしまう) 場合がある。
.LP
マップ領域を利用する際に、以下のシグナルが発生することがある:
読み込み専用で mmap された領域へ書き込みを行おうとした。
.TP
\fBSIGBUS\fP
-バッファのうち、ファイルに関連づけられていない部分 (例えばファイル末尾を越えた部分など。これには
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\81\86ã\81¡ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81«é\96¢é\80£ã\81¥ã\81\91ã\82\89ã\82\8cã\81¦ã\81\84ã\81ªã\81\84é\83¨å\88\86 (ä¾\8bã\81\88ã\81°ã\83\95ã\82¡ã\82¤ã\83«æ\9c«å°¾ã\82\92è¶\8aã\81\88ã\81\9fé\83¨å\88\86ã\81ªã\81©ã\80\82ã\81\93ã\82\8cã\81«ã\81¯
他のプロセスがファイルを切り詰めた場合なども含まれる) にアクセスしようとした。
.SH 準拠
.\" SVr4 documents additional error codes ENXIO and ENODEV.
\fB_POSIX_MAPPED_FILES\fP は <unistd.h> で 0 より大きな値に定義される (\fBsysconf\fP(3)
も参照のこと)。
.SH 注意
-(i386 などの) いくつかのアーキテクチャでは、 \fBPROT_WRITE\fP をセットすると、暗黙のうちに \fBPROT_READ\fP
-がセットされる。 \fBPROT_READ\fP をセットした際に暗黙のうちに \fBPROT_EXEC\fP がセットされるかどうかは、アーキテクチャ依存である。
-移植性を考慮したプログラムでは、 新規にマップした領域でコードを実行したい場合は、常に \fBPROT_EXEC\fP をセットすべきである。
+(i386 などの) いくつかのアーキテクチャーでは、 \fBPROT_WRITE\fP をセットすると、暗黙のうちに \fBPROT_READ\fP
+がセットされる。 \fBPROT_READ\fP をセットした際に暗黙のうちに \fBPROT_EXEC\fP
+がセットされるかどうかは、アーキテクチャー依存である。 移植性を考慮したプログラムでは、 新規にマップした領域でコードを実行したい場合は、常に
+\fBPROT_EXEC\fP をセットすべきである。
マッピングを作成する移植性のある方法は、 \fIaddr\fP に 0 (NULL) を指定し、 \fIflags\fP から \fBMAP_FIXED\fP
を外すことである。 この場合、システムがマッピング用のアドレスの選択を行う。 アドレスは既存のマッピングと衝突しないように、 かつ 0
\fBmmap2\fP(2) を起動する。
.SH バグ
Linux においては、上記の \fBMAP_NORESERVE\fP で述べられているような保証はない。
-デフォルトでは、システムがメモリを使い切った場合には、 どのプロセスがいつ強制終了されるか分からないからである。
+ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81\8cã\83¡ã\83¢ã\83ªã\83¼ã\82\92使ã\81\84å\88\87ã\81£ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81 ã\81©ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\81\84ã\81¤å¼·å\88¶çµ\82äº\86ã\81\95ã\82\8cã\82\8bã\81\8bå\88\86ã\81\8bã\82\89ã\81ªã\81\84ã\81\8bã\82\89ã\81§ã\81\82ã\82\8bã\80\82
2.6.7 より前のカーネルでは、 \fIprot\fP に \fBPROT_NONE\fP が指定された場合にのみ、 \fBMAP_POPULATE\fP
フラグが効力を持つ。
そのファイルをクローズしてアンマップした後であってもページキャッシュにデータが残り続け、 データがファイル自体に書き込まれていなくても、
それ以降のマッピングで変更された内容が見える可能性がある。 いくつかの場合では、 アンマップを行う前に \fBmsync\fP(2) を呼び出すことで、
この状況を修正することができる。 しかし、 これは tmpfs では機能しない (例えば、 \fBshm_overview\fP(7) で説明されている
-POSIX 共有メモリインターフェースを使った場合)。
+POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92使ã\81£ã\81\9få ´å\90\88)ã\80\82
.SH 例
.\" FIXME . Add an example here that uses an anonymous shared region for
.\" IPC between parent and child.
.PP
以下のプログラムは、一番目のコマンドライン引き数で指定された ファイルの一部を標準出力に表示する。
表示する範囲は、二番目、三番目のコマンドライン引き数で渡される オフセットと長さで指定される。
-ã\81\93ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\80\81æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81®å¿\85è¦\81ã\81ªã\83\9aã\83¼ã\82¸ã\81®ã\83¡ã\83¢ã\83ªã\83» マッピングを作成し、 \fBwrite\fP(2) を使って所望のバイトを出力する。
+ã\81\93ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\80\81æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81®å¿\85è¦\81ã\81ªã\83\9aã\83¼ã\82¸ã\81®ã\83¡ã\83¢ã\83ªã\83¼ マッピングを作成し、 \fBwrite\fP(2) を使って所望のバイトを出力する。
.SS プログラムのソース
.nf
#include <sys/mman.h>
.\"
.TH MMAP2 2 2014\-02\-25 Linux "Linux Programmer's Manual"
.SH 名前
-mmap2 \- ファイルやデバイスをメモリにマップする
+mmap2 \- ã\83\95ã\82¡ã\82¤ã\83«ã\82\84ã\83\87ã\83\90ã\82¤ã\82¹ã\82\92ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\83\9eã\83\83ã\83\97ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <sys/mman.h>\fP
\fIoff_t\fP を使うアプリケーションで (2^44 バイトまでの) 大きなファイルをマップ
できるようになる。
.SH 返り値
-成功した場合、 \fBmmap2\fP() はマップされた領域へのポインタを返す。 エラーの場合は \-1 が返されて、 \fIerrno\fP
+æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 \fBmmap2\fP() ã\81¯ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fé \98å\9f\9fã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\81¯ \-1 ã\81\8cè¿\94ã\81\95ã\82\8cã\81¦ã\80\81 \fIerrno\fP
が適切に設定される。
.SH エラー
.TP
\fBEFAULT\fP
-ユーザ空間からデータを取得するときに問題があった。
+ユーザー空間からデータを取得するときに問題があった。
.TP
\fBEINVAL\fP
(ページサイズが 4096 バイトでないプラットフォームにおいて) \fIoffset\ *\ 4096\fP がシステムのページサイズの倍数ではない。
\fI注\fP: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。
.SH 説明
-\fBmodify_ldt\fP() ã\81¯ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83ã\83¼ã\82«ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83»テーブル (local descriptor table; ldt)
-を読み書きする。 ldt は i386 プロセッサで使用されるプロセスごとのメモリ管理テーブルである。 このテーブルに関してのより詳しい情報は
+\fBmodify_ldt\fP() ã\81¯ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83ã\83¼ã\82«ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼テーブル (local descriptor table; ldt)
+を読み書きする。 ldt は i386 プロセッサで使用されるプロセスごとのメモリー管理テーブルである。 このテーブルに関してのより詳しい情報は
Intel 386 processor handbook を 参照すること。
.PP
-\fIfunc\fP が 0 ならば、 \fBmodify_ldt\fP() は ldt を \fIptr\fP が指しているメモリに読み込む。
+\fIfunc\fP ã\81\8c 0 ã\81ªã\82\89ã\81°ã\80\81 \fBmodify_ldt\fP() ã\81¯ ldt ã\82\92 \fIptr\fP ã\81\8cæ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81«èªã\81¿è¾¼ã\82\80ã\80\82
読み込むバイト数は実際の ldt のサイズか \fIbytecount\fP より小さい方である。
.PP
.\"
.\" In Linux 2.4, func == 2 returned "the default ldt"
.\" In Linux 2.6, func == 2 is a nop, returning a zeroed out structure.
.\" Linux 2.4 and 2.6 implement an operation for func == 0x11
-\fIfunc\fP が 1 ならば、 \fBmodify_ldt\fP() は ldt エントリの一つを変更する。 \fIptr\fP は \fIuser_desc\fP
+\fIfunc\fP ã\81\8c 1 ã\81ªã\82\89ã\81°ã\80\81 \fBmodify_ldt\fP() ã\81¯ ldt ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ä¸\80ã\81¤ã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82 \fIptr\fP ã\81¯ \fIuser_desc\fP
構造体を指し、 \fIbytecount\fP はこの構造体の大きさに等しくなければならない。
\fIuser_desc\fP 構造体は \fI<asm/ldt.h>\fP で以下のように定義されている:
.TP
\fBEINVAL\fP
\fIptr\fP が 0 である、 または \fIfunc\fP が 1 で \fIbytecount\fP が \fImodify_ldt_ldt_s\fP
-構造体のサイズと等しくないか、 \fIfunc\fP が 1 で新しい ldt エントリが無効な値である。
+æ§\8bé\80 ä½\93ã\81®ã\82µã\82¤ã\82ºã\81¨ç\89ã\81\97ã\81\8fã\81ªã\81\84ã\81\8bã\80\81 \fIfunc\fP ã\81\8c 1 ã\81§æ\96°ã\81\97ã\81\84 ldt ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cç\84¡å\8a¹ã\81ªå\80¤ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBENOSYS\fP
\fIfunc\fP が 0 でも 1 でもない。
.\" FIXME . Definitions of the so-far-undocumented MS_UNBINDABLE, MS_PRIVATE,
.\" MS_SHARED, and MS_SLAVE were (also) only added to glibc headers in 2.12.
\fBMS_DIRSYNC\fP, \fBMS_MOVE\fP, \fBMS_REC\fP, \fBMS_RELATIME\fP, \fBMS_STRICTATIME\fP の定義が
-glibc のヘッダに追加されたのは バージョン 2.12 においてである。
+glibc ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\81«è¿½å\8a ã\81\95ã\82\8cã\81\9fã\81®ã\81¯ ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.12 ã\81«ã\81\8aã\81\84ã\81¦ã\81§ã\81\82ã\82\8bã\80\82
.SH 準拠
この関数は Linux 固有の関数であり、移植を考慮したプログラムでは 使用すべきでない。
.SH 注意
\fI\-lnuma\fP とリンクする。
.SH 説明
\fBmove_pages\fP() は、プロセス \fIpid\fP の指定されたページ \fIpages\fP を \fInodes\fP
-で指定されたメモリノードに移動する。 移動の結果は \fIstatus\fP に反映される。 \fIflags\fP では移動されるページに関する制約を指定する。
+ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\83\8eã\83¼ã\83\89ã\81«ç§»å\8b\95ã\81\99ã\82\8bã\80\82 移å\8b\95ã\81®çµ\90æ\9e\9cã\81¯ \fIstatus\fP ã\81«å\8f\8dæ\98 ã\81\95ã\82\8cã\82\8bã\80\82 \fIflags\fP ã\81§ã\81¯ç§»å\8b\95ã\81\95ã\82\8cã\82\8bã\83\9aã\83¼ã\82¸ã\81«é\96¢ã\81\99ã\82\8bå\88¶ç´\84ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82
\fIpid\fP は、移動されるページが属するプロセスの ID である。 別のプロセスのページを移動するためには、呼び出し元が特権
-(\fBCAP_SYS_NICE\fP) を持っているか、呼び出したプロセスの実ユーザ ID か実効ユーザ ID が ページ移動対象のプロセスの実ユーザ
-ID か保存 set\-user\-ID のどちらかと 一致しなければならない。 \fIpid\fP が 0 の場合、 \fBmove_pages\fP()
-は呼び出したプロセスのページを移動する。
+(\fBCAP_SYS_NICE\fP) を持っているか、呼び出したプロセスの実ユーザー ID か実効ユーザー ID が
+ページ移動対象のプロセスの実ユーザー ID か保存 set\-user\-ID のどちらかと 一致しなければならない。 \fIpid\fP が 0 の場合、
+\fBmove_pages\fP() は呼び出したプロセスのページを移動する。
\fIcount\fP は移動するページ数である。 \fIcount\fP により \fIpages\fP, \fInodes\fP, \fIstatus\fP の 3
つの配列の大きさが定義される。
.\" FIXME Describe the result if pointers in the 'pages' array are
.\" not aligned to page boundaries
-\fIpages\fP ã\81¯ã\80\81移å\8b\95ã\81\99ã\81¹ã\81\8dã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81®é\85\8då\88\97ã\81§ã\81\82ã\82\8aã\80\81 å\90\84ã\83\9dã\82¤ã\83³ã\82¿はページ境界に揃えた値を指定すべきである。 \fIpid\fP
+\fIpages\fP ã\81¯ã\80\81移å\8b\95ã\81\99ã\81¹ã\81\8dã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®é\85\8då\88\97ã\81§ã\81\82ã\82\8aã\80\81 å\90\84ã\83\9dã\82¤ã\83³ã\82¿ã\83¼はページ境界に揃えた値を指定すべきである。 \fIpid\fP
で指定されたプロセスで見えるアドレスを指定する。
\fInodes\fP は、各ページの希望の移動場所を示す整数値の配列であり、 配列の各要素はノード番号である。 \fInodes\fP には NULL
がそのページへの参照を保持している場合に発生する。
.TP
\fB\-EFAULT\fP
-そのページが zero page であるか、そのメモリ領域はそのプロセスにより マップされていない。
+そのページが zero page であるか、そのメモリー領域はそのプロセスにより マップされていない。
.TP
\fB\-EIO\fP
ページを書き戻す (write back) ことができない。 ページが dirty で、ファイルシステムが dirty なページを移動できるような
ページが存在しない。
.TP
\fB\-ENOMEM\fP
-移動先のノードでメモリを確保することができない。
+移å\8b\95å\85\88ã\81®ã\83\8eã\83¼ã\83\89ã\81§ã\83¡ã\83¢ã\83ªã\83¼ã\82\92確ä¿\9dã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\80\82
.SH 返り値
.\" FIXME . Is the following quite true: does the wrapper in numactl
.\" do the right thing?
移動先のノードのいずれかが現在の CPU 集合では許可されていない。
.TP
\fBEFAULT\fP
-パラメータ配列にアクセスできなかった。
+パラメーター配列にアクセスできなかった。
.TP
\fBEINVAL\fP
\fIflags\fP に \fBMPOL_MF_MOVE\fP でも \fBMPOL_MF_MOVE_ALL\fP
.TP
\fBEPERM\fP
呼び出し元は \fBMPOL_MF_MOVE_ALL\fP を指定したが、十分な特権 (\fBCAP_SYS_NICE\fP) を持っていない。
-または、呼び出し元が他のユーザに属するプロセスのページを移動しようとしたが、 それを行えるだけの特権 (\fBCAP_SYS_NICE\fP)
+ã\81¾ã\81\9fã\81¯ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8cä»\96ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81«å±\9eã\81\99ã\82\8bã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\9aã\83¼ã\82¸ã\82\92移å\8b\95ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\81\8cã\80\81 ã\81\9dã\82\8cã\82\92è¡\8cã\81\88ã\82\8bã\81 ã\81\91ã\81®ç\89¹æ¨© (\fBCAP_SYS_NICE\fP)
を持っていなかった。
.TP
\fBESRCH\fP
\fBget_mempolicy\fP(2) を使用すればよい。 取得した情報は、CPU 集合の手動または自動での再構成により
いつ何時変化してしまうか分からない。
-この関数を使用すると、ページの位置 (ノード) が 指定されたアドレスに対して設定されたメモリポリシー (\fBmbind\fP(2) 参照)
-や指定されたプロセスに対して設定されたメモリポリシー (\fBset_mempolicy\fP(2) 参照) に違反してしまう可能性がある。
-つまり、メモリポリシーは \fBmove_pages\fP() で使われる移動先ノードを制限しないということである。
+ã\81\93ã\81®é\96¢æ\95°ã\82\92使ç\94¨ã\81\99ã\82\8bã\81¨ã\80\81ã\83\9aã\83¼ã\82¸ã\81®ä½\8dç½® (ã\83\8eã\83¼ã\83\89) ã\81\8c æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¢ã\83\89ã\83¬ã\82¹ã\81«å¯¾ã\81\97ã\81¦è¨å®\9aã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\83\9dã\83ªã\82·ã\83¼ (\fBmbind\fP(2) å\8f\82ç\85§)
+ã\82\84æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦è¨å®\9aã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\83\9dã\83ªã\82·ã\83¼ (\fBset_mempolicy\fP(2) å\8f\82ç\85§) ã\81«é\81\95å\8f\8dã\81\97ã\81¦ã\81\97ã\81¾ã\81\86å\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\80\82
+ã\81¤ã\81¾ã\82\8aã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\83\9dã\83ªã\82·ã\83¼ã\81¯ \fBmove_pages\fP() ã\81§ä½¿ã\82\8fã\82\8cã\82\8b移å\8b\95å\85\88ã\83\8eã\83¼ã\83\89ã\82\92å\88¶é\99\90ã\81\97ã\81ªã\81\84ã\81¨ã\81\84ã\81\86ã\81\93ã\81¨ã\81§ã\81\82ã\82\8bã\80\82
-ヘッダファイル \fI<numaif.h>\fP は glibc には含まれておらず、 \fIlibnuma\-devel\fP
+ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83« \fI<numaif.h>\fP ã\81¯ glibc ã\81«ã\81¯å\90«ã\81¾ã\82\8cã\81¦ã\81\8aã\82\89ã\81\9aã\80\81 \fIlibnuma\-devel\fP
か同様のパッケージをインストールする必要がある。
.SH 関連項目
\fBget_mempolicy\fP(2), \fBmbind\fP(2), \fBset_mempolicy\fP(2), \fBnuma\fP(3),
.\"
.TH MPROTECT 2 2014\-01\-05 Linux "Linux Programmer's Manual"
.SH 名前
-mprotect \- メモリ領域の保護を設定する
+mprotect \- メモリー領域の保護を設定する
.SH 書式
.nf
\fB#include <sys/mman.h>\fP
.fi
.SH 説明
\fBmprotect\fP() は、区間 [\fIaddr\fP,\ \fIaddr\fP+\fIlen\fP\-1] のアドレス範囲を含む
-呼び出し元のプロセスのメモリページのアクセス保護を変更する。 \fIaddr\fP はページ境界に一致していなければならない。
+å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\9aã\83¼ã\82¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ä¿\9dè·ã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82 \fIaddr\fP ã\81¯ã\83\9aã\83¼ã\82¸å¢\83ç\95\8cã\81«ä¸\80è\87´ã\81\97ã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
-呼び出し元のプロセスがアクセス保護に違反するようなメモリアクセスを 行おうとすると、カーネルはシグナル \fBSIGSEGV\fP
+å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82¢ã\82¯ã\82»ã\82¹ä¿\9dè·ã\81«é\81\95å\8f\8dã\81\99ã\82\8bã\82\88ã\81\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\82¯ã\82»ã\82¹ã\82\92 è¡\8cã\81\8aã\81\86ã\81¨ã\81\99ã\82\8bã\81¨ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81¯ã\82·ã\82°ã\83\8aã\83« \fBSIGSEGV\fP
をそのプロセスに対して生成する。
.PP
\fIprot\fP には、 \fBPROT_NONE\fP か、以下のリストの \fBPROT_NONE\fP 以外の値をビット毎の論理和 (bitwize\-or)
で指定する:
.TP 1.1i
\fBPROT_NONE\fP
-そのメモリには全くアクセスできない。
+ã\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\81¯å\85¨ã\81\8fã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8dã\81ªã\81\84ã\80\82
.TP
\fBPROT_READ\fP
-そのメモリを読み取ることができる。
+ã\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92èªã\81¿å\8f\96ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
.TP
\fBPROT_WRITE\fP
-そのメモリを変更できる。
+ã\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å¤\89æ\9b´ã\81§ã\81\8dã\82\8bã\80\82
.TP
\fBPROT_EXEC\fP
-そのメモリは実行可能である。
+ã\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81¯å®\9fè¡\8cå\8f¯è\83½ã\81§ã\81\82ã\82\8bã\80\82
.SH 返り値
成功した場合、 \fBmprotect\fP() は 0 を返す。エラーの場合は \-1 が返り、 \fIerrno\fP が適切に設定される。
.SH エラー
.TP
\fBEACCES\fP
-指定されたアクセスをメモリに設定することができない。 これは、例えば ファイルを読み取り専用で \fBmmap\fP(2) しており、その領域に対して
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¢ã\82¯ã\82»ã\82¹ã\82\92ã\83¡ã\83¢ã\83ªã\83¼ã\81«è¨å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\80\82 ã\81\93ã\82\8cã\81¯ã\80\81ä¾\8bã\81\88ã\81° ã\83\95ã\82¡ã\82¤ã\83«ã\82\92èªã\81¿å\8f\96ã\82\8aå°\82ç\94¨ã\81§ \fBmmap\fP(2) ã\81\97ã\81¦ã\81\8aã\82\8aã\80\81ã\81\9dã\81®é \98å\9f\9fã\81«å¯¾ã\81\97ã\81¦
\fBmprotect\fP() を呼び出して \fBPROT_WRITE\fP に設定しようとした場合に発生する。
.TP
\fBEINVAL\fP
.\" Or: both PROT_GROWSUP and PROT_GROWSDOWN were specified in 'prot'.
-\fIaddr\fP が有効なポインタでないか、 システムのページサイズの倍数でない。
+\fIaddr\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\81\8bã\80\81 ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83\9aã\83¼ã\82¸ã\82µã\82¤ã\82ºã\81®å\80\8dæ\95°ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBENOMEM\fP
カーネル内部の構造体を割り当てることができなかった。
.SH 準拠
.\" SVr4 defines an additional error
.\" code EAGAIN. The SVr4 error conditions don't map neatly onto Linux's.
-SVr4, POSIX.1\-2001. POSIX では、 \fBmmap\fP(2) 経由で獲得していないメモリ領域に対して \fBmprotect\fP()
-を行った場合の \fBmprotect\fP() の動作は未定義であるとされている。
+SVr4, POSIX.1\-2001. POSIX では、 \fBmmap\fP(2) 経由で獲得していないメモリー領域に対して
+\fBmprotect\fP() を行った場合の \fBmprotect\fP() の動作は未定義であるとされている。
.SH 注意
Linux では、(カーネル vsyscall 領域以外の) 任意のプロセスアドレス空間に対して \fBmprotect\fP()
を呼び出すことが、常に許されている。 これは特に既存のコードマッピングを書き込み可能にするために使われる。
-\fBPROT_EXEC\fP が \fBPROT_READ\fP と異なる影響を持つか否かは、アーキテクチャとカーネルのバージョンに依存する。 (i386
-などの) いくつかのアーキテクチャでは、 \fBPROT_WRITE\fP をセットすると、暗黙のうちに \fBPROT_READ\fP がセットされる。
+\fBPROT_EXEC\fP ã\81\8c \fBPROT_READ\fP ã\81¨ç\95°ã\81ªã\82\8bå½±é\9f¿ã\82\92æ\8c\81ã\81¤ã\81\8bå\90¦ã\81\8bã\81¯ã\80\81ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81¨ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82 (i386
+ã\81ªã\81©ã\81®) ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81 \fBPROT_WRITE\fP ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\81¨ã\80\81æ\9a\97é»\99ã\81®ã\81\86ã\81¡ã\81« \fBPROT_READ\fP ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82
POSIX.1\-2001 では、 \fIprot\fP で指定されていないアクセスを許可する実装を認めている。 ただし、最低限、 \fBPROT_WRITE\fP
がセットされている場合にのみ書き込みアクセスが許可され、 \fBPROT_NONE\fP がセットされている場合にはアクセスは許可されない点だけは
.SH 例
.\" sigaction.2 refers to this example
.PP
-以下のプログラムは、メモリページを 4つ確保し、そのうち 3番目のページを 読み込み専用に設定する。その後で、確保した領域のアドレスの小さい方から
+以ä¸\8bã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\83\9aã\83¼ã\82¸ã\82\92 4ã\81¤ç¢ºä¿\9dã\81\97ã\80\81ã\81\9dã\81®ã\81\86ã\81¡ 3ç\95ªç\9b®ã\81®ã\83\9aã\83¼ã\82¸ã\82\92 èªã\81¿è¾¼ã\81¿å°\82ç\94¨ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82ã\81\9dã\81®å¾\8cã\81§ã\80\81確ä¿\9dã\81\97ã\81\9fé \98å\9f\9fã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81®å°\8fã\81\95ã\81\84æ\96¹ã\81\8bã\82\89
大きな方に向かって順番にバイト値を変更するループを実行する。
プログラムを実行した場合の一例を以下に示す。
\fBmq_getattr\fP(3) と \fBmq_setattr\fP(3) の実装に使用される低レベルのシステムコールである。
このシステムコールがどのように動作するかは \fBmq_setattr\fP(3) の説明を参照のこと。
.SH 準拠
-このインタフェースは非標準である。使用を避けること。
+ã\81\93ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯é\9d\9eæ¨\99æº\96ã\81§ã\81\82ã\82\8bã\80\82使ç\94¨ã\82\92é\81¿ã\81\91ã\82\8bã\81\93ã\81¨ã\80\82
.SH 注意
glibc はこのシステムコールに対するラッパー関数を提供していない。 \fBsyscall\fP(2) を使って呼び出すこと。 (実のところ、C
ライブラリを書いているのでない限り、 決してこのシステムコールを呼び出さないこと!)
.\"
.TH MREMAP 2 2010\-06\-10 Linux "Linux Programmer's Manual"
.SH 名前
-mremap \- ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83»アドレスを再マッピングする
+mremap \- ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼アドレスを再マッピングする
.SH 書式
.nf
\fB#define _GNU_SOURCE\fP /* feature_test_macros(7) 参照 */
\fB size_t \fP\fInew_size\fP\fB, int \fP\fIflags\fP\fB, ... /* void *\fP\fInew_address\fP\fB */);\fP
.fi
.SH 説明
-\fBmremap\fP() ã\81¯æ\97¢å\98ã\81®ã\83¡ã\83¢ã\83ªã\83»マッピングの拡張 (または縮小) を行う。 同時に移動されることもある (\fIflags\fP
+\fBmremap\fP() ã\81¯æ\97¢å\98ã\81®ã\83¡ã\83¢ã\83ªã\83¼マッピングの拡張 (または縮小) を行う。 同時に移動されることもある (\fIflags\fP
引き数と利用可能な仮想アドレス空間によって決まる)。
-\fIold_address\fP ã\81¯æ\8b¡å¼µ (ã\81¾ã\81\9fã\81¯ç¸®å°\8f) ã\81\97ã\82\88ã\81\86ã\81¨ã\81\99ã\82\8bä»®æ\83³ã\83¡ã\83¢ã\83ªã\83»ブロック の元のアドレスである。\fIold_address\fP
-ã\81¯ã\83\9aã\83¼ã\82¸å¢\83ç\95\8cã\81«å\90\88ã\81£ã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81° ã\81ªã\82\89ã\81ªã\81\84ç\82¹ã\81«æ³¨æ\84\8fã\81\99ã\82\8bã\81\93ã\81¨ã\80\82\fIold_size\fP ã\81¯å\85\83ã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83»ブロックの サイズである。 \fInew_size\fP
-ã\81¯è¦\81æ±\82ã\81\99ã\82\8bå¤\89æ\9b´å¾\8cã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83»ブロックのサイズである。 5 番目の引き数として \fInew_address\fP を指定することができる。下記の
+\fIold_address\fP ã\81¯æ\8b¡å¼µ (ã\81¾ã\81\9fã\81¯ç¸®å°\8f) ã\81\97ã\82\88ã\81\86ã\81¨ã\81\99ã\82\8bä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ブロック の元のアドレスである。\fIold_address\fP
+ã\81¯ã\83\9aã\83¼ã\82¸å¢\83ç\95\8cã\81«å\90\88ã\81£ã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81° ã\81ªã\82\89ã\81ªã\81\84ç\82¹ã\81«æ³¨æ\84\8fã\81\99ã\82\8bã\81\93ã\81¨ã\80\82\fIold_size\fP ã\81¯å\85\83ã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ブロックの サイズである。 \fInew_size\fP
+ã\81¯è¦\81æ±\82ã\81\99ã\82\8bå¤\89æ\9b´å¾\8cã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ブロックのサイズである。 5 番目の引き数として \fInew_address\fP を指定することができる。下記の
\fBMREMAP_FIXED\fP の説明を参照のこと。
-Linux ã\81§ã\81¯ã\83¡ã\83¢ã\83ªã\81¯ã\83\9aã\83¼ã\82¸ã\81«å\88\86å\89²ã\81\95ã\82\8cã\82\8bã\80\82ã\83¦ã\83¼ã\82¶ã\83¼ã\83»ã\83\97ã\83ã\82»ã\82¹ã\81¯ (ä¸\80ã\81¤ã\81¾ã\81\9fã\81¯) è¤\87æ\95°ã\81®ã\83ªã\83\8bã\82¢ã\81ªä»®æ\83³ã\83¡ã\83¢ã\83ªセグメントを持つ。
-ã\81\9dã\82\8cã\81\9eã\82\8cã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81¯ä¸\80ã\81¤ä»¥ä¸\8aã\81®å®\9fã\83¡ã\83¢ã\83ªã\83»ã\83\9aã\83¼ã\82¸ ã\81«ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b (ã\83\9eã\83\83ã\83\94ã\83³ã\82°æ\83\85å ±ã\81¯ã\83\9aã\83¼ã\82¸ã\83»テーブルで管理される)。
-ä»®æ\83³ã\83¡ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«ã\81¯ã\82»ã\82°ã\83¡ã\83³ã\83\88æ¯\8eã\81®ä¿\9dè· (ã\82¢ã\82¯ã\82»ã\82¹æ¨©) ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81 ã\83¡ã\83¢ã\83ªが不正にアクセスされた場合 (例えば読み込み専用のセグメントに
+Linux ã\81§ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\81¯ã\83\9aã\83¼ã\82¸ã\81«å\88\86å\89²ã\81\95ã\82\8cã\82\8bã\80\82ã\83¦ã\83¼ã\82¶ã\83¼ã\83\97ã\83ã\82»ã\82¹ã\81¯ (ä¸\80ã\81¤ã\81¾ã\81\9fã\81¯) è¤\87æ\95°ã\81®ã\83ªã\83\8bã\82¢ã\81ªä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼セグメントを持つ。
+ã\81\9dã\82\8cã\81\9eã\82\8cã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81¯ä¸\80ã\81¤ä»¥ä¸\8aã\81®å®\9fã\83¡ã\83¢ã\83ªã\83¼ã\83\9aã\83¼ã\82¸ ã\81«ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b (ã\83\9eã\83\83ã\83\94ã\83³ã\82°æ\83\85å ±ã\81¯ã\83\9aã\83¼ã\82¸テーブルで管理される)。
+ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«ã\81¯ã\82»ã\82°ã\83¡ã\83³ã\83\88æ¯\8eã\81®ä¿\9dè· (ã\82¢ã\82¯ã\82»ã\82¹æ¨©) ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81 ã\83¡ã\83¢ã\83ªã\83¼が不正にアクセスされた場合 (例えば読み込み専用のセグメントに
書き込んだ場合)、セグメンテーション侵害 (segmentation violation) を
-引き起こす。また、セグメント外の仮想メモリにアクセスした場合にも セグメンテーション侵害が発生する。
+å¼\95ã\81\8dèµ·ã\81\93ã\81\99ã\80\82ã\81¾ã\81\9fã\80\81ã\82»ã\82°ã\83¡ã\83³ã\83\88å¤\96ã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\97ã\81\9få ´å\90\88ã\81«ã\82\82 ã\82»ã\82°ã\83¡ã\83³ã\83\86ã\83¼ã\82·ã\83§ã\83³ä¾µå®³ã\81\8cç\99ºç\94\9fã\81\99ã\82\8bã\80\82
-\fBmremap\fP() ã\81¯ Linux ã\81®ã\83\9aã\83¼ã\82¸ã\83»ã\83\86ã\83¼ã\83\96ã\83«æ\96¹å¼\8fã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82 \fBmremap\fP()
-ã\81¯ä»®æ\83³ã\82¢ã\83\89ã\83¬ã\82¹ã\81¨ã\83¡ã\83¢ã\83ªã\83»ページのマッピングを変更する。これは非常に効率的な \fBrealloc\fP(3) を実装するのに使用されている。
+\fBmremap\fP() は Linux のページテーブル方式を使用する。 \fBmremap\fP()
+ã\81¯ä»®æ\83³ã\82¢ã\83\89ã\83¬ã\82¹ã\81¨ã\83¡ã\83¢ã\83ªã\83¼ページのマッピングを変更する。これは非常に効率的な \fBrealloc\fP(3) を実装するのに使用されている。
\fIflags\fP ビットマスク引数は 0 または以下のフラグを含む:
.TP
\fBMREMAP_MAYMOVE\fP
デフォルトでは、現在の位置にマッピングを拡張するための 十分な空きがなければ \fBmremap\fP() は失敗する。
このフラグが指定されると、カーネルは必要があればマッピングを 新しい仮想アドレスに再配置することができる
-マッピングが再配置されると、古いマッピング位置への絶対ポインタは 無効になる (マッピングの開始アドレスからの相対オフセットは有効のままである)。
+ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81\8cå\86\8dé\85\8dç½®ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81å\8f¤ã\81\84ã\83\9eã\83\83ã\83\94ã\83³ã\82°ä½\8dç½®ã\81¸ã\81®çµ¶å¯¾ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ ç\84¡å\8a¹ã\81«ã\81ªã\82\8b (ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81®é\96\8bå§\8bã\82¢ã\83\89ã\83¬ã\82¹ã\81\8bã\82\89ã\81®ç\9b¸å¯¾ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81¯æ\9c\89å\8a¹ã\81®ã\81¾ã\81¾ã\81§ã\81\82ã\82\8b)ã\80\82
.TP
\fBMREMAP_FIXED\fP (Linux 2.3.31 以降)
このフラグは \fBmmap\fP(2) の \fBMAP_FIXED\fP フラグと似たような目的で用いられる。 このフラグが指定されると、
と \fInew_size\fP で指定されるアドレス範囲に過去のマッピングがあった場合、 そのマッピングはアンマップされる (unmapped)。
\fBMREMAP_FIXED\fP を指定した場合は、 \fBMREMAP_MAYMOVE\fP も指定しなければならない。
.PP
-\fIold_address\fP と \fIold_size\fP で指定されるメモリセグメントが (\fBmlock\fP(2) や同様のもので)
+\fIold_address\fP ã\81¨ \fIold_size\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81\8c (\fBmlock\fP(2) ã\82\84å\90\8cæ§\98ã\81®ã\82\82ã\81®ã\81§)
ロックされている場合、セグメントのサイズが変わったり 再配置されたりした時にロックも維持される。
-その結果、プロセスによってロックされるメモリの量は変化する。
+ã\81\9dã\81®çµ\90æ\9e\9cã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81«ã\82\88ã\81£ã\81¦ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81®é\87\8fã\81¯å¤\89å\8c\96ã\81\99ã\82\8bã\80\82
.SH 返り値
-成功した場合は \fBmremap\fP() は新しい仮想メモリ領域へのポインタを返す。 エラーの場合は \fBMAP_FAILED\fP (すなわち
+成功した場合は \fBmremap\fP() は新しい仮想メモリー領域へのポインターを返す。 エラーの場合は \fBMAP_FAILED\fP (すなわち
\fI(void\ *)\ \-1\fP) が返され、 \fIerrno\fP が適切に設定される。
.SH エラー
.TP
\fBEAGAIN\fP
-呼び出し元がロックされているメモリセグメントを拡張しようとしたが、 \fBRLIMIT_MEMLOCK\fP リソース制限を越えずにこれを行うことができない。
+呼び出し元がロックされているメモリーセグメントを拡張しようとしたが、 \fBRLIMIT_MEMLOCK\fP
+リソース制限を越えずにこれを行うことができない。
.TP
\fBEFAULT\fP
「セグメンテーション違反(segmentation fault)」 \fIold_address\fP から
-\fIold_address\fP+\fIold_size\fP ã\81® ç¯\84å\9b²ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81®ã\81©ã\82\8cã\81\8bã\81\8cã\81\93ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«ã\81\8aã\81\84ã\81¦ä¸\8dæ£ã\81ªä»®æ\83³ã\83¡ã\83¢ã\83ªã\83»アドレスである。
+\fIold_address\fP+\fIold_size\fP ã\81® ç¯\84å\9b²ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81®ã\81©ã\82\8cã\81\8bã\81\8cã\81\93ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«ã\81\8aã\81\84ã\81¦ä¸\8dæ£ã\81ªä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼アドレスである。
たとえ要求したアドレス空間全体を含むようなマッピングがあったとしても、 それらのマッピングが異なった型ならば \fBEFAULT\fP を受け取るだろう。
.TP
\fBEINVAL\fP
\fBMREMAP_FIXED\fP が指定されているが \fBMREMAP_MAYMOVE\fP が指定されていない。
.TP
\fBENOMEM\fP
-現在の仮想アドレスではメモリ領域が拡張できず、 \fBMREMAP_MAYMOVE\fP フラグが \fIflags\fP に設定されていない。 または十分な
-(仮想) メモリが存在しない。
+現在の仮想アドレスではメモリー領域が拡張できず、 \fBMREMAP_MAYMOVE\fP フラグが \fIflags\fP に設定されていない。 または十分な
+(ä»®æ\83³) ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\84ã\80\82
.SH 準拠
.\" 4.2BSD had a (never actually implemented)
.\" .BR mremap (2)
\fBbrk\fP(2), \fBgetpagesize\fP(2), \fBgetrlimit\fP(2), \fBmlock\fP(2), \fBmmap\fP(2),
\fBsbrk\fP(2), \fBrealloc\fP(3), \fBmalloc\fP(3)
-ページ分割されたメモリについてもっと詳しく知りたいならば、あなたのお気に入りのオペレーティングシステムの教科書を参照してほしい (例えば、
+ã\83\9aã\83¼ã\82¸å\88\86å\89²ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\81¤ã\81\84ã\81¦ã\82\82ã\81£ã\81¨è©³ã\81\97ã\81\8fç\9f¥ã\82\8aã\81\9fã\81\84ã\81ªã\82\89ã\81°ã\80\81ã\81\82ã\81ªã\81\9fã\81®ã\81\8aæ°\97ã\81«å\85¥ã\82\8aã\81®ã\82ªã\83\9aã\83¬ã\83¼ã\83\86ã\82£ã\83³ã\82°ã\82·ã\82¹ã\83\86ã\83 ã\81®æ\95\99ç§\91æ\9b¸ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81»ã\81\97ã\81\84 (ä¾\8bã\81\88ã\81°ã\80\81
\fIModern Operating Systems\fP by Andrew S. Tanenbaum, \fIInside Linux\fP by
Randolf Bentson, \fIThe Design of the UNIX Operating System\fP by Maurice
J. Bach.)
\fIcmd\fP として有効な値は:
.TP
\fBIPC_STAT\fP
-\fImsqid\fP に関連づけられたメッセージキューデータ構造体から、ポインタ \fIbuf\fP が指し示す \fImsqid_ds\fP
-æ§\8bé\80 ä½\93ã\81«æ\83\85å ±ã\82\92ã\82³ã\83\94ã\83¼ã\81\99ã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\97å\81´ã\81¯ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82ã\83¥ã\83¼ã\81«å¯¾ã\81\99ã\82\8bèªã\81¿è¾¼ã\81¿è¨±å\8f¯ã\82\92æ\8c\81ã\81£ã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
+\fImsqid\fP に関連づけられたメッセージキューデータ構造体から、ポインター \fIbuf\fP が指し示す \fImsqid_ds\fP
+構造体に情報をコピーする。 呼び出し側はメッセージキューに対する読み込み許可を持っていなければならない。
.TP
\fBIPC_SET\fP
-ポインタ \fIbuf\fP が指し示す \fImsqid_ds\fP 構造体のメンバーの値を、メッセージ・キューに関連づけられた
-カーネル・データ構造体に書き込み、 \fImsg_ctime\fP メンバーも更新する。 構造体のメンバーのうち、更新されるものを以下に示す:
-\fImsg_qbytes\fP, \fImsg_perm.uid\fP, \fImsg_perm.gid\fP, \fImsg_perm.mode\fP (の下位 9
-ビット)。 呼び出したプロセスの実効ユーザ ID が、メッセージキューの所有者 (\fImsg_perm.uid\fP) または作成者
-(\fImsg_perm.cuid\fP) ã\81¨ä¸\80è\87´ã\81\99ã\82\8bã\81\8bã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8cç\89¹æ¨©ã\82\92æ\8c\81ã\81\9fã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 \fImsg_qbytes\fP ã\82\92ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\83\91ã\83©ã\83¡ã\83¼ã\82¿の
+ポインター \fIbuf\fP が指し示す \fImsqid_ds\fP 構造体のメンバーの値を、メッセージキューに関連づけられた カーネルデータ構造体に書き込み、
+\fImsg_ctime\fP メンバーも更新する。 構造体のメンバーのうち、更新されるものを以下に示す: \fImsg_qbytes\fP,
+\fImsg_perm.uid\fP, \fImsg_perm.gid\fP, \fImsg_perm.mode\fP (の下位 9 ビット)。
+呼び出したプロセスの実効ユーザー ID が、メッセージキューの所有者 (\fImsg_perm.uid\fP) または作成者
+(\fImsg_perm.cuid\fP) ã\81¨ä¸\80è\87´ã\81\99ã\82\8bã\81\8bã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8cç\89¹æ¨©ã\82\92æ\8c\81ã\81\9fã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 \fImsg_qbytes\fP ã\82\92ã\82·ã\82¹ã\83\86ã\83 ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼の
\fBMSGMNB\fP を超えて設定するには、適切な特権 (Linux では \fBCAP_SYS_RESOURCE\fP ケーパビリティ
(capability)) が必要である。
.TP
\fBIPC_RMID\fP
メッセージキューをただちに削除する。 同時にその構造体の読み書きの待ち状態にあったプロセスに通知する (エラーが返り、 \fIerrno\fP が
-\fBEIDRM\fP に設定される)。 呼び出したプロセスが適切な特権を持っているか、 呼び出したプロセスの実効ユーザ ID がメッセージキューの作成者か
-所有者の実効ユーザ ID でなければならない。この場合、 \fBmsgctl\fP() の第 3 引き数は無視される。
+\fBEIDRM\fP に設定される)。 呼び出したプロセスが適切な特権を持っているか、 呼び出したプロセスの実効ユーザー ID がメッセージキューの作成者か
+所有者の実効ユーザー ID でなければならない。この場合、 \fBmsgctl\fP() の第 3 引き数は無視される。
.TP
\fBIPC_INFO\fP (Linux 固有)
-システム全体でのメッセージキューの制限とパラメータに関する情報を、 \fIbuf\fP が指す構造体に入れて返す。 この構造体は \fImsginfo\fP
+ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81§ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\81®å\88¶é\99\90ã\81¨ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92ã\80\81 \fIbuf\fP ã\81\8cæ\8c\87ã\81\99æ§\8bé\80 ä½\93ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¯ \fImsginfo\fP
型である (そのためキャストが必要である)。 \fImsginfo\fP は \fB_GNU_SOURCE\fP 機能検査マクロが定義された場合に
\fI<sys/msg.h>\fP で以下のように定義される:
.nf
.in +4n
struct msginfo {
- int msgpool; /* ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\83\87ã\83¼ã\82¿ã\81®ä¿\9dæ\8c\81ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8b
- ã\83\90ã\83\83ã\83\95ã\82¡ã\83»プールの大きさ (1024 バイト単位);
+ int msgpool; /* メッセージデータの保持に使用される
+ ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼プールの大きさ (1024 バイト単位);
カーネル内では未使用 */
- int msgmap; /* ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\83\9eã\83\83ã\83\97ã\81®æ\9c\80大ã\82¨ã\83³ã\83\88ã\83ª数;
+ int msgmap; /* ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83\9eã\83\83ã\83\97ã\81®æ\9c\80大ã\82¨ã\83³ã\83\88ã\83ªã\83¼数;
カーネル内では未使用 */
int msgmax; /* 一つのメッセージに書き込み可能な
最大バイト数 */
(msgget(2) での) キュー作成中の msg_qbytes
の初期化に使用される */
int msgmni; /* メッセージキューの数の最大値 */
- int msgssz; /* ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®ã\82µã\82¤ã\82º;
+ int msgssz; /* メッセージセグメントのサイズ;
カーネル内では未使用 */
int msgtql; /* システム上の全キューの最大メッセージ数;
カーネル内では未使用 */
.TP
\fBMSG_INFO\fP (Linux 固有)
\fBIPC_INFO\fP のときと同じ情報を格納した \fImsginfo\fP 構造体を返す。 但し、以下のフィールドにはメッセージキューが
-æ¶\88è²»ã\81\97ã\81¦ã\81\84ã\82\8bã\82·ã\82¹ã\83\86ã\83 è³\87æº\90ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\82\8bç\82¹ã\81\8cç\95°ã\81ªã\82\8bã\80\82 \fImsgpool\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ç\8f¾å\9c¨ã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81«å\98å\9c¨ã\81\99ã\82\8bã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82ã\83¥ã\83¼ã\81®æ\95°ã\82\92è¿\94ã\81\99ã\80\82
+消費しているシステム資源に関する情報が格納される点が異なる。 \fImsgpool\fP フィールドは現在システム上に存在するメッセージキューの数を返す。
\fImsgmap\fP フィールドはシステム上の全てのキューに入っているメッセージ総数を返す。 \fImsgtql\fP
フィールドはシステム上の全てのキューに入っている全メッセージの 総バイト数を返す。
.TP
引き数は、キュー識別子ではなく、システム上の全てのメッセージキュー に関する情報を管理するカーネルの内部配列へのインデックスである。
.SH 返り値
成功すると、 \fBIPC_STAT\fP, \fBIPC_SET\fP, \fBIPC_RMID\fP は 0 を返す。 \fBIPC_INFO\fP と
-\fBMSG_INFO\fP 操作は、成功すると、全てのメッセージキューに関する情報を 管理しているカーネルの内部配列の使用中エントリのインデックスの
+\fBMSG_INFO\fP æ\93\8dä½\9cã\81¯ã\80\81æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81å\85¨ã\81¦ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92 管ç\90\86ã\81\97ã\81¦ã\81\84ã\82\8bã\82«ã\83¼ã\83\8dã\83«ã\81®å\86\85é\83¨é\85\8då\88\97ã\81®ä½¿ç\94¨ä¸ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81®
うち最大値を返す (この情報は、システムの全てのメッセージキューに関する情報を 取得するために、 \fBMSG_STAT\fP
操作を繰り返し実行する際に使用できる)。 \fBMSG_STAT\fP 操作は、成功すると、 \fImsqid\fP
で指定されたインデックスを持つメッセージキューの識別子を返す。
に対する読み込み許可を持っておらず、かつ \fBCAP_IPC_OWNER\fP ケーパビリティを持っていない。
.TP
\fBEFAULT\fP
-引き数 \fIcmd\fP が \fBIPC_SET\fP か \fBIPC_STAT\fP で、ポインタ \fIbuf\fP で指されているアドレスがアクセス可能でない。
+引き数 \fIcmd\fP が \fBIPC_SET\fP か \fBIPC_STAT\fP で、ポインター \fIbuf\fP で指されているアドレスがアクセス可能でない。
.TP
\fBEIDRM\fP
メッセージキューが削除された。
で指定されたインデックス値が現在未使用の配列のスロットを参照いていた。
.TP
\fBEPERM\fP
-引き数 \fIcmd\fP が \fBIPC_SET\fP か \fBIPC_RMID\fP であるが、呼び出したプロセスの実効ユーザ ID がメッセージキューの
+引き数 \fIcmd\fP が \fBIPC_SET\fP か \fBIPC_RMID\fP であるが、呼び出したプロセスの実効ユーザー ID がメッセージキューの
(\fImsg_perm.cuid\fP として見つかる) 作成者 と (\fImsg_perm.uid\fP として見つかる) 所有者のいずれでもなく、
かつ呼び出し者に特権がない (Linux では \fBCAP_SYS_ADMIN\fP ケーパビリティがない)。
.TP
.\" Like Linux, the FreeBSD man pages still document
.\" the inclusion of these header files.
Linux や POSIX の全てのバージョンでは、 \fI<sys/types.h>\fP と \fI<sys/ipc.h>\fP
-のインクルードは必要ない。しかしながら、いくつかの古い実装ではこれらのヘッダファイルのインクルードが必要であり、 SVID
+ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81¯å¿\85è¦\81ã\81ªã\81\84ã\80\82ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å\8f¤ã\81\84å®\9fè£\85ã\81§ã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\82\8aã\80\81 SVID
でもこれらのインクルードをするように記載されている。このような古いシステムへの移植性を意図したアプリケーションではこれらのファイルをインクルードする必要があるかもしれない。
\fBIPC_INFO\fP, \fBMSG_STAT\fP, \fBMSG_INFO\fP 操作は、 \fBipcs\fP(1)
プログラムで割り当て済の資源に関する情報を提供するために 使用されている。将来、これらの操作は変更されたり、 \fI/proc\fP
-ファイルシステムのインタフェースに移動されるかもしれない。
+ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«ç§»å\8b\95ã\81\95ã\82\8cã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
\fIstruct msqid_ds\fP 内の多くのフィールドは、 Linux 2.2 では \fIshort\fP だったが、Linux 2.4 では
\fIlong\fP になった。 この利点を生かすには、glibc\-2.1.91 以降の環境下で 再コンパイルすれば十分である。
に対応するメッセージキューが既に存在すると、 \fBmsgget\fP() は失敗し、 \fIerrno\fP に \fBEEXIST\fP が設定される。 (これは
\fBopen\fP(2) に \fBO_CREAT | O_EXCL\fP を指定した場合の動作と同じである)
.PP
-ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\81®ä½\9cæ\88\90æ\99\82ã\81«ã\80\81 \fImsgflg\fP å¼\95ã\81\8dæ\95°ã\81®ä¸\8bä½\8d 9 ã\83\93ã\83\83ã\83\88ã\81¯ã\80\81 ã\81\9dã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82ã\83¥ã\83¼ã\81®ã\82¢ã\82¯ã\82»ã\82¹è¨±å\8f¯ã\81®å®\9a義ã\81¨ã\81\97ã\81¦ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82
+メッセージキューの作成時に、 \fImsgflg\fP 引き数の下位 9 ビットは、 そのメッセージキューのアクセス許可の定義として使用される。
これらの許可ビットは \fBopen\fP(2) の引き数 \fImode\fP と同じ形式で同じ意味である。 や \fBcreat\fP(2)
-ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81®ã\82¢ã\82¯ã\82»ã\82¹è¨±å\8f¯ã\83\91ã\83©ã\83¡ã\83¼ã\82¿と同じ形式で、同じ意味を持つ。 (但し、実行 (execute) 許可は使用されない。)
+ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®ã\82¢ã\82¯ã\82»ã\82¹è¨±å\8f¯ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼と同じ形式で、同じ意味を持つ。 (但し、実行 (execute) 許可は使用されない。)
.PP
-æ\96°è¦\8fã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bé\9a\9bã\80\81 \fBmsgget\fP() ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81¯ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»キューのデータ構造体 \fImsqid_ds\fP
+æ\96°è¦\8fã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bé\9a\9bã\80\81 \fBmsgget\fP() ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\83¡ã\83\83ã\82»ã\83¼ã\82¸キューのデータ構造体 \fImsqid_ds\fP
を以下のように初期化する (\fImsqid_ds\fP については \fBmsgctl\fP(2) を参照):
.IP
\fImsg_perm.cuid\fP と \fImsg_perm.uid\fP に呼び出し元プロセスの実効 (effective) ユーザーID を設定する。
\fIkey\fP に対応するメッセージキューが存在せず、 \fImsgflg\fP に \fBIPC_CREAT\fP が指定されていなかった。
.TP
\fBENOMEM\fP
-メッセージキューを作成しようとしたが、新しいデータ構造体を作成 するのに十分なメモリがシステムに存在しない。
+ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\82\92ä½\9cæ\88\90ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\81\8cã\80\81æ\96°ã\81\97ã\81\84ã\83\87ã\83¼ã\82¿æ§\8bé\80 ä½\93ã\82\92ä½\9cæ\88\90 ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\82·ã\82¹ã\83\86ã\83 ã\81«å\98å\9c¨ã\81\97ã\81ªã\81\84ã\80\82
.TP
\fBENOSPC\fP
-ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\82\92ä½\9cæ\88\90ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\81\8cã\80\81ä½\9cæ\88\90ã\81\99ã\82\8bã\81¨ ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82ã\83¥ã\83¼æ\95°ã\81®æ\9c\80大å\80¤ (\fBMSGMNI\fP) ã\82\92è¶\85ã\81\88ã\81¦ã\81\97ã\81¾ã\81\86ã\80\82
+メッセージキューを作成しようとしたが、作成すると システム全体のメッセージキュー数の最大値 (\fBMSGMNI\fP) を超えてしまう。
.SH 準拠
SVr4, POSIX.1\-2001.
.SH 注意
.\" Like Linux, the FreeBSD man pages still document
.\" the inclusion of these header files.
Linux や POSIX の全てのバージョンでは、 \fI<sys/types.h>\fP と \fI<sys/ipc.h>\fP
-のインクルードは必要ない。しかしながら、いくつかの古い実装ではこれらのヘッダファイルのインクルードが必要であり、 SVID
+ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81¯å¿\85è¦\81ã\81ªã\81\84ã\80\82ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å\8f¤ã\81\84å®\9fè£\85ã\81§ã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\82\8aã\80\81 SVID
でもこれらのインクルードをするように記載されている。このような古いシステムへの移植性を意図したアプリケーションではこれらのファイルをインクルードする必要があるかもしれない。
\fBIPC_PRIVATE\fP はフラグではなく、 \fIkey_t\fP 型である。 この特別な値が \fIkey\fP として使用された場合、
メッセージの受信に使用される。呼び出し元プロセスは、 メッセージを送信するためにはメッセージキューに対する書き込み許可を、
メッセージを受信するためには読み出し許可を持っていなければならない。
.PP
-呼び出し元プロセスは以下に示す構造体を用意し、この構造体への ポインタを \fImsgp\fP 引き数として渡す。
+å\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83ã\82»ã\82¹ã\81¯ä»¥ä¸\8bã\81«ç¤ºã\81\99æ§\8bé\80 ä½\93ã\82\92ç\94¨æ\84\8fã\81\97ã\80\81ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¸ã\81® ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92 \fImsgp\fP å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦æ¸¡ã\81\99ã\80\82
.in +4n
.nf
.IP *
そのキューにもう一つメッセージを追加すると、 そのキューが全メッセージ数がキューの最大サイズ (\fImsg_qbytes\fP フィールド)
を超過してしまう場合。 このチェックは、無限個の長さ 0 のメッセージをそのキューに追加するのを防ぐために必要である。 長さ 0
-のメッセージはデータを含まないが、 (ロックされた) カーネルメモリを消費するからである。
+ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81¯ã\83\87ã\83¼ã\82¿ã\82\92å\90«ã\81¾ã\81ªã\81\84ã\81\8cã\80\81 (ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81\9f) ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\82\92æ¶\88è²»ã\81\99ã\82\8bã\81\8bã\82\89ã\81§ã\81\82ã\82\8bã\80\82
.PP
そのキューに十分な領域がない場合、 デフォルトの動作では、 必要な領域ができるまで \fBmsgsnd\fP() は停止 (block) する。
\fImsgflg\fP に \fBIPC_NOWAIT\fP が指定された場合、 \fBmsgsnd\fP() はエラー \fBEAGAIN\fP で失敗する。
キューが削除された。 この場合、 \fIerrno\fP は \fBEIDRM\fP に設定される。
.IP *
シグナルが捕捉された。 この場合、 \fIerrno\fP は \fBEINTR\fP に設定される。 \fBsignal\fP(7) 参照。 (\fBmsgsnd\fP()
-ã\81¯ã\80\81ã\81\9fã\81¨ã\81\88ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81®è¨å®\9aæ\99\82ã\81« \fBSA_RESTART\fP ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\81\84ã\81\9fã\81¨ã\81\97ã\81¦ã\82\82ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©によって割り込まれた後で
+ã\81¯ã\80\81ã\81\9fã\81¨ã\81\88ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®è¨å®\9aæ\99\82ã\81« \fBSA_RESTART\fP ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\81\84ã\81\9fã\81¨ã\81\97ã\81¦ã\82\82ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼によって割り込まれた後で
自動的に再スタートすることは決してない。)
.PP
正常に終了した場合、メッセージキューのデータ構造体は以下のように 更新される:
\fImsg_stime\fP には現在時刻が設定される。
.SS msgrcv()
\fBmsgrcv\fP() システムコールは \fImsqid\fP で指定されたキューからメッセージを削除し、 \fImsgp\fP
-で指定されたバッファにそのメッセージを格納する。
+ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81\9dã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92æ ¼ç´\8dã\81\99ã\82\8bã\80\82
.PP
\fImsgsz\fP 引き数には \fImsgp\fP 引き数で指定された構造体の \fImtext\fP メンバーの最大のバイト数を指定する。
メッセージのテキストの長さが \fImsgsz\fP より大きい場合の動作は、 \fImsgflg\fP に \fBMSG_NOERROR\fP
メッセージキューがシステムから削除された。 この場合、システムコールは失敗し、 \fIerrno\fP に \fBEIDRM\fP が設定される。
.IP *
呼び出し元プロセスがシグナルを捕獲した。 この場合、システムコールは失敗し、 \fIerrno\fP に \fBEINTR\fP が設定される。
-(\fBmsgrcv\fP() は、たとえシグナルハンドラの設定時に \fBSA_RESTART\fP
-を指定していたとしても、シグナルハンドラによって割り込まれた後で 自動的に再スタートすることは決してない。)
+(\fBmsgrcv\fP() ã\81¯ã\80\81ã\81\9fã\81¨ã\81\88ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®è¨å®\9aæ\99\82ã\81« \fBSA_RESTART\fP
+ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\81\84ã\81\9fã\81¨ã\81\97ã\81¦ã\82\82ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\81£ã\81¦å\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9få¾\8cã\81§ è\87ªå\8b\95ç\9a\84ã\81«å\86\8dã\82¹ã\82¿ã\83¼ã\83\88ã\81\99ã\82\8bã\81\93ã\81¨ã\81¯æ±ºã\81\97ã\81¦ã\81ªã\81\84ã\80\82)
.PP
正常に終了した場合、メッセージキューのデータ構造体は以下のように 更新される:
.IP
\fBMSGMAX\fP よりも大きい値) である。
.TP
\fBENOMEM\fP
-\fImsgp\fP が指すメッセージのコピーを作成するのに十分なメモリがシステムに存在しない。
+\fImsgp\fP ã\81\8cæ\8c\87ã\81\99ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81®ã\82³ã\83\94ã\83¼ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\82·ã\82¹ã\83\86ã\83 ã\81«å\98å\9c¨ã\81\97ã\81ªã\81\84ã\80\82
.PP
\fBmsgrcv\fP() が失敗した場合には \fIerrno\fP に以下の値のいずれかが設定される:
.TP
.\" Like Linux, the FreeBSD man pages still document
.\" the inclusion of these header files.
Linux や POSIX の全てのバージョンでは、 \fI<sys/types.h>\fP と \fI<sys/ipc.h>\fP
-のインクルードは必要ない。しかしながら、いくつかの古い実装ではこれらのヘッダファイルのインクルードが必要であり、 SVID
+ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81¯å¿\85è¦\81ã\81ªã\81\84ã\80\82ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å\8f¤ã\81\84å®\9fè£\85ã\81§ã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\82\8aã\80\81 SVID
でもこれらのインクルードをするように記載されている。このような古いシステムへの移植性を意図したアプリケーションではこれらのファイルをインクルードする必要があるかもしれない。
\fImsgp\fP 引き数は、 glibc 2.0 と 2.1 では \fIstruct msgbuf\ *\fP と宣言されている。glibc 2.2
\fBCAP_SYS_RESOURCE\fP を持ったプロセス) は \fBmsgctl\fP(2) システムコールでメッセージキューのサイズを
\fBMSGMNB\fP よりも大きい値に増やすことができる。
.PP
-ç\8f¾å\9c¨ã\81®å®\9fè£\85ã\81§ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\83\98ã\83\83ã\83\80ã\83¼ã\81®ä¸\8aé\99\90æ\95° (\fBMSGTQL\fP) ã\81¨ã\80\81ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»プールの最大バイト数
+ç\8f¾å\9c¨ã\81®å®\9fè£\85ã\81§ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83\98ã\83\83ã\83\80ã\83¼ã\81®ä¸\8aé\99\90æ\95° (\fBMSGTQL\fP) ã\81¨ã\80\81ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸プールの最大バイト数
(\fBMSGPOOL\fP) に関して実装依存の制限はない。
.SH バグ
.\" http://marc.info/?l=linux-kernel&m=139048542803605&w=2
.\"
.TH MSYNC 2 2014\-04\-20 Linux "Linux Programmer's Manual"
.SH 名前
-msync \- ファイルをマップしたメモリと同期させる
+msync \- ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\83\9eã\83\83ã\83\97ã\81\97ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81¨å\90\8cæ\9c\9fã\81\95ã\81\9bã\82\8b
.SH 書式
\fB#include <sys/mman.h>\fP
.sp
\fBint msync(void *\fP\fIaddr\fP\fB, size_t \fP\fIlength\fP\fB, int \fP\fIflags\fP\fB);\fP
.SH 説明
-\fBmsync\fP() は \fBmmap\fP(2) を使ってメモリにマップされたファイルの、
-メモリ上のコピーになされた変更をファイルシステムに反映させる。 この関数を使用しないと、 \fBmunmap\fP(2)
+\fBmsync\fP() ã\81¯ \fBmmap\fP(2) ã\82\92使ã\81£ã\81¦ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\80\81
+メモリー上のコピーになされた変更をファイルシステムに反映させる。 この関数を使用しないと、 \fBmunmap\fP(2)
が呼び出されるまで変更が書き戻される保証はない。 より正確には、ファイルのうち \fIaddr\fP から始まり長さ \fIlength\fP
-のメモリ領域に対応する部分が更新される。
+のメモリー領域に対応する部分が更新される。
\fIflags\fP 引数にはビット \fBMS_ASYNC\fP, \fBMS_SYNC\fP, \fBMS_INVALIDATE\fP を設定することができるが、
\fBMS_ASYNC\fP と \fBMS_SYNC\fP を同時に指定することはできない。 \fBMS_ASYNC\fP
\fBMS_SYNC\fP と \fBMS_ASYNC\fP の両方が設定された。
.TP
\fBENOMEM\fP
-指定されたメモリ (またはその一部) がマップされていない。
+指定されたメモリー (またはその一部) がマップされていない。
.SH 準拠
POSIX.1\-2001.
\fBnanosleep\fP(): _POSIX_C_SOURCE\ >=\ 199309L
.SH 説明
\fBnanosleep\fP() は、少なくとも \fI*req\fP で指定された時間の間、プログラムの実行を遅延させる。 \fBnanosleep\fP()
-は、呼び出したスレッドの実行を、 少なくとも \fI*req\fP で指定された時間の間、もしくは呼び出したスレッドでハンドラの起動の
+ã\81¯ã\80\81å\91¼ã\81³å\87ºã\81\97ã\81\9fã\82¹ã\83¬ã\83\83ã\83\89ã\81®å®\9fè¡\8cã\82\92ã\80\81 å°\91ã\81ªã\81\8fã\81¨ã\82\82 \fI*req\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fæ\99\82é\96\93ã\81®é\96\93ã\80\81ã\82\82ã\81\97ã\81\8fã\81¯å\91¼ã\81³å\87ºã\81\97ã\81\9fã\82¹ã\83¬ã\83\83ã\83\89ã\81§ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®èµ·å\8b\95ã\81®
きっかけとなるシグナル、またはプロセスを終了させるシグナルの配送が 行われるまで一時停止する。
-呼び出しがシグナルハンドラにより割り込まれた場合、 \fBnanosleep\fP は \-1 を返し、 \fIerrno\fP に \fBEINTR\fP を設定し、
+å\91¼ã\81³å\87ºã\81\97ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9få ´å\90\88ã\80\81 \fBnanosleep\fP ã\81¯ \-1 ã\82\92è¿\94ã\81\97ã\80\81 \fIerrno\fP ã\81« \fBEINTR\fP ã\82\92è¨å®\9aã\81\97ã\80\81
\fIrem\fP が NULL でなければ 残りの時間を \fIrem\fP が指す構造体に格納する。 \fI*rem\fP の値を使うと、
\fBnanosleep\fP() をもう一度呼び出して、指定した時間の停止を 完了させることができる (但し、「注意」の節を参照のこと)。
\fBsleep\fP(3) や \fBusleep\fP(3) に比べると \fBnanosleep\fP() には以下のような利点がある:
停止期間の指定に関して高い時間分解能が提供されている。 シグナルと互いに影響を及ぼすことがないと POSIX.1 で明示的に規定されている。
-シグナルハンドラによって割り込まれた際に、停止を再開するのが より簡単にできる。
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\81£ã\81¦å\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9fé\9a\9bã\81«ã\80\81å\81\9cæ¢ã\82\92å\86\8dé\96\8bã\81\99ã\82\8bã\81®ã\81\8c ã\82\88ã\82\8aç°¡å\8d\98ã\81«ã\81§ã\81\8dã\82\8bã\80\82
.SH 返り値
-要求された期間の停止に成功した場合、 \fBnanosleep\fP() は 0 を返す。呼び出しがシグナルハンドラにより割り込まれたり、
+è¦\81æ±\82ã\81\95ã\82\8cã\81\9fæ\9c\9fé\96\93ã\81®å\81\9cæ¢ã\81«æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 \fBnanosleep\fP() ã\81¯ 0 ã\82\92è¿\94ã\81\99ã\80\82å\91¼ã\81³å\87ºã\81\97ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9fã\82\8aã\80\81
エラーが発生した場合は、\-1 を返し、 \fIerrno\fP にエラー内容を示す値を設定する。
.SH エラー
.TP
\fBEFAULT\fP
-ユーザ空間からの情報のコピーで問題があった。
+ユーザー空間からの情報のコピーで問題があった。
.TP
\fBEINTR\fP
そのスレッドに配送されたシグナルにより停止が中断された。 スレッドが簡単に \fBnanosleep\fP()
.RE
.SS 以前の動作
(例えば、時間が重要な意味を持つハードウェアを制御する場合など) より正確な停止を必要とするアプリケーションに対応するために、
-\fBnanosleep\fP() ã\81¯ã\80\81ã\83\9eã\82¤ã\82¯ã\83ç§\92精度ã\81®ã\83\93ã\82¸ã\83¼ã\83»ã\82¦ã\82§ã\82¤ã\83\88ã\82\92å\88©ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81 2\ ms 以ä¸\8bã\81®å\81\9cæ¢ã\82\92è¡\8cã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81\9fã\80\82
+\fBnanosleep\fP() は、マイクロ秒精度のビジーウェイトを利用することで、 2\ ms 以下の停止を行うことができた。
但し、この機能を利用するには、呼び出し元のスレッドが \fBSCHED_FIFO\fP や \fBSCHED_RR\fP
-ã\81¨ã\81\84ã\81£ã\81\9fã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\83»ã\83\9dã\83ªã\82·ã\83¼ã\81®å\85\83ã\81§ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b å¿\85è¦\81ã\81\8cã\81\82ã\81£ã\81\9fã\80\82 ã\81\93ã\81®ç\89¹å\88¥ã\81ªæ\8b¡å¼µã\81¯ã\82«ã\83¼ã\83\8dã\83« 2.5.39 ã\81§å\89\8aé\99¤ã\81\95ã\82\8cã\81\9fã\80\82ã\81\97ã\81\9fã\81\8cã\81£ã\81¦ã\80\81
-現在の 2.4 系列のカーネルにはこの機能が存在するが、 2.6系列のカーネルにはない。
+ã\81¨ã\81\84ã\81£ã\81\9fã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\83\9dã\83ªã\82·ã\83¼ã\81®å\85\83ã\81§ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b å¿\85è¦\81ã\81\8cã\81\82ã\81£ã\81\9fã\80\82 ã\81\93ã\81®ç\89¹å\88¥ã\81ªæ\8b¡å¼µã\81¯ã\82«ã\83¼ã\83\8dã\83« 2.5.39 ã\81§å\89\8aé\99¤ã\81\95ã\82\8cã\81\9fã\80\82ã\81\97ã\81\9fã\81\8cã\81£ã\81¦ã\80\81 ç\8f¾å\9c¨ã\81®
+2.4 系列のカーネルにはこの機能が存在するが、 2.6系列のカーネルにはない。
.SH バグ
Linux 2.4 では、 \fBnanosleep\fP() が (\fBSIGTSTP\fP などの) シグナルにより停止された場合、
\fBnanosleep\fP() の呼び出しは \fBSIGCONT\fP シグナルによるスレッドの再開後に \fBEINTR\fP エラーで失敗する。
.ad
.PD
.SH 説明
-ファイルの \fIpathname\fP を与えると、 \fBopen\fP() はファイルディスクリプタを返す。
-ファイルディスクリプタは、この後に続くシステムコール (\fBread\fP(2), \fBwrite\fP(2), \fBlseek\fP(2),
-\fBfcntl\fP(2) など) で使用される小さな非負の整数である。 このシステムコールが成功した場合に返されるファイルディスクリプタは
-そのプロセスがその時点でオープンしていないファイルディスクリプタの うち最小の数字のものとなる。
+ã\83\95ã\82¡ã\82¤ã\83«ã\81® \fIpathname\fP ã\82\92ä¸\8eã\81\88ã\82\8bã\81¨ã\80\81 \fBopen\fP() ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81ã\81\93ã\81®å¾\8cã\81«ç¶\9aã\81\8fã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83« (\fBread\fP(2), \fBwrite\fP(2), \fBlseek\fP(2),
+\fBfcntl\fP(2) ã\81ªã\81©) ã\81§ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bå°\8fã\81\95ã\81ªé\9d\9eè² ã\81®æ\95´æ\95°ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8cæ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\81«è¿\94ã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯
+ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\81\9dã\81®æ\99\82ç\82¹ã\81§ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81® ã\81\86ã\81¡æ\9c\80å°\8fã\81®æ\95°å\97ã\81®ã\82\82ã\81®ã\81¨ã\81ªã\82\8bã\80\82
.PP
-デフォルトでは、新しいファイルディスクリプタは \fBexecve\fP(2) を実行した後も
+ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\80\81æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ \fBexecve\fP(2) ã\82\92å®\9fè¡\8cã\81\97ã\81\9få¾\8cã\82\82
オープンされたままとなる (つまり、 \fBfcntl\fP(2) に説明がある \fBFD_CLOEXEC\fP
-ファイルディスクリプタフラグは最初は無効である); 後述の \fBO_CLOEXEC\fP フラグ
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\83\95ã\83©ã\82°ã\81¯æ\9c\80å\88\9dã\81¯ç\84¡å\8a¹ã\81§ã\81\82ã\82\8b); å¾\8cè¿°ã\81® \fBO_CLOEXEC\fP ã\83\95ã\83©ã\82°
を使うとこのデフォルトを変更することができる。 ファイルオフセット
(file offset) はファイルの先頭に設定される (\fBlseek\fP(2) 参照)。
.PP
\fBopen\fP() を呼び出すと、「オープンファイル記述」 \fI(open file description)\fP
-が作成される。ファイル記述とは、システム全体のオープン中のファイルのテーブルのエントリである。
+ã\81\8cä½\9cæ\88\90ã\81\95ã\82\8cã\82\8bã\80\82ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿°ã\81¨ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®ã\82ªã\83¼ã\83\97ã\83³ä¸ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81§ã\81\82ã\82\8bã\80\82
このオープンファイル記述は、ファイルオフセットとファイル状態フラグ (下記参照) が保持する。
-ファイルディスクリプタはオープンファイルっ記述への参照である。 この後で \fIpathname\fP
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«ã\81£è¨\98è¿°ã\81¸ã\81®å\8f\82ç\85§ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®å¾\8cã\81§ \fIpathname\fP
が削除されたり、他のファイルを参照するように変更されたりしても、 この参照は影響を受けない。 オープンファイル記述の詳細な説明は「注意」の節を参照。
.PP
引き数 \fIflags\fP には、アクセスモード \fBO_RDONLY\fP, \fBO_WRONLY\fP, \fBO_RDWR\fP
.\" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=453946
.\" http://nfs.sourceforge.net/
ファイルを追加 (append) モードでオープンする。 毎回の \fBwrite\fP(2) の前に \fBlseek\fP(2)
-を行ったかのように、ファイルポインタをファイルの最後に移動する。 NFS ファイルシステムで、 \fBO_APPEND\fP
+ã\82\92è¡\8cã\81£ã\81\9fã\81\8bã\81®ã\82\88ã\81\86ã\81«ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ\9c\80å¾\8cã\81«ç§»å\8b\95ã\81\99ã\82\8bã\80\82 NFS ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\80\81 \fBO_APPEND\fP
を使用すると、複数のプロセスがひとつのファイルに同時にデータを追加した場合、 ファイルが壊れてしまうことがある。 これは NFS
が追加モードをサポートしていないため、 クライアントのカーネル (kernel) がそれをシミュレートしなければならないのだが、
競合状態を避けることはできないからである。
.TP
\fBO_ASYNC\fP
-シグナル駆動 I/O (signal\-driven I/O) を有効にする: このファイルディスクリプタへの
+ã\82·ã\82°ã\83\8aã\83«é§\86å\8b\95 I/O (signal\-driven I/O) ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8b: ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¸ã\81®
入力または出力が可能になった場合に、シグナルを生成する (デフォルトは \fBSIGIO\fP であるが、 \fBfcntl\fP(2)
によって変更可能である)。 この機能が使用可能なのは端末、疑似端末、ソケットのみであり、 (Linux 2.6 以降では) パイプと FIFO
に対しても使用できる。 さらに詳しい説明は \fBfcntl\fP(2) を参照すること。 下記の「バグ」も参照。
.TP
\fBO_CLOEXEC\fP (Linux 2.6.23 以降)
.\" NOTE! several other man pages refer to this text
-新しいファイルディスクリプタに対して close\-on\-exec フラグを有効にする。 このフラグを指定することで、 プログラムは
+æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ close\-on\-exec ã\83\95ã\83©ã\82°ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81 ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯
\fBFD_CLOEXEC\fP フラグをセットするために \fBfcntl\fP(2) \fBF_SETFD\fP 操作を別途呼び出す必要がなくなる。
.\" This flag fixes only one form of the race condition;
.\" The race can also occur with, for example, descriptors
.\" returned by accept(), pipe(), etc.
ある種のマルチスレッドのプログラムはこのフラグの使用は不可欠である点に注意すること。 なぜなら、個別に \fBFD_CLOEXEC\fP フラグを設定する
-\fBfcntl\fP(2) \fBF_SETFD\fP 操作を呼び出したとしても、あるスレッドがファイルディスクリプタを オープンするのと同時に別のスレッドが
+\fBfcntl\fP(2) \fBF_SETFD\fP æ\93\8dä½\9cã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9fã\81¨ã\81\97ã\81¦ã\82\82ã\80\81ã\81\82ã\82\8bã\82¹ã\83¬ã\83\83ã\83\89ã\81\8cã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92 ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8bã\81®ã\81¨å\90\8cæ\99\82ã\81«å\88¥ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81\8c
\fBfork\fP(2) と \fBexecve\fP(2) を実行するという競合条件を避けるのには十分ではないからである。
-実行の順序に依存して、この競合条件の結果、 \fBopen\fP() が返したファイルディスクリプタが \fBfork\fP(2)
+å®\9fè¡\8cã\81®é \86åº\8fã\81«ä¾\9då\98ã\81\97ã\81¦ã\80\81ã\81\93ã\81®ç«¶å\90\88æ\9d¡ä»¶ã\81®çµ\90æ\9e\9cã\80\81 \fBopen\fP() ã\81\8cè¿\94ã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c \fBfork\fP(2)
で作成された子プロセスにより実行されるプログラムに意図せず見えてしまう可能性がある。 (この種の競合は、 本質的に、 close\-on\-exec
-フラグをセットすべきファイルディスクリプタを作成するどのシステムコールでも起こり得るものであり、 他のいろいろな Linux
+ã\83\95ã\83©ã\82°ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\81¹ã\81\8dã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81©ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81§ã\82\82èµ·ã\81\93ã\82\8aå¾\97ã\82\8bã\82\82ã\81®ã\81§ã\81\82ã\82\8aã\80\81 ä»\96ã\81®ã\81\84ã\82\8dã\81\84ã\82\8dã\81ª Linux
システムコールでこの問題に対処するために \fBO_CLOEXEC\fP と同等の機能が提供されている。)
.TP
\fBO_CREAT\fP
も指定されていない場合、 \fImode\fP は無視される。 有効なアクセス許可は、普段と同じようにプロセスの \fIumask\fP
によって修正され、作成されたファイルの許可は \fI(mode\ &\ ~umask)\fP となる。
このモードは、新しく作成されたファイルに対するそれ以降のアクセス にのみ適用される点に注意すること。 読み取り専用のファイルを作成する
-\fBopen\fP() コールであっても、 読み書き可能なファイルディスクリプタを返すことがありうる。
+\fBopen\fP() ã\82³ã\83¼ã\83«ã\81§ã\81\82ã\81£ã\81¦ã\82\82ã\80\81 èªã\81¿æ\9b¸ã\81\8då\8f¯è\83½ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\81\93ã\81¨ã\81\8cã\81\82ã\82\8aã\81\86ã\82\8bã\80\82
.PP
\fImode\fP のために以下のシンボル定数が提供されている :
.TP 9
.TP
\fBO_DIRECT\fP (Linux 2.4.10 以降)
このファイルに対する I/O のキャッシュの効果を最小化しようとする。このフラグを使うと、一般的に性能が低下する。
-しかしアプリケーションが独自にキャッシングを行っているような 特別な場合には役に立つ。 ファイルの I/O はユーザー空間バッファに対して直接行われる。
-\fBO_DIRECT\fP フラグ自身はデータを同期で転送しようとはするが、 \fBO_SYNC\fP
+しかしアプリケーションが独自にキャッシングを行っているような 特別な場合には役に立つ。 ファイルの I/O
+はユーザー空間バッファーに対して直接行われる。 \fBO_DIRECT\fP フラグ自身はデータを同期で転送しようとはするが、 \fBO_SYNC\fP
フラグのようにデータと必要なメタデータの転送が保証されるわけではない。同期 I/O を保証するためには、 \fBO_DIRECT\fP に加えて
\fBO_SYNC\fP を使用しなければならない。下記の「注意」の節の議論も参照。
.sp
-ブロックデバイスに対する似通った意味のインターフェースが \fBraw\fP(8) で説明されている (但し、このインタフェースは非推奨である)。
+ã\83\96ã\83ã\83\83ã\82¯ã\83\87ã\83\90ã\82¤ã\82¹ã\81«å¯¾ã\81\99ã\82\8bä¼¼é\80\9aã\81£ã\81\9fæ\84\8få\91³ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81\8c \fBraw\fP(8) ã\81§èª¬æ\98\8eã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b (ä½\86ã\81\97ã\80\81ã\81\93ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯é\9d\9eæ\8e¨å¥¨ã\81§ã\81\82ã\82\8b)ã\80\82
.TP
\fBO_DIRECTORY\fP
.\" But see the following and its replies:
.TP
\fBO_LARGEFILE\fP
(LFS) \fIoff_t\fP ではサイズを表せない (だだし \fIoff64_t\fP ではサイズを表せる)ファ
-イルをオープン可能にする。この定義を有効にするためには、(\fIどの\fPヘッダファイ
+ã\82¤ã\83«ã\82\92ã\82ªã\83¼ã\83\97ã\83³å\8f¯è\83½ã\81«ã\81\99ã\82\8bã\80\82ã\81\93ã\81®å®\9a義ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\81¯ã\80\81(\fIã\81©ã\81®\fPã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤
ルをインクルードするよりも前に) \fB_LARGEFILE64_SOURCE\fP マクロを定義しなければ
ならない。
32 ビットシステムにおいて大きなファイルにアクセスしたい場合、
.TP
\fBO_NONBLOCK\fP または \fBO_NDELAY\fP
可能ならば、ファイルは非停止 (nonblocking) モードでオープンされる。
-\fBopen\fP() も、返したファイルディスクリプタに対する以後のすべての操作も呼び出
+\fBopen\fP() ã\82\82ã\80\81è¿\94ã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\99ã\82\8b以å¾\8cã\81®ã\81\99ã\81¹ã\81¦ã\81®æ\93\8dä½\9cã\82\82å\91¼ã\81³å\87º
したプロセスを待たせることはない。 FIFO (名前付きパイプ) を扱う場合には
\fBfifo\fP(7) も参照すること。 強制ファイルロック (mandatory file lock) やファイ
ルリース (file lease) と組み合わせた場合の、 \fBO_NONBLOCK\fP の効果についての
.\" Subject: Re: [PATCH] open(2): document O_PATH
.\" Newsgroups: gmane.linux.man, gmane.linux.kernel
.\"
-このフラグを指定して取得したファイルディスクリプタは、 ファイルシステムツリー内での場所を示すため、
-純粋にファイルディスクリプタレベルでの作用する操作を実行するため、 の二つの目的で使用することができる。 ファイル自身はオープンされず、
+ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\97ã\81¦å\8f\96å¾\97ã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\83\84ã\83ªã\83¼å\86\85ã\81§ã\81®å ´æ\89\80ã\82\92示ã\81\99ã\81\9fã\82\81ã\80\81
+ç´\94ç²\8bã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\83¬ã\83\99ã\83«ã\81§ã\81®ä½\9cç\94¨ã\81\99ã\82\8bæ\93\8dä½\9cã\82\92å®\9fè¡\8cã\81\99ã\82\8bã\81\9fã\82\81ã\80\81 ã\81®äº\8cã\81¤ã\81®ç\9b®ç\9a\84ã\81§ä½¿ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«è\87ªèº«ã\81¯ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9aã\80\81
他のファイル操作 (例えば \fBread\fP(2), \fBwrite\fP(2), \fBfchmod\fP(2), \fBfchown\fP(2),
\fBfgetxattr\fP(2), \fBmmap\fP(2)) はエラー \fBEBADF\fP で失敗する。
-取得したファイルディスクリプタに対して以下の操作を行うことが「できる」。
+å\8f\96å¾\97ã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ä»¥ä¸\8bã\81®æ\93\8dä½\9cã\82\92è¡\8cã\81\86ã\81\93ã\81¨ã\81\8cã\80\8cã\81§ã\81\8dã\82\8bã\80\8dã\80\82
.RS
.IP * 3
.\" commit 332a2e1244bd08b9e3ecd378028513396a004a24
.\" fstat(): commit 55815f70147dcfa3ead5738fd56d3574e2e3c1c2
\fBclose\fP(2); \fBfchdir\fP(2) (Linux 3.5 以降); \fBfstat\fP(2) (Linux 3.6 以降)
.IP *
-ファイルディスクリプタの複製 (\fBdup\fP(2), \fBfcntl\fP(2) \fBF_DUPFD\fP など)
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®è¤\87製 (\fBdup\fP(2), \fBfcntl\fP(2) \fBF_DUPFD\fP ã\81ªã\81©)
.IP *
-ファイルディスクリプタフラグの取得と設定 (\fBfcntl\fP(2) の \fBF_GETFD\fP と \fBF_SETFD\fP)
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\83\95ã\83©ã\82°ã\81®å\8f\96å¾\97ã\81¨è¨å®\9a (\fBfcntl\fP(2) ã\81® \fBF_GETFD\fP ã\81¨ \fBF_SETFD\fP)
.IP *
\fBfcntl\fP(2) の \fBF_GETFL\fP 操作を使ったオープンされたファイルの状態フラグの取得。 返されるフラグには \fBO_PATH\fP
ビットが含まれる。
.IP *
-\fBopenat\fP(2) や他の "*at()" 系のシステムコールの \fIdirfd\fP 引数としてそのファイルディスクリプタを渡す。 これには、
+\fBopenat\fP(2) ã\82\84ä»\96ã\81® "*at()" ç³»ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81® \fIdirfd\fP å¼\95æ\95°ã\81¨ã\81\97ã\81¦ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92渡ã\81\99ã\80\82 ã\81\93ã\82\8cã\81«ã\81¯ã\80\81
ファイルがディレクトリでない場合に \fBlinkat\fP(2) に \fBAT_EMPTY_PATH\fP が指定された場合 (や procfs 経由で
\fBAT_SYMLINK_FOLLOW\fP が使用された場合) を含む。
.IP *
-そのファイルディスクリプタを別のプロセスに UNIX ドメインソケット経由で渡す。 (\fBunix\fP(7) の \fBSCM_RIGHTS\fP を参照)
+ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\88¥ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81« UNIX ã\83\89ã\83¡ã\82¤ã\83³ã\82½ã\82±ã\83\83ã\83\88çµ\8cç\94±ã\81§æ¸¡ã\81\99ã\80\82 (\fBunix\fP(7) ã\81® \fBSCM_RIGHTS\fP ã\82\92å\8f\82ç\85§)
.RE
.IP
\fIflags\fP に \fBO_PATH\fP が指定された場合、 \fBO_CLOEXEC\fP, \fBO_DIRECTORY\fP, \fBO_NOFOLLOW\fP
以外のフラグビットは無視される。
\fIpathname\fP がシンボリックリンクで \fBO_NOFOLLOW\fP フラグも合わせて指定された場合、
-ã\81\93ã\81®å\91¼ã\81³å\87ºã\81\97ã\81§ã\81¯ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は、 空のパス名を指定した
+ã\81\93ã\81®å\91¼ã\81³å\87ºã\81\97ã\81§ã\81¯ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は、 空のパス名を指定した
\fBfchownat\fP(2), \fBfstatat\fP(2), \fBlinkat\fP(2), \fBreadlinkat\fP(2) の呼び出しで
\fIdirfd\fP 引数として使うことで、 そのシンボリックリンクに対して操作を行うことができる。
.TP
.\" commit bb458c644a59dbba3a1fe59b27106c5e68e1c4bd
名前なしの一時ファイルを作成する。 \fIpathname\fP 引き数はディレクトリを指定する。 名前なしの inode
がそのディレクトリが存在するファイルシステムに作成される。 そのファイルに名前を付与しない限り、 作成されたファイルに書き込まれた内容は、
-最後のファイルディスクリプタがクローズされる際に失われる。
+æ\9c\80å¾\8cã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\82\8bé\9a\9bã\81«å¤±ã\82\8fã\82\8cã\82\8bã\80\82
\fBO_TMPFILE\fP は必ず \fBO_RDWR\fP か \fBO_WRONLY\fP のいずれかと一緒に使わなければならない。 \fBO_EXCL\fP
も指定することができる。 \fBO_EXCL\fP が指定されなかった場合、 \fBlinkat\fP(2)
\fIpathname\fP で指定されたパス名が絶対パスの場合、 \fIdirfd\fP は無視される。
.SH 返り値
-\fBopen\fP(), \fBopenat\fP(), \fBcreat\fP() は新しいファイルディスクリプタを返す。 エラーが発生した場合は \-1 を返す
+\fBopen\fP(), \fBopenat\fP(), \fBcreat\fP() ã\81¯æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81\9få ´å\90\88ã\81¯ \-1 ã\82\92è¿\94ã\81\99
(その場合は \fIerrno\fP が適切に設定される)。
.SH エラー
\fBopen\fP(), \fBopenat\fP(), \fBcreat\fP() は以下のエラーで失敗する。
またはファイルが存在せず、親ディレクトリへの書き込み許可がなかった。 (\fBpath_resolution\fP(7) も参照すること。)
.TP
\fBEDQUOT\fP
-\fBO_CREAT\fP が指定された場合で、そのファイルが存在せず、ディスクブロックか inode がそのファイルシステムのユーザクォータに達していた。
+\fBO_CREAT\fP ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9få ´å\90\88ã\81§ã\80\81ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå\98å\9c¨ã\81\9bã\81\9aã\80\81ã\83\87ã\82£ã\82¹ã\82¯ã\83\96ã\83ã\83\83ã\82¯ã\81\8b inode ã\81\8cã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82¯ã\82©ã\83¼ã\82¿ã\81«é\81\94ã\81\97ã\81¦ã\81\84ã\81\9fã\80\82
.TP
\fBEEXIST\fP
\fIpathname\fP は既に存在し、 \fBO_CREAT\fP と \fBO_EXCL\fP が使用された。
.TP
\fBEINTR\fP
遅いデバイス (例えば FIFO、 \fBfifo\fP(7) 参照) のオープンが完了するのを待って停止している間に
-システムコールがシグナルハンドラにより割り込まれた。 \fBsignal\fP(7) 参照。
+ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9fã\80\82 \fBsignal\fP(7) å\8f\82ç\85§ã\80\82
.TP
\fBEINVAL\fP
ファイルシステムが \fBO_DIRECT\fP フラグをサポートしていない。 詳細は\fB注意\fPを参照。
\fBopenat\fP() では以下のエラーも発生する。
.TP
\fBEBADF\fP
-\fIdirfd\fP が有効なファイルディスクリプタではない。
+\fIdirfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
-\fIpathname\fP が相対パス名で、 \fIdirfd\fP がディレクトリ以外のファイルを参照しているファイルディスクリプタである。
+\fIpathname\fP ã\81\8cç\9b¸å¯¾ã\83\91ã\82¹å\90\8dã\81§ã\80\81 \fIdirfd\fP ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä»¥å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH バージョン
\fBopenat\fP() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポートはバージョン 2.4 で glibc
に追加された。
\fB_GNU_SOURCE\fP などの機能検査マクロは\fIどの\fPヘッダーファイルをインクルードするより前に定義しなければならない。
.SH 注意
Linux では、 \fBO_NONBLOCK\fP フラグは、 open を実行したいが read または write を実行する意図は
-必ずしもないことを意味する。 これは \fBioctl\fP(2) のためのファイルディスクリプタを取得するために、
+å¿\85ã\81\9aã\81\97ã\82\82ã\81ªã\81\84ã\81\93ã\81¨ã\82\92æ\84\8få\91³ã\81\99ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ \fBioctl\fP(2) ã\81®ã\81\9fã\82\81ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\80\81
デバイスをオープンするときによく用いられる。
.LP
「オープンファイルオブジェクト」、「ファイルハンドル」、「オープンファイルテーブルエントリー」、 カーネル開発者の用語では \fIstruct file\fP
などと呼ばれる。
-ファイルディスクリプタが (\fBdup\fP(2) や同様のシステムコールを使って) 複製される際に、
-è¤\87製ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯å\85\83ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿と同じオープンファイル記述を参照する。 結果として 2
-つのファイルディスクリプタはファイルオフセットとファイル状態フラグを共有する。 このような共有はプロセス間でも起こり得る。 \fBfork\fP(2)
-で作成された子プロセスは親プロセスのファイルディスクリプタの複製を継承し、これらの複製は同じオープンファイル記述を参照する。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c (\fBdup\fP(2) ã\82\84å\90\8cæ§\98ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\92使ã\81£ã\81¦) è¤\87製ã\81\95ã\82\8cã\82\8bé\9a\9bã\81«ã\80\81
+è¤\87製ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯å\85\83ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼と同じオープンファイル記述を参照する。 結果として 2
+ã\81¤ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81¨ã\83\95ã\82¡ã\82¤ã\83«ç\8a¶æ\85\8bã\83\95ã\83©ã\82°ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\82\88ã\81\86ã\81ªå\85±æ\9c\89ã\81¯ã\83\97ã\83ã\82»ã\82¹é\96\93ã\81§ã\82\82èµ·ã\81\93ã\82\8aå¾\97ã\82\8bã\80\82 \fBfork\fP(2)
+ã\81§ä½\9cæ\88\90ã\81\95ã\82\8cã\81\9få\90ã\83\97ã\83ã\82»ã\82¹ã\81¯è¦ªã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®è¤\87製ã\82\92ç¶\99æ\89¿ã\81\97ã\80\81ã\81\93ã\82\8cã\82\89ã\81®è¤\87製ã\81¯å\90\8cã\81\98ã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿°ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\80\82
.\"
.\"
Linux 2.6.33 行こう では、 正しい \fBO_SYNC\fP のサポートが提供されている。 しかしながら、
バイナリレベルの後方互換性を保証するため、 \fBO_DSYNC\fP は以前の \fBO_SYNC\fP と同じ値で定義されており、 \fBO_SYNC\fP は
\fBO_DSYNC\fP フラグの値を含む新しい (2 ビットの) フラグ値として定義されている。 これにより、
-新しいヘッダを使ってコンパイルされたアプリケーションで、 2.6.33 より前のカーネルで少なくとも \fBO_DSYNC\fP
+æ\96°ã\81\97ã\81\84ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92使ã\81£ã\81¦ã\82³ã\83³ã\83\91ã\82¤ã\83«ã\81\95ã\82\8cã\81\9fã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81§ã\80\81 2.6.33 ã\82\88ã\82\8aå\89\8dã\81®ã\82«ã\83¼ã\83\8dã\83«ã\81§å°\91ã\81ªã\81\8fã\81¨ã\82\82 \fBO_DSYNC\fP
の動作は同じになることが保証される。
.SS NFS
NFS を実現しているプロトコルには多くの不備があり、特に \fBO_SYNC\fP と \fBO_NDELAY\fP に影響する。
.\"
.\"
-UID マッピングを使用している NFS ファイルシステムでは、 \fBopen\fP() がファイルディスクリプタを返した場合でも \fBread\fP(2)
+UID ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8b NFS ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ã\80\81 \fBopen\fP() ã\81\8cã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\97ã\81\9få ´å\90\88ã\81§ã\82\82 \fBread\fP(2)
が \fBEACCES\fP で拒否される場合がある。 これはクライアントがアクセス許可のチェックを行って \fBopen\fP()
を実行するが、読み込みや書き込みの際には サーバーで UID マッピングが行われるためである。
.SS ファイルアクセスモード
.\"
.\"
Linux では、特別な、非標準なアクセスモードとして 3 (バイナリでは 11) が 予約されており \fIflags\fP に指定できる。
-このアクセスモードを指定すると、ファイルの読み出し/書き込み許可をチェックし、 読み出しにも書き込みにも使用できないディスクリプタを返す。
+ã\81\93ã\81®ã\82¢ã\82¯ã\82»ã\82¹ã\83¢ã\83¼ã\83\89ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81¨ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81®èªã\81¿å\87ºã\81\97/æ\9b¸ã\81\8dè¾¼ã\81¿è¨±å\8f¯ã\82\92ã\83\81ã\82§ã\83\83ã\82¯ã\81\97ã\80\81 èªã\81¿å\87ºã\81\97ã\81«ã\82\82æ\9b¸ã\81\8dè¾¼ã\81¿ã\81«ã\82\82使ç\94¨ã\81§ã\81\8dã\81ªã\81\84ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
この非標準のアクセスモードはいくつかの Linux ドライバで、デバイス固有の \fBioctl\fP(2)
-操作にのみ使用されるディスクリプタを返すために使われている。
-.SS "openat() や他のディレクトリファイルディスクリプタ API の基本原理"
-\fBopenat\fP() やディレクトリファイルディスクリプタを引き数を取る他のシステムコールやライブラリ関数 (\fBexecveat\fP(2),
+æ\93\8dä½\9cã\81«ã\81®ã\81¿ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\81\9fã\82\81ã\81«ä½¿ã\82\8fã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
+.SS "openat() や他のディレクトリファイルディスクリプター API の基本原理"
+\fBopenat\fP() ã\82\84ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å¼\95ã\81\8dæ\95°ã\82\92å\8f\96ã\82\8bä»\96ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\84ã\83©ã\82¤ã\83\96ã\83©ã\83ªé\96¢æ\95° (\fBexecveat\fP(2),
\fBfaccessat\fP(2), \fBfanotify_mark\fP(2), \fBfchmodat\fP(2), \fBfchownat\fP(2),
\fBfstatat\fP(2), \fBfutimesat\fP(2), \fBlinkat\fP(2), \fBmkdirat\fP(2), \fBmknodat\fP(2),
\fBname_to_handle_at\fP(2), \fBreadlinkat\fP(2), \fBrenameat\fP(2), \fBsymlinkat\fP(2),
に渡されたディレクトリプレフィックスの構成要素が \fBopen\fP() の呼び出しと並行して変化する可能性があるという点に由来している。 例えば、ファイル
\fIpath/to/xxx\fP が存在する場合にファイル \fIpath/to/xxx.dep\fP を作成したいとする。
問題は、存在確認とファイル作成の間に、 \fIpath\fP や \fIto\fP (シンボリックリンクでもよい)
-が別の場所を指すように変更されることがあるということだ。 このような競合条件は、 対象のディレクトリに対するファイルディスクリプタをオープンし、
-それから \fBfstatat\fP(2) や \fBopenat\fP() の \fIdirfd\fP 引き数としてそのファイルディスクリプタを指定することで、
+ã\81\8cå\88¥ã\81®å ´æ\89\80ã\82\92æ\8c\87ã\81\99ã\82\88ã\81\86ã\81«å¤\89æ\9b´ã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\81¨ã\81\84ã\81\86ã\81\93ã\81¨ã\81 ã\80\82 ã\81\93ã\81®ã\82\88ã\81\86ã\81ªç«¶å\90\88æ\9d¡ä»¶ã\81¯ã\80\81 対象ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81«å¯¾ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81
+ã\81\9dã\82\8cã\81\8bã\82\89 \fBfstatat\fP(2) ã\82\84 \fBopenat\fP() ã\81® \fIdirfd\fP å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81
避けることができる。
.\"
.\"
-二つ目として、 \fBopenat\fP() を使うと、アプリケーションが管理するファイルディスクリプタにより、
+äº\8cã\81¤ç\9b®ã\81¨ã\81\97ã\81¦ã\80\81 \fBopenat\fP() ã\82\92使ã\81\86ã\81¨ã\80\81ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81\8c管ç\90\86ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ã\82\88ã\82\8aã\80\81
スレッド単位の「カレントワーキングディレクトリ」を実装することができる (この機能は、 \fI/proc/self/fd/dirfd\fP
を使った方法でも実現することができるが、 効率の面で落とる)。
.SS O_DIRECT
.LP
-\fBO_DIRECT\fP フラグを使用する場合、ユーザ空間バッファの長さやアドレス、 I/O
+\fBO_DIRECT\fP フラグを使用する場合、ユーザー空間バッファーの長さやアドレス、 I/O
のファイルオフセットに関してアラインメントの制限が課されることがある。 Linux では、アラインメントの制限はファイルシステムやカーネルのバージョンに
よって異なり、全く制限が存在しない場合もある。 しかしながら、現在のところ、指定されたファイルやファイルシステムに対して
-こうした制限があるかを見つけるための、アプリケーション向けのインタフェースで ファイルシステム非依存のものは存在しない。
-いくつかのファイルシステムでは、制限を確認するための独自のインタフェースが 提供されている。例えば、 \fBxfsctl\fP(3) の
+ã\81\93ã\81\86ã\81\97ã\81\9få\88¶é\99\90ã\81\8cã\81\82ã\82\8bã\81\8bã\82\92è¦\8bã\81¤ã\81\91ã\82\8bã\81\9fã\82\81ã\81®ã\80\81ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³å\90\91ã\81\91ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81§ ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 é\9d\9eä¾\9då\98ã\81®ã\82\82ã\81®ã\81¯å\98å\9c¨ã\81\97ã\81ªã\81\84ã\80\82
+ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ã\80\81å\88¶é\99\90ã\82\92確èª\8dã\81\99ã\82\8bã\81\9fã\82\81ã\81®ç\8b¬è\87ªã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81\8c æ\8f\90ä¾\9bã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82ä¾\8bã\81\88ã\81°ã\80\81 \fBxfsctl\fP(3) ã\81®
\fBXFS_IOC_DIOINFO\fP 命令である。
.LP
-Linux 2.4 では、転送サイズ、 ユーザーバッファのアライメント、ファイルオフセットは、
+Linux 2.4 ã\81§ã\81¯ã\80\81転é\80\81ã\82µã\82¤ã\82ºã\80\81 ã\83¦ã\83¼ã\82¶ã\83¼ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82¢ã\83©ã\82¤ã\83¡ã\83³ã\83\88ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81¯ã\80\81
ファイルシステムの論理ブロックサイズの倍数でなければならない。 Linux 2.6.0 以降では、
内部で使われるストレージの論理ブロックサイズのアライメント (通常は 512 バイト) で十分である。 論理ブロックサイズは \fBioctl\fP(2)
\fBBLKSSZGET\fP 操作や以下のシェルコマンドから知ることができる。
blockdev \-\-getss
.LP
-ã\83¡ã\83¢ã\83ªã\83\90ã\83\83ã\83\95ã\82¡がプライベートマッピング (\fBmmap\fP(2) の \fBMAP_PRIVATE\fP
+ã\83¡ã\83¢ã\83ªã\83¼ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼がプライベートマッピング (\fBmmap\fP(2) の \fBMAP_PRIVATE\fP
フラグで作成されたマッピング) の場合には、\fBO_DIRECT\fP I/O は
\fBfork\fP(2) システムコールと同時に決して実行すべきではない
-(プライベートマッピングには、ヒープ領域に割り当てられたメモリや静的に
-割り当てたバッファも含まれる)。非同期 I/O インターフェース (AIO) 経由
+(ã\83\97ã\83©ã\82¤ã\83\99ã\83¼ã\83\88ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81«ã\81¯ã\80\81ã\83\92ã\83¼ã\83\97é \98å\9f\9fã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\84é\9d\99ç\9a\84ã\81«
+å\89²ã\82\8aå½\93ã\81¦ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\82å\90«ã\81¾ã\82\8cã\82\8b)ã\80\82é\9d\9eå\90\8cæ\9c\9f I/O ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ (AIO) çµ\8cç\94±
やプロセス内の他のスレッドから発行された、このような I/O は、
\fBfork\fP(2) が呼び出される前に完了されるべきである。
そうしなかった場合、データ破壊や、親プロセスや子プロセスでの予期しない
動作が起こる可能性がある。
-\fBO_DIRECT\fP I/O ç\94¨ã\81®ã\83¡ã\83¢ã\83ªã\83\90ã\83\83ã\83\95ã\82¡が \fBshmat\fP(2) や\fBMAP_SHARED\fP フラグ
+\fBO_DIRECT\fP I/O ç\94¨ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼が \fBshmat\fP(2) や\fBMAP_SHARED\fP フラグ
付きの \fBmmap\fP(2) で作成された場合には、この制限はあてはまらない。
-\fBmadvise\fP(2) ã\81§ã\83¡ã\83¢ã\83ªã\83\90ã\83\83ã\83\95ã\82¡にアドバイス \fBMADV_DONTFORK\fP が設定され
-ている場合にも、この制限はあてはまらない(\fBMADV_DONTFORK\fP はそのメモリ
-バッファが \fBfork\fP(2) 後に子プロセスからは利用できないことを保証するも
+\fBmadvise\fP(2) ã\81§ã\83¡ã\83¢ã\83ªã\83¼ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼にアドバイス \fBMADV_DONTFORK\fP が設定され
+ている場合にも、この制限はあてはまらない(\fBMADV_DONTFORK\fP はそのメモリー
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8c \fBfork\fP(2) å¾\8cã\81«å\90ã\83\97ã\83ã\82»ã\82¹ã\81\8bã\82\89ã\81¯å\88©ç\94¨ã\81§ã\81\8dã\81ªã\81\84ã\81\93ã\81¨ã\82\92ä¿\9d証ã\81\99ã\82\8bã\82\82
のである)。
.LP
-\fBO_DIRECT\fP フラグは SGI IRIX で導入された。SGI IRIX にも Linux 2.4 と同様の (ユーザーバッファの)
+\fBO_DIRECT\fP ã\83\95ã\83©ã\82°ã\81¯ SGI IRIX ã\81§å°\8eå\85¥ã\81\95ã\82\8cã\81\9fã\80\82SGI IRIX ã\81«ã\82\82 Linux 2.4 ã\81¨å\90\8cæ§\98ã\81® (ã\83¦ã\83¼ã\82¶ã\83¼ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®)
アラインメントの制限がある。 また、IRIX には適切な配置とサイズを取得するための \fBfcntl\fP(2) コールがある。 FreeBSD 4.x
も同じ名前のフラグを導入したが、アラインメントの制限はない。
.LP
をデフォルトでは無効になっている性能向上のためのオプションと 考えておくのがよいであろう。
.PP
.RS
-「O_DIRECT でいつも困るのは、インタフェース全部が本当にお馬鹿な点だ。 たぶん危ないマインドコントロール剤で
+ã\80\8cO_DIRECT ã\81§ã\81\84ã\81¤ã\82\82å\9b°ã\82\8bã\81®ã\81¯ã\80\81ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹å\85¨é\83¨ã\81\8cæ\9c¬å½\93ã\81«ã\81\8a馬鹿ã\81ªç\82¹ã\81 ã\80\82 ã\81\9fã\81¶ã\82\93å\8d±ã\81ªã\81\84ã\83\9eã\82¤ã\83³ã\83\89ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83«å\89¤ã\81§
頭がおかしくなったサルが設計したんじゃないかな」 \(em Linus
.RE
.SH バグ
\fIpathname\fP が相対パスが入った空でない文字列で、 \fIdirfd\fP が特別な値 \fBAT_FDCWD\fP の場合、 \fIpathname\fP
は呼び出し元のカレントワーキングディレクトリに対する相対パスと解釈され、 そのファイルに対するハンドルが返される。
.IP *
-\fIpathname\fP が相対パスが入った空でない文字列で、 \fIdirfd\fP がディレクトリを参照するファイルディスクリプタの場合、
+\fIpathname\fP ã\81\8cç\9b¸å¯¾ã\83\91ã\82¹ã\81\8cå\85¥ã\81£ã\81\9f空ã\81§ã\81ªã\81\84æ\96\87å\97å\88\97ã\81§ã\80\81 \fIdirfd\fP ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®å ´å\90\88ã\80\81
\fIpathname\fP は \fIdirfd\fP が参照するディレクトリに対する相対パスと解釈され、
-そのファイルを参照するハンドルが返される。(なぜ「ディレクトリファイルディスクリプタ」が役に立つのかについては \fBopenat\fP(2) を参照。)
+ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\83\8fã\83³ã\83\89ã\83«ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82(ã\81ªã\81\9cã\80\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\80\8dã\81\8cå½¹ã\81«ç«\8bã\81¤ã\81®ã\81\8bã\81«ã\81¤ã\81\84ã\81¦ã\81¯ \fBopenat\fP(2) ã\82\92å\8f\82ç\85§ã\80\82)
.IP *
\fIpathname\fP が空の文字列で \fIflags\fP に \fBAT_EMPTY_PATH\fP が指定されている場合、 \fIdirfd\fP
には任意の種別のファイルを参照するオープンされたファイルディスクリプターか \fBAT_FDCWD\fP (カレントワーキングディレクトリを意味する)
\fBopen_by_handle_at\fP() は以下のエラーで失敗することがある。
.TP
\fBEBADF\fP
-\fImount_fd\fP がオープンされたファイルディスクリプタでない。
+\fImount_fd\fP ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEFAULT\fP
\fIhandle\fP がアクセス可能なアドレス空間の外を指している。
.\" .BR outb (9).
これらの関数はもともとカーネル内部での使用を想定して設計されているが、 ユーザー空間からでも使用できる。
-\fB\-O\fP ã\82\84 \fB\-O2\fP ã\81ªã\81©ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\82³ã\83³ã\83\91ã\82¤ã\83«ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\82¤ã\83³ã\83©ã\82¤ã\83³ã\83»ã\83\9eã\82¯ã\83ã\81¨ã\81\97ã\81¦å®\9a義ã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81
+\fB\-O\fP や \fB\-O2\fP などを指定してコンパイルしなければならない。 これらの関数はインラインマクロとして定義されており、
最適化を行わないと関数の展開が行われず、 リンクの時に「解決できない参照(unresolved reference)」が発生する。
ユーザー空間のアプリケーションが I/O ポートにアクセスすることを カーネルに教えるために \fBioperm\fP(2) もしくは \fBiopl\fP(2)
.SH 説明
.PP
PCI デバイスとのやり取り (interaction) は カーネル PCI レイヤですでに処理されているので、
-通常はこららの関数をユーザ空間からアクセスする必要はない。
+通常はこららの関数をユーザー空間からアクセスする必要はない。
.TP
\fBpciconfig_read\fP()
デバイス \fIdev\fP のオフセット \fIoff\fP の値を \fIbuf\fP に読み込む。
デバイス \fIdev\fP のオフセット \fIoff\fP に \fIbuf\fP の値を書き込む。
.TP
\fBpciconfig_iobase\fP()
-bus/devfn ペアをこの関数に渡し、 メモリオフセット (prep のようなものでは、この値は 0xc0000000 である) と PIO
+bus/devfn ã\83\9aã\82¢ã\82\92ã\81\93ã\81®é\96¢æ\95°ã\81«æ¸¡ã\81\97ã\80\81 ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\95ã\82»ã\83\83ã\83\88 (prep ã\81®ã\82\88ã\81\86ã\81ªã\82\82ã\81®ã\81§ã\81¯ã\80\81ã\81\93ã\81®å\80¤ã\81¯ 0xc0000000 ã\81§ã\81\82ã\82\8b) ã\81¨ PIO
サイクルの IO ベースの物理アドレスを取得する。 また、もしあるならば ISA hole の物理アドレスを取得する。
.SH 返り値
.TP
成功した場合、0 が返される。 エラーの場合、\-1 が返され、 \fIerrno\fP が適切に設定される。
.TP
\fBpciconfig_iobase\fP()
-\fIwhich\fP の値に基づいて、物理メモリ内の様々な I/O 領域の位置情報が返される。 \fIwhich\fP の値は、
+\fIwhich\fP の値に基づいて、物理メモリー内の様々な I/O 領域の位置情報が返される。 \fIwhich\fP の値は、
\fBIOBASE_BRIDGE_NUMBER\fP, \fBIOBASE_MEMORY\fP, \fBIOBASE_IO\fP, \fBIOBASE_ISA_IO\fP,
\fBIOBASE_ISA_MEM\fP である。
.SH エラー
この返り値は \fBpciconfig_iobase\fP() でのみ有効である。 このエラーは \fIwhich\fP の値が無効であるときに返される。
.TP
\fBEPERM\fP
-ユーザが \fBCAP_SYS_ADMIN\fP 権限を持っていない。 このエラーは \fBpciconfig_iobase\fP() には適用されない。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8c \fBCAP_SYS_ADMIN\fP 権é\99\90ã\82\92æ\8c\81ã\81£ã\81¦ã\81\84ã\81ªã\81\84ã\80\82 ã\81\93ã\81®ã\82¨ã\83©ã\83¼ã\81¯ \fBpciconfig_iobase\fP() ã\81«ã\81¯é\81©ç\94¨ã\81\95ã\82\8cã\81ªã\81\84ã\80\82
.SH 準拠
これらの呼び出しは Linux 特有のものであり、 Linux 2.0.26/2.1.11 から使用可能である。
.SH 関連項目
\fBint personality(unsigned long \fP\fIpersona\fP\fB);\fP
.SH 説明
Linux は、プロセス毎の異なる実行ドメイン、すなわち パーソナリティ (personality) をサポートしている。 実行ドメインは Linux
-ã\81«ã\82·ã\82°ã\83\8aã\83«ç\95ªå\8f·ã\81«ã\81©ã\81®ã\82·ã\82°ã\83\8aã\83«ã\82\92å\89²ã\82\8aä»\98ã\81\91ã\82\8bã\81\8bã\82\92 æ\95\99ã\81\88ã\81\9fã\82\8aã\81\99ã\82\8bã\80\82ã\81¾ã\81\9fã\80\81å®\9fè¡\8cã\83\89ã\83¡ã\82¤ã\83³ã\83»ã\82·ã\82¹ã\83\86ã\83 ã\81«ã\82\88ã\82\8aã\80\81 Linux ã\81¯ã\80\81 ä»\96ã\81® UNIX
+にシグナル番号にどのシグナルを割り付けるかを 教えたりする。また、実行ドメインシステムにより、 Linux は、 他の UNIX
風のオペレーティングシステムでコンパイルされたバイナリに対する限定的なサポートを提供している。
\fIpersona\fP が 0xffffffff 以外の場合、 \fBpersonality\fP() は呼び出し元の実行ドメインを \fIpersona\fP
.fi
.SH 説明
\fBpipe\fP() はパイプを生成する。 パイプは、プロセス間通信に使用できる単方向のデータチャネルである。 配列 \fIpipefd\fP
-は、パイプの両端を参照する二つのファイルディスクリプタを 返すのに使用される。 \fIpipefd[0]\fP がパイプの読み出し側、
+ã\81¯ã\80\81ã\83\91ã\82¤ã\83\97ã\81®ä¸¡ç«¯ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bäº\8cã\81¤ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92 è¿\94ã\81\99ã\81®ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 \fIpipefd[0]\fP ã\81\8cã\83\91ã\82¤ã\83\97ã\81®èªã\81¿å\87ºã\81\97å\81´ã\80\81
\fIpipefd[1]\fP がパイプの書き込み側である。 パイプの書き込み側に書き込まれたデータは、
-パイプの読み出し側から読み出されるまでカーネルでバッファリングされる。 さらなる詳細は \fBpipe\fP(7) を参照のこと。
+ã\83\91ã\82¤ã\83\97ã\81®èªã\81¿å\87ºã\81\97å\81´ã\81\8bã\82\89èªã\81¿å\87ºã\81\95ã\82\8cã\82\8bã\81¾ã\81§ã\82«ã\83¼ã\83\8dã\83«ã\81§ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\95ã\82\89ã\81ªã\82\8b詳細ã\81¯ \fBpipe\fP(7) ã\82\92å\8f\82ç\85§ã\81®ã\81\93ã\81¨ã\80\82
\fBpipe2\fP() は \fIflags\fP が 0 の場合には \fBpipe\fP() と同じである。 \fIflags\fP に以下の値をビット毎の論理和
(OR) で指定することで、 異なる動作をさせることができる。
.TP
\fBO_CLOEXEC\fP
-新しく生成される二つのファイルディスクリプタの close\-on\-exec (\fBFD_CLOEXEC\fP) フラグをセットする。
+æ\96°ã\81\97ã\81\8fç\94\9fæ\88\90ã\81\95ã\82\8cã\82\8bäº\8cã\81¤ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81® close\-on\-exec (\fBFD_CLOEXEC\fP) ã\83\95ã\83©ã\82°ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\80\82
このフラグが役に立つ理由については、 \fBopen\fP(2) の \fBO_CLOEXEC\fP フラグの説明を参照のこと。
.TP
\fBO_DIRECT\fP (Linux 3.4 以降)
定数 \fBPIPE_BUF\fP は \fI<limits.h>\fP で定義されている。
.IP *
\fBread\fP(2)
-で次のパケットよりも小さなバッファサイズを指定した場合、要求されたバイト数のデータが読み出され、そのパケットの超過分のバイトは破棄される。
-可能性のある最大サイズのパケットを読み出すには、\fBPIPE_BUF\fP のバッファサイズを指定すれば十分である (上の項目を参照)。
+ã\81§æ¬¡ã\81®ã\83\91ã\82±ã\83\83ã\83\88ã\82\88ã\82\8aã\82\82å°\8fã\81\95ã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\82\92æ\8c\87å®\9aã\81\97ã\81\9få ´å\90\88ã\80\81è¦\81æ±\82ã\81\95ã\82\8cã\81\9fã\83\90ã\82¤ã\83\88æ\95°ã\81®ã\83\87ã\83¼ã\82¿ã\81\8cèªã\81¿å\87ºã\81\95ã\82\8cã\80\81ã\81\9dã\81®ã\83\91ã\82±ã\83\83ã\83\88ã\81®è¶\85é\81\8eå\88\86ã\81®ã\83\90ã\82¤ã\83\88ã\81¯ç ´æ£\84ã\81\95ã\82\8cã\82\8bã\80\82
+å\8f¯è\83½æ\80§ã\81®ã\81\82ã\82\8bæ\9c\80大ã\82µã\82¤ã\82ºã\81®ã\83\91ã\82±ã\83\83ã\83\88ã\82\92èªã\81¿å\87ºã\81\99ã\81«ã\81¯ã\80\81\fBPIPE_BUF\fP ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\82\92æ\8c\87å®\9aã\81\99ã\82\8cã\81°å\8d\81å\88\86ã\81§ã\81\82ã\82\8b (ä¸\8aã\81®é \85ç\9b®ã\82\92å\8f\82ç\85§)ã\80\82
.IP *
-長さ 0 のパケットはサポートされていない。 (バッファサイズ 0 を指定した \fBread\fP(2) は何も行わず 0 を返す)。
+é\95·ã\81\95 0 ã\81®ã\83\91ã\82±ã\83\83ã\83\88ã\81¯ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82 (ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82º 0 ã\82\92æ\8c\87å®\9aã\81\97ã\81\9f \fBread\fP(2) ã\81¯ä½\95ã\82\82è¡\8cã\82\8fã\81\9a 0 ã\82\92è¿\94ã\81\99)ã\80\82
.RE
.IP
このフラグをサポートしていない古いカーネルでは、エラー \fBEINVAL\fP が返る。これによりカーネルがサポートしていないことが分かる。
(\fBpipe2\fP()) \fIflags\fP に無効な値が入っている。
.TP
\fBEMFILE\fP
-このプロセスで使われているファイルディスクリプタが多すぎる。
+ã\81\93ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81§ä½¿ã\82\8fã\82\8cã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå¤\9aã\81\99ã\81\8eã\82\8bã\80\82
.TP
\fBENFILE\fP
オープンされているファイルの総数がシステムの制限に達している。
.SH 例
.\" fork.2 refers to this example program.
以下のプログラムではパイプを生成し、その後 \fBfork\fP(2) で子プロセスを生成する。
-子プロセスは同じパイプを参照するファイルディスクリプタ集合のコピーを 継承する。 \fBfork\fP(2) の後、各プロセスはパイプ
-(\fBpipe\fP(7) を参照) に必要がなくなったディスクリプタをクローズする。 親プロセスはプログラムのコマンドライン引き数に含まれる
+子プロセスは同じパイプを参照するファイルディスクリプター集合のコピーを 継承する。 \fBfork\fP(2) の後、各プロセスはパイプ
+(\fBpipe\fP(7) ã\82\92å\8f\82ç\85§) ã\81«å¿\85è¦\81ã\81\8cã\81ªã\81\8fã\81ªã\81£ã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\99ã\82\8bã\80\82 親ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³å¼\95ã\81\8dæ\95°ã\81«å\90«ã\81¾ã\82\8cã\82\8b
文字列をパイプへ書き込み、 子プロセスはこの文字列をパイプから 1 バイトずつ読み込んで標準出力にエコーする。
.SS プログラムのソース
.nf
.\"
.TH POLL 2 2014\-09\-06 Linux "Linux Programmer's Manual"
.SH 名前
-poll, ppoll \- ファイルディスクリプタにおけるイベントを待つ
+poll, ppoll \- ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ã\81\8aã\81\91ã\82\8bã\82¤ã\83\99ã\83³ã\83\88ã\82\92å¾\85ã\81¤
.SH 書式
.nf
\fB#include <poll.h>\fP
\fB const struct timespec *\fP\fItimeout_ts\fP\fB, const sigset_t *\fP\fIsigmask\fP\fB);\fP
.fi
.SH 説明
-\fBpoll\fP() は \fBselect\fP(2) と同様の仕事を行う、つまり、ファイルディスクリプタ集合のいずれか一つが I/O
+\fBpoll\fP() は \fBselect\fP(2) と同様の仕事を行う、つまり、ファイルディスクリプター集合のいずれか一つが I/O
を実行可能な状態になるのを待つ。
-監視するファイルディスクリプタ集合は、 \fIfds\fP 引き数で指定する。 \fIfds\fP は、以下の型の構造体の配列である。
+監視するファイルディスクリプター集合は、 \fIfds\fP 引き数で指定する。 \fIfds\fP は、以下の型の構造体の配列である。
.in +4n
.nf
.PP
\fInfds\fP には、 \fIfds\fP 配列の要素数を指定する。
-\fIfd\fP フィールドには、オープンされたファイルのファイルディスクリプタが入る。 このフィールドが負の場合、対応する \fIevents\fP
+\fIfd\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ã\81¯ã\80\81ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\85¥ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81\8cè² ã\81®å ´å\90\88ã\80\81対å¿\9cã\81\99ã\82\8b \fIevents\fP
フィールドは無視され、 \fIrevents\fP には 0 が返される。(この機能により、一つの \fBpoll\fP()
-の呼び出しで簡単にあるファイルディスクリプタを無視することができる。 単に \fIfd\fP フィールドの符号を反転するだけでよい。
-ただし、この方法はファイルディスクリプタ 0 を無視するのには使用できない点に注意すること。)
+ã\81®å\91¼ã\81³å\87ºã\81\97ã\81§ç°¡å\8d\98ã\81«ã\81\82ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\84¡è¦\96ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 å\8d\98ã\81« \fIfd\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81®ç¬¦å\8f·ã\82\92å\8f\8d転ã\81\99ã\82\8bã\81 ã\81\91ã\81§ã\82\88ã\81\84ã\80\82
+ただし、この方法はファイルディスクリプター 0 を無視するのには使用できない点に注意すること。)
-æ§\8bé\80 ä½\93ã\81® \fIevents\fP è¦\81ç´ ã\81¯å\85¥å\8a\9bã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81§ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ \fIfd\fP に関して、
+æ§\8bé\80 ä½\93ã\81® \fIevents\fP è¦\81ç´ ã\81¯å\85¥å\8a\9bã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81§ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ \fIfd\fP に関して、
アプリケーションが興味を持っているイベントのビットマスクを指定する。 このフィールドには 0 を指定することもでき、 その場合 \fIrevents\fP
で返されるイベントは \fBPOLLHUP\fP, \fBPOLLERR\fP, \fBPOLLNVAL\fP だけである (下記参照)。
-\fIrevents\fP 要素は出力パラメータで、実際に起こったイベントがカーネルにより設定される。 \fIrevents\fP で返されるビット列には、
+\fIrevents\fP è¦\81ç´ ã\81¯å\87ºå\8a\9bã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81§ã\80\81å®\9fé\9a\9bã\81«èµ·ã\81\93ã\81£ã\81\9fã\82¤ã\83\99ã\83³ã\83\88ã\81\8cã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82\88ã\82\8aè¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82 \fIrevents\fP ã\81§è¿\94ã\81\95ã\82\8cã\82\8bã\83\93ã\83\83ã\83\88å\88\97ã\81«ã\81¯ã\80\81
\fIevents\fP で指定したもののどれか、もしくは \fBPOLLERR\fP, \fBPOLLHUP\fP, \fBPOLLNVAL\fP のうちの一つが含まれる
(\fBPOLLERR\fP, \fBPOLLHUP\fP, \fBPOLLNVAL\fP の 3つのビットは \fIevents\fP
に指定しても意味がなく、対応した状態が真の場合に \fIrevents\fP に設定される)。
-どのファイルディスクリプタにも要求したイベントが発生しておらず、 エラーも起こらない場合、 \fBpoll\fP()
+ã\81©ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ã\82\82è¦\81æ±\82ã\81\97ã\81\9fã\82¤ã\83\99ã\83³ã\83\88ã\81\8cç\99ºç\94\9fã\81\97ã\81¦ã\81\8aã\82\89ã\81\9aã\80\81 ã\82¨ã\83©ã\83¼ã\82\82èµ·ã\81\93ã\82\89ã\81ªã\81\84å ´å\90\88ã\80\81 \fBpoll\fP()
はイベントのうちいずれか一つが発生するまで停止 (block) する。
-\fItimeout\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cå\88©ç\94¨å\8f¯è\83½ã\81«ã\81ªã\82\8bã\81¾ã\81§ \fBpoll\fP() ã\81\8cå\81\9cæ¢ã\81\99ã\82\8bæ\99\82é\96\93ã\82\92ã\83\9fã\83ªç§\92ã\81§æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 \fBpoll\fP()
-の呼び出しは以下のいずれかになるまで停止する。
+\fItimeout\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\88©ç\94¨å\8f¯è\83½ã\81«ã\81ªã\82\8bã\81¾ã\81§ \fBpoll\fP() ã\81\8cå\81\9cæ¢ã\81\99ã\82\8bæ\99\82é\96\93ã\82\92ã\83\9fã\83ªç§\92ã\81§æ\8c\87å®\9aã\81\99ã\82\8bã\80\82
+\fBpoll\fP() の呼び出しは以下のいずれかになるまで停止する。
.IP * 3
-ファイルディスクリプタが利用可能になる
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\88©ç\94¨å\8f¯è\83½ã\81«ã\81ªã\82\8b
.IP *
呼び出しがシグナルハンドラーにより割り込まれた
.IP *
.PP
\fItimeout\fP 時間はシステムクロックの粒度に切り上げられ、 カーネルのスケジューリング遅延により少しだけ長くなる可能性がある点に注意すること。
\fItimeout\fP に負の値を指定した場合、タイムアウト時間が無限大を意味する。 \fItimeout\fP を 0 に指定した場合、I/O
-可能なファイルディスクリプタがない場合であっても、 \fBpoll\fP() はすぐに返る。
+å\8f¯è\83½ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\81ªã\81\84å ´å\90\88ã\81§ã\81\82ã\81£ã\81¦ã\82\82ã\80\81 \fBpoll\fP() ã\81¯ã\81\99ã\81\90ã\81«è¿\94ã\82\8bã\80\82
\fIevents\fP に指定したり、 \fIrevents\fP で返されるビットは \fI<poll.h>\fP で定義されている:
.RS
.TP
\fBPOLLRDHUP\fP (Linux 2.6.17 以降)
ストリームソケットの他端が、コネクションを close したか、 コネクションの書き込み側を shutdown した。 この定義を有効にするには、
-(「どの」ヘッダファイルをインクルードするよりも前に) \fB_GNU_SOURCE\fP 機能検査マクロを定義しなければならない。
+(ã\80\8cã\81©ã\81®ã\80\8dã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\99ã\82\8bã\82\88ã\82\8aã\82\82å\89\8dã\81«) \fB_GNU_SOURCE\fP æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83ã\82\92å®\9a義ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.TP
\fBPOLLERR\fP
エラー状態 (出力の場合のみ)。
Linux では \fBPOLLMSG\fP も定義されているが、使用されていない。
.SS ppoll()
\fBpoll\fP() と \fBppoll\fP() の関係は \fBselect\fP(2) と \fBpselect\fP(2) の関係と同じようなものである:
-\fBpselect\fP(2) と同様に、 \fBppoll\fP() を使うと、アプリケーションはファイルディスクリプタの状態変化
+\fBpselect\fP(2) ã\81¨å\90\8cæ§\98ã\81«ã\80\81 \fBppoll\fP() ã\82\92使ã\81\86ã\81¨ã\80\81ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ç\8a¶æ\85\8bå¤\89å\8c\96
もしくはシグナルの捕捉を安全に待つことができる。
.PP
\fItimeout\fP 引き数の精度の違いを除くと、以下の \fBppoll\fP() の呼び出しは、
\fBpoll\fP() との違いは \fItimeout\fP 引き数の精度だけとなる)。
\fItimeout\fP 引き数は \fBppoll\fP() が停止する時間の上限を指定するものである。
-この引き数には以下の型の構造体へのポインタを指定する。
+ã\81\93ã\81®å¼\95ã\81\8dæ\95°ã\81«ã\81¯ä»¥ä¸\8bã\81®å\9e\8bã\81®æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82
.in +4n
.nf
\fItimeout_ts\fP に NULL が指定された場合、 \fBppoll\fP は無限に停止することがあり得る。
.SH 返り値
-成功した場合は正の数を返す。この数は 0 以外の \fIrevents\fP 要素を持つ構造体の数である (別の言い方をすると、これらのディスクリプタ
-にはイベントかエラー報告がある)。 値 0 は、タイムアウトとなり、どのファイルディスクリプタでもイベントが 発生しなかったことを示す。エラーの場合は
+成功した場合は正の数を返す。この数は 0 以外の \fIrevents\fP 要素を持つ構造体の数である (別の言い方をすると、これらのディスクリプター
+ã\81«ã\81¯ã\82¤ã\83\99ã\83³ã\83\88ã\81\8bã\82¨ã\83©ã\83¼å ±å\91\8aã\81\8cã\81\82ã\82\8b)ã\80\82 å\80¤ 0 ã\81¯ã\80\81ã\82¿ã\82¤ã\83 ã\82¢ã\82¦ã\83\88ã\81¨ã\81ªã\82\8aã\80\81ã\81©ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\82\82ã\82¤ã\83\99ã\83³ã\83\88ã\81\8c ç\99ºç\94\9fã\81\97ã\81ªã\81\8bã\81£ã\81\9fã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\81¯
\-1 が返され、 \fIerrno\fP が適切に設定される。
.SH エラー
.TP
\fInfds\fP の値が \fBRLIMIT_NOFILE\fP を超えた。
.TP
\fBENOMEM\fP
-ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83»ã\83\86ã\83¼ã\83\96ã\83«ã\82\92確ä¿\9dã\81\99ã\82\8bã\81\9fã\82\81ã\81®ã\83¡ã\83¢ã\83ªがない。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\82\92確ä¿\9dã\81\99ã\82\8bã\81\9fã\82\81ã\81®ã\83¡ã\83¢ã\83ªã\83¼がない。
.SH バージョン
.\" library call was introduced in libc 5.4.28
\fBpoll\fP() システムコールは Linux 2.1.23 で導入された。
いくつかの実装では、値 \-1 を持った非標準の定数 \fBINFTIM\fP が定義されており、 \fBpoll\fP() の \fItimeout\fP
の指定に使用できる。 この定数は glibc では定義されていない。
-\fBpoll\fP() で監視中のファイルディスクリプタが別のスレッドによってクローズされた場合に何が起こるかの議論については、 \fBselect\fP(2)
+\fBpoll\fP() ã\81§ç\9b£è¦\96ä¸ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\88¥ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81«ã\82\88ã\81£ã\81¦ã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\81\9få ´å\90\88ã\81«ä½\95ã\81\8cèµ·ã\81\93ã\82\8bã\81\8bã\81®è°è«\96ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\80\81 \fBselect\fP(2)
を参照してほしい。
.SS "C ライブラリとカーネル ABI の違い"
Linux の \fBppoll\fP() システムコールは \fItimeout_ts\fP 引き数を変更する。 しかし、glibc
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP 引き数が有効なファイルディスクリプタでない。
+\fIfd\fP å¼\95ã\81\8dæ\95°ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
無効な値が \fIadvice\fP に指定された。
.TP
\fBESPIPE\fP
.\" commit 87ba81dba431232548ce29d5d224115d0c2355ac
-æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cã\83\91ã\82¤ã\83\97ã\81¾ã\81\9fã\81¯ FIFO ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8b (\fBESPIPE\fP ã\81¯ POSIX ã\81§è¦\8få®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82¨ã\83©ã\83¼ã\81 ã\81\8cã\80\81 ã\83\90ã\83¼ã\82¸ã\83§ã\83³
-2.16 より前のカーネルでは、 この場合に \fBEINVAL\fP を返していた。)
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\83\91ã\82¤ã\83\97ã\81¾ã\81\9fã\81¯ FIFO ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8b (\fBESPIPE\fP ã\81¯ POSIX ã\81§è¦\8få®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82¨ã\83©ã\83¼ã\81 ã\81\8cã\80\81
+バージョン 2.16 より前のカーネルでは、 この場合に \fBEINVAL\fP を返していた。)
.SH バージョン
.\" of fadvise64_64()
カーネルによるサポートは Linux 2.5.60 で最初に登場し、
(しかし同じファイルに対する他のオープンファイルハンドルは影響を受けない)。
\fBPOSIX_FADV_WILLNEED\fP は、 ページキャッシュに指定領域のブロックされない読み込みを開始する。 読み込まれるデータの総量は、
-仮想メモリの負荷に依ってカーネルが減らすかもしれない (数メガバイトであれば通常は全く十分であり、 それより多くてもめったに役に立たない)。
+ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\81®è² è\8d·ã\81«ä¾\9dã\81£ã\81¦ã\82«ã\83¼ã\83\8dã\83«ã\81\8cæ¸\9bã\82\89ã\81\99ã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84 (æ\95°ã\83¡ã\82¬ã\83\90ã\82¤ã\83\88ã\81§ã\81\82ã\82\8cã\81°é\80\9a常ã\81¯å\85¨ã\81\8få\8d\81å\88\86ã\81§ã\81\82ã\82\8aã\80\81 ã\81\9dã\82\8cã\82\88ã\82\8aå¤\9aã\81\8fã\81¦ã\82\82ã\82\81ã\81£ã\81\9fã\81«å½¹ã\81«ç«\8bã\81\9fã\81ªã\81\84)ã\80\82
2.6.18 より前のカーネルでは、\fBPOSIX_FADV_NOREUSE\fP は \fBPOSIX_FADV_WILLNEED\fP と同じ意味であった。
これは多分バグであった。 カーネル 2.6.18 以降では、このフラグは何も行わない。
まだ書き出されていないページは影響を受けないので、 そのページの解放が保証されることをアプリケーションが望んでいるなら、 最初に \fBfsync\fP(2)
または \fBfdatasync\fP(2) を呼ぶべきである。
-.SS アーキテクチャ固有の派生バージョン
-ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81§ã\81¯ã\80\81 64 ã\83\93ã\83\83ã\83\88ã\81®å¼\95ã\81\8dæ\95°ã\81¯é\81©å\88\87ã\81ªã\83¬ã\82¸ã\82¹ã\82¿の組に割り当てる必要がある (\fBsyscall\fP(2) 参照)。
-このようなアーキテクチャでは、 「書式」に書かれている \fBposix_fadvise\fP() の呼び出しシグネチャーで、 引き数 \fIfd\fP と
-\fIoffset\fP の間のパディング (詰めもの) でレジスタが一つ消費されてしまう。 そのため、
-これらのアーキテクチャでは引き数が適切な順序になった別のシステムコールが定義されているが、 それ以外は \fBposix_fadvise\fP()
+.SS アーキテクチャー固有の派生バージョン
+ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81 64 ã\83\93ã\83\83ã\83\88ã\81®å¼\95ã\81\8dæ\95°ã\81¯é\81©å\88\87ã\81ªã\83¬ã\82¸ã\82¹ã\82¿ã\83¼の組に割り当てる必要がある (\fBsyscall\fP(2) 参照)。
+ã\81\93ã\81®ã\82\88ã\81\86ã\81ªã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81 ã\80\8cæ\9b¸å¼\8fã\80\8dã\81«æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8b \fBposix_fadvise\fP() ã\81®å\91¼ã\81³å\87ºã\81\97ã\82·ã\82°ã\83\8dã\83\81ã\83£ã\83¼ã\81§ã\80\81 å¼\95ã\81\8dæ\95° \fIfd\fP ã\81¨
+\fIoffset\fP ã\81®é\96\93ã\81®ã\83\91ã\83\87ã\82£ã\83³ã\82° (è©°ã\82\81ã\82\82ã\81®) ã\81§ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81\8cä¸\80ã\81¤æ¶\88è²»ã\81\95ã\82\8cã\81¦ã\81\97ã\81¾ã\81\86ã\80\82 ã\81\9dã\81®ã\81\9fã\82\81ã\80\81
+ã\81\93ã\82\8cã\82\89ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯å¼\95ã\81\8dæ\95°ã\81\8cé\81©å\88\87ã\81ªé \86åº\8fã\81«ã\81ªã\81£ã\81\9få\88¥ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8cå®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8cã\80\81 ã\81\9dã\82\8c以å¤\96ã\81¯ \fBposix_fadvise\fP()
と全く同じである。
例えば、 Linux 2.6.14 以降では、 ARM には以下のシステムコールが存在する。
.fi
.in
.PP
-通常、 glibc の \fBposix_fadvise\fP() ラッパー関数により、 これらのアーキテクチャ固有の詳細はアプリケーションには見えない。
-glibc のラッパー関数では、適切なアーキテクチャ固有のシステムコールが呼び出される。
+通常、 glibc の \fBposix_fadvise\fP() ラッパー関数により、 これらのアーキテクチャー固有の詳細はアプリケーションには見えない。
+glibc のラッパー関数では、適切なアーキテクチャー固有のシステムコールが呼び出される。
.SH バグ
2.6.6 より前のカーネルでは、 \fIlen\fP に 0 が指定された場合、 「ファイルの終りまでの全てのバイト」という意味ではなく、 文字通り「0
バイト」として解釈されていた。
\fI/proc/self/task/[tid]/comm\fP 経由でもアクセス可能である。
.TP
\fBPR_GET_NAME\fP (Linux 2.6.11 以降)
-呼び出し元スレッドの名前を \fI(char\ *) arg2\fP が指す場所に格納して返す。 バッファは最大で 16
+å\91¼ã\81³å\87ºã\81\97å\85\83ã\82¹ã\83¬ã\83\83ã\83\89ã\81®å\90\8då\89\8dã\82\92 \fI(char\ *) arg2\fP ã\81\8cæ\8c\87ã\81\99å ´æ\89\80ã\81«æ ¼ç´\8dã\81\97ã\81¦è¿\94ã\81\99ã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯æ\9c\80大ã\81§ 16
バイトを格納できるようにすべきである。 返される文字列はヌル終端される。
.TP
\fBPR_SET_NO_NEW_PRIVS\fP (Linux 3.5 以降)
以前は \fBPR_TASK_PERF_COUNTERS_ENABLE\fP と呼ばれていた。 Linux 2.6.32 で名前が変更された。
.TP
\fBPR_SET_TSC\fP (Linux 2.6.26 以降, x86 のみ)
-ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82¿ã\82¤ã\83 ã\82¹ã\82¿ã\83³ã\83\97ã\83»ã\82«ã\82¦ã\83³ã\82¿を読み出せるかを決定する フラグの状態を設定する。 読み出しを許可する場合は \fIarg2\fP に
-\fBPR_TSC_ENABLE\fP ã\82\92ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82¿ã\82¤ã\83 ã\82¹ã\82¿ã\83³ã\83\97ã\83»ã\82«ã\82¦ã\83³ã\82¿を読み出そうとした際に \fBSIGSEGV\fP を発生させる場合には
+ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82¿ã\82¤ã\83 ã\82¹ã\82¿ã\83³ã\83\97ã\82«ã\82¦ã\83³ã\82¿ã\83¼を読み出せるかを決定する フラグの状態を設定する。 読み出しを許可する場合は \fIarg2\fP に
+\fBPR_TSC_ENABLE\fP ã\82\92ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82¿ã\82¤ã\83 ã\82¹ã\82¿ã\83³ã\83\97ã\82«ã\82¦ã\83³ã\82¿ã\83¼を読み出そうとした際に \fBSIGSEGV\fP を発生させる場合には
\fBPR_TSC_SIGSEGV\fP を渡す。
.TP
\fBPR_GET_TSC\fP (Linux 2.6.26 以降, x86 のみ)
-ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82¿ã\82¤ã\83 ã\82¹ã\82¿ã\83³ã\83\97ã\83»ã\82«ã\82¦ã\83³ã\82¿を読み出せるかを決定する フラグの状態を \fI(int\ *) arg2\fP が指す場所に格納して返す。
+ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82¿ã\82¤ã\83 ã\82¹ã\82¿ã\83³ã\83\97ã\82«ã\82¦ã\83³ã\82¿ã\83¼を読み出せるかを決定する フラグの状態を \fI(int\ *) arg2\fP が指す場所に格納して返す。
.TP
\fBPR_SET_UNALIGN\fP
(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では Linux 2.6.18
-以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャのみ) unaligned アクセス制御ビットを \fIarg2\fP
-で指定された値に設定する。 指定できる値は \fBPR_UNALIGN_NOPRINT\fP (unaligned なユーザアクセスを黙って 修正する) か
-\fBPR_UNALIGN_SIGBUS\fP (unaligned なユーザアクセスがあった場合 \fBSIGBUS\fP を生成する) である。
+以é\99\8d; Alpha ã\81§ã\81¯ã\80\80Linux 2.6.22 以é\99\8d; ã\81\93ã\82\8cã\82\89ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81®ã\81¿) unaligned ã\82¢ã\82¯ã\82»ã\82¹å\88¶å¾¡ã\83\93ã\83\83ã\83\88ã\82\92 \fIarg2\fP
+ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\80¤ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 æ\8c\87å®\9aã\81§ã\81\8dã\82\8bå\80¤ã\81¯ \fBPR_UNALIGN_NOPRINT\fP (unaligned ã\81ªã\83¦ã\83¼ã\82¶ã\83¼ã\82¢ã\82¯ã\82»ã\82¹ã\82\92é»\99ã\81£ã\81¦ ä¿®æ£ã\81\99ã\82\8b) ã\81\8b
+\fBPR_UNALIGN_SIGBUS\fP (unaligned ã\81ªã\83¦ã\83¼ã\82¶ã\83¼ã\82¢ã\82¯ã\82»ã\82¹ã\81\8cã\81\82ã\81£ã\81\9få ´å\90\88 \fBSIGBUS\fP ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8b) ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBPR_GET_UNALIGN\fP
-(バージョンとアーキテクチャの情報は \fBPR_SET_UNALIGN\fP 参照) unaligned アクセス制御ビットの値を \fI(int\ *)
+(ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81¨ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81®æ\83\85å ±ã\81¯ \fBPR_SET_UNALIGN\fP å\8f\82ç\85§) unaligned ã\82¢ã\82¯ã\82»ã\82¹å\88¶å¾¡ã\83\93ã\83\83ã\83\88ã\81®å\80¤ã\82\92 \fI(int\ *)
arg2\fP が指す場所に格納して返す。
.TP
\fBPR_MCE_KILL\fP (Linux 2.6.32 以降)
.TP
\fBPR_SET_MM\fP (Linux 3.3 以降)
.\" commit 028ee4be34a09a6d48bdf30ab991ae933a7bc036
-å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81®ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83\9eã\83\83ã\83\97ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿のフィールドを変更する。 これらのフィールドは通常カーネルと動的リンカーにより設定される
+å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81®ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\97ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼のフィールドを変更する。 これらのフィールドは通常カーネルと動的リンカーにより設定される
(詳しい情報は \fBld.so\fP を参照)。 通常のアプリケーションはこの機能を利用すべきではない。 しかしながら、自分を書き換えるプログラムなど、
-プログラムが自分自身のメモリマップを変更するのが有用な場面もある。 この機能はカーネルが \fBCONFIG_CHECKPOINT_RESTORE\fP
+ã\83\97ã\83ã\82°ã\83©ã\83 ã\81\8cè\87ªå\88\86è\87ªèº«ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\97ã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\81®ã\81\8cæ\9c\89ç\94¨ã\81ªå ´é\9d¢ã\82\82ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®æ©\9fè\83½ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\81\8c \fBCONFIG_CHECKPOINT_RESTORE\fP
オプションを有効にして作成されている場合にのみ利用できる。 呼び出したプロセスは \fBCAP_SYS_RESOURCE\fP
ケーパビリティを持っていなければならない。 \fIarg2\fP の値には以下のいずれかを指定し、 \fIarg3\fP でそのオプションの新しい値を指定する。
.RS
.TP
\fBPR_SET_MM_START_CODE\fP
-プログラムテキストを実行できるアドレスの上限を設定する。 対応するメモリ領域は読み出し可能で実行可能でなければならないが、
+プログラムテキストを実行できるアドレスの上限を設定する。 対応するメモリー領域は読み出し可能で実行可能でなければならないが、
書き込み可能だったり共有可能だったりしてはならない (詳しい情報は \fBmprotect\fP(2) と \fBmmap\fP(2) 参照)。
.TP
\fBPR_SET_MM_END_CODE\fP
-プログラムテキストを実行できるアドレスの下限を設定する。 対応するメモリ領域は読み出し可能で実行可能でなければならないが、
+プログラムテキストを実行できるアドレスの下限を設定する。 対応するメモリー領域は読み出し可能で実行可能でなければならないが、
書き込み可能だったり共有可能だったりしてはならない。
.TP
\fBPR_SET_MM_START_DATA\fP
-初期化済データや未初期化 (bss) データを配置する領域のアドレス上限を指定する。 対応するメモリ領域は読み書き可能でなければならないが、
+初期化済データや未初期化 (bss) データを配置する領域のアドレス上限を指定する。 対応するメモリー領域は読み書き可能でなければならないが、
実行可能だったり共有可能だったりしてはならない。
.TP
\fBPR_SET_MM_END_DATA\fP
-初期化済データや未初期化 (bss) データを配置する領域のアドレス下限を指定する。 対応するメモリ領域は読み書き可能でなければならないが、
+初期化済データや未初期化 (bss) データを配置する領域のアドレス下限を指定する。 対応するメモリー領域は読み書き可能でなければならないが、
実行可能だったり共有可能だったりしてはならない。
.TP
\fBPR_SET_MM_START_STACK\fP
-スタックの開始アドレスを設定する。 対応するメモリ領域は読み書き可能でなければならない。
+スタックの開始アドレスを設定する。 対応するメモリー領域は読み書き可能でなければならない。
.TP
\fBPR_SET_MM_START_BRK\fP
\fBbrk\fP(2) コールで拡張できるプログラムのヒープ領域のアドレス上限を設定する。
.IP
\fBPR_SET_MM_ARG_START\fP, \fBPR_SET_MM_ARG_END\fP, \fBPR_SET_MM_ENV_START\fP,
\fBPR_SET_MM_ENV_END\fP で指定されるアドレスはプロセスのスタック領域に属している必要がある。
-したがって、これらのメモリ領域は読み書き可能でなければならない。 また、 (カーネル設定によっては) \fBMAP_GROWSDOWN\fP
+したがって、これらのメモリー領域は読み書き可能でなければならない。 また、 (カーネル設定によっては) \fBMAP_GROWSDOWN\fP
属性がセットされていなければならない (\fBmmap\fP(2) 参照)。
.TP
\fBPR_SET_MM_AUXV\fP
\fBPR_SET_MM_EXE_FILE\fP
.\" commit b32dfe377102ce668775f8b6b1461f7ad428f8b6
\fI/proc/pid/exe\fP シンボリックリンクを \fIarg3\fP
-å¼\95ã\81\8dæ\95°ã\81§æ¸¡ã\81\95ã\82\8cã\81\9fæ\96°ã\81\97ã\81\84å®\9fè¡\8cå\8f¯è\83½ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92æ\8c\87ã\81\99ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81§ç½®ã\81\8dæ\8f\9bã\81\88ã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は通常の \fBopen\fP(2)
+å¼\95ã\81\8dæ\95°ã\81§æ¸¡ã\81\95ã\82\8cã\81\9fæ\96°ã\81\97ã\81\84å®\9fè¡\8cå\8f¯è\83½ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92æ\8c\87ã\81\99ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81§ç½®ã\81\8dæ\8f\9bã\81\88ã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は通常の \fBopen\fP(2)
コールで取得すべきである。
.IP
-シンボリックリンクを変更するには、 既存の実行可能なメモリ領域のすべてをアンマップする必要がある。これにはカーネル自身が作成した領域も含まれる
-(例えば、カーネルは通常 ELF \fI.text\fP セクションに少なくとも一つの実行可能なメモリ領域を作成する)。
+シンボリックリンクを変更するには、 既存の実行可能なメモリー領域のすべてをアンマップする必要がある。これにはカーネル自身が作成した領域も含まれる
+(例えば、カーネルは通常 ELF \fI.text\fP セクションに少なくとも一つの実行可能なメモリー領域を作成する)。
.IP
二つ目の制限は、このような変更はプロセスの生存期間で一度だけ行うことができるという点である。 一度変更を行った後で変更を行おうとすると拒否される。
この動作は、 システム管理者が、 システムで動作するすべてのプロセスが行う、 普通でないシンボリックリンクの変更を監視するのを楽にする。
.IP *
\fIarg2\fP が \fBPR_SET_MM_START_CODE\fP, \fBPR_SET_MM_END_CODE\fP,
\fBPR_SET_MM_START_DATA\fP, \fBPR_SET_MM_END_DATA\fP, \fBPR_SET_MM_START_STACK\fP
-のどれかで、対応するメモリ領域のアクセス許可が要件を満たしていない。
+のどれかで、対応するメモリー領域のアクセス許可が要件を満たしていない。
.IP *
\fIarg2\fP が \fBPR_SET_MM_START_BRK\fP か \fBPR_SET_MM_BRK\fP で、 \fIarg3\fP
データセグメントの末尾と同じかそれより前か、 \fIarg3\fP に \fBRLIMIT_DATA\fP リソースリミットを超えてしまうような値が指定されている。
.\" .BR PR_SET_SECCOMP ,
.\" and secure computing mode is already 1.
\fIoption\fP が \fBPR_SET_MM\fP で、 \fIarg3\fP が \fBPR_SET_MM_EXE_FILE\fP で、 \fIarg4\fP
-で渡されたファイルディスクリプタが有効ではない。
+ã\81§æ¸¡ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cæ\9c\89å\8a¹ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBENXIO\fP
\fIoption\fP が \fBPR_MPX_ENABLE_MANAGEMENT\fP か \fBPR_MPX_DISABLE_MANAGEMENT\fP で、
.\" The library interface was added in glibc 2.0.6
\fBprctl\fP() システムコールは Linux 2.1.57 で導入された。
.SH 準拠
-ã\81\93ã\81®ã\82³ã\83¼ã\83«ã\81¯ Linux ç\89¹æ\9c\89ã\81§ã\81\82ã\82\8bã\80\82 IRIX ã\81«ã\81¯ \fBprctl\fP() ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81\8cã\81\82ã\82\8bã\81\8c (MIPS ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£において
+ã\81\93ã\81®ã\82³ã\83¼ã\83«ã\81¯ Linux ç\89¹æ\9c\89ã\81§ã\81\82ã\82\8bã\80\82 IRIX ã\81«ã\81¯ \fBprctl\fP() ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8cã\81\82ã\82\8bã\81\8c (MIPS ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼において
irix_prctl として Linux 2.1.44 で同様に導入された)、 そのプロトタイプは
.sp
\fBptrdiff_t prctl(int \fP\fIoption\fP\fB, int \fP\fIarg2\fP\fB, int \fP\fIarg3\fP\fB);\fP
.\"
.TH PREAD 2 2013\-06\-21 Linux "Linux Programmer's Manual"
.SH 名前
-pread, pwrite \- 指定したオフセットでファイルディスクリプタを読み書きする
+pread, pwrite \- æ\8c\87å®\9aã\81\97ã\81\9fã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81§ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92èªã\81¿æ\9b¸ã\81\8dã\81\99ã\82\8b
.SH 書式
\fB#include <unistd.h>\fP
.sp
.ad
.PD
.SH 説明
-\fBpread\fP() は、ファイルディスクリプタ \fIfd\fP の (ファイルの先頭からの) オフセット \fIoffset\fP から最大 \fIcount\fP
-バイトをバッファ \fIbuf\fP へ読み込む。ファイルオフセットは変化しない。
+\fBpread\fP() は、ファイルディスクリプター \fIfd\fP の (ファイルの先頭からの) オフセット \fIoffset\fP から最大
+\fIcount\fP バイトをバッファー \fIbuf\fP へ読み込む。ファイルオフセットは変化しない。
.PP
-\fBpwrite\fP() は、バッファ \fIbuf\fP から最大 \fIcount\fP バイトをファイルディスクリプタ \fIfd\fP のオフセット
+\fBpwrite\fP() は、バッファー \fIbuf\fP から最大 \fIcount\fP バイトをファイルディスクリプター \fIfd\fP のオフセット
\fIoffset\fP に書き込む。ファイルオフセットは変化しない。
.PP
\fIfd\fP で参照されるファイルはシーク (seek) 可能でなければならない。
で規定された全てのエラーが発生する可能性があり、 \fIerrno\fP にはエラーを示す値が設定される。
.SH バージョン
システムコール \fBpread\fP() と \fBpwrite\fP() は Linux にバージョン 2.1.60 で追加された。 i386
-のシステムコールのエントリは 2.1.69 で追加された。 (システムコールを持たない古いカーネルでの \fBlseek\fP(2)
+ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ 2.1.69 ã\81§è¿½å\8a ã\81\95ã\82\8cã\81\9fã\80\82 (ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\92æ\8c\81ã\81\9fã\81ªã\81\84å\8f¤ã\81\84ã\82«ã\83¼ã\83\8dã\83«ã\81§ã\81® \fBlseek\fP(2)
を使ったエミュレーションを含めると) C ライブラリにおけるサポートは glibc 2.1 で追加された。
.SH 準拠
POSIX.1\-2001.
.SH 注意
システムコール \fBpread\fP() と \fBpwrite\fP() は、特にマルチスレッドアプリケーションで役に立つ。 これらを使うと、
-他のスレッドによるファイルオフセットの変更の影響を受けることなく、 複数のスレッドが同じファイルディスクリプタに対して入出力を行うことができる。
+ä»\96ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81«ã\82\88ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81®å¤\89æ\9b´ã\81®å½±é\9f¿ã\82\92å\8f\97ã\81\91ã\82\8bã\81\93ã\81¨ã\81ªã\81\8fã\80\81 è¤\87æ\95°ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81\8cå\90\8cã\81\98ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦å\85¥å\87ºå\8a\9bã\82\92è¡\8cã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
Linux では、裏で呼び出されるシステムコールの名前がカーネル 2.6 で変更された。
\fBpread\fP() は \fBpread64\fP() になり、 \fBpwrite\fP() は \fBpwrite64\fP() になった。
システムコールの番号は変更されていない。
glibc の \fBpread\fP() と \fBpwrite\fP() のラッパー関数はこれらの変更を吸収している。
-いくつかの 32 ビットアーキテクチャでは、これらのシステムコールの呼び出し時のシグネチャーが違っています。理由は \fBsyscall\fP(2)
+ã\81\84ã\81\8fã\81¤ã\81\8bã\81® 32 ã\83\93ã\83\83ã\83\88ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®å\91¼ã\81³å\87ºã\81\97æ\99\82ã\81®ã\82·ã\82°ã\83\8dã\83\81ã\83£ã\83¼ã\81\8cé\81\95ã\81£ã\81¦ã\81\84ã\81¾ã\81\99ã\80\82ç\90\86ç\94±ã\81¯ \fBsyscall\fP(2)
で説明されている通りです。
.SH バグ
.\" FIXME . https://bugzilla.kernel.org/show_bug.cgi?id=43178
.SH 説明
\fI注意\fP: このシステムコールが存在するのは、カーネル 2.6 より前の Linux だけである。
-\fBquery_module\fP() は、ローダブルモジュールに関する情報をカーネルに問い合わせる。 情報は \fIbuf\fP
-が指し示すバッファに格納されて返される。 呼び出し元は \fIbuf\fP のサイズを \fIbufsize\fP に指定しなければならない。
+\fBquery_module\fP() ã\81¯ã\80\81ã\83ã\83¼ã\83\80ã\83¼ã\83\96ã\83«ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92ã\82«ã\83¼ã\83\8dã\83«ã\81«å\95\8fã\81\84å\90\88ã\82\8fã\81\9bã\82\8bã\80\82 æ\83\85å ±ã\81¯ \fIbuf\fP
+ã\81\8cæ\8c\87ã\81\97示ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\81¦è¿\94ã\81\95ã\82\8cã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯ \fIbuf\fP ã\81®ã\82µã\82¤ã\82ºã\82\92 \fIbufsize\fP ã\81«æ\8c\87å®\9aã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
得られる情報の正確な意味とフォーマットは、 \fIwhich\fP でどの操作を指定するかによって異なる。 現在ロードされているモジュールを特定するために
\fIname\fP を必要とする操作があれば、 カーネル固有であることを示す NULL を指定できる操作もある。
.TP
\fBQM_MODULES\fP
.\" ret is set on ENOSPC
-ã\83ã\83¼ã\83\89ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå\85¨ã\81¦ã\81®ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81®å\90\8då\89\8dã\82\92è¿\94ã\81\99ã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\81«ã\81¯ã\80\81ã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81\8cé \86ã\81«å\85¥ã\82\8bã\80\82 è¿\94ã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ \fIret\fP
+ã\83ã\83¼ã\83\89ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå\85¨ã\81¦ã\81®ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81®å\90\8då\89\8dã\82\92è¿\94ã\81\99ã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81¯ã\80\81ã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81\8cé \86ã\81«å\85¥ã\82\8bã\80\82 è¿\94ã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ \fIret\fP
にはモジュールの数が設定される。
.TP
\fBQM_DEPS\fP
.\" ret is set on ENOSPC
-æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81\8c使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bå\85¨ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81®å\90\8då\89\8dã\82\92è¿\94ã\81\99ã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\81«ã\81¯ã\80\81ã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81\8cé \86ã\81«å\85¥ã\82\8bã\80\82 è¿\94ã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ \fIret\fP
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81\8c使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bå\85¨ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81®å\90\8då\89\8dã\82\92è¿\94ã\81\99ã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81¯ã\80\81ã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81\8cé \86ã\81«å\85¥ã\82\8bã\80\82 è¿\94ã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ \fIret\fP
にはモジュールの数が設定される。
.TP
\fBQM_REFS\fP
.\" ret is set on ENOSPC
指定されたモジュールを使用している全モジュールの名前を返す。 これは \fBQM_DEPS\fP と逆の機能である。
-ã\83\90ã\83\83ã\83\95ã\82¡ã\81«ã\81¯ã\80\81ã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81\8cé \86ã\81«å\85¥ã\82\8bã\80\82 è¿\94ã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ \fIret\fP にはモジュールの数が設定される。
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81¯ã\80\81ã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81\8cé \86ã\81«å\85¥ã\82\8bã\80\82 è¿\94ã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ \fIret\fP にはモジュールの数が設定される。
.TP
\fBQM_SYMBOLS\fP
.\" ret is set on ENOSPC
-カーネルまたは指定されたモジュールがエクスポートしているシンボルと 値を返す。 バッファのデータは、
+ã\82«ã\83¼ã\83\8dã\83«ã\81¾ã\81\9fã\81¯æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81\8cã\82¨ã\82¯ã\82¹ã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\82\8bã\82·ã\83³ã\83\9cã\83«ã\81¨ å\80¤ã\82\92è¿\94ã\81\99ã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\87ã\83¼ã\82¿ã\81¯ã\80\81
以下の構造体の配列にヌル終端された文字列が続く形となる。
.in +4n
.nf
\fIname\fP の値は、 \fIbuf\fP の先頭からの文字列までのオフセット文字数である。 \fIret\fP にはシンボルの数が設定される。
.TP
\fBQM_INFO\fP
-指定されたモジュールに関する様々な情報を返す。 出力バッファのフォーマットは以下の形式となる:
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81«é\96¢ã\81\99ã\82\8bæ§\98ã\80\85ã\81ªæ\83\85å ±ã\82\92è¿\94ã\81\99ã\80\82 å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\81¯ä»¥ä¸\8bã\81®å½¢å¼\8fã\81¨ã\81ªã\82\8b:
.in +4n
.nf
\fIname\fP という名前のモジュールが存在しない。
.TP
\fBENOSPC\fP
-ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\81®å¤§ã\81\8dã\81\95ã\81\8cå°\8fã\81\95ã\81\99ã\81\8eã\82\8bã\80\82 \fIret\fP ã\81«ã\81¯æ\9c\80å°\8fé\99\90å¿\85è¦\81ã\81ªã\83\90ã\83\83ã\83\95ã\82¡のサイズが設定される。
+ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å¤§ã\81\8dã\81\95ã\81\8cå°\8fã\81\95ã\81\99ã\81\8eã\82\8bã\80\82 \fIret\fP ã\81«ã\81¯æ\9c\80å°\8fé\99\90å¿\85è¦\81ã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼のサイズが設定される。
.TP
\fBENOSYS\fP
\fBquery_module\fP() はこのバージョンのカーネルではサポートされていない (例えば、カーネルのバージョンが 2.6 以降)。
\fBquery_module\fP() システムコールは glibc ではサポートされていない。 glibc ヘッダーでは宣言は提供されていないが、
歴史の紆余曲折を経て glibc はこのシステムコールに対する ABI を公開していない。
-したがって、このシステムコールを利用するには、自分のコードの中で手動でインタフェースを宣言すればよい。 \fBsyscall\fP(2)
+ã\81\97ã\81\9fã\81\8cã\81£ã\81¦ã\80\81ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\92å\88©ç\94¨ã\81\99ã\82\8bã\81«ã\81¯ã\80\81è\87ªå\88\86ã\81®ã\82³ã\83¼ã\83\89ã\81®ä¸ã\81§æ\89\8bå\8b\95ã\81§ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92宣è¨\80ã\81\99ã\82\8cã\81°ã\82\88ã\81\84ã\80\82 \fBsyscall\fP(2)
を使ってシステムコールを起動できる。
.SH 関連項目
\fBcreate_module\fP(2), \fBdelete_module\fP(2), \fBget_kernel_syms\fP(2),
.\"
.TH READ 2 2014\-05\-04 Linux "Linux Programmer's Manual"
.SH 名前
-read \- ファイルディスクリプタから読み込む
+read \- ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8bã\82\89èªã\81¿è¾¼ã\82\80
.SH 書式
.nf
\fB#include <unistd.h>\fP
\fBssize_t read(int \fP\fIfd\fP\fB, void *\fP\fIbuf\fP\fB, size_t \fP\fIcount\fP\fB);\fP
.fi
.SH 説明
-\fBread\fP() はファイルディスクリプタ (file descriptor) \fIfd\fP から最大 \fIcount\fP バイトを \fIbuf\fP
+\fBread\fP() はファイルディスクリプター (file descriptor) \fIfd\fP から最大 \fIcount\fP バイトを \fIbuf\fP
で始まるバッファーへ読み込もうとする。
seek に対応しているファイルでは、read
.SH エラー
.TP
\fBEAGAIN\fP
-ファイルディスクリプタ \fIfd\fP がソケット以外のファイルを参照していて、 非停止 (nonblocking) モード (\fBO_NONBLOCK\fP)
-に設定されており、読み込みを行うと停止する状況にある。
+ファイルディスクリプター \fIfd\fP がソケット以外のファイルを参照していて、 非停止 (nonblocking) モード
+(\fBO_NONBLOCK\fP) に設定されており、読み込みを行うと停止する状況にある。
.TP
\fBEAGAIN\fP または \fBEWOULDBLOCK\fP
.\" Actually EAGAIN on Linux
-ファイルディスクリプタ \fIfd\fP がソケットを参照していて、非停止 (nonblocking) モード (\fBO_NONBLOCK\fP)
+ファイルディスクリプター \fIfd\fP がソケットを参照していて、非停止 (nonblocking) モード (\fBO_NONBLOCK\fP)
に設定されており、読み込みを行うと停止する状況にある。 POSIX.1\-2001 は、この場合にどちらのエラーを返すことも認めており、 これら 2
つの定数が同じ値を持つことも求めていない。 したがって、移植性が必要なアプリケーションでは、両方の可能性を 確認すべきである。
.TP
\fBEBADF\fP
-\fIfd\fP が有効なファイルディスクリプタでないか、読み込みのために オープン (open) されていない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\81\8bã\80\81èªã\81¿è¾¼ã\81¿ã\81®ã\81\9fã\82\81ã\81« ã\82ªã\83¼ã\83\97ã\83³ (open) ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.TP
\fBEFAULT\fP
\fIbuf\fP がアクセス可能なアドレス空間の外にある。
\fIbuf\fP に指定されたアドレス、 \fIcount\fP に指定された値、 現在のファイルオフセットのいずれかの アラインメントが不適切である。
.TP
\fBEINVAL\fP
-\fIfd\fP が \fBtimerfd_create\fP(2) の呼び出しで作成されたが、 \fBread\fP() に間違ったサイズのバッファが渡された。
+\fIfd\fP ã\81\8c \fBtimerfd_create\fP(2) ã\81®å\91¼ã\81³å\87ºã\81\97ã\81§ä½\9cæ\88\90ã\81\95ã\82\8cã\81\9fã\81\8cã\80\81 \fBread\fP() ã\81«é\96\93é\81\95ã\81£ã\81\9fã\82µã\82¤ã\82ºã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8c渡ã\81\95ã\82\8cã\81\9fã\80\82
さらなる情報は \fBtimerfd_create\fP(2) を参照のこと。
.TP
\fBEIO\fP
-I/O ã\82¨ã\83©ã\83¼ã\80\82ã\81\93ã\82\8cã\81¯ä¾\8bã\81\88ã\81°ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\83\90ã\83\83ã\82¯ã\82°ã\83©ã\83³ã\83\89ã\83»ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\81§ã\80\81ã\81\9dã\82\8cã\82\92å\88¶å¾¡ã\81\97ã\81¦ã\81\84ã\82\8b端æ\9c«ã\81\8bã\82\89èªã\81¿è¾¼ã\82\82ã\81\86ã\81¨ã\81\97ã\80\81 \fBSIGTTIN\fP ã\81\8cç\84¡è¦\96
+I/O エラー。これは例えばプロセスがバックグランドプロセスグループで、それを制御している端末から読み込もうとし、 \fBSIGTTIN\fP が無視
(ignore) または禁止 (blocking) されている場合や、 そのプロセスグループが孤立 (orphan) している場合に起こる。
またディスクやテープを読んでいる時に低レベル I/O エラー が発生した場合にも起こる。
.TP
.\"
.TH READAHEAD 2 2014\-03\-15 Linux "Linux Programmer's Manual"
.SH 名前
-readahead \- å\89\8dã\82\82ã\81£ã\81¦ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\83\9aã\83¼ã\82¸ã\83»ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81«èªã\81¿è¾¼ã\82\80
+readahead \- 前もってファイルをページキャッシュに読み込む
.SH 書式
.nf
\fB#define _GNU_SOURCE\fP /* feature_test_macros(7) 参照 */
\fBreadahead\fP() はファイルの先読みを行い、そのファイルに対する後の読み込みがキャッシュから行われ、ディスク I/O で停止しないようにする
(この条件を満たせるのは、先読みは十分早く行われ、システムの他の動作によりその後にキャッシュからページがフラッシュされない場合である)。
-\fIfd\fP å¼\95ã\81\8dæ\95°ã\81¯èªã\81¿è¾¼ã\81¿ã\82\92è¡\8cã\81\86ã\83\95ã\82¡ã\82¤ã\83«ã\82\92è\98å\88¥ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿である。 \fIoffset\fP 引き数はデータの読み込み開始位置を指定し、
+\fIfd\fP å¼\95ã\81\8dæ\95°ã\81¯èªã\81¿è¾¼ã\81¿ã\82\92è¡\8cã\81\86ã\83\95ã\82¡ã\82¤ã\83«ã\82\92è\98å\88¥ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼である。 \fIoffset\fP 引き数はデータの読み込み開始位置を指定し、
\fIcount\fP は読み込むデータのバイト数を指定する。 ディスク I/O はページ単位で実行されるので、 実際には \fIoffset\fP
はページ境界に切り下げられ、読み込みバイト数は \fI(offset+count)\fP より小さくない次のページ境界まで切り上げられる。
\fBreadahead\fP() はファイルの末尾を越えた範囲まで読み出しを行うことはない。 \fIfd\fP
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿でない、または 読み込み用にオープンされていない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼でない、または 読み込み用にオープンされていない。
.TP
\fBEINVAL\fP
\fIfd\fP が参照しているファイルが、 \fBreadahead\fP() を行うことができないタイプのファイルであった。
.SH 準拠
\fBreadahead\fP() システムコールは Linux 固有であり、移植を考慮したプログラムでは 使用を避けるべきである。
.SH 注意
-いくつかの 32 ビットアーキテクチャでは、このシステムコールの呼び出しシグネチャーが違っている。 理由は \fBsyscall\fP(2)
+ã\81\84ã\81\8fã\81¤ã\81\8bã\81® 32 ã\83\93ã\83\83ã\83\88ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®å\91¼ã\81³å\87ºã\81\97ã\82·ã\82°ã\83\8dã\83\81ã\83£ã\83¼ã\81\8cé\81\95ã\81£ã\81¦ã\81\84ã\82\8bã\80\82 ç\90\86ç\94±ã\81¯ \fBsyscall\fP(2)
で説明されている。
.SH バグ
\fBreadahead\fP() は読み込みをバックグラウンドで行うようにスケジューリングを行い、すぐに返る。
.\"
.TH READDIR 2 2013\-06\-21 Linux "Linux Programmer's Manual"
.SH 名前
-readdir \- ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\82¨ã\83³ã\83\88ã\83ªを読み込む
+readdir \- ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼を読み込む
.SH 書式
.nf
.sp
\fI注\fP: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。
.SH 説明
-ã\81\93ã\82\8cã\81¯ã\81\82ã\81ªã\81\9fã\81®è\88\88å\91³ã\82\92ã\82\82ã\81£ã\81¦ã\81\84ã\82\8bé\96¢æ\95°ã\81§ã\81¯ã\81ªã\81\84ã\80\82 POSIX æº\96æ\8b ã\81® C ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\83»ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ \fBreaddir\fP(3) ã\82\92è¦\8bã\82\8bã\81\93ã\81¨ã\80\82
-ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81¯è£¸ã\81®ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\83»ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«ã\81¤ã\81\84ã\81¦ è¨\98è¿°ã\81\97ã\81¦ã\81\84ã\82\8bã\81\8cã\80\81ã\81\93ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ \fBgetdents\fP(2)
+これはあなたの興味をもっている関数ではない。 POSIX 準拠の C ライブラリインターフェースについては \fBreaddir\fP(3) を見ること。
+このページは裸のカーネルのシステムコールインターフェースについて 記述しているが、このインターフェースは \fBgetdents\fP(2)
によって取って代わられた。
.PP
-\fBreaddir\fP() は、ファイルディスクリプタ \fIfd\fP が参照しているディレクトリから \fIold_linux_dirent\fP
-構造体を読み込み、 \fIdirp\fP で指されたバッファに格納する。 \fIcount\fP 引き数は(ほとんどの \fIold_linux_dirent\fP
+\fBreaddir\fP() は、ファイルディスクリプター \fIfd\fP が参照しているディレクトリから \fIold_linux_dirent\fP
+æ§\8bé\80 ä½\93ã\82\92èªã\81¿è¾¼ã\81¿ã\80\81 \fIdirp\fP ã\81§æ\8c\87ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82 \fIcount\fP å¼\95ã\81\8dæ\95°ã\81¯(ã\81»ã\81¨ã\82\93ã\81©ã\81® \fIold_linux_dirent\fP
構造体の読み込みにおいて)無視される
.PP
\fIold_linux_dirent\fP 構造体は以下のように宣言される:
.SH エラー
.TP
\fBEBADF\fP
-ファイルディスクリプタ \fIfd\fP が不正である。
+ファイルディスクリプター \fIfd\fP が不正である。
.TP
\fBEFAULT\fP
引き数が呼び出したプロセスのアドレス空間外を指している。
そのようなディレクトリは存在しない。
.TP
\fBENOTDIR\fP
-ファイルディスクリプタがディレクトリを参照していない。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.SH 準拠
-ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81¯ Linux ç\89¹æ\9c\89ã\81§ã\81\82ã\82\8bã\80\82
+このシステムコールは Linux 特有である。
.SH 注意
glibc はこのシステムコールに対するラッパー関数を提供していない。 \fBsyscall\fP(2) を使って呼び出すこと。
\fIold_linux_dirent\fP 構造体を自分自身で定義する必要がある。しかし、たいていはこのシステムコールではなく \fBreaddir\fP(3)
\fBreadlinkat\fP() では以下のエラーも発生する。
.TP
\fBEBADF\fP
-\fIdirfd\fP が有効なファイルディスクリプタではない。
+\fIdirfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
-\fIpathname\fP が相対パスで、 \fIdirfd\fP がディレクトリ以外のファイルを参照しているファイルディスクリプタである。
+\fIpathname\fP ã\81\8cç\9b¸å¯¾ã\83\91ã\82¹ã\81§ã\80\81 \fIdirfd\fP ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä»¥å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH バージョン
\fBreadlinkat\fP() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポートはバージョン 2.4 で glibc
に追加された。
で宣言されていた。現在では、返り値の型は \fIssize_t\fP である (返り値 \fIssize_t\fP は POSIX.1\-2001 で (新たに)
必須となった)。
-é\9d\99ç\9a\84ã\81ªå¤§ã\81\8dã\81\95ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92使ã\81\86ã\81¨ã\80\81 ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81®å\86\85容ã\82\92æ ¼ç´\8dã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªé \98å\9f\9fã\81\8cã\81ªã\81\84å ´å\90\88ã\81\8cã\81\82ã\82\8bã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡に必要なサイズは、
+é\9d\99ç\9a\84ã\81ªå¤§ã\81\8dã\81\95ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92使ã\81\86ã\81¨ã\80\81 ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81®å\86\85容ã\82\92æ ¼ç´\8dã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªé \98å\9f\9fã\81\8cã\81ªã\81\84å ´å\90\88ã\81\8cã\81\82ã\82\8bã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼に必要なサイズは、
そのシンボリックリンクに対して \fBlstat\fP(2) の呼び出しで返される \fIstat.st_size\fP の値から取得できる。 ただし、
\fBreadlink\fP() や \fBreadlinkat\fP() が書き込んだバイト数をチェックして、
シンボリックリンクのサイズが二つの呼び出しの間で増えていないことを確認すべきである。 \fBreadlink\fP() や \fBreadlinkat\fP()
-ç\94¨ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92å\8b\95ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\8bæ\96¹æ³\95ã\81§ã\82\82ã\80\81 ã\83\90ã\83\83ã\83\95ã\82¡サイズとして \fIPATH_MAX\fP を使用する場合に共通する移植性の問題を解決することができる。
+ç\94¨ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92å\8b\95ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\8bæ\96¹æ³\95ã\81§ã\82\82ã\80\81 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼サイズとして \fIPATH_MAX\fP を使用する場合に共通する移植性の問題を解決することができる。
なぜなら、POSIX では、 システムがそのような上限値を定義していない場合には、 \fIPATH_MAX\fP
が定義されることが保証されていないからである。
.SS "glibc での注意"
を使用するモードにフォールバックする。 \fIpathname\fP が相対パスの場合、 glibc は \fIdirfd\fP 引き数に対応する
\fI/proc/self/fd\fP のシンボリックリンクに基づいてパス名を構成する。
.SH 例
-以下のプログラムは、 \fBreadlink\fP() が必要とするバッファを、
+以ä¸\8bã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\80\81 \fBreadlink\fP() ã\81\8cå¿\85è¦\81ã\81¨ã\81\99ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92ã\80\81
\fBlstat\fP() が提供する情報に基づいて動的に割り当てる。
また、両方の呼び出し間で競合条件がないことを保証している。
.nf
.\"
.TH READV 2 2015\-01\-22 Linux "Linux Programmer's Manual"
.SH 名前
-readv, writev, preadv, pwritev \- 複数のバッファへの読み書きを行なう
+readv, writev, preadv, pwritev \- è¤\87æ\95°ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®èªã\81¿æ\9b¸ã\81\8dã\82\92è¡\8cã\81ªã\81\86
.SH 書式
.nf
\fB#include <sys/uio.h>\fP
.sp
\fBpreadv\fP(), \fBpwritev\fP(): _BSD_SOURCE
.SH 説明
-\fBreadv\fP() システムコールは、ファイルディスクリプタ \fIfd\fP に関連付けられた
-ファイルから、 \fIiovcnt\fP 個のバッファ分のデータを読み込み、 \fIiov\fP で指定
-されたバッファに格納する ("scatter input";「ばらまき入力」)。
+\fBreadv\fP() システムコールは、ファイルディスクリプター \fIfd\fP に関連付けられた
+ファイルから、 \fIiovcnt\fP 個のバッファー分のデータを読み込み、 \fIiov\fP で指定
+ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\99ã\82\8b ("scatter input";ã\80\8cã\81°ã\82\89ã\81¾ã\81\8då\85¥å\8a\9bã\80\8d)ã\80\82
.PP
-\fBwritev\fP() システムコールは、 \fIiov\fP で指定されたバッファから最大 \fIiovcnt\fP
-個のバッファ分のデータを取り出し、 ファイルディスクリプタ \fIfd\fP に関連付けら
+\fBwritev\fP() ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\80\81 \fIiov\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8bã\82\89æ\9c\80大 \fIiovcnt\fP
+個のバッファー分のデータを取り出し、 ファイルディスクリプター \fIfd\fP に関連付けら
れたファイルに書き込む ("gather output";「かき集め出力」)。
.PP
-ポインタ \fIiov\fP は \fIiovec\fP 構造体の配列へのポインタである。 \fIiovec\fP 構造体は \fI<sys/uio.h>\fP
-で以下のように定義されている:
+ポインター \fIiov\fP は \fIiovec\fP 構造体の配列へのポインターである。 \fIiovec\fP 構造体は
+\fI<sys/uio.h>\fP で以下のように定義されている:
.PP
.br
.in +4n
.fi
.in
.PP
-\fBreadv\fP() システムコールは、複数のバッファにデータを読み込む点を除いて
+\fBreadv\fP() ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\80\81è¤\87æ\95°ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\83\87ã\83¼ã\82¿ã\82\92èªã\81¿è¾¼ã\82\80ç\82¹ã\82\92é\99¤ã\81\84ã\81¦
\fBread\fP(2) と全く同様の動作を行う。
.PP
-\fBwritev\fP() システムコールは、複数のバッファのデータを書き出す点以外は
+\fBwritev\fP() ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\80\81è¤\87æ\95°ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\87ã\83¼ã\82¿ã\82\92æ\9b¸ã\81\8då\87ºã\81\99ç\82¹ä»¥å¤\96ã\81¯
\fBwrite\fP(2) と全く同様の動作を行う。
.PP
-バッファは配列の順序で処理される。これは、 \fBreadv\fP() が \fIiov\fP[0] が完全に一杯になるまでデータを詰めてから、
-\fIiov\fP[1] などに進むことを意味する (データが十分ない場合は、 \fIiov\fP が指すバッファのいずれも一杯にならない)。 同様に、
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯é\85\8då\88\97ã\81®é \86åº\8fã\81§å\87¦ç\90\86ã\81\95ã\82\8cã\82\8bã\80\82ã\81\93ã\82\8cã\81¯ã\80\81 \fBreadv\fP() ã\81\8c \fIiov\fP[0] ã\81\8cå®\8cå\85¨ã\81«ä¸\80æ\9d¯ã\81«ã\81ªã\82\8bã\81¾ã\81§ã\83\87ã\83¼ã\82¿ã\82\92è©°ã\82\81ã\81¦ã\81\8bã\82\89ã\80\81
+\fIiov\fP[1] ã\81ªã\81©ã\81«é\80²ã\82\80ã\81\93ã\81¨ã\82\92æ\84\8få\91³ã\81\99ã\82\8b (ã\83\87ã\83¼ã\82¿ã\81\8cå\8d\81å\88\86ã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81 \fIiov\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\81\84ã\81\9aã\82\8cã\82\82ä¸\80æ\9d¯ã\81«ã\81ªã\82\89ã\81ªã\81\84)ã\80\82 å\90\8cæ§\98ã\81«ã\80\81
\fBwritev\fP() は \fIiov\fP[0] の内容を全部書き出してから \fIiov\fP[1] などに進む。
.PP
\fBreadv\fP() と \fBwritev\fP() によるデータ転送は atomic に行われる。つまり、 \fBwritev\fP()
によるデータ書き込みは一つのブロックとして行われ、他のプロセスの write による書き込みと混ざり合うことはない (例外に関しては
\fBpipe\fP(7) を参照のこと)。同様に、 \fBreadv\fP() はファイルから連続するデータブロックが読み出すことが保証され、
-同じファイル記述 (file description; \fBopen\fP(2) 参照) を参照するファイルディスクリプタを持つ他のスレッドやプロセスが
+å\90\8cã\81\98ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿° (file description; \fBopen\fP(2) å\8f\82ç\85§) ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92æ\8c\81ã\81¤ä»\96ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\82\84ã\83\97ã\83ã\82»ã\82¹ã\81\8c
実行した read 操作の影響を受けることはない。
.SS "preadv() と pwritev()"
\fBpreadv\fP() システムコールは \fBreadv\fP() と \fBpreadv\fP(2) の機能を
以降では、 (Linux カーネルのバージョン 2.6.32 以降が必須条件となり) glibc
のラッパー関数は常にシステムコールを直接呼び出すようになっている。
.SH バグ
-ファイルディスクリプタに対する操作を行う \fBreadv\fP() や \fBwritev\fP() と、
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\99ã\82\8bæ\93\8dä½\9cã\82\92è¡\8cã\81\86 \fBreadv\fP() ã\82\84 \fBwritev\fP() ã\81¨ã\80\81
標準入出力ライブラリの関数をごちゃまぜにして呼ぶのはお薦めしない。
どんな結果になるかは定義されておらず、おそらく期待する結果は
得られないだろう。
.LP
スーパーユーザーだけが \fBreboot\fP() を呼び出すことができる。
.LP
-ä¸\8aè¿°ã\81®ã\82¢ã\82¯ã\82·ã\83§ã\83³ã\81®å®\9fé\9a\9bã\81®å\8a¹æ\9e\9cã\81¯ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82 i386 ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£では、現在のところ (2.1.122) 付加引数は
+ä¸\8aè¿°ã\81®ã\82¢ã\82¯ã\82·ã\83§ã\83³ã\81®å®\9fé\9a\9bã\81®å\8a¹æ\9e\9cã\81¯ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82 i386 ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼では、現在のところ (2.1.122) 付加引数は
何も行わないが、再起動のタイプをカーネルのコマンドライン引数 ("reboot=...") によって定めることができる。 これには warm または
cold と、 hard または BIOS 経由の再起動を 設定できる。
.SS "PID 名前空間内での動作"
これらはコネクションレス型のソケットにも接続指向 (connection\-oriened) 型のソケットにも使用できる。 このページでは、まずこれら 3
つのシステムコールすべてに共通の機能について説明し、 システムコール間の違いについて説明する。
.PP
-これらの三つのシステムコールはいずれも、成功した場合にはメッセージの長さを返す。 メッセージが長過ぎて指定されたバッファに入り切らなかった場合には、
+ã\81\93ã\82\8cã\82\89ã\81®ä¸\89ã\81¤ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\81\84ã\81\9aã\82\8cã\82\82ã\80\81æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\81«ã\81¯ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81®é\95·ã\81\95ã\82\92è¿\94ã\81\99ã\80\82 ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81\8cé\95·é\81\8eã\81\8eã\81¦æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8aå\88\87ã\82\89ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81
メッセージを受信したソケットの種類によっては余分のバイトが捨てられる かもしれない。
.PP
ソケットに受け取るメッセージが存在しなかった場合、 受信用のコールはメッセージが到着するまで待つ。 ただし、ソケットが非停止 (nonblocking)
\fIflags\fP 引き数には、以下の値を 1つ以上、ビット単位の論理和 を取ったものを指定する:
.TP
\fBMSG_CMSG_CLOEXEC\fP (\fBrecvmsg\fP() のみ; Linux 2.6.23)
-(\fBunix\fP(7) で説明されている) \fBSCM_RIGHTS\fP 操作を使って UNIX ドメインのファイルディスクリプタ経由で受信した
-ファイルディスクリプタについて close\-on\-exec フラグをセットする。 このフラグは、 \fBopen\fP(2) の \fBO_CLOEXEC\fP
+(\fBunix\fP(7) で説明されている) \fBSCM_RIGHTS\fP 操作を使って UNIX ドメインのファイルディスクリプター経由で受信した
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ã\81¤ã\81\84ã\81¦ close\-on\-exec ã\83\95ã\83©ã\82°ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ã\80\81 \fBopen\fP(2) ã\81® \fBO_CLOEXEC\fP
フラグと同じ理由で有用である。
.TP
\fBMSG_DONTWAIT\fP (Linux 2.2 以降)
\fBMSG_ERRQUEUE\fP (Linux 2.2 以降)
このフラグを指定すると、 キューに入れられたエラーをソケットのエラーキューから取りだせるようになる。 このエラーは補助メッセージに組み込まれて渡され、
この補助メッセージの種別はプロトコルに依存する (IPv4 の場合は \fBIP_RECVERR\fP)。
-ã\83¦ã\83¼ã\82¶ã\81¯å\8d\81å\88\86ã\81ªã\82µã\82¤ã\82ºã\81®ã\83\90ã\83\83ã\83\95ã\82¡を用意しなければならない。 補助メッセージに関するより詳細な情報は \fBcmsg\fP(3) および \fBip\fP(7)
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯å\8d\81å\88\86ã\81ªã\82µã\82¤ã\82ºã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼を用意しなければならない。 補助メッセージに関するより詳細な情報は \fBcmsg\fP(3) および \fBip\fP(7)
を参照のこと。 エラーの原因となったオリジナルパケットのペイロードは、 \fImsg_iovec\fP 経由で通常のデータとして渡される。
エラーを起こしたデータグラムのオリジナルの宛先アドレスは、 \fImsg_name\fP 経由で参照できる。
.IP
(これは \fIcmsghdr\fP の \fIcmsg_len\fP メンバーでチェックできる)。
受信エラーの場合は \fBMSG_ERRQUIE\fP が \fImsghdr\fP にセットされる。
エラーが渡された後には、キューに入っている次のエラーに基いて、
-å\87¦ç\90\86å¾\85ã\81¡ã\81®ã\82½ã\82±ã\83\83ã\83\88ã\83»ã\82¨ã\83©ã\83¼ã\81\8cå\86\8dç\94\9fæ\88\90ã\81\95ã\82\8cã\80\81次ã\81®ã\82½ã\82±ã\83\83ã\83\88æ\93\8dä½\9cã\81®é\9a\9bã\81«æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82
+処理待ちのソケットエラーが再生成され、次のソケット操作の際に渡される。
このエラーは \fIsock_extended_err\fP 構造体で提供される:
.in +4n
.in
.IP
\fIee_errno\fP にはキューに入れられたエラーの \fIerrno\fP が入っている。 \fIee_origin\fP
-ã\81«ã\81¯ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81\9få ´æ\89\80ã\81®ã\82ªã\83ªã\82¸ã\83³ã\83»ã\82³ã\83¼ã\83\89 (origin code) ã\81\8cå\85¥ã\81£ã\81¦ã\81\84ã\82\8bã\80\82 ä»\96ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\83\97ã\83ã\83\88ã\82³ã\83«ä¾\9då\98ã\81§ã\81\82ã\82\8bã\80\82
+にはエラーが発生した場所のオリジンコード (origin code) が入っている。 他のフィールドはプロトコル依存である。
\fBSO_EE_OFFENDER\fP マクロは、この補助的なメッセージを引き数に取って、
-ã\82¨ã\83©ã\83¼ã\81®ç\99ºç\94\9fã\81\97ã\81\9fã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8cä¸\8dæ\98\8eã\81®å ´å\90\88ã\81«ã\81¯ã\80\81 \fIsockaddr\fP ã\81® \fIsa_family\fP
-メンバーが \fBAF_UNSPEC\fP になっている。 \fIsockaddr\fP の他のフィールドは不定である。
+ã\82¨ã\83©ã\83¼ã\81®ç\99ºç\94\9fã\81\97ã\81\9fã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8cä¸\8dæ\98\8eã\81®å ´å\90\88ã\81«ã\81¯ã\80\81 \fIsockaddr\fP ã\81®
+\fIsa_family\fP メンバーが \fBAF_UNSPEC\fP になっている。 \fIsockaddr\fP の他のフィールドは不定である。
エラーの発生したパケットのペイロードは通常のデータとして渡される。
.IP
ローカルなエラーの場合はアドレスは渡されない
(これは \fIcmsghdr\fP の \fIcmsg_len\fP メンバーでチェックできる)。
受信エラーの場合は \fBMSG_ERRQUIE\fP が \fImsghdr\fP にセットされる。
エラーが渡された後には、キューに入っている次のエラーに基いて、
-å\87¦ç\90\86å¾\85ã\81¡ã\81®ã\82½ã\82±ã\83\83ã\83\88ã\83»ã\82¨ã\83©ã\83¼ã\81\8cå\86\8dç\94\9fæ\88\90ã\81\95ã\82\8cã\80\81次ã\81®ã\82½ã\82±ã\83\83ã\83\88æ\93\8dä½\9cã\81®é\9a\9bã\81«æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82
+処理待ちのソケットエラーが再生成され、次のソケット操作の際に渡される。
.TP
\fBMSG_OOB\fP
-ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ã\80\81é\80\9a常ã\81®ã\83\87ã\83¼ã\82¿ã\83»ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81§ã\81¯å\8f\97ä¿¡ã\81§ã\81\8dã\81ªã\81\84 帯å\9f\9få¤\96 (out\-of\-band) ã\83\87ã\83¼ã\82¿ã\81®å\8f\97ä¿¡ã\82\92è¦\81æ±\82ã\81\99ã\82\8bã\80\82 ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81«ã\82\88ã\81£ã\81¦ã\81¯ã\80\81
-é\80\9a常ã\81®ã\83\87ã\83¼ã\82¿ã\83»ã\82ã\83¥ã\83¼ã\81®å\85\88é ã\81«é\80\9fé\81\94ã\83\87ã\83¼ã\82¿ã\82\92ç½®ã\81\8fã\82\82ã\81®ã\81\8cã\81\82ã\82\8bã\81\8cã\80\81 ã\81\9dã\81®ã\82\88ã\81\86ã\81ªã\83\97ã\83ã\83\88ã\82³ã\83«ã\81§ã\81¯ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ä½¿ç\94¨ã\81§ã\81\8dã\81ªã\81\84ã\80\82
+このフラグは、通常のデータストリームでは受信できない 帯域外 (out\-of\-band) データの受信を要求する。 プロトコルによっては、
+通常のデータキューの先頭に速達データを置くものがあるが、 そのようなプロトコルではこのフラグは使用できない。
.TP
\fBMSG_PEEK\fP
このフラグを指定すると、 受信キューの最初のデータを返すとき、キューからデータを削除しない。
\fBMSG_TRUNC\fP (Linux 2.2 以降)
raw ソケット (\fBAF_PACKET\fP)、 Internet datagram ソケット (Linux 2.4.27/2.6.8 以降)、
netlink (Linux 2.6.22 以降) ソケット、 UNIX datagram ソケット (Linux 3.4 以降)
-の場合、パケットやデータグラムの長さが渡したバッファよりも長かった場合にも、 パケットやデータグラムの実際の長さを返す。
+ã\81®å ´å\90\88ã\80\81ã\83\91ã\82±ã\83\83ã\83\88ã\82\84ã\83\87ã\83¼ã\82¿ã\82°ã\83©ã\83 ã\81®é\95·ã\81\95ã\81\8c渡ã\81\97ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\88ã\82\8aã\82\82é\95·ã\81\8bã\81£ã\81\9få ´å\90\88ã\81«ã\82\82ã\80\81 ã\83\91ã\82±ã\83\83ã\83\88ã\82\84ã\83\87ã\83¼ã\82¿ã\82°ã\83©ã\83 ã\81®å®\9fé\9a\9bã\81®é\95·ã\81\95ã\82\92è¿\94ã\81\99ã\80\82
Internet ストリームソケットでの利用については \fBtcp\fP(7) を参照。
.TP
このフラグは、要求した量いっぱいのデータが到着するまで、 操作を停止 (block) するよう要求する。 但し、シグナルを受信したり、エラーや切断
(disconnect) が発生したり、 次に受信されるデータが異なる型だったりした場合には、 要求した量よりデータが少なくても返ることがある。
.SS recvfrom()
-\fBrecvfrom\fP() は受信したメッセージをバッファ \fIbuf\fP に格納する。 呼び出し元はバッファサイズを \fIlen\fP
+\fBrecvfrom\fP() は受信したメッセージをバッファー \fIbuf\fP に格納する。 呼び出し元はバッファーサイズを \fIlen\fP
で指定しなければならない。
.\" (Note: for datagram sockets in both the UNIX and Internet domains,
.\" [The above notes on AF_UNIX and AF_INET sockets apply as at
.\" Kernel 2.4.18. (MTK, 22 Jul 02)]
\fIsrc_addr\fP が NULL 以外で、下層のプロトコルからメッセージの送信元アドレスが分かる場合、 この送信元アドレスが \fIsrc_addr\fP
-が指すバッファに格納される。 この場合、 \fIaddrlen\fP は入出力両用の引き数となる。 呼び出し前に、呼び出し元は \fIsrc_addr\fP
-に割り当てたバッファの大きさで初期化しておくべきである。 返ってくる時には、 \fIaddrlen\fP
-は送信元アドレスの実際の大きさに変更される。渡されたバッファが小さ過ぎる場合には、返されるアドレスの末尾は 切り詰められる。この場合には、
+ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®å ´å\90\88ã\80\81 \fIaddrlen\fP ã\81¯å\85¥å\87ºå\8a\9b両ç\94¨ã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81ªã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\97å\89\8dã\81«ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯ \fIsrc_addr\fP
+ã\81«å\89²ã\82\8aå½\93ã\81¦ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å¤§ã\81\8dã\81\95ã\81§å\88\9dæ\9c\9få\8c\96ã\81\97ã\81¦ã\81\8aã\81\8fã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 è¿\94ã\81£ã\81¦ã\81\8fã\82\8bæ\99\82ã\81«ã\81¯ã\80\81 \fIaddrlen\fP
+ã\81¯é\80\81ä¿¡å\85\83ã\82¢ã\83\89ã\83¬ã\82¹ã\81®å®\9fé\9a\9bã\81®å¤§ã\81\8dã\81\95ã\81«å¤\89æ\9b´ã\81\95ã\82\8cã\82\8bã\80\82渡ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cå°\8fã\81\95é\81\8eã\81\8eã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81è¿\94ã\81\95ã\82\8cã\82\8bã\82¢ã\83\89ã\83¬ã\82¹ã\81®æ\9c«å°¾ã\81¯ å\88\87ã\82\8aè©°ã\82\81ã\82\89ã\82\8cã\82\8bã\80\82ã\81\93ã\81®å ´å\90\88ã\81«ã\81¯ã\80\81
\fIaddrlen\fP では、呼び出し時に渡された値よりも大きな値が返される。
.\"
struct iovec *msg_iov; /* scatter/gather 配列 */
size_t msg_iovlen; /* msg_iov の要素数 */
void *msg_control; /* 補助データ (後述) */
- size_t msg_controllen; /* 補助データバッファ長 */
+ size_t msg_controllen; /* 補助データバッファー長 */
int msg_flags; /* 受信メッセージのフラグ */
};
.fi
.in
.PP
-フィールド \fImsg_name\fP は、 ソケットが接続されていない場合に送信元アドレスを返すのに使用されるバッファを指す。
-ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\81¯å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8c確ä¿\9dã\81\99ã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯å\91¼ã\81³å\87ºã\81\97å\89\8dã\81« \fImsg_namelen\fP ã\81«ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡の大きさを設定しなければならない。
+ã\83\95ã\82£ã\83¼ã\83«ã\83\89 \fImsg_name\fP ã\81¯ã\80\81 ã\82½ã\82±ã\83\83ã\83\88ã\81\8cæ\8e¥ç¶\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\81«é\80\81ä¿¡å\85\83ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92è¿\94ã\81\99ã\81®ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92æ\8c\87ã\81\99ã\80\82
+ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8c確ä¿\9dã\81\99ã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯å\91¼ã\81³å\87ºã\81\97å\89\8dã\81« \fImsg_namelen\fP ã\81«ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼の大きさを設定しなければならない。
呼び出しが成功した場合、呼び出しから返って来た際には \fImsg_namelen\fP には返されるアドレスの長さが入っている。
アプリケーションが送信元アドレスを知る必要がない場合には、 \fImsg_name\fP に NULL を指定することができる。
に説明がある。
\fImsg_control\fP フィールドは \fImsg_controllen\fP の長さを持ち、他のプロトコル制御メッセージや
-種ã\80\85ã\81®è£\9cå\8a©ã\83\87ã\83¼ã\82¿ã\81®ã\81\9fã\82\81ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿である。 \fBrecvmsg\fP() を呼ぶ際には、 \fImsg_controllen\fP に
-\fImsg_control\fP のバッファの長さを入れておく必要がある。 コールが成功して返った場合、制御メッセージ列の長さが入っている。
+種ã\80\85ã\81®è£\9cå\8a©ã\83\87ã\83¼ã\82¿ã\81®ã\81\9fã\82\81ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼である。 \fBrecvmsg\fP() を呼ぶ際には、 \fImsg_controllen\fP に
+\fImsg_control\fP ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®é\95·ã\81\95ã\82\92å\85¥ã\82\8cã\81¦ã\81\8aã\81\8få¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82 ã\82³ã\83¼ã\83«ã\81\8cæ\88\90å\8a\9fã\81\97ã\81¦è¿\94ã\81£ã\81\9få ´å\90\88ã\80\81å\88¶å¾¡ã\83¡ã\83\83ã\82»ã\83¼ã\82¸å\88\97ã\81®é\95·ã\81\95ã\81\8cå\85¥ã\81£ã\81¦ã\81\84ã\82\8bã\80\82
.PP
メッセージの形式は以下の通り:
.in +4n
補助データは、 \fBcmsg\fP(3) に定義されたマクロ経由でのみアクセスすべきである。
.PP
例をあげると、 Linux はこの補助データのメカニズムを、 UNIX ドメインソケット上での拡張エラーや IP オプション、
-ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿の受け渡しに利用している。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼の受け渡しに利用している。
.PP
\fImsghdr\fP の \fImsg_flags\fP フィールドは \fBrecvmsg\fP()
からのリターン時に設定される。ここにはいくつかのフラグが入る。
\fBSOCK_SEQPACKET\fP 型のソケットで使用される)。
.TP
\fBMSG_TRUNC\fP
-データグラムが与えられたバッファより大きかったために、 データグラムのはみ出した部分が捨てられたことを示す。
+ã\83\87ã\83¼ã\82¿ã\82°ã\83©ã\83 ã\81\8cä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\88ã\82\8a大ã\81\8dã\81\8bã\81£ã\81\9fã\81\9fã\82\81ã\81«ã\80\81 ã\83\87ã\83¼ã\82¿ã\82°ã\83©ã\83 ã\81®ã\81¯ã\81¿å\87ºã\81\97ã\81\9fé\83¨å\88\86ã\81\8cæ\8d¨ã\81¦ã\82\89ã\82\8cã\81\9fã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82
.TP
\fBMSG_CTRUNC\fP
-補助データのためのバッファが不足したために、 制御データの一部が捨てられたことを示す。
+è£\9cå\8a©ã\83\87ã\83¼ã\82¿ã\81®ã\81\9fã\82\81ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cä¸\8d足ã\81\97ã\81\9fã\81\9fã\82\81ã\81«ã\80\81 å\88¶å¾¡ã\83\87ã\83¼ã\82¿ã\81®ä¸\80é\83¨ã\81\8cæ\8d¨ã\81¦ã\82\89ã\82\8cã\81\9fã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82
.TP
\fBMSG_OOB\fP
速達データや帯域外データを受信したことを示す。
.TP
\fBMSG_ERRQUEUE\fP
-ã\83\87ã\83¼ã\82¿ã\81¯å\8f\97ä¿¡ã\81\97ã\81ªã\81\8bã\81£ã\81\9fã\81\8c ã\82½ã\82±ã\83\83ã\83\88ã\81®ã\82¨ã\83©ã\83¼ã\83»ã\82ã\83¥ã\83¼ã\81\8bã\82\89æ\8b¡å¼µã\82¨ã\83©ã\83¼ã\82\92å\8f\97ä¿¡ã\81\97ã\81\9fã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82
+データは受信しなかったが ソケットのエラーキューから拡張エラーを受信したことを示す。
.SH 返り値
これらのコールは受信したバイト数を返す。 エラーの場合は \-1 を返し、 \fIerrno\fP にエラーを示す値を設定する。
ストリームソケットに対する受信要求バイト数が 0 だった場合も、 値 0 が返される。
.SH エラー
-ã\81\93ã\82\8cã\82\89ã\81¯ã\82½ã\82±ã\83\83ã\83\88層ã\81§ç\99ºç\94\9fã\81\99ã\82\8bä¸\80è\88¬ç\9a\84ã\81ªã\82¨ã\83©ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ä»\96ã\81®ã\82¨ã\83©ã\83¼ã\81\8cä¸\8b層ã\81®ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83»ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81§ç\94\9fæ\88\90ã\81\95ã\82\8cã\80\81 è¿\94ã\81\95ã\82\8cã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
+これらはソケット層で発生する一般的なエラーである。 他のエラーが下層のプロトコルモジュールで生成され、 返されるかもしれない。
それらのマニュアルを参照すること。
.TP
\fBEAGAIN\fP または \fBEWOULDBLOCK\fP
つの定数が同じ値を持つことも求めていない。 したがって、移植性が必要なアプリケーションでは、両方の可能性を 確認すべきである。
.TP
\fBEBADF\fP
-引き数 \fIsockfd\fP が不正なディスクリプタである。
+å¼\95ã\81\8dæ\95° \fIsockfd\fP ã\81\8cä¸\8dæ£ã\81ªã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBECONNREFUSED\fP
リモートのホストでネットワーク接続が拒否された (よくある理由としては、要求したサービスが起動されていないなどがある)。
.TP
\fBEFAULT\fP
-å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿がプロセスのアドレス空間外を指している。
+å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼がプロセスのアドレス空間外を指している。
.TP
\fBEINTR\fP
データを受信する前に、シグナルが配送されて割り込まれた。 \fBsignal\fP(7) 参照。
不正な引き数が渡された。
.TP
\fBENOMEM\fP
-\fBrecvmsg\fP() のためのメモリが確保できなかった。
+\fBrecvmsg\fP() ã\81®ã\81\9fã\82\81ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c確ä¿\9dã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBENOTCONN\fP
ソケットに接続指向プロトコルが割り当てられており、 まだ接続されていない (\fBconnect\fP(2) と \fBaccept\fP(2)
このシステムコールを使うと一度の呼び出しでソケットから複数のメッセージを受信することができる (アプリケーションによっては性能上のメリットがある)。
他に \fBrecvmsg\fP(2) から拡張されている点としては、受信操作におけるタイムアウトのサポートがある。
-\fIsockfd\fP 引き数は、データを受信するソケットのファイルディスクリプタである。
+\fIsockfd\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\83\87ã\83¼ã\82¿ã\82\92å\8f\97ä¿¡ã\81\99ã\82\8bã\82½ã\82±ã\83\83ã\83\88ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
\fImsgvec\fP 引き数は \fImmsghdr\fP 構造体の配列である。 この配列の大きさは \fIvlen\fP で指定する。
.in +4n
.nf
struct mmsghdr {
- struct msghdr msg_hdr; /* メッセージヘッダ */
- unsigned int msg_len; /* このヘッダで受信されたバイト数 */
+ struct msghdr msg_hdr; /* メッセージヘッダー */
+ unsigned int msg_len; /* ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\81§å\8f\97ä¿¡ã\81\95ã\82\8cã\81\9fã\83\90ã\82¤ã\83\88æ\95° */
};
.fi
.in
.PP
\fImsg_hdr\fP フィールドは、 \fBrecvmsg\fP(2) で説明されている \fImsghdr\fP 構造体である。 \fImsg_len\fP
-フィールドは、 このエントリで返されるメッセージのバイト数で、 このヘッダに対して \fBrecvmsg\fP(2) を呼び出した場合の返り値と同じ値が入る。
+フィールドは、 このエントリーで返されるメッセージのバイト数で、 このヘッダーに対して \fBrecvmsg\fP(2)
+を呼び出した場合の返り値と同じ値が入る。
\fIflags\fP 引き数には複数のフラグを論理和 (OR) で指定できる。 フラグは、 \fBrecvmsg\fP(2)
で説明されているものに加えて、以下が使用できる。
\fBMSG_WAITFORONE\fP (Linux 2.6.34 以降)
最初のメッセージを受信後に \fBMSG_DONTWAIT\fP を有効にする。
.PP
-\fItimeout\fP 引き数は \fIstruct timespec\fP (\fBclock_gettime\fP(2) 参照) へのポインタで、
+\fItimeout\fP å¼\95ã\81\8dæ\95°ã\81¯ \fIstruct timespec\fP (\fBclock_gettime\fP(2) å\8f\82ç\85§) ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\80\81
この構造体で受信操作のタイムアウト (秒とナノ秒) を指定する (\fIただし、バグを参照のこと\fP)
(待ち時間はシステムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。 \fItimeout\fPが NULL
の場合、 受信操作は無期限に停止 (block) する。
\fBrecvmmsg\fP() は Linux 固有である。
.SH 例
.PP
-以下のプログラムは、 \fBrecvmmsg\fP() を使って複数のメッセージをソケットから受信し、それらを複数のバッファに格納する。
-呼び出しは、すべてのバッファにメッセージが格納されるか、 指定したタイムアウト時間が経過すると返る。
+以ä¸\8bã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\80\81 \fBrecvmmsg\fP() ã\82\92使ã\81£ã\81¦è¤\87æ\95°ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92ã\82½ã\82±ã\83\83ã\83\88ã\81\8bã\82\89å\8f\97ä¿¡ã\81\97ã\80\81ã\81\9dã\82\8cã\82\89ã\82\92è¤\87æ\95°ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82
+å\91¼ã\81³å\87ºã\81\97ã\81¯ã\80\81ã\81\99ã\81¹ã\81¦ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\81\8bã\80\81 æ\8c\87å®\9aã\81\97ã\81\9fã\82¿ã\82¤ã\83 ã\82¢ã\82¦ã\83\88æ\99\82é\96\93ã\81\8cçµ\8cé\81\8eã\81\99ã\82\8bã\81¨è¿\94ã\82\8bã\80\82
以下のコマンドは、 ランダムな数字が入った UDP データグラムを定期的に生成する。
.in +4n
やがてより低速なカーネル内でのエミュレーションに置き換えられる予定である。
このシステムコールを使用しているアプリケーションは少ないが、こうしたアプリケーションは代替手段への移行を検討すべきである。
-\fBremap_file_pages\fP() システムコールは非線形なマッピング、 つまりファイルのページがメモリ上で連続しない順番でマップされる
+\fBremap_file_pages\fP() システムコールは非線形なマッピング、 つまりファイルのページがメモリー上で連続しない順番でマップされる
マッピングを作成するために使われる。 \fBremap_file_pages\fP() を使う方が \fBmmap\fP(2)
-を繰り返して使うより優れている点は、 前者の方法ではカーネルが VMA (Virtual Memory Area, 仮想メモリ領域)
+を繰り返して使うより優れている点は、 前者の方法ではカーネルが VMA (Virtual Memory Area, 仮想メモリー領域)
データ構造体を追加で作成する必要がないことである。
非線形マッピングを作成するためには、 以下のようなステップを実行する:
.SH 注意
.\" commit 3ee6dafc677a68e461a7ddafc94a580ebab80735
Linux 2.6.23 以降、 \fBremap_file_pages\fP() は tmpfs, hugetlbfs, ramfs
-などのインメモリファイルシステム上にのみ非線形マッピングを作成する。 裏にデータストアを持つファイルシステム上では、
+ã\81ªã\81©ã\81®ã\82¤ã\83³ã\83¡ã\83¢ã\83ªã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81«ã\81®ã\81¿é\9d\9eç·\9aå½¢ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82 è£\8fã\81«ã\83\87ã\83¼ã\82¿ã\82¹ã\83\88ã\82¢ã\82\92æ\8c\81ã\81¤ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81§ã\81¯ã\80\81
\fBremap_file_pages\fP() は、 ファイルのどの部分がどのアドレスにマッピングされているかの調整が、 \fBmmap\fP(2)
を使った場合ほど効率的ではない。
.SH 関連項目
.SH 説明
\fBrename\fP() はファイルの名前を変更し、必要ならばディレクトリ間の移動を行なう。 そのファイルに対する (\fBlink\fP(2)
を使用して作られた) 他のハードリンク (hard link) には影響はない。 オープン済の \fIoldpath\fP
-に対するファイルディスクリプタにも影響はない。
+ã\81«å¯¾ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ã\82\82å½±é\9f¿ã\81¯ã\81ªã\81\84ã\80\82
\fInewpath\fP が既に存在する場合、それは不可分操作で (atomically) 置き換えられる (ただし、いくつかの条件がある;
以下の「エラー」のセクションを参照)。 そのため、 \fInewpath\fP にアクセスしようとしている他のプロセスがファイルを見失うことはない (訳註:
\fBEACCES\fP
\fIoldpath\fP または \fInewpath\fP を含んでいるディレクトリの書き込み許可がない。 または、 \fIoldpath\fP または
\fInewpath\fP のディレクトリ部分のどれかに検索許可がない。 または、 \fIoldpath\fP がディレクトリで (\fI..\fP
-エントリを更新するのに必要な) 書き込み許可がない (\fBpath_resolution\fP(7) も参照)。
+ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92æ\9b´æ\96°ã\81\99ã\82\8bã\81®ã\81«å¿\85è¦\81ã\81ª) æ\9b¸ã\81\8dè¾¼ã\81¿è¨±å\8f¯ã\81\8cã\81ªã\81\84 (\fBpath_resolution\fP(7) ã\82\82å\8f\82ç\85§)ã\80\82
.TP
\fBEBUSY\fP
\fIoldpath\fP または \fInewpath\fP がディレクトリで、何らかのプロセスが使用中
ただし、そのような状況で、システムが他に返すエラーがない場合には \fBEBUSY\fP を返すことが許されている。)
.TP
\fBEDQUOT\fP
-ディスクブロックか inode がそのファイルシステムのユーザクォータに達していた。
+ã\83\87ã\82£ã\82¹ã\82¯ã\83\96ã\83ã\83\83ã\82¯ã\81\8b inode ã\81\8cã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82¯ã\82©ã\83¼ã\82¿ã\81«é\81\94ã\81\97ã\81¦ã\81\84ã\81\9fã\80\82
.TP
\fBEFAULT\fP
\fIoldpath\fP や \fInewpath\fP がアクセス可能なアドレス空間の外を指している。
十分なカーネルメモリーがない。
.TP
\fBENOSPC\fP
-そのファイルを含んでいるデバイスに新しいディレクトリエントリを 作成するための空きがない。
+ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\90«ã\82\93ã\81§ã\81\84ã\82\8bã\83\87ã\83\90ã\82¤ã\82¹ã\81«æ\96°ã\81\97ã\81\84ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 ä½\9cæ\88\90ã\81\99ã\82\8bã\81\9fã\82\81ã\81®ç©ºã\81\8dã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
\fIoldpath\fP か \fInewpath\fP に含まれているディレクトリ部分が 実際にはディレクトリでない。 または \fIoldpath\fP
\fBrenameat\fP() と \fBrenameat2\fP() では以下のエラーも発生する。
.TP
\fBEBADF\fP
-\fIolddirfd\fP か \fInewdirfd\fP が有効なファイルディスクリプタでない。
+\fIolddirfd\fP ã\81\8b \fInewdirfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
\fIoldpath\fP が相対パスで、 \fIolddirfd\fP がディレクトリ以外のファイルを参照している。または \fInewpath\fP と
\fIpathname\fP か \fIpathname\fP に含まれているディレクトリ部分が、実際には、ディレクトリでない。
.TP
\fBENOTEMPTY\fP
-ディレクトリ \fIpathname\fP に \fI.\fP と \fI..\fP 以外のエントリがある。または、 \fIpathname\fP を構成する最後の要素が
+ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ª \fIpathname\fP ã\81« \fI.\fP ã\81¨ \fI..\fP 以å¤\96ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\81\82ã\82\8bã\80\82ã\81¾ã\81\9fã\81¯ã\80\81 \fIpathname\fP ã\82\92æ§\8bæ\88\90ã\81\99ã\82\8bæ\9c\80å¾\8cã\81®è¦\81ç´ ã\81\8c
\&\fI..\fP である。 POSIX.1\-2001 は、この状況で \fBEEXIST\fP を返すことを認めている。
.TP
\fBEPERM\fP
\fIpathname\fP を含んでいるディレクトリにスティッキービット(sticky\-bit) (\fBS_ISVTX\fP)
-が設定されていて、プロセスの実効ユーザーID が削除しようとするファイルの ユーザID とそのファイルを含むディレクトリのユーザーID
+が設定されていて、プロセスの実効ユーザーID が削除しようとするファイルの ユーザーID とそのファイルを含むディレクトリのユーザーID
のどちらとも異なり、 プロセスも権限 (Linux では \fBCAP_FOWNER\fP ケーパビリティ) がない。
.TP
\fBEPERM\fP
.SH エラー
.TP
\fBEFAULT\fP
-情報をユーザ空間にコピーする時に問題が起きた。
+情報をユーザー空間にコピーする時に問題が起きた。
.TP
\fBEINVAL\fP
PID が不正である。
に限定することで、 一つの CPU での実行を停止してから別の CPU で実行を再開するときに発生する キャッシュ無効化 (cache
invalidation) による性能面の劣化を避けることもできる。
-CPU affinity マスクは「CPU の集合」を表す \fIcpu_set_t\fP 構造体で表現され、 \fIcpu_set_t\fP へのポインタ
+CPU affinity マスクは「CPU の集合」を表す \fIcpu_set_t\fP 構造体で表現され、 \fIcpu_set_t\fP へのポインター
\fImask\fP で指定される。 CPU 集合を操作するためのマクロ群については \fBCPU_SET\fP(3) で記載されている。
\fBsched_setaffinity\fP() は、スレッド ID が \fIpid\fP のスレッドの CPU affinity マスクを \fImask\fP
.SH エラー
.TP
\fBEFAULT\fP
-指定されたメモリ番地が不正である。
+指定されたメモリー番地が不正である。
.TP
\fBEINVAL\fP
システム上に現在実際に存在し、かつ "cpuset" 機構が課す制限においてそのスレッドに対して許可されている プロセッサが、 affinity
\fIcpusetsize\fP がカーネルで使われている affinity マスクのサイズより小さい。
.TP
\fBEPERM\fP
-(\fBsched_setaffinity\fP()) 呼び出し元のスレッドに適切な特権がなかった。 呼び出し元は、実効ユーザ ID が \fIpid\fP
-で識別されるスレッドの実ユーザ ID または実効ユーザ ID と同じであるか、 \fBCAP_SYS_NICE\fP ケーパビリティ (capability)
-を持たなければならない。
+(\fBsched_setaffinity\fP()) 呼び出し元のスレッドに適切な特権がなかった。 呼び出し元は、実効ユーザー ID が \fIpid\fP
+で識別されるスレッドの実ユーザー ID または実効ユーザー ID と同じであるか、 \fBCAP_SYS_NICE\fP ケーパビリティ
+(capability) を持たなければならない。
.TP
\fBESRCH\fP
ID が \fIpid\fP のスレッドが見つからなかった。
.SH バージョン
CPU affinity システムコールは Linux kernel 2.5.8 で導入された。 これらのシステムコールのラッパー関数は glibc
-2.3 で導入された。 最初は、glibc のインタフェースには \fIunsigned int\fP 型の \fIcpusetsize\fP 引き数が入っていた。
-glibc 2.3.3 では \fIcpusetsize\fP 引き数が削除されたが、glibc 2.3.4 で \fIsize_t\fP 型で復活した。
+2.3 で導入された。 最初は、glibc のインターフェースには \fIunsigned int\fP 型の \fIcpusetsize\fP
+引き数が入っていた。 glibc 2.3.3 では \fIcpusetsize\fP 引き数が削除されたが、glibc 2.3.4 で \fIsize_t\fP
+型で復活した。
.SH 準拠
これらのシステムコールは Linux 固有である。
.SH 注意
\fBfork\fP(2) 経由で生成された子プロセスは親プロセスの CPU affinity マスクを継承する。 affinity マスクは
\fBexecve\fP(2) の前後で保存される。
.SS "C ライブラリとカーネル ABI の違い"
-このマニュアルページでは CPU affinity コールの glibc インタフェースを
-説明している。実際のシステムコールインタフェースは少し違っており、 実際の実装では CPU 集合は簡単なビットマスクであるという実状を反映し、
+ã\81\93ã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81§ã\81¯ CPU affinity ã\82³ã\83¼ã\83«ã\81® glibc ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92
+説æ\98\8eã\81\97ã\81¦ã\81\84ã\82\8bã\80\82å®\9fé\9a\9bã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯å°\91ã\81\97é\81\95ã\81£ã\81¦ã\81\8aã\82\8aã\80\81 å®\9fé\9a\9bã\81®å®\9fè£\85ã\81§ã\81¯ CPU é\9b\86å\90\88ã\81¯ç°¡å\8d\98ã\81ªã\83\93ã\83\83ã\83\88ã\83\9eã\82¹ã\82¯ã\81§ã\81\82ã\82\8bã\81¨ã\81\84ã\81\86å®\9fç\8a¶ã\82\92å\8f\8dæ\98 ã\81\97ã\80\81
\fImask\fP の型が \fIunsigned long\ *\fP となっている。 成功時には、生の \fBsched_getaffinity\fP()
システムコール自身は \fIcpumask_t\fP データ型の (バイト単位の) 大きさを返す。 \fIcpumask_t\fP はカーネル内部で CPU
集合のビットマスクを表現するのに 使われているデータ型である。
で失敗するので、 \fIsize\fP をカーネル構造体のサイズに更新する必要がある。
.IP
ユーザー空間の \fIsched_attr\fP 構造体のサイズがカーネル構造体のサイズと一致しなかった場合の上記の動作は、
-このインタフェースを将来拡張できるようにするためである。 サイズが大きい構造体を渡す行儀の良くないアプリケーションも、 将来カーネルの
+ã\81\93ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92å°\86æ\9d¥æ\8b¡å¼µã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\9fã\82\81ã\81§ã\81\82ã\82\8bã\80\82 ã\82µã\82¤ã\82ºã\81\8c大ã\81\8dã\81\84æ§\8bé\80 ä½\93ã\82\92渡ã\81\99è¡\8cå\84\80ã\81®è\89¯ã\81\8fã\81ªã\81\84ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\82\82ã\80\81 å°\86æ\9d¥ã\82«ã\83¼ã\83\8dã\83«ã\81®
\fIsched_attr\fP 構造体のサイズが大きくなったとしてもおかしくならない。 この仕組みにより、 将来的には、 大きなユーザー空間
\fIsched_attr\fP 構造体があることを知っているアプリケーションで、
大きいサイズの構造体に対応していない古いカーネル上で動作しているかを判定することができる。
.PP
.\"
.\"
-\fIflags\fP 引き数は、このインタフェースの将来の拡張のために用意されている。 現在の実装では 0 を指定しなければならない。
+\fIflags\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\81\93ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®å°\86æ\9d¥ã\81®æ\8b¡å¼µã\81®ã\81\9fã\82\81ã\81«ç\94¨æ\84\8fã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ç\8f¾å\9c¨ã\81®å®\9fè£\85ã\81§ã\81¯ 0 ã\82\92æ\8c\87å®\9aã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.SS sched_getattr()
\fBsched_getattr\fP() システムコールは、 \fIpid\fP で指定された ID
を持つスレッドのスケジューリングポリシーと関連する属性を取得する。 \fIpid\fP が 0
取得したスケジューリング属性は、 \fIattr\fP が指す \fIsched_attr\fP 構造体の各フィールドに格納される。 カーネルは
\fIattr.size\fP に \fIsched_attr\fP 構造体のサイズを設定する。
-呼び出し側が提供した \fIattr\fP バッファがカーネルの \fIsched_attr\fP 構造体よりも大きい場合、
+å\91¼ã\81³å\87ºã\81\97å\81´ã\81\8cæ\8f\90ä¾\9bã\81\97ã\81\9f \fIattr\fP ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cã\82«ã\83¼ã\83\8dã\83«ã\81® \fIsched_attr\fP æ§\8bé\80 ä½\93ã\82\88ã\82\8aã\82\82大ã\81\8dã\81\84å ´å\90\88ã\80\81
ユーザー空間構造体の残りのバイトは変更されない。 呼び出し側が提供した構造体がカーネルの \fIsched_attr\fP 構造体よりも小さく、
カーネルが値を返すのにもっと大きな空間が必要な場合、 \fBsched_getattr\fP() はエラー \fBE2BIG\fP で失敗する。
-\fBsched_setattr\fP() と同様、 この動作はこのインタフェースの将来の拡張性を考慮してのものである。
+\fBsched_setattr\fP() ã\81¨å\90\8cæ§\98ã\80\81 ã\81\93ã\81®å\8b\95ä½\9cã\81¯ã\81\93ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®å°\86æ\9d¥ã\81®æ\8b¡å¼µæ\80§ã\82\92è\80\83æ\85®ã\81\97ã\81¦ã\81®ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82
-\fIflags\fP 引き数は、このインタフェースの将来の拡張のために用意されている。 現在の実装では 0 を指定しなければならない。
+\fIflags\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\81\93ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®å°\86æ\9d¥ã\81®æ\8b¡å¼µã\81®ã\81\9fã\82\81ã\81«ç\94¨æ\84\8fã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ç\8f¾å\9c¨ã\81®å®\9fè£\85ã\81§ã\81¯ 0 ã\82\92æ\8c\87å®\9aã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.SH 返り値
成功した場合は \fBsched_setattr\fP() と \fBsched_getattr\fP() は 0 を返す。 エラーの場合は \-1 が返され、
エラーの原因を示す値が \fIerrno\fP に設定される。
さらに、 \fBsched_setattr\fP() は以下の理由でも失敗する。
.TP
\fBE2BIG\fP
-\fIsize\fP と \fIattr\fP で指定されたバッファがカーネル構造体よりも大きく、 一つ以上の超過バイトが 0 でなかった。
+\fIsize\fP ã\81¨ \fIattr\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cã\82«ã\83¼ã\83\8dã\83«æ§\8bé\80 ä½\93ã\82\88ã\82\8aã\82\82大ã\81\8dã\81\8fã\80\81 ä¸\80ã\81¤ä»¥ä¸\8aã\81®è¶\85é\81\8eã\83\90ã\82¤ã\83\88ã\81\8c 0 ã\81§ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBEBUSY\fP
\fBSCHED_DEADLINE\fP の流入制御の失敗については \fBsched\fP(7) を参照。
.\"
.TH SCHED_SETPARAM 2 2014\-05\-11 Linux "Linux Programmer's Manual"
.SH 名前
-sched_setparam, sched_getparam \- スケジューリングパラメータの設定と取得を行なう
+sched_setparam, sched_getparam \- ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®è¨å®\9aã\81¨å\8f\96å¾\97ã\82\92è¡\8cã\81ªã\81\86
.SH 書式
.nf
\fB#include <sched.h>\fP
.fi
.SH 説明
\fBsched_setparam\fP() は \fIpid\fP で指定されたプロセスのスケジューリング方針 (scheduling policy) に
-é\96¢é\80£ã\81\99ã\82\8bã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82 \fIpid\fP ã\81\8c 0 ã\81ªã\82\89ã\81°ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81\8cè¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82 å¼\95ã\81\8dæ\95° \fIparam\fP
-の解釈は、 \fIpid\fP で指定されたプロセスのスケジューリング方針によって異なる。 Linux でサポートされているスケジューリング方針の説明は
-\fBsched\fP(7) を参照のこと。
+é\96¢é\80£ã\81\99ã\82\8bã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82 \fIpid\fP ã\81\8c 0 ã\81ªã\82\89ã\81°ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8cè¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82 å¼\95ã\81\8dæ\95°
+\fIparam\fP の解釈は、 \fIpid\fP で指定されたプロセスのスケジューリング方針によって異なる。 Linux
+でサポートされているスケジューリング方針の説明は \fBsched\fP(7) を参照のこと。
-\fBsched_getparam\fP() は \fIpid\fP で指定されたプロセスのスケジューリングパラメータを取得する。 \fIpid\fP が 0
-ならば、呼び出し元のプロセスのパラメータを取得する。
+\fBsched_getparam\fP() ã\81¯ \fIpid\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81®ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8bã\80\82 \fIpid\fP ã\81\8c 0
+ã\81ªã\82\89ã\81°ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8bã\80\82
\fBsched_setparam\fP() はスレッドのスケジューリング方針における \fIparam\fP の妥当性をチェックする。
\fIparam\->sched_priority\fP の値は \fBsched_get_priority_min\fP(2) と
POSIX.1\-2001.
.SH 注意
.PP
-Linux では、スケジューリングパラメータは実際にはスレッド単位の属性である。 \fBsched\fP(7) 参照。
+Linux ã\81§ã\81¯ã\80\81ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯å®\9fé\9a\9bã\81«ã\81¯ã\82¹ã\83¬ã\83\83ã\83\89å\8d\98ä½\8dã\81®å±\9eæ\80§ã\81§ã\81\82ã\82\8bã\80\82 \fBsched\fP(7) å\8f\82ç\85§ã\80\82
.SH 関連項目
.ad l
.nh
.\"
.TH SCHED_SETSCHEDULER 2 2014\-10\-02 Linux "Linux Programmer's Manual"
.SH 名前
-sched_setscheduler, sched_getscheduler \- スケジューリングポリシーとパラメータを設定/取得する
+sched_setscheduler, sched_getscheduler \- ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\9dã\83ªã\82·ã\83¼ã\81¨ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92è¨å®\9a/å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <sched.h>\fP
が定義されている場合にのみ \fBsched_setscheduler\fP() と \fBsched_getscheduler\fP() が使用できる。
POSIX.1 は、非特権スレッドが \fBsched_setscheduler\fP() を呼び出すために必要な権限の詳細を規定しておらず、
-詳細はシステムにより異なる。 例えば、Solaris 7 のマニュアルページでは、 呼び出し元の実ユーザ ID または実効ユーザ ID が
-設定対象の実ユーザ ID か保存 (save) set\-user\-ID と 一致していなければならない、となっている。
+詳細はシステムにより異なる。 例えば、Solaris 7 のマニュアルページでは、 呼び出し元の実ユーザー ID または実効ユーザー ID が
+設定対象の実ユーザー ID か保存 (save) set\-user\-ID と 一致していなければならない、となっている。
.PP
-Linux では、 スケジューリングポリシーとスケジューリングパラメータは、 実際にはスレッド単位の属性である。 \fBgettid\fP(2)
+Linux ã\81§ã\81¯ã\80\81 ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\9dã\83ªã\82·ã\83¼ã\81¨ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\80\81 å®\9fé\9a\9bã\81«ã\81¯ã\82¹ã\83¬ã\83\83ã\83\89å\8d\98ä½\8dã\81®å±\9eæ\80§ã\81§ã\81\82ã\82\8bã\80\82 \fBgettid\fP(2)
の呼び出しの返り値をこのシステムコールの \fIpid\fP 引き数として渡すことができる。 \fIpid\fP に 0 を指定すると、
呼び出し元のスレッドの属性が設定される。 \fBgetpid\fP(2) コールからの返り値を \fIpid\fP に指定すると、
スレッドグループのメインスレッドの属性が設定される (POSIX スレッド API を使用している場合は、 \fBsched_*\fP(2)
.sp
\fBpselect\fP(): _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600
.SH 説明
-\fBselect\fP() や \fBpselect\fP() を使うと、プログラムで複数のファイルディスクリプタを監視し、
-一つ以上のファイルディスクリプタがある種の I/O 操作の 「ready (準備ができた)」状態 (例えば、読み込み可能になった状態)
-になるまで待つことができる。 ファイルディスクリプタが ready (準備ができた) とは、 (\fBread\fP(2) などの) 対応する I/O
+\fBselect\fP() ã\82\84 \fBpselect\fP() ã\82\92使ã\81\86ã\81¨ã\80\81ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§è¤\87æ\95°ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\9b£è¦\96ã\81\97ã\80\81
+ä¸\80ã\81¤ä»¥ä¸\8aã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\81\82ã\82\8b種ã\81® I/O æ\93\8dä½\9cã\81® ã\80\8cready (æº\96å\82\99ã\81\8cã\81§ã\81\8dã\81\9f)ã\80\8dç\8a¶æ\85\8b (ä¾\8bã\81\88ã\81°ã\80\81èªã\81¿è¾¼ã\81¿å\8f¯è\83½ã\81«ã\81ªã\81£ã\81\9fç\8a¶æ\85\8b)
+ã\81«ã\81ªã\82\8bã\81¾ã\81§å¾\85ã\81¤ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c ready (æº\96å\82\99ã\81\8cã\81§ã\81\8dã\81\9f) ã\81¨ã\81¯ã\80\81 (\fBread\fP(2) ã\81ªã\81©ã\81®) 対å¿\9cã\81\99ã\82\8b I/O
操作が停止 (block) なしに実行したり、 十分小さな \fBwrite\fP(2) を実行したりできる状態にあることを意味する。
.PP
\fBselect\fP() と \fBpselect\fP() の動作は同じであるが、以下の 3 点が異なる:
\fBselect\fP() は \fIsigmask\fP 引き数を持たない。その動作は \fIsigmask\fP に NULL を指定した場合の
\fBpselect\fP() と同じである。
.PP
-3 つの独立したファイルディスクリプタ集合の監視を行う。 \fIreadfds\fP に入れられたディスクリプタについては、読み込みが可能かどうかを 監視する
-(より正確にいうと、停止 (block) なしで読むことができるかを 調べる。ファイルの終端 (end\-of\-file) の場合も、
-ファイルディスクリプタは読み込み可能として扱われる)。 \fIwritefds\fP
-に入れられたディスクリプタについては、書き込み用に利用可能な領域があるかを監視する (ただし、大きな書き込みの場合には停止する可能性はある)。
+3 つの独立したファイルディスクリプター集合の監視を行う。 \fIreadfds\fP に入れられたディスクリプターについては、読み込みが可能かどうかを
+監視する (より正確にいうと、停止 (block) なしで読むことができるかを 調べる。ファイルの終端 (end\-of\-file) の場合も、
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯èªã\81¿è¾¼ã\81¿å\8f¯è\83½ã\81¨ã\81\97ã\81¦æ\89±ã\82\8fã\82\8cã\82\8b)ã\80\82 \fIwritefds\fP
+ã\81«å\85¥ã\82\8cã\82\89ã\82\8cã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\80\81æ\9b¸ã\81\8dè¾¼ã\81¿ç\94¨ã\81«å\88©ç\94¨å\8f¯è\83½ã\81ªé \98å\9f\9fã\81\8cã\81\82ã\82\8bã\81\8bã\82\92ç\9b£è¦\96ã\81\99ã\82\8b (ã\81\9fã\81 ã\81\97ã\80\81大ã\81\8dã\81ªæ\9b¸ã\81\8dè¾¼ã\81¿ã\81®å ´å\90\88ã\81«ã\81¯å\81\9cæ¢ã\81\99ã\82\8bå\8f¯è\83½æ\80§ã\81¯ã\81\82ã\82\8b)ã\80\82
\fIexceptfds\fP にあるものについては、例外の監視を行なう。システムコール終了時に、
-どのファイルディスクリプタの状態が実際に変化したか示すために、 集合の内容が変更される。
-ã\81\82ã\82\8b種å\88¥ã\81®ã\82¤ã\83\99ã\83³ã\83\88ã\82\92ç\9b£è¦\96ã\81\97ã\81\9fã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cä¸\80ã\81¤ã\82\82ã\81ªã\81\84å ´å\90\88ã\81«ã\81¯ã\80\81 対å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿集合に NULL を指定することができる。
+ã\81©ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ç\8a¶æ\85\8bã\81\8cå®\9fé\9a\9bã\81«å¤\89å\8c\96ã\81\97ã\81\9fã\81\8b示ã\81\99ã\81\9fã\82\81ã\81«ã\80\81 é\9b\86å\90\88ã\81®å\86\85容ã\81\8cå¤\89æ\9b´ã\81\95ã\82\8cã\82\8bã\80\82
+ã\81\82ã\82\8b種å\88¥ã\81®ã\82¤ã\83\99ã\83³ã\83\88ã\82\92ç\9b£è¦\96ã\81\97ã\81\9fã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cä¸\80ã\81¤ã\82\82ã\81ªã\81\84å ´å\90\88ã\81«ã\81¯ã\80\81 対å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼集合に NULL を指定することができる。
.PP
集合を操作するために 4 つのマクロが提供されている。 \fBFD_ZERO\fP() は集合を消去する。 \fBFD_SET\fP() と
-\fBFD_CLR\fP() はそれぞれ指定したファイルディスクリプタの集合への追加、削除を行う。 \fBFD_ISSET\fP()
-は集合にファイルディスクリプタがあるかどうか調べる; このマクロは \fBselect\fP() が終了した後に使うと便利である。
+\fBFD_CLR\fP() ã\81¯ã\81\9dã\82\8cã\81\9eã\82\8cæ\8c\87å®\9aã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®é\9b\86å\90\88ã\81¸ã\81®è¿½å\8a ã\80\81å\89\8aé\99¤ã\82\92è¡\8cã\81\86ã\80\82 \fBFD_ISSET\fP()
+ã\81¯é\9b\86å\90\88ã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\81\82ã\82\8bã\81\8bã\81©ã\81\86ã\81\8b調ã\81¹ã\82\8b; ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\81¯ \fBselect\fP() ã\81\8cçµ\82äº\86ã\81\97ã\81\9få¾\8cã\81«ä½¿ã\81\86ã\81¨ä¾¿å\88©ã\81§ã\81\82ã\82\8bã\80\82
.PP
-\fInfds\fP は 3 つの集合に含まれるファイルディスクリプタの最大値に 1 を足したものである。
+\fInfds\fP ã\81¯ 3 ã\81¤ã\81®é\9b\86å\90\88ã\81«å\90«ã\81¾ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\9c\80大å\80¤ã\81« 1 ã\82\92足ã\81\97ã\81\9fã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82
.PP
-\fItimeout\fP 引き数は、 \fBselect\fP() がファイルディスクリプタが ready になるのを待って停止する時間を指定する。
+\fItimeout\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81 \fBselect\fP() ã\81\8cã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c ready ã\81«ã\81ªã\82\8bã\81®ã\82\92å¾\85ã\81£ã\81¦å\81\9cæ¢ã\81\99ã\82\8bæ\99\82é\96\93ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82
呼び出しは以下のいずれかになるまで停止する。
.IP * 3
-ファイルディスクリプタが利用可能になる。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\88©ç\94¨å\8f¯è\83½ã\81«ã\81ªã\82\8bã\80\82
.IP *
-システムコールがシグナルハンドラにより割り込まれた。
+ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9fã\80\82
.IP *
タイムアウト時間が満了した。
.PP
\fBselect\fP() はすぐに復帰する (この機能はポーリング (polling) を行うのに便利である)。 \fItimeout\fP に NULL
(タイムアウトなし) が指定されると、 \fBselect\fP() は無期限に停止 (block) する。
.PP
-\fIsigmask\fP は、シグナルマスク (\fBsigprocmask\fP(2) を参照) へのポインタである。 \fIsigmask\fP が NULL
+\fIsigmask\fP ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\9eã\82¹ã\82¯ (\fBsigprocmask\fP(2) ã\82\92å\8f\82ç\85§) ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 \fIsigmask\fP ã\81\8c NULL
でない場合、 \fBpselect\fP() は \fIsigmask\fP が指しているシグナルマスクで現在のシグナルマスクを置き換えてから、 "select"
関数を実行し、 終了後にシグナルマスクを元のシグナルマスクに戻す。
.PP
pthread_sigmask(SIG_SETMASK, &origmask, NULL);
.fi
.PP
-\fBpselect\fP() が必要になる理由は、シグナルやファイルディスクリプタの状態変化を 待ちたいときには、競合状態を避けるために atomic
-なテストが必要になる からである。 (シグナルハンドラが大域フラグを設定して戻る場合を考えてみよう。 この大域フラグのテストに続けて
+\fBpselect\fP() ã\81\8cå¿\85è¦\81ã\81«ã\81ªã\82\8bç\90\86ç\94±ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\82\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ç\8a¶æ\85\8bå¤\89å\8c\96ã\82\92 å¾\85ã\81¡ã\81\9fã\81\84ã\81¨ã\81\8dã\81«ã\81¯ã\80\81競å\90\88ç\8a¶æ\85\8bã\82\92é\81¿ã\81\91ã\82\8bã\81\9fã\82\81ã\81« atomic
+ã\81ªã\83\86ã\82¹ã\83\88ã\81\8cå¿\85è¦\81ã\81«ã\81ªã\82\8b ã\81\8bã\82\89ã\81§ã\81\82ã\82\8bã\80\82 (ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8c大å\9f\9fã\83\95ã\83©ã\82°ã\82\92è¨å®\9aã\81\97ã\81¦æ\88»ã\82\8bå ´å\90\88ã\82\92è\80\83ã\81\88ã\81¦ã\81¿ã\82\88ã\81\86ã\80\82 ã\81\93ã\81®å¤§å\9f\9fã\83\95ã\83©ã\82°ã\81®ã\83\86ã\82¹ã\83\88ã\81«ç¶\9aã\81\91ã\81¦
\fBselect\fP() を呼び出すと、 シグナルがテストの直後かつ呼び出しの直前に届いた時には \fBselect\fP()
は永久にハングしてしまうかもしれない。 一方、 \fBpselect\fP() を使うと、まずシグナルを禁止 (block)
して、入ってくるシグナルを操作し、 望みの \fIsigmask\fP で \fBpselect\fP() を呼び出すことで、前記の競合を避けることができる。)
.\" Linux follows SUSv2 and sets the bit masks to zero upon a timeout.
Linux では、 \fBselect\fP() は \fItimeout\fP を変更し、残りの停止時間を反映するようになっているが、
他のほとんどの実装ではこのようになっていない (POSIX.1\-2001 はどちらの動作も認めている)。 このため、 \fItimeout\fP
-ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8b Linux ã\81®ã\82³ã\83¼ã\83\89ã\82\92ä»\96ã\81®ã\82ªã\83\9aã\83¬ã\83¼ã\83\86ã\82£ã\83³ã\82°ã\83»ã\82·ã\82¹ã\83\86ã\83 ã\81¸ 移æ¤\8dã\81\99ã\82\8bå ´å\90\88ã\80\81å\95\8fé¡\8cã\81\8cèµ·ã\81\93ã\82\8bã\80\82 ã\81¾ã\81\9fã\80\81ã\83«ã\83¼ã\83\97ã\81®ä¸ã\81§ \fItimeval\fP
+を参照している Linux のコードを他のオペレーティングシステムへ 移植する場合、問題が起こる。 また、ループの中で \fItimeval\fP
構造体を初期化せずにそのまま再利用して \fBselect\fP() を複数回行なっているコードを Linux へ移植する場合にも、問題が起こる。
\fBselect\fP() から復帰した後は \fItimeout\fP は未定義であると考えるべきである。
.SH 返り値
-成功した場合、 \fBselect\fP() と \fBpselect\fP() は更新された 3 つのディスクリプタ集合に含まれている
-ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®æ\95° (ã\81¤ã\81¾ã\82\8aã\80\81 \fIreadfds\fP, \fIwritefds\fP, \fIexceptfds\fP ä¸ã\81® 1 ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\83\93ã\83\83ã\83\88ã\81®ç·\8fæ\95°)
-ã\82\92è¿\94ã\81\99ã\80\82 ä½\95ã\82\82èµ·ã\81\93ã\82\89ã\81\9aã\81«æ\99\82é\96\93å\88\87ã\82\8cã\81«ã\81ªã\81£ã\81\9få ´å\90\88ã\80\81 ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®æ\95°ã\81¯ 0 ã\81«ã\81ªã\82\8bã\81\93ã\81¨ã\82\82ã\81\82ã\82\8bã\80\82 ã\82¨ã\83©ã\83¼ã\81ªã\82\89ã\81° \-1 ã\82\92è¿\94ã\81\97ã\80\81 \fIerrno\fP
-にエラーを示す値が設定される; ファイルディスクリプタ集合は変更されず、 \fItimeout\fP は不定となる。
+成功した場合、 \fBselect\fP() と \fBpselect\fP() は更新された 3 つのディスクリプター集合に含まれている
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\95° (ã\81¤ã\81¾ã\82\8aã\80\81 \fIreadfds\fP, \fIwritefds\fP, \fIexceptfds\fP ä¸ã\81® 1
+ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\83\93ã\83\83ã\83\88ã\81®ç·\8fæ\95°) ã\82\92è¿\94ã\81\99ã\80\82 ä½\95ã\82\82èµ·ã\81\93ã\82\89ã\81\9aã\81«æ\99\82é\96\93å\88\87ã\82\8cã\81«ã\81ªã\81£ã\81\9få ´å\90\88ã\80\81 ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\95°ã\81¯ 0 ã\81«ã\81ªã\82\8bã\81\93ã\81¨ã\82\82ã\81\82ã\82\8bã\80\82 ã\82¨ã\83©ã\83¼ã\81ªã\82\89ã\81° \-1 ã\82\92è¿\94ã\81\97ã\80\81
+\fIerrno\fP にエラーを示す値が設定される; ファイルディスクリプター集合は変更されず、 \fItimeout\fP は不定となる。
.SH エラー
.TP
\fBEBADF\fP
-ã\81\84ã\81\9aã\82\8cã\81\8bã\81®é\9b\86å\90\88ã\81«ç\84¡å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9f (ã\81\8aã\81\9dã\82\89ã\81\8fã\81¯ã\80\81ã\81\99ã\81§ã\81«ã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿か、
-エラーが発生したファイルディスクリプタが指定された)。
+ã\81\84ã\81\9aã\82\8cã\81\8bã\81®é\9b\86å\90\88ã\81«ç\84¡å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9f (ã\81\8aã\81\9dã\82\89ã\81\8fã\81¯ã\80\81ã\81\99ã\81§ã\81«ã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼か、
+ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9f)ã\80\82
.TP
\fBEINTR\fP
シグナルを受信した。
\fItimeout\fP に入っている値が不正である。
.TP
\fBENOMEM\fP
-内部テーブルにメモリを割り当てることができなかった。
+å\86\85é\83¨ã\83\86ã\83¼ã\83\96ã\83«ã\81«ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9fã\80\82
.SH バージョン
\fBpselect\fP() はカーネル 2.6.16 で Linux に追加された。 それ以前は、 \fBpselect\fP() は glibc
でエミュレートされていた (「バグ」の章を参照)。
.PP
\fBpselect\fP() は POSIX.1g と POSIX.1\-2001 で定義されている。
.SH 注意
-\fIfd_set\fP ã\81¯å\9bºå®\9aã\82µã\82¤ã\82ºã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\81§ã\81\82ã\82\8bã\80\82 è² ã\82\84 \fBFD_SETSIZE\fP 以ä¸\8aã\81®å\80¤ã\82\92æ\8c\81ã\81¤ \fIfd\fP ã\81«å¯¾ã\81\97ã\81¦ \fBFD_CLR\fP() ã\82\84
-\fBFD_SET\fP() を実行した場合、 どのような動作をするかは定義されていない。 また、 POSIX では \fIfd\fP
-は有効なファイルディスクリプタでなければならないと規定されている。
+\fIfd_set\fP ã\81¯å\9bºå®\9aã\82µã\82¤ã\82ºã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 è² ã\82\84 \fBFD_SETSIZE\fP 以ä¸\8aã\81®å\80¤ã\82\92æ\8c\81ã\81¤ \fIfd\fP ã\81«å¯¾ã\81\97ã\81¦ \fBFD_CLR\fP()
+や \fBFD_SET\fP() を実行した場合、 どのような動作をするかは定義されていない。 また、 POSIX では \fIfd\fP
+ã\81¯æ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\81¨è¦\8få®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
型宣言に関しては、昔ながらの状況では \fItimeval\fP 構造体の 2 つのフィールドは (上記のように) 両方とも \fIlong\fP
型であり、構造体は \fI<sys/time.h>\fP で定義されている。 POSIX.1\-2001 の下では、以下のようになっている。
glibc 2.0 では \fI<sys/select.h>\fP が提供する \fBpselect\fP() のプロトタイプが間違っている。
glibc 2.1 から 2.2.1 では \fB_GNU_SOURCE\fP が定義されている場合に、 \fBpselect\fP() が提供される。
glibc 2.2.2 以降では、 \fBpselect\fP() を使用するには、「書式」に記載された要件を満たす必要がある。
-.SS ã\83\9eã\83«ã\83\81ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³
+.SS マルチスレッドアプリケーション
.\"
-\fBselect\fP() で監視中のファイルディスクリプタが別のスレッドでクローズされた場合、どのような結果になるかは規定されていない。いくつかの
-UNIX システムでは、 \fBselect\fP() は停止 (block) せず、すぐ返り、ファイルディスクリプタが ready だと報告される
-(\fBselect\fP() ã\81\8cè¿\94ã\81£ã\81¦ã\81\8bã\82\89 I/O æ\93\8dä½\9cã\81\8cå®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\81¾ã\81§ã\81®é\96\93ã\81«ã\80\81 å\88¥ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cå\86\8d度ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81ªã\81\84é\99\90ã\82\8aã\80\81 ã\81\9dã\82\8c以é\99\8dã\81® I/O
-操作はおそらく失敗するだろう)。 Linux (や他のいくつかのシステム) では、 別のスレッドでファイルディスクリプタがクローズされても
+\fBselect\fP() ã\81§ç\9b£è¦\96ä¸ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\88¥ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81§ã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\81\9få ´å\90\88ã\80\81ã\81©ã\81®ã\82\88ã\81\86ã\81ªçµ\90æ\9e\9cã\81«ã\81ªã\82\8bã\81\8bã\81¯è¦\8få®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82ã\81\84ã\81\8fã\81¤ã\81\8bã\81®
+UNIX ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ã\80\81 \fBselect\fP() ã\81¯å\81\9cæ¢ (block) ã\81\9bã\81\9aã\80\81ã\81\99ã\81\90è¿\94ã\82\8aã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c ready ã\81 ã\81¨å ±å\91\8aã\81\95ã\82\8cã\82\8b
+(\fBselect\fP() ã\81\8cè¿\94ã\81£ã\81¦ã\81\8bã\82\89 I/O æ\93\8dä½\9cã\81\8cå®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\81¾ã\81§ã\81®é\96\93ã\81«ã\80\81 å\88¥ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\86\8d度ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81ªã\81\84é\99\90ã\82\8aã\80\81 ã\81\9dã\82\8c以é\99\8dã\81®
+I/O 操作はおそらく失敗するだろう)。 Linux (や他のいくつかのシステム) では、 別のスレッドでファイルディスクリプターがクローズされても
\fBselect\fP() には影響を与えない。
まとめると、このような場合に特定の動作に依存しているアプリケーションは「バグっている」と考えなければならない。
.SS "C ライブラリとカーネル ABI の違い"
これが POSIX.1\-2001 が要求している動作である。
\fBpselect6\fP() システムコールの最後の引き数は \fIsigset_t\ *\fP 型の
-ポインタではなく、以下に示す構造体である。
+ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\8fã\80\81以ä¸\8bã\81«ç¤ºã\81\99æ§\8bé\80 ä½\93ã\81§ã\81\82ã\82\8bã\80\82
.in +4
.nf
struct {
- const sigset_t *ss; /* シグナル集合へのポインタ */
+ const sigset_t *ss; /* シグナル集合へのポインター */
size_t ss_len; /* 'ss' が指すオブジェクトのサイズ
(バイト数) */
};
.fi
.in
-このようにすることで、ほとんどのアーキテクチャがサポートしている
+ã\81\93ã\81®ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81ã\81»ã\81¨ã\82\93ã\81©ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81\8cã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\82\8b
システムコールの引き数が最大で 6 個という事実を満たしつつ、
-\fBpselect6\fP() システムコールがシグナル集合へのポインタとシグナル集合
+\fBpselect6\fP() ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8cã\82·ã\82°ã\83\8aã\83«é\9b\86å\90\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\82·ã\82°ã\83\8aã\83«é\9b\86å\90\88
のサイズの両方を取得することができるのである。
.SH バグ
glibc 2.0 では、 \fIsigmask\fP 引き数を取らないバージョンの \fBpselect\fP() が提供されていた。
\fBpselect\fP() がないシステムにおいて、シグナルの捕捉を信頼性があり (移植
性も高い) 方法で行うには、 自己パイプ (self\-pipe) という技を使うとよい。
-この方法では、シグナルハンドラはパイプへ 1 バイトのデータを書き込み、
+ã\81\93ã\81®æ\96¹æ³\95ã\81§ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯ã\83\91ã\82¤ã\83\97ã\81¸ 1 ã\83\90ã\82¤ã\83\88ã\81®ã\83\87ã\83¼ã\82¿ã\82\92æ\9b¸ã\81\8dè¾¼ã\81¿ã\80\81
同じパイプのもう一端をメインプログラムの \fBselect\fP() で監視する (一杯に
なったパイプへの書き込みや空のパイプから読み出しを行った際に起こるであ
ろう停止 (blocking) を避けるためには、パイプへの読み書きの際には 非停止
.\" Stevens discusses a case where accept can block after select
.\" returns successfully because of an intervening RST from the client.
.\" Maybe the kernel should have returned EIO in such a situation?
-Linux では、 \fBselect\fP() がソケットファイルディスクリプタで "読み込みの準備ができた" と報告した場合でも、 この後で read
+Linux ã\81§ã\81¯ã\80\81 \fBselect\fP() ã\81\8cã\82½ã\82±ã\83\83ã\83\88ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ "èªã\81¿è¾¼ã\81¿ã\81®æº\96å\82\99ã\81\8cã\81§ã\81\8dã\81\9f" ã\81¨å ±å\91\8aã\81\97ã\81\9få ´å\90\88ã\81§ã\82\82ã\80\81 ã\81\93ã\81®å¾\8cã\81§ read
を行うと停止 (block) することがある。このような状況は、 例えば、データが到着したが、検査でチェックサム異常が見つかり廃棄された時
-などに起こりえる。他にもファイルディスクリプタが準備できたと間違って 報告される状況が起こるかもしれない。
+ã\81ªã\81©ã\81«èµ·ã\81\93ã\82\8aã\81\88ã\82\8bã\80\82ä»\96ã\81«ã\82\82ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cæº\96å\82\99ã\81§ã\81\8dã\81\9fã\81¨é\96\93é\81\95ã\81£ã\81¦ å ±å\91\8aã\81\95ã\82\8cã\82\8bç\8a¶æ³\81ã\81\8cèµ·ã\81\93ã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
したがって、停止すべきではないソケットに対しては \fBO_NONBLOCK\fP を使うとより安全であろう。
-Linux では、 \fBselect\fP() がシグナルハンドラにより割り込まれた場合 (つまり \fBEINTR\fP エラーが返る場合)、
+Linux ã\81§ã\81¯ã\80\81 \fBselect\fP() ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9få ´å\90\88 (ã\81¤ã\81¾ã\82\8a \fBEINTR\fP ã\82¨ã\83©ã\83¼ã\81\8cè¿\94ã\82\8bå ´å\90\88)ã\80\81
\fItimeout\fP も変更する。 これは POSIX.1\-2001 では認められていない挙動である。 Linux の \fBpselect\fP()
システムコールも同じ挙動をするが、 glibc のラッパー関数がこの挙動を隠蔽している。 具体的には、glibc のラッパー関数の内部で、
\fItimeout\fP をローカル変数にコピーし、 このローカル変数をシステムコールに渡している。
.sp
\fBpselect\fP(): _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600
.SH 説明
-\fBselect\fP() (や \fBpselect\fP()) を使うと、効率的に複数のファイルディスクリプタを監視し、
-そのファイルディスクリプタのいずれかが 「ready (準備ができた)」状態、つまり I/O (入出力) が可能になっているかや、
-ファイルディスクリプタのいずれかが 「例外状態 (exceptional condition)」が発生したか、を調べることができる。
+\fBselect\fP() (ã\82\84 \fBpselect\fP()) ã\82\92使ã\81\86ã\81¨ã\80\81å\8a¹ç\8e\87ç\9a\84ã\81«è¤\87æ\95°ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\9b£è¦\96ã\81\97ã\80\81
+ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81\8c ã\80\8cready (æº\96å\82\99ã\81\8cã\81§ã\81\8dã\81\9f)ã\80\8dç\8a¶æ\85\8bã\80\81ã\81¤ã\81¾ã\82\8a I/O (å\85¥å\87ºå\8a\9b) ã\81\8cå\8f¯è\83½ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81\8bã\82\84ã\80\81
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81\8c ã\80\8cä¾\8bå¤\96ç\8a¶æ\85\8b (exceptional condition)ã\80\8dã\81\8cç\99ºç\94\9fã\81\97ã\81\9fã\81\8bã\80\81ã\82\92調ã\81¹ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
-ã\81\93ã\81®é\96¢æ\95°ã\81®ä¸»è¦\81ã\81ªå¼\95ã\81\8dæ\95°ã\81¯ã\80\813種é¡\9eã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®ã\80\8cé\9b\86å\90\88ã\80\8d \fIreadfds\fP, \fIwritefds\fP, \fIexceptfds\fP ã\81§ã\81\82ã\82\8bã\80\82
-各々の集合は \fBfd_set\fP として宣言され、その内容は \fBFD_CLR\fP(), \fBFD_ISSET\fP(), \fBFD_SET\fP(),
+ã\81\93ã\81®é\96¢æ\95°ã\81®ä¸»è¦\81ã\81ªå¼\95ã\81\8dæ\95°ã\81¯ã\80\813種é¡\9eã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\80\8cé\9b\86å\90\88ã\80\8d \fIreadfds\fP, \fIwritefds\fP, \fIexceptfds\fP
+である。 各々の集合は \fBfd_set\fP として宣言され、その内容は \fBFD_CLR\fP(), \fBFD_ISSET\fP(), \fBFD_SET\fP(),
\fBFD_ZERO\fP() といったマクロによって操作できる。 新しく宣言された集合は、まず最初に \fBFD_ZERO\fP()
を使ってクリアすべきである。 \fBselect\fP() はこれらの集合の内容を、以降に述べる規則に従って修正する。 \fBselect\fP()
-を呼んだ後、ファイルディスクリプタがまだ集合に存在しているかどうかは、 \fBFD_ISSET\fP() マクロによって調べることができる。
-\fBFD_ISSET\fP() は指定されたディスクリプタが集合に存在していれば 0 以外の値を返し、 存在しなければ 0 を返す。
-\fBFD_CLR\fP() は集合からのファイルディスクリプタの削除を行う。
+ã\82\92å\91¼ã\82\93ã\81 å¾\8cã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\81¾ã\81 é\9b\86å\90\88ã\81«å\98å\9c¨ã\81\97ã\81¦ã\81\84ã\82\8bã\81\8bã\81©ã\81\86ã\81\8bã\81¯ã\80\81 \fBFD_ISSET\fP() ã\83\9eã\82¯ã\83ã\81«ã\82\88ã\81£ã\81¦èª¿ã\81¹ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
+\fBFD_ISSET\fP() ã\81¯æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cé\9b\86å\90\88ã\81«å\98å\9c¨ã\81\97ã\81¦ã\81\84ã\82\8cã\81° 0 以å¤\96ã\81®å\80¤ã\82\92è¿\94ã\81\97ã\80\81 å\98å\9c¨ã\81\97ã\81ªã\81\91ã\82\8cã\81° 0 ã\82\92è¿\94ã\81\99ã\80\82
+\fBFD_CLR\fP() ã\81¯é\9b\86å\90\88ã\81\8bã\82\89ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®å\89\8aé\99¤ã\82\92è¡\8cã\81\86ã\80\82
.SS 引き数
.TP
\fIreadfds\fP
-この集合に含まれるいずれかのファイルディスクリプタで、 データの読み込みが可能になったかどうかを監視する。 \fBselect\fP()
-から戻る時に、\fIreadfds\fP のうち、 直ちに読み込み可能なファイルディスクリプタ以外は 集合から削除される。
+ã\81\93ã\81®é\9b\86å\90\88ã\81«å\90«ã\81¾ã\82\8cã\82\8bã\81\84ã\81\9aã\82\8cã\81\8bã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\80\81 ã\83\87ã\83¼ã\82¿ã\81®èªã\81¿è¾¼ã\81¿ã\81\8cå\8f¯è\83½ã\81«ã\81ªã\81£ã\81\9fã\81\8bã\81©ã\81\86ã\81\8bã\82\92ç\9b£è¦\96ã\81\99ã\82\8bã\80\82 \fBselect\fP()
+から戻る時に、\fIreadfds\fP のうち、 直ちに読み込み可能なファイルディスクリプター以外は 集合から削除される。
.TP
\fIwritefds\fP
-この集合に含まれるいずれかのファイルディスクリプタで、 データを書き込むスペースがあるかどうかを監視する。 \fBselect\fP()
-から戻る時に、\fIwritefds\fP のうち、 直ちに書き込み可能なファイルディスクリプタ以外は 集合から削除される。
+ã\81\93ã\81®é\9b\86å\90\88ã\81«å\90«ã\81¾ã\82\8cã\82\8bã\81\84ã\81\9aã\82\8cã\81\8bã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\80\81 ã\83\87ã\83¼ã\82¿ã\82\92æ\9b¸ã\81\8dè¾¼ã\82\80ã\82¹ã\83\9aã\83¼ã\82¹ã\81\8cã\81\82ã\82\8bã\81\8bã\81©ã\81\86ã\81\8bã\82\92ç\9b£è¦\96ã\81\99ã\82\8bã\80\82 \fBselect\fP()
+から戻る時に、\fIwritefds\fP のうち、 直ちに書き込み可能なファイルディスクリプター以外は 集合から削除される。
.TP
\fIexceptfds\fP
-この集合に含まれるいずれかのファイルディスクリプタで、 「例外状態 (exceptional condition)」が発生したかどうかを監視する。
+ã\81\93ã\81®é\9b\86å\90\88ã\81«å\90«ã\81¾ã\82\8cã\82\8bã\81\84ã\81\9aã\82\8cã\81\8bã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\80\81 ã\80\8cä¾\8bå¤\96ç\8a¶æ\85\8b (exceptional condition)ã\80\8dã\81\8cç\99ºç\94\9fã\81\97ã\81\9fã\81\8bã\81©ã\81\86ã\81\8bã\82\92ç\9b£è¦\96ã\81\99ã\82\8bã\80\82
実際の動作では、普通に起こり得る例外状態は一つだけであり、 それは TCP ソケットで \fI帯域外 (out\-of\-band; OOB)\fP データが
読み込み可能な場合である。 OOB データの詳細については、 \fBrecv\fP(2), \fBsend\fP(2), \fBtcp\fP(7) を参照のこと。
(これ以外では、まれなことだが、 パケットモードの擬似端末 (pseudoterminals) で \fBselect\fP()
が例外状態を示すことがある。) \fBselect\fP() が返る時に、\fIexceptfds\fP のうち、
-例外状態が発生したディスクリプタ以外は集合から削除される。
+例外状態が発生したディスクリプター以外は集合から削除される。
.TP
\fInfds\fP
-全ての集合に含まれるファイルディスクリプタのうち、 値が最大のものに 1 を足した整数である。
-ã\81\99ã\81ªã\82\8fã\81¡ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92å\90\84é\9b\86å\90\88ã\81«å\8a ã\81\88ã\82\8bä½\9cæ¥ã\81®é\80\94ä¸ã\81§ã\80\81 å\85¨ã\81¦ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92è¦\8bã\81¦æ\9c\80大å\80¤ã\82\92æ±\82ã\82\81ã\80\81 ã\81\9dã\82\8cã\81« 1 ã\82\92å\8a ã\81\88ã\81¦ \fInfds\fP
-として渡さないといけない、ということだ。
+å\85¨ã\81¦ã\81®é\9b\86å\90\88ã\81«å\90«ã\81¾ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\81\86ã\81¡ã\80\81 å\80¤ã\81\8cæ\9c\80大ã\81®ã\82\82ã\81®ã\81« 1 ã\82\92足ã\81\97ã\81\9fæ\95´æ\95°ã\81§ã\81\82ã\82\8bã\80\82
+ã\81\99ã\81ªã\82\8fã\81¡ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\90\84é\9b\86å\90\88ã\81«å\8a ã\81\88ã\82\8bä½\9cæ¥ã\81®é\80\94ä¸ã\81§ã\80\81 å\85¨ã\81¦ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¦\8bã\81¦æ\9c\80大å\80¤ã\82\92æ±\82ã\82\81ã\80\81 ã\81\9dã\82\8cã\81« 1 ã\82\92å\8a ã\81\88ã\81¦
+\fInfds\fP として渡さないといけない、ということだ。
.TP
\fIutimeout\fP
(何も起こらなかった場合に) \fBselect\fP() が戻る前に待つ最大時間である。 この値に NULL を渡すと、 \fBselect\fP()
-はファイルディスクリプタのいずれかが ready (準備ができた) 状態に なるまで待ち続けてずっと停止する。 \fIutimeout\fP は 0
-秒にすることもでき、 この場合 \fBselect\fP() は直ちに返り、呼び出し時点のファイルディスクリプタの状態に 関する情報が返される。 構造体
+ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81\8c ready (æº\96å\82\99ã\81\8cã\81§ã\81\8dã\81\9f) ç\8a¶æ\85\8bã\81« ã\81ªã\82\8bã\81¾ã\81§å¾\85ã\81¡ç¶\9aã\81\91ã\81¦ã\81\9aã\81£ã\81¨å\81\9cæ¢ã\81\99ã\82\8bã\80\82 \fIutimeout\fP ã\81¯ 0
+ç§\92ã\81«ã\81\99ã\82\8bã\81\93ã\81¨ã\82\82ã\81§ã\81\8dã\80\81 ã\81\93ã\81®å ´å\90\88 \fBselect\fP() ã\81¯ç\9b´ã\81¡ã\81«è¿\94ã\82\8aã\80\81å\91¼ã\81³å\87ºã\81\97æ\99\82ç\82¹ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ç\8a¶æ\85\8bã\81« é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82 æ§\8bé\80 ä½\93
\fIstruct timeval\fP は次のように定義されている:
.IP
.in +4n
\fBsigprocmask\fP(2) を参照)。 この引き数は NULL にすることもでき、その場合はこの関数へ
入るとき・出るときにシグナルマスクを変更しない。 この場合、 \fBpselect\fP() は \fBselect\fP() と全く同じ動作となる。
.SS シグナルとデータイベントを組み合わせる
-ファイルディスクリプタが I/O 可能な状態になるのと同時に シグナルも待ちたい場合には、 \fBpselect\fP() が便利である。
-シグナルを受信するプログラムは、通常は、 シグナルハンドラをグローバルなフラグを立てるためだけに使う。 このグローバルなフラグは、
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c I/O å\8f¯è\83½ã\81ªç\8a¶æ\85\8bã\81«ã\81ªã\82\8bã\81®ã\81¨å\90\8cæ\99\82ã\81« ã\82·ã\82°ã\83\8aã\83«ã\82\82å¾\85ã\81¡ã\81\9fã\81\84å ´å\90\88ã\81«ã\81¯ã\80\81 \fBpselect\fP() ã\81\8c便å\88©ã\81§ã\81\82ã\82\8bã\80\82
+ã\82·ã\82°ã\83\8aã\83«ã\82\92å\8f\97ä¿¡ã\81\99ã\82\8bã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\80\81é\80\9a常ã\81¯ã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92ã\82°ã\83ã\83¼ã\83\90ã\83«ã\81ªã\83\95ã\83©ã\82°ã\82\92ç«\8bã\81¦ã\82\8bã\81\9fã\82\81ã\81 ã\81\91ã\81«ä½¿ã\81\86ã\80\82 ã\81\93ã\81®ã\82°ã\83ã\83¼ã\83\90ã\83«ã\81ªã\83\95ã\83©ã\82°ã\81¯ã\80\81
そのイベントをプログラムのメインループで 処理しなければならないことを示す。 シグナルを受けると \fBselect\fP() (や
\fBpselect\fP()) は \fIerrno\fP に \fBEINTR\fP をセットして戻ることになる。
シグナルがプログラムのメインループで処理されるためにはこの動作が不可欠で、 これがないと \fBselect\fP() は永遠に停止し続けることになる。
}
.fi
.SS 実例
-実際のところ \fBselect\fP() の大事な点は何なのか? ディスクリプタは好きなときに読み書きできるんじゃないの? \fBselect\fP()
-の重要なところは、複数のディスクリプタを同時に監視でき、 なんの動きもなければプロセスを適切にスリープ状態に移行するところにあるのだ。 UNIX
-プログラマは、 複数のファイルディスクリプタの入出力を同時に扱わねばならず、 しかもデータの流れは間欠的である、という状況によく出会う。 単に
+å®\9fé\9a\9bã\81®ã\81¨ã\81\93ã\82\8d \fBselect\fP() ã\81®å¤§äº\8bã\81ªç\82¹ã\81¯ä½\95ã\81ªã\81®ã\81\8bï¼\9f ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯å¥½ã\81\8dã\81ªã\81¨ã\81\8dã\81«èªã\81¿æ\9b¸ã\81\8dã\81§ã\81\8dã\82\8bã\82\93ã\81\98ã\82\83ã\81ªã\81\84ã\81®ï¼\9f \fBselect\fP()
+ã\81®é\87\8dè¦\81ã\81ªã\81¨ã\81\93ã\82\8dã\81¯ã\80\81è¤\87æ\95°ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\90\8cæ\99\82ã\81«ç\9b£è¦\96ã\81§ã\81\8dã\80\81 ã\81ªã\82\93ã\81®å\8b\95ã\81\8dã\82\82ã\81ªã\81\91ã\82\8cã\81°ã\83\97ã\83ã\82»ã\82¹ã\82\92é\81©å\88\87ã\81«ã\82¹ã\83ªã\83¼ã\83\97ç\8a¶æ\85\8bã\81«ç§»è¡\8cã\81\99ã\82\8bã\81¨ã\81\93ã\82\8dã\81«ã\81\82ã\82\8bã\81®ã\81 ã\80\82 UNIX
+ã\83\97ã\83ã\82°ã\83©ã\83\9eã\81¯ã\80\81 è¤\87æ\95°ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®å\85¥å\87ºå\8a\9bã\82\92å\90\8cæ\99\82ã\81«æ\89±ã\82\8fã\81ã\81°ã\81ªã\82\89ã\81\9aã\80\81 ã\81\97ã\81\8bã\82\82ã\83\87ã\83¼ã\82¿ã\81®æµ\81ã\82\8cã\81¯é\96\93æ¬ ç\9a\84ã\81§ã\81\82ã\82\8bã\80\81ã\81¨ã\81\84ã\81\86ç\8a¶æ³\81ã\81«ã\82\88ã\81\8få\87ºä¼\9aã\81\86ã\80\82 å\8d\98ã\81«
\fBread\fP(2) や \fBwrite\fP(2) コールのシーケンスを作るだけでは、それらのコールのどれかが
-ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8bã\82\89ã\81®ã\83\87ã\83¼ã\82¿ã\82\92å¾\85ã\81£ã\81¦ã\83\96ã\83ã\83\83ã\82¯ã\81\97ã\81¦ã\81\8aã\82\8aã\80\81 å\88¥ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿には I/O が可能なのに使えない、
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8bã\82\89ã\81®ã\83\87ã\83¼ã\82¿ã\82\92å¾\85ã\81£ã\81¦ã\83\96ã\83ã\83\83ã\82¯ã\81\97ã\81¦ã\81\8aã\82\8aã\80\81 å\88¥ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼には I/O が可能なのに使えない、
ということになってしまうだろう。 \fBselect\fP() を使うとこの状況に効果的に対処できる。
.SS "SELECT の掟"
\fBselect\fP() を使おうとした多くの人は、理解しにくい挙動に出くわし、結果的に
-できたものは移植性がないか、よくてもギリギリのものになってしまう。 例えば、上記のプログラムは、 集合に含まれるファイルディスクリプタを非停止
+ã\81§ã\81\8dã\81\9fã\82\82ã\81®ã\81¯ç§»æ¤\8dæ\80§ã\81\8cã\81ªã\81\84ã\81\8bã\80\81ã\82\88ã\81\8fã\81¦ã\82\82ã\82®ã\83ªã\82®ã\83ªã\81®ã\82\82ã\81®ã\81«ã\81ªã\81£ã\81¦ã\81\97ã\81¾ã\81\86ã\80\82 ä¾\8bã\81\88ã\81°ã\80\81ä¸\8aè¨\98ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\80\81 é\9b\86å\90\88ã\81«å\90«ã\81¾ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92é\9d\9eå\81\9cæ¢
(nonblocking) モード にしなくても、どこにもブロックが生じないよう注意して書かれている。 微妙な間違いによって、 \fBselect\fP()
を使う利点は簡単に失われてしまう。 そこで、 \fBselect\fP() コールを使うときに注意すべき重要事項を列挙しておくことにする。
.TP 4
上述したように、 効率的なプログラムを書くには \fInfds\fP の値を適切に計算して与えなければならない。
.TP
3.
-\fBselect\fP() コールの終了後に結果をチェックして、 適切に対応するつもりのないファイルディスクリプタは、 どの集合にも加えてはならない。
+\fBselect\fP() ã\82³ã\83¼ã\83«ã\81®çµ\82äº\86å¾\8cã\81«çµ\90æ\9e\9cã\82\92ã\83\81ã\82§ã\83\83ã\82¯ã\81\97ã\81¦ã\80\81 é\81©å\88\87ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\81¤ã\82\82ã\82\8aã\81®ã\81ªã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81 ã\81©ã\81®é\9b\86å\90\88ã\81«ã\82\82å\8a ã\81\88ã\81¦ã\81¯ã\81ªã\82\89ã\81ªã\81\84ã\80\82
次のルールも参照。
.TP
4.
-\fBselect\fP() から返った後には、全ての集合の全てのファイルディスクリプタについて 読み書き可能な状態になっているかをチェックすべきである。
+\fBselect\fP() ã\81\8bã\82\89è¿\94ã\81£ã\81\9få¾\8cã\81«ã\81¯ã\80\81å\85¨ã\81¦ã\81®é\9b\86å\90\88ã\81®å\85¨ã\81¦ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ã\81¤ã\81\84ã\81¦ èªã\81¿æ\9b¸ã\81\8då\8f¯è\83½ã\81ªç\8a¶æ\85\8bã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81\8bã\82\92ã\83\81ã\82§ã\83\83ã\82¯ã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82
.TP
5.
\fBread\fP(2), \fBrecv\fP(2), \fBwrite\fP(2), \fBsend\fP(2)
.TP
6.
処理するデータ量が小さいことがはっきりとわかっている場合を除いて、 一度に 1 バイトずつ読み書きするようなことはしてはならない。
-ã\83\90ã\83\83ã\83\95ã\82¡ã\81®è¨±ã\81\99ã\81\8bã\81\8eã\82\8aã\81®ã\83\87ã\83¼ã\82¿ã\82\92ã\81¾ã\81¨ã\82\81ã\81¦èªã\81¿æ\9b¸ã\81\8dã\81\97ã\81ªã\81\84ã\81¨ã\80\81 é\9d\9e常ã\81«å\8a¹ç\8e\87ã\81\8cæ\82ªã\81\84ã\80\82ä¸\8bè¨\98ã\81®ä¾\8bã\81§ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡は 1024 バイトにしているが、
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®è¨±ã\81\99ã\81\8bã\81\8eã\82\8aã\81®ã\83\87ã\83¼ã\82¿ã\82\92ã\81¾ã\81¨ã\82\81ã\81¦èªã\81¿æ\9b¸ã\81\8dã\81\97ã\81ªã\81\84ã\81¨ã\80\81 é\9d\9e常ã\81«å\8a¹ç\8e\87ã\81\8cæ\82ªã\81\84ã\80\82ä¸\8bè¨\98ã\81®ä¾\8bã\81§ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼は 1024 バイトにしているが、
このサイズを大きくするのは簡単だろう。
.TP
7.
が返されることはないだろう。
.TP
8.
-決して、引き数に長さ 0 のバッファを指定して \fBread\fP(2), \fBrecv\fP(2), \fBwrite\fP(2), \fBsend\fP(2)
+決ã\81\97ã\81¦ã\80\81å¼\95ã\81\8dæ\95°ã\81«é\95·ã\81\95 0 ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ \fBread\fP(2), \fBrecv\fP(2), \fBwrite\fP(2), \fBsend\fP(2)
を呼び出してはならない。
.TP
9.
\fBread\fP(2), \fBrecv\fP(2), \fBwrite\fP(2), \fBsend\fP(2) が \fB7.\fP に示した以外のエラーで失敗した場合や、
-入力系の関数の一つがファイル末尾を表す 0 を返した場合は、 そのディスクリプタをもう一度 select に渡しては\fIならない\fP。
-下記の例では、そのディスクリプタをただちにクローズし、 そこには \-1 をセットして、 それが集合に含まれ続けるのを許さないようにしている。
+å\85¥å\8a\9bç³»ã\81®é\96¢æ\95°ã\81®ä¸\80ã\81¤ã\81\8cã\83\95ã\82¡ã\82¤ã\83«æ\9c«å°¾ã\82\92表ã\81\99 0 ã\82\92è¿\94ã\81\97ã\81\9få ´å\90\88ã\81¯ã\80\81 ã\81\9dã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82\82ã\81\86ä¸\80度 select ã\81«æ¸¡ã\81\97ã\81¦ã\81¯\fIã\81ªã\82\89ã\81ªã\81\84\fPã\80\82
+ä¸\8bè¨\98ã\81®ä¾\8bã\81§ã\81¯ã\80\81ã\81\9dã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\81\9fã\81 ã\81¡ã\81«ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\80\81 ã\81\9dã\81\93ã\81«ã\81¯ \-1 ã\82\92ã\82»ã\83\83ã\83\88ã\81\97ã\81¦ã\80\81 ã\81\9dã\82\8cã\81\8cé\9b\86å\90\88ã\81«å\90«ã\81¾ã\82\8cç¶\9aã\81\91ã\82\8bã\81®ã\82\92許ã\81\95ã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.TP
10.
タイムアウトの値は \fBselect\fP() を呼ぶたびに初期化すべきである。 OS によっては timeout
.\" Having no file descriptors set is a useful
.\" way to sleep the process with subsecond precision by using the timeout.
.\" (See further on.)
-\fBselect\fP() はファイルディスクリプタ集合を変更するので、 \fBselect\fP()
-がループの中で使用されている場合には、呼び出しを行う前に毎回 ディスクリプタ集合を初期化し直さなければならない。
+\fBselect\fP() はファイルディスクリプター集合を変更するので、 \fBselect\fP()
+がループの中で使用されている場合には、呼び出しを行う前に毎回 ディスクリプター集合を初期化し直さなければならない。
.SS "usleep エミュレーション"
-\fBusleep\fP(3) 関数を持たないシステムでは、 有限のタイムアウトを指定し、ファイルディスクリプタを全くセットせずに \fBselect\fP()
+\fBusleep\fP(3) é\96¢æ\95°ã\82\92æ\8c\81ã\81\9fã\81ªã\81\84ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ã\80\81 æ\9c\89é\99\90ã\81®ã\82¿ã\82¤ã\83 ã\82¢ã\82¦ã\83\88ã\82\92æ\8c\87å®\9aã\81\97ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\85¨ã\81\8fã\82»ã\83\83ã\83\88ã\81\9bã\81\9aã\81« \fBselect\fP()
を呼び出すことで、これを代用できる。 以下のようにする。
.PP
.nf
.PP
但し、これが動くと保証されているのは UNIX システムに限られる。
.SH 返り値
-成功すると、 \fBselect\fP() はファイルディスクリプタ集合に残っている ファイルディスクリプタの総数を返す。
+成功すると、 \fBselect\fP() はファイルディスクリプター集合に残っている ファイルディスクリプターの総数を返す。
-\fBselect\fP() がタイムアウトすると、返り値は 0 になる。 その時、ファイルディスクリプタ集合はすべて空である
+\fBselect\fP() がタイムアウトすると、返り値は 0 になる。 その時、ファイルディスクリプター集合はすべて空である
(しかしそうならないシステムもある)。
返り値が \-1 の場合はエラーを意味し、 \fIerrno\fP が適切にセットされる。エラーが起こった場合、 返された集合の内容や構造体 \fIstruct
を変更しない。
.SH 注意
一般的に言って、ソケットをサポートする全てのオペレーティングシステムは \fBselect\fP() もサポートしている。 \fBselect\fP()
-を使うと、プログラマがスレッド、フォーク、IPC、シグナル、メモリ共有、 等々を使ってもっと複雑な方法で解決しようとする多くの問題が、
+を使うと、プログラマがスレッド、フォーク、IPC、シグナル、メモリー共有、 等々を使ってもっと複雑な方法で解決しようとする多くの問題が、
移植性がありかつ効率的な方法で解決できる。
.PP
-\fBpoll\fP(2) システムコールは \fBselect\fP() と同じ機能を持っており、 まばらなファイルディスクリプタ集合を監視する場合に
+\fBpoll\fP(2) システムコールは \fBselect\fP() と同じ機能を持っており、 まばらなファイルディスクリプター集合を監視する場合に
いくらか効率がよい。 現在では広く利用可能であるが、以前は \fBselect\fP() より移植性の面で劣っていた。
.PP
-Linux 独自の \fBepoll\fP(7) API は、多数のファイルディスクリプタを監視する場合に \fBselect\fP(2) や
-\fBpoll\fP(2) よりも効率的なインタフェースを提供している。
+Linux ç\8b¬è\87ªã\81® \fBepoll\fP(7) API ã\81¯ã\80\81å¤\9aæ\95°ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\9b£è¦\96ã\81\99ã\82\8bå ´å\90\88ã\81« \fBselect\fP(2) ã\82\84
+\fBpoll\fP(2) ã\82\88ã\82\8aã\82\82å\8a¹ç\8e\87ç\9a\84ã\81ªã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92æ\8f\90ä¾\9bã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.SH 例
\fBselect\fP() の本当に便利な点を示す、よい例を紹介する。 以下のリストは、ある TCP ポートから別のポートへ転送を行う TCP
フォワードプログラムである。
あるいは、 \fBfcntl\fP(2) を使って非ブロック I/O をセットすれば良い、というアイデアもあるだろう。
これにも実際には問題があり、タイムアウトが非効率的に起こってしまう。
-このプログラムは一度にひとつ以上の同時接続を扱うことはできないが、 その様に拡張するのは簡単で、バッファのリンクリストを (接続ごとにひとつずつ)
+ã\81\93ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ä¸\80度ã\81«ã\81²ã\81¨ã\81¤ä»¥ä¸\8aã\81®å\90\8cæ\99\82æ\8e¥ç¶\9aã\82\92æ\89±ã\81\86ã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81ªã\81\84ã\81\8cã\80\81 ã\81\9dã\81®æ§\98ã\81«æ\8b¡å¼µã\81\99ã\82\8bã\81®ã\81¯ç°¡å\8d\98ã\81§ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83ªã\83³ã\82¯ã\83ªã\82¹ã\83\88ã\82\92 (æ\8e¥ç¶\9aã\81\94ã\81¨ã\81«ã\81²ã\81¨ã\81¤ã\81\9aã\81¤)
使えばよい。 現時点のものでは、新しい接続がくると古い接続は落ちてしまう。
.SH 関連項目
.\" .SH AUTHORS
.in +4n
union semun {
int val; /* SETVAL の値 */
- struct semid_ds *buf; /* IPC_STAT, IPC_SET 用のバッファ */
+ struct semid_ds *buf; /* IPC_STAT, IPC_SET 用のバッファー */
unsigned short *array; /* GETALL, SETALL 用の配列 */
- struct seminfo *__buf; /* IPC_INFO 用のバッファ
+ struct seminfo *__buf; /* IPC_INFO 用のバッファー
(Linux 固有) */
};
.in
.TP
\fBIPC_RMID\fP
セマフォ集合をただちに削除し、その集合上の \fBsemop\fP(2) コールでブロックされている全てのプロセスを目覚めさせる (エラー値が返されて、
-\fIerrno\fP に \fBEIDRM\fP が設定される)。 呼び出したプロセスの実効ユーザ ID が そのセマフォ集合の作成者または所有者と一致するか、
+\fIerrno\fP に \fBEIDRM\fP が設定される)。 呼び出したプロセスの実効ユーザー ID が そのセマフォ集合の作成者または所有者と一致するか、
呼び出した人が特権を持たなければならない。 \fIsemnum\fP 引き数は無視される。
.TP
\fBIPC_INFO\fP (Linux 固有)
-システム全体でのセマフォの制限とパラメータに関する情報を、 \fIarg.__buf\fP が指す構造体に入れて返す。 この構造体は \fIseminfo\fP
+ã\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 \fIarg.__buf\fP ã\81\8cæ\8c\87ã\81\99æ§\8bé\80 ä½\93ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¯ \fIseminfo\fP
型である。 \fIseminfo\fP は \fB_GNU_SOURCE\fP 機能検査マクロが定義された場合に \fI<sys/sem.h>\fP
で以下のように定義される:
.nf
.in +4n
struct seminfo {
- int semmap; /* ã\82»ã\83\9eã\83\95ã\82©ã\83»ã\83\9eã\83\83ã\83\97ã\81®æ\9c\80大ã\82¨ã\83³ã\83\88ã\83ª数;
+ int semmap; /* ã\82»ã\83\9eã\83\95ã\82©ã\83\9eã\83\83ã\83\97ã\81®æ\9c\80大ã\82¨ã\83³ã\83\88ã\83ªã\83¼数;
カーネル内では未使用 */
int semmni; /* セマフォ集合の最大数 */
int semmns; /* 全セマフォ集合中のセマフォの
最大数; カーネル内では未使用 */
int semmsl; /* 一つのセマフォ集合の最大セマフォ数 */
int semopm; /* semop(2) に渡す操作の最大数 */
- 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ª
+ 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¼
の最大数; カーネル内では未使用 */
int semusz; /* 構造体 sem_undo のサイズ */
int semvmx; /* セマフォの最大値 */
.TP
\fBSETALL\fP
集合の全てのセマフォの \fBsemval\fP に \fIarg.array\fP で指定された値を設定する。 その集合に関連する \fIsemid_ds\fP
-æ§\8bé\80 ä½\93ã\81® \fIsem_ctime\fP ã\83¡ã\83³ã\83\90ã\83¼ã\81®å\80¤ã\82\82æ\9b´æ\96°ã\81\99ã\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ª (\fBsemop\fP(2)
+æ§\8bé\80 ä½\93ã\81® \fIsem_ctime\fP ã\83¡ã\83³ã\83\90ã\83¼ã\81®å\80¤ã\82\82æ\9b´æ\96°ã\81\99ã\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¼ (\fBsemop\fP(2)
を参照) は消去 (clear) される。 セマフォの値の変更により、他のプロセス内でブロックされている \fBsemop\fP(2)
コールの続行が許可されると、それらのプロセスは起こされる (wake up)。 \fIsemnum\fP 引き数は無視される。
呼び出したプロセスはそのセマフォ集合に 変更 (書き込み) 許可を持たなければならない。
.TP
\fBSETVAL\fP
集合の \fIsemnum\fP 番目のセマフォの \fBsemval\fP に \fIarg.val\fP の値を設定する。その集合に関連する \fIsemid_ds\fP
-æ§\8bé\80 ä½\93ã\81® \fIsem_ctime\fP ã\83¡ã\83³ã\83\90ã\83¼ã\81®å\80¤ã\82\82æ\9b´æ\96°ã\81\99ã\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ªは消去される。
+æ§\8bé\80 ä½\93ã\81® \fIsem_ctime\fP ã\83¡ã\83³ã\83\90ã\83¼ã\81®å\80¤ã\82\82æ\9b´æ\96°ã\81\99ã\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¼は消去される。
セマフォの値の変更により、他のプロセス内でブロックされている \fBsemop\fP(2) コールの続行が許可されると、それらのプロセスは起こされる
(wake up)。 呼び出したプロセスはそのセマフォ集合に 変更 (書き込み) 許可を持たなければならない。
.SH 返り値
\fBsemzcnt\fP の値
.TP
\fBIPC_INFO\fP
-全てのセマフォ集合に関する情報を管理しているカーネルの内部配列の使用中 エントリのインデックスの最大値
+å\85¨ã\81¦ã\81®ã\82»ã\83\9eã\83\95ã\82©é\9b\86å\90\88ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92管ç\90\86ã\81\97ã\81¦ã\81\84ã\82\8bã\82«ã\83¼ã\83\8dã\83«ã\81®å\86\85é\83¨é\85\8då\88\97ã\81®ä½¿ç\94¨ä¸ ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81®æ\9c\80大å\80¤
(この情報は、システムの全てのセマフォ集合に関する情報を取得するために \fBSEM_STAT\fP 操作を繰り返し実行する際に使用できる)
.TP
\fBSEM_INFO\fP
で指定されたインデックス値が現在未使用の配列のスロットを参照いていた。
.TP
\fBEPERM\fP
-\fIcmd\fP 引き数に \fBIPC_SET\fP または \fBIPC_RMID\fP が指定され、呼び出したプロセスの実効ユーザ ID がセマフォの
+\fIcmd\fP 引き数に \fBIPC_SET\fP または \fBIPC_RMID\fP が指定され、呼び出したプロセスの実効ユーザー ID がセマフォの
(\fIsem_perm.cuid\fP で見つかる) 作成者または (\fIsem_perm.uid\fP で見つかる) 所有者でもなく、 プロセスが
\fBCAP_SYS_ADMIN\fP ケーパビリティを持たない。
.TP
.\" Like Linux, the FreeBSD man pages still document
.\" the inclusion of these header files.
Linux や POSIX の全てのバージョンでは、 \fI<sys/types.h>\fP と \fI<sys/ipc.h>\fP
-のインクルードは必要ない。しかしながら、いくつかの古い実装ではこれらのヘッダファイルのインクルードが必要であり、 SVID
+ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81¯å¿\85è¦\81ã\81ªã\81\84ã\80\82ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å\8f¤ã\81\84å®\9fè£\85ã\81§ã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\82\8aã\80\81 SVID
でもこれらのインクルードをするように記載されている。このような古いシステムへの移植性を意図したアプリケーションではこれらのファイルをインクルードする必要があるかもしれない。
\fBIPC_INFO\fP, \fBSEM_STAT\fP, \fBSEM_INFO\fP 操作は \fBipcs\fP(1)
プログラムによって割当られた資源について情報を提供するために使用される。 将来的にはこれらは変更されるか、 \fI/proc\fP
-ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82¤ã\83³ã\82¿フェースに移動されるかもしれない。
+ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\82¤ã\83³ã\82¿ã\83¼フェースに移動されるかもしれない。
.LP
\fI構造体 semid_ds\fP 内の多くのフィールドは、 Linux 2.2 では \fIshort\fP 型だったが、Linux 2.4 では
\fIlong\fP 型になった。 この利点を生かすには、glibc\-2.1.91 以降の環境下で 再コンパイルすれば十分である。
新規のセマフォ集合を作成する際、 \fBsemget\fP() はセマフォ集合の情報を保持するデータ構造体 \fIsemid_ds\fP を次のように初期化する
(\fIsemid_ds\fP については \fBsemctl\fP(2) を参照):
.IP
-\fIsem_perm.cuid\fP と \fIsem_perm.uid\fP に、呼び出し元のプロセスの実効 (effective) ユーザ ID を設定する。
+\fIsem_perm.cuid\fP と \fIsem_perm.uid\fP に、呼び出し元のプロセスの実効 (effective) ユーザー ID
+を設定する。
.IP
\fIsem_perm.cgid\fP と \fIsem_perm.gid\fP に、呼び出し元のプロセスの実効 (effective) グループ ID
を設定する。
\fIkey\fP に対応するセマフォ集合が存在せず、 \fIsemflg\fP に \fBIPC_CREAT\fP が指定されてもいない。
.TP
\fBENOMEM\fP
-セマフォ集合を作成しようとしたが、新しいデータ構造体を 作成するのに十分なメモリがシステムに存在しない。
+ã\82»ã\83\9eã\83\95ã\82©é\9b\86å\90\88ã\82\92ä½\9cæ\88\90ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\81\8cã\80\81æ\96°ã\81\97ã\81\84ã\83\87ã\83¼ã\82¿æ§\8bé\80 ä½\93ã\82\92 ä½\9cæ\88\90ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\82·ã\82¹ã\83\86ã\83 ã\81«å\98å\9c¨ã\81\97ã\81ªã\81\84ã\80\82
.TP
\fBENOSPC\fP
セマフォ集合を作成しようとすると、システムのセマフォ集合の 最大数 (\fBSEMMNI\fP) か、システム全体のセマフォの最大数 (\fBSEMMNS\fP)
.\" Like Linux, the FreeBSD man pages still document
.\" the inclusion of these header files.
Linux や POSIX の全てのバージョンでは、 \fI<sys/types.h>\fP と \fI<sys/ipc.h>\fP
-のインクルードは必要ない。しかしながら、いくつかの古い実装ではこれらのヘッダファイルのインクルードが必要であり、 SVID
+ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81¯å¿\85è¦\81ã\81ªã\81\84ã\80\82ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å\8f¤ã\81\84å®\9fè£\85ã\81§ã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\82\8aã\80\81 SVID
でもこれらのインクルードをするように記載されている。このような古いシステムへの移植性を意図したアプリケーションではこれらのファイルをインクルードする必要があるかもしれない。
.\"
-\fBIPC_PRIVATE\fP ã\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 \fIkey_t\fP å\9e\8bã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ç\89¹å\88¥ã\81ªå\80¤ã\81\8c \fIkey\fP ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\82\8bã\81¨ã\80\81
+\fBIPC_PRIVATE\fP はフラグフィールドに指定するものではなく、 \fIkey_t\fP 型である。 この特別な値が \fIkey\fP に指定されると、
\fBsemget\fP() \fIsemflg\fP の下位 9 ビット以外は全て無視し、 (成功した場合は) 新しいセマフォ集合を作成する。
.SS セマフォの初期化
.\" In truth, every one of the many implementations that I've tested sets
\fIsemval\fP が \fIsem_op\fP の絶対値より小さく、 \fIsem_flg\fP に \fBIPC_NOWAIT\fP が指定された場合は、
\fBsemop\fP() は失敗し、 \fIerrno\fP に \fBEAGAIN\fP が設定される (このとき \fIsops\fP の操作は全く実行されない)。
\fIsemval\fP が \fIsem_op\fP の絶対値より小さく、 \fBIPC_WAIT\fP が指定されていない場合は、 \fIsemncnt\fP
-(このセマフォの値が増加するのを待っているスレッド数のカウンタ) を 1 増加させて、以下のいずれかが起こるまでスレッドを停止 (sleep) する。
+(このセマフォの値が増加するのを待っているスレッド数のカウンター) を 1 増加させて、以下のいずれかが起こるまでスレッドを停止 (sleep)
+する。
.IP \(bu 3
\fIsemval\fP が \fIsem_op\fP の絶対値以上になった。この時点で、操作は上述の通り実行される。
.IP \(bu
セマフォ集合が存在しないか、 \fIsemid\fP が 0 未満であるか、 \fInsops\fP が正の数でない。
.TP
\fBENOMEM\fP
-ある操作で \fIsem_flg\fP に \fBSEM_UNDO\fP が指定されたが、システムにアンドゥ構造体に割り当てる十分なメモリがない。
+ã\81\82ã\82\8bæ\93\8dä½\9cã\81§ \fIsem_flg\fP ã\81« \fBSEM_UNDO\fP ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\81\8cã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81«ã\82¢ã\83³ã\83\89ã\82¥æ§\8bé\80 ä½\93ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\8bå\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBERANGE\fP
ある操作で \fIsem_op+semval\fP が \fBSEMVMX\fP より大きい。 \fBSEMVMX\fP は \fIsemval\fP
.\" Like Linux, the FreeBSD man pages still document
.\" the inclusion of these header files.
Linux や POSIX の全てのバージョンでは、 \fI<sys/types.h>\fP と \fI<sys/ipc.h>\fP
-のインクルードは必要ない。しかしながら、いくつかの古い実装ではこれらのヘッダファイルのインクルードが必要であり、 SVID
+ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81¯å¿\85è¦\81ã\81ªã\81\84ã\80\82ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å\8f¤ã\81\84å®\9fè£\85ã\81§ã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\82\8aã\80\81 SVID
でもこれらのインクルードをするように記載されている。このような古いシステムへの移植性を意図したアプリケーションではこれらのファイルをインクルードする必要があるかもしれない。
あるプロセスの \fIsem_undo\fP 構造体は \fBfork\fP(2) で生成された子プロセスには継承されないが、 \fBexecve\fP(2)
システムコールの場合は継承される。
.PP
-\fBsemop\fP() ã\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©の設定時に
+\fBsemop\fP() ã\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¼の設定時に
\fBSA_RESTART\fP フラグがセットされていても再開することはない
セマフォの調整値 (\fIsemadj\fP) は、プロセス毎のセマフォ毎の整数で、 \fBSEM_UNDO\fP
sendto(sockfd, buf, len, flags, NULL, 0);
.PP
-å¼\95ã\81\8dæ\95° \fIsockfd\fP ã\81¯ã\80\81ã\83\87ã\83¼ã\82¿ã\82\92é\80\81ä¿¡ã\81\99ã\82\8bã\83\91ã\82±ã\83\83ã\83\88ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿である。
+å¼\95ã\81\8dæ\95° \fIsockfd\fP ã\81¯ã\80\81ã\83\87ã\83¼ã\82¿ã\82\92é\80\81ä¿¡ã\81\99ã\82\8bã\83\91ã\82±ã\83\83ã\83\88ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼である。
.PP
\fBsendto\fP() は、接続型 (connection\-mode) のソケット (\fBSOCK_STREAM\fP,
\fBSOCK_SEQPACKET\fP) で 使用された場合、引き数 \fIdest_addr\fP と \fIaddrlen\fP は無視される (各々の引き数が
.PP
\fBsend\fP() では、配送の失敗の通知は明示的に行われる。 ローカル側でエラーが検出された場合は、返り値 \-1 として通知される。
.PP
-メッセージがソケットの送信バッファに入れることができない場合、 \fBsend\fP() は通常は停止 (block) する (ソケットが非停止
+ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81\8cã\82½ã\82±ã\83\83ã\83\88ã\81®é\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8cã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84å ´å\90\88ã\80\81 \fBsend\fP() ã\81¯é\80\9a常ã\81¯å\81\9cæ¢ (block) ã\81\99ã\82\8b (ã\82½ã\82±ã\83\83ã\83\88ã\81\8cé\9d\9eå\81\9cæ¢
(nonblocking) I/O モード でない場合)。非停止モードの場合にはエラー \fBEAGAIN\fP か \fBEWOULDBLOCK\fP
で失敗する。 いつデータをさらに送信できるようになるかを知るために、 \fBselect\fP(2) コールを使用することができる。
.SS フラグ引き数
.TP
\fBMSG_DONTROUTE\fP
パケットを送り出すのにゲートウェイを使用せず、 直接接続されているネットワーク上のホストだけに送る。 通常、このフラグは診断 (diagnostic)
-ã\82\84ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\82°ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 ã\81« ã\82\88ã\81£ã\81¦ã\81®ã\81¿ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ã\80\81çµ\8cè·¯å\88¶å¾¡ã\81\8cè¡\8cã\82\8fã\82\8cã\82\8bã\83\97ã\83ã\83\88ã\82³ã\83«ã\83\95ã\82¡ã\83\9fã\83ªã\83¼
+やルーティングプログラムに よってのみ使用される。このフラグは、経路制御が行われるプロトコルファミリー
に対してのみ定義されている。パケットソケットには定義されていない。
.TP
\fBMSG_DONTWAIT\fP (Linux 2.2 以降)
struct iovec *msg_iov; /* scatter/gather 配列 */
size_t msg_iovlen; /* msg_iov の要素数 */
void *msg_control; /* 補助データ (後述) */
- size_t msg_controllen; /* 補助データバッファ長 */
+ size_t msg_controllen; /* 補助データバッファー長 */
int msg_flags; /* フラグ (未使用) */
};
.fi
.in
.PP
フィールド \fImsg_name\fP は、 未接続のソケットでデータグラムの宛先アドレスを指定するのに使用される。
-このフィールドはアドレスを格納したバッファを指す。 フィールド \fImsg_namelen\fP にはアドレスの大きさを設定しなければならない。
+ã\81\93ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92æ ¼ç´\8dã\81\97ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92æ\8c\87ã\81\99ã\80\82 ã\83\95ã\82£ã\83¼ã\83«ã\83\89 \fImsg_namelen\fP ã\81«ã\81¯ã\82¢ã\83\89ã\83¬ã\82¹ã\81®å¤§ã\81\8dã\81\95ã\82\92è¨å®\9aã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
接続済のソケットについては、これらのフィールドにはそれぞれ NULL と 0 を指定しなければならない。
フィールド \fBmsg_iov\fP と \fImsg_iovlen\fP は scatter\-gather 用の場所を指定する。 \fBwritev\fP(2)
と同じ。
フィールド \fImsg_control\fP と \fImsg_controllen\fP を使用して制御情報を送信することができる。
-カーネルが処理できる制御バッファのソケットあたりの最大長は、 \fI/proc/sys/net/core/optmem_max\fP の値に制限されている。
+ã\82«ã\83¼ã\83\8dã\83«ã\81\8cå\87¦ç\90\86ã\81§ã\81\8dã\82\8bå\88¶å¾¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82½ã\82±ã\83\83ã\83\88ã\81\82ã\81\9fã\82\8aã\81®æ\9c\80大é\95·ã\81¯ã\80\81 \fI/proc/sys/net/core/optmem_max\fP ã\81®å\80¤ã\81«å\88¶é\99\90ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
\fBsocket\fP(7) を参照。
.\" Still to be documented:
.SH 返り値
成功した場合、これらのシステムコールは送信されたバイト数を返す。 エラーの場合、 \-1 を返し、 \fIerrno\fP を適切に設定にする。
.SH エラー
-ã\81\93ã\82\8cã\82\89ã\81¯ã\82½ã\82±ã\83\83ã\83\88層ã\81§ç\99ºç\94\9fã\81\99ã\82\8bä¸\80è\88¬ç\9a\84ã\81ªã\82¨ã\83©ã\83¼ã\81§ã\81\82ã\82\8bã\80\82ã\81\93ã\82\8c以å¤\96ã\81«ã\80\81ä¸\8b層ã\81® ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83»ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81§ç\94\9fæ\88\90ã\81\95ã\82\8cã\81\9fã\82¨ã\83©ã\83¼ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
+これらはソケット層で発生する一般的なエラーである。これ以外に、下層の プロトコルモジュールで生成されたエラーが返されるかもしれない。
これらについては、それぞれのマニュアルを参照すること。
.TP
\fBEACCES\fP
(UNIX ドメインソケットの場合; パス名で識別される。)
-ã\82½ã\82±ã\83\83ã\83\88ã\83»ã\83\95ã\82¡ã\82¤ã\83«ã\81¸ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿è¨±å\8f¯ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\81\8bã\80\81ã\83\91ã\82¹å\90\8dã\81¸å\88°é\81\94ã\81\99ã\82\8bã\81¾ã\81§ã\81®
+ソケットファイルへの書き込み許可がなかったか、パス名へ到達するまでの
ディレクトリのいずれかに対する検索許可がなかった。
(\fBpath_resolution\fP(7) も参照のこと)
.sp
そのソケット種別 ではソケットに渡されたままの形でメッセージを送信する必要があるが、 メッセージが大き過ぎるため送信することができない。
.TP
\fBENOBUFS\fP
-ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\83»ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®å\87ºå\8a\9bã\82ã\83¥ã\83¼ã\81\8cä¸\80æ\9d¯ã\81§ã\81\82ã\82\8bã\80\82 ä¸\80è\88¬ç\9a\84ã\81«ã\81¯ã\80\81ä¸\80æ\99\82ç\9a\84ã\81ªè¼»è¼³ (congestion) ã\81®ã\81\9fã\82\81ã\81«ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81\8c
+ネットワークインターフェースの出力キューが一杯である。 一般的には、一時的な輻輳 (congestion) のためにインターフェースが
送信を止めていることを意味する。 (通常、Linux ではこのようなことは起こらない。デバイスのキューが
オーバーフローした場合にはパケットは黙って捨てられる)
.TP
\fBENOMEM\fP
-メモリが足りない。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\80\82
.TP
\fBENOTCONN\fP
ソケットが接続されておらず、接続先も指定されていない。
.\"
.TH SENDFILE 2 2011\-09\-14 Linux "Linux Programmer's Manual"
.SH 名前
-sendfile \- ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿間でデータを転送する
+sendfile \- ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼間でデータを転送する
.SH 書式
\fB#include <sys/sendfile.h>\fP
.sp
\fBssize_t sendfile(int\fP\fI out_fd\fP\fB, int\fP\fI in_fd\fP\fB, off_t *\fP\fIoffset\fP\fB,
size_t\fP\fI count\fP\fB);\fP
.SH 説明
-\fBsendfile\fP() ã\81¯ã\80\81ã\81\82ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8bã\82\89å\88¥ã\81® ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿へのデータのコピーを行う。
+\fBsendfile\fP() ã\81¯ã\80\81ã\81\82ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8bã\82\89å\88¥ã\81® ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼へのデータのコピーを行う。
このコピーはカーネル内で行われるので、 \fBsendfile\fP() は、 \fBread\fP(2) と \fBwrite\fP(2)
-を組み合わせるよりも効率がよい。 \fBread\fP(2) や \fBwrite\fP(2) ではユーザ空間との間でデータの転送が必要となるからである。
+を組み合わせるよりも効率がよい。 \fBread\fP(2) や \fBwrite\fP(2) ではユーザー空間との間でデータの転送が必要となるからである。
-\fIin_fd\fP ã\81¯èªã\81¿è¾¼ã\81¿ã\81®ã\81\9fã\82\81ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿、 \fIout_fd\fP
-は書き込みのためにオープンされたディスクリプタでなければならない。
+\fIin_fd\fP ã\81¯èªã\81¿è¾¼ã\81¿ã\81®ã\81\9fã\82\81ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼、 \fIout_fd\fP
+ã\81¯æ\9b¸ã\81\8dè¾¼ã\81¿ã\81®ã\81\9fã\82\81ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
\fIoffset\fP が NULL でない場合、 \fIoffset\fP は \fBsendfile\fP() が \fIin_fd\fP
-ã\81®ã\81©ã\81\93ã\81\8bã\82\89ã\83\87ã\83¼ã\82¿ã\82\92èªã\81¿å§\8bã\82\81ã\82\8bã\81\8bã\82\92示ã\81\99ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bå¤\89æ\95°ã\81¸ã\81® ã\83\9dã\82¤ã\83³ã\82¿である。 \fBsendfile\fP()
+ã\81®ã\81©ã\81\93ã\81\8bã\82\89ã\83\87ã\83¼ã\82¿ã\82\92èªã\81¿å§\8bã\82\81ã\82\8bã\81\8bã\82\92示ã\81\99ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bå¤\89æ\95°ã\81¸ã\81® ã\83\9dã\82¤ã\83³ã\82¿ã\83¼である。 \fBsendfile\fP()
は復帰する時、この変数に最後に読み込んだバイトの 次のバイトのオフセットを書き込む。 \fIoffset\fP が NULL でない場合、
-\fBsendfile\fP() ã\81¯ \fIin_fd\fP ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81®ç\8f¾å\9c¨å\80¤ã\82\92å¤\89æ\9b´ã\81\97ã\81ªã\81\84ã\80\82 NULL ã\81®å ´å\90\88ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83»オフセットの現在値を
+\fBsendfile\fP() ã\81¯ \fIin_fd\fP ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81®ç\8f¾å\9c¨å\80¤ã\82\92å¤\89æ\9b´ã\81\97ã\81ªã\81\84ã\80\82 NULL ã\81®å ´å\90\88ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«オフセットの現在値を
\fIin_fd\fP から読み込んだバイト数を反映した位置に調整する。
-\fIoffset\fP ã\81\8c NULL ã\81®å ´å\90\88ã\80\81ã\83\87ã\83¼ã\82¿ã\81¯ \fIin_fd\fP ã\81®ç\8f¾å\9c¨ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81\8bã\82\89èªã\81¿å\87ºã\81\95ã\82\8cã\80\81
-ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81¯ã\81\93ã\81®å\91¼ã\81³å\87ºã\81\97ã\81§æ\9b´æ\96°ã\81\95ã\82\8cã\82\8bã\80\82
+\fIoffset\fP が NULL の場合、データは \fIin_fd\fP の現在のファイルオフセットから読み出され、
+ファイルオフセットはこの呼び出しで更新される。
-\fIcount\fP ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿間でコピーするバイト数である。
+\fIcount\fP ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼間でコピーするバイト数である。
\fIin_fd\fP 引き数は \fBmmap\fP(2) 風の操作ができるファイルを指していなければならな
い (ソケットを指定することはできない)。
アドレスがおかしい。
.TP
\fBEINVAL\fP
-ディスクリプタが有効でないか、ロックされている。もしくは \fBmmap\fP(2) 風の操作が \fIin_fd\fP では利用できない。
+ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cæ\9c\89å\8a¹ã\81§ã\81ªã\81\84ã\81\8bã\80\81ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82ã\82\82ã\81\97ã\81\8fã\81¯ \fBmmap\fP(2) 風ã\81®æ\93\8dä½\9cã\81\8c \fIin_fd\fP ã\81§ã\81¯å\88©ç\94¨ã\81§ã\81\8dã\81ªã\81\84ã\80\82
.TP
\fBEIO\fP
\fIin_fd\fP から読み込んでいるうちに予期しないエラーが起こった。
.TP
\fBENOMEM\fP
-\fIin_fd\fP から読み込むための十分なメモリがない。
+\fIin_fd\fP ã\81\8bã\82\89èªã\81¿è¾¼ã\82\80ã\81\9fã\82\81ã\81®å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.SH バージョン
\fBsendfile\fP は Linux 2.2 の新しい機能である。 インクルードファイル \fI<sys/sendfile.h>\fP は
glibc 2.1 から存在している。
他の UNIX システムでは、異なった方式やプロトタイプで \fBsendfile\fP()
を実装している。移植性を考慮したプログラムでは使用すべきではない。
.SH 注意
-\fBsendfile\fP() ã\82\92使ã\81£ã\81¦ TCP ã\82½ã\82±ã\83\83ã\83\88ã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\82\92é\80\81ã\82\8dã\81\86ã\81¨ã\81\97ã\81¦ã\81\84ã\81¦ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\86\85容ã\81®å\89\8dã\81«ã\83\98ã\83\83ã\83\80ã\83»データを付け加える必要がある場合は、
+\fBsendfile\fP() ã\82\92使ã\81£ã\81¦ TCP ã\82½ã\82±ã\83\83ã\83\88ã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\82\92é\80\81ã\82\8dã\81\86ã\81¨ã\81\97ã\81¦ã\81\84ã\81¦ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\86\85容ã\81®å\89\8dã\81«ã\83\98ã\83\83ã\83\80ã\83¼データを付け加える必要がある場合は、
パケット数を最小にして性能を上げるために \fBtcp\fP(7) に記述されている \fBTCP_CORK\fP オプションを使うといいだろう。
Linux 2.4 とそれ以前のバージョンでも、 \fIout_fd\fP は通常のファイルを参照でき、
\fBsendmmsg\fP() システムコールは \fBsendmsg\fP(2) の拡張で、
このシステムコールを使うと一度の呼び出しでソケットに複数のメッセージを送信できる (アプリケーションによっては性能上のメリットがある)。
-\fIsockfd\fP 引き数は、 データを送信するソケットのファイルディスクリプタである。
+\fIsockfd\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81 ã\83\87ã\83¼ã\82¿ã\82\92é\80\81ä¿¡ã\81\99ã\82\8bã\82½ã\82±ã\83\83ã\83\88ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
\fImsgvec\fP 引き数は \fImmsghdr\fP 構造体の配列である。 この配列の大きさは \fIvlen\fP で指定する。
.in +4n
.nf
struct mmsghdr {
- struct msghdr msg_hdr; /* メッセージヘッダ */
+ struct msghdr msg_hdr; /* メッセージヘッダー */
unsigned int msg_len; /* 送信されたバイト数 */
};
.fi
.PP
\fImsg_hdr\fP フィールドは、 \fBsendmsg\fP(2) で説明されている \fImsghdr\fP 構造体である。 \fImsg_len\fP
フィールドは \fImsg_hdr\fP から送信されたメッセージのバイト数を返すのに使用される。 この値は \fBsendmsg\fP(2)
-をこのヘッダに対して呼び出した場合の返り値と同じである。
+ã\82\92ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\81«å¯¾ã\81\97ã\81¦å\91¼ã\81³å\87ºã\81\97ã\81\9få ´å\90\88ã\81®è¿\94ã\82\8aå\80¤ã\81¨å\90\8cã\81\98ã\81§ã\81\82ã\82\8bã\80\82
\fIflags\fP 引き数には複数のフラグを論理和 (OR) で指定できる。フラグは \fBsendmsg\fP(2) と同じである。
\fIvlen\fP に指定できる値の最大値は \fBUIO_MAXIOV\fP (1024) である。
.SH 例
以下の例では、 \fBsendmmsg\fP() を使って、 一度のシステムコールで、 \fIonetwo\fP と \fIthree\fP を二つの別々の UDP
-データグラムで送信する。 一つ目のデータグラムの内容は、二つのバッファから取得される。
+ã\83\87ã\83¼ã\82¿ã\82°ã\83©ã\83 ã\81§é\80\81ä¿¡ã\81\99ã\82\8bã\80\82 ä¸\80ã\81¤ç\9b®ã\81®ã\83\87ã\83¼ã\82¿ã\82°ã\83©ã\83 ã\81®å\86\85容ã\81¯ã\80\81äº\8cã\81¤ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8bã\82\89å\8f\96å¾\97ã\81\95ã\82\8cã\82\8bã\80\82
.nf
#define _GNU_SOURCE
.\"
.TH SET_MEMPOLICY 2 2014\-05\-28 Linux "Linux Programmer's Manual"
.SH 名前
-set_mempolicy \- プロセスとその子プロセスの NUMA メモリの デフォルトポリシーを設定する
+set_mempolicy \- ã\83\97ã\83ã\82»ã\82¹ã\81¨ã\81\9dã\81®å\90ã\83\97ã\83ã\82»ã\82¹ã\81® NUMA ã\83¡ã\83¢ã\83ªã\83¼ã\81® ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\83\9dã\83ªã\82·ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <numaif.h>\fP
ポリシーはポリシーモードと 0 個以上のノードから構成され、 設定内容は引き数 \fImode\fP, \fInodemask\fP, \fImaxnode\fP
により指定される。
-NUMA (é\9d\9e対称ã\83¡ã\83¢ã\83ªã\82¢ã\82¯ã\82»ã\82¹) ã\83\9eã\82·ã\83³ã\81§ã\81¯ã\80\81CPU ã\81«ã\82\88ã\82\8a ã\83¡ã\83¢ã\83ªã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©が異なり、距離も異なっている。
-ã\83¡ã\83¢ã\83ªã\83\9dã\83ªã\82·ã\83¼ã\81¯ã\80\81ã\81©ã\81®ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89ã\83¡ã\83¢ã\83ªをそのプロセスに 割り当てるかを定めるものである。
+NUMA (é\9d\9e対称ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\82¯ã\82»ã\82¹) ã\83\9eã\82·ã\83³ã\81§ã\81¯ã\80\81CPU ã\81«ã\82\88ã\82\8a ã\83¡ã\83¢ã\83ªã\83¼ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼が異なり、距離も異なっている。
+ã\83¡ã\83¢ã\83ªã\83¼ã\83\9dã\83ªã\82·ã\83¼ã\81¯ã\80\81ã\81©ã\81®ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89ã\83¡ã\83¢ã\83ªã\83¼をそのプロセスに 割り当てるかを定めるものである。
\fBset_mempolicy\fP() は、プロセスのデフォルトポリシーを定める。 プロセスのポリシーは、 \fBmbind\fP(2)
-で設定される特定のポリシーにより制御されるメモリ領域以外の プロセスのアドレス空間におけるページの割り当てに適用される。
+で設定される特定のポリシーにより制御されるメモリー領域以外の プロセスのアドレス空間におけるページの割り当てに適用される。
プロセスのデフォルトポリシーは、 \fBMAP_PRIVATE\fP フラグを指定した \fBmmap\fP(2)
-を使ってマップされたメモリマップ・ファイルに対する読み出し専用 (ロードされるだけ) のページの割り当てにも適用される。 また、
-\fBMAP_SHARED\fP フラグを指定した \fBmmap\fP(2) を使ってマップされたメモリマップ・ファイルに対するページの割り当てにも 適用される
-(この場合はページのアクセス種別に関わらず適用される) 。 設定したポリシーは、プロセスに新規のページが割り当てられるときにのみ 適用される。無名メモリ
-(anonymous memory) の場合、新規ページの割り当ては アプリケーションが初めてページにアクセスした際に行われる。
+を使ってマップされたメモリーマップファイルに対する読み出し専用 (ロードされるだけ) のページの割り当てにも適用される。 また、
+\fBMAP_SHARED\fP フラグを指定した \fBmmap\fP(2) を使ってマップされたメモリーマップファイルに対するページの割り当てにも 適用される
+(この場合はページのアクセス種別に関わらず適用される) 。 設定したポリシーは、プロセスに新規のページが割り当てられるときにのみ
+適用される。無名メモリー (anonymous memory) の場合、新規ページの割り当ては
+アプリケーションが初めてページにアクセスした際に行われる。
\fImode\fP 引き数には \fBMPOL_DEFAULT\fP, \fBMPOL_BIND\fP, \fBMPOL_INTERLEAVE\fP,
\fBMPOL_PREFERRED\fP のいずれか一つを指定してしなければならない。 \fBMPOL_DEFAULT\fP 以外のポリシーの場合、呼び出し元は
\fInodemask\fP 引き数は無視される。
\fInodemask\fP が必須の場面では、 \fInodemask\fP に、オンラインで、そのプロセスの現在の CPU 集合コンテキストで 許可されており
-(\fBMPOL_F_STATIC_NODES\fP モードフラグが指定されていない場合)、メモリがあるノードが 少なくとも一つ入っていなければならない。
+(\fBMPOL_F_STATIC_NODES\fP ã\83¢ã\83¼ã\83\89ã\83\95ã\83©ã\82°ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88)ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81\82ã\82\8bã\83\8eã\83¼ã\83\89ã\81\8c å°\91ã\81ªã\81\8fã\81¨ã\82\82ä¸\80ã\81¤å\85¥ã\81£ã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
\fImode\fP に \fBMPOL_F_STATIC_NODES\fP がセットされ、 \fInodemask\fP が必須の場面で、 \fInodemask\fP
-に、そのプロセスの現在の CPU 集合コンテキストで許可されたノードが 一つも含まれていない場合には、メモリのポリシーとしてデフォルトの
+ã\81«ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ç\8f¾å\9c¨ã\81® CPU é\9b\86å\90\88ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81§è¨±å\8f¯ã\81\95ã\82\8cã\81\9fã\83\8eã\83¼ã\83\89ã\81\8c ä¸\80ã\81¤ã\82\82å\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\81«ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83\9dã\83ªã\82·ã\83¼ã\81¨ã\81\97ã\81¦ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®
「ローカルから割り当て (local allocation)」が適用される。 そのプロセスの CPU 集合コンテキストが \fInodemask\fP
で指定されたノードを少なくとも一つ含むようになるまでは、 結果的に指定された動作が上書きされることになる。
-\fBMPOL_DEFAULT\fP モードは、デフォルトではないプロセスのメモリポリシーを削除することを
-指定するものである。これにより、メモリポリシーはシステムの デフォルトポリシーに「戻る」ことになる。
-システムのデフォルトポリシーは「ローカルからの割り当て (local allocation)」、 つまりメモリ割り当てのきっかけとなった CPU
-のノードのメモリが割り当てられる。 \fInodemask\fP には NULL を指定しなければならない。 「自ノード (local
-node)ã\80\8dã\81«ç©ºã\81\8dã\83¡ã\83¢ã\83ªã\81\8cå\85¨ã\81\8fã\81ªã\81\84å ´å\90\88ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81¯ ã\80\8cè¿\91ã\81\8fã\81® (near by) ã\83\8eã\83¼ã\83\89ã\80\8dã\81\8bã\82\89ã\83¡ã\83¢ã\83ªを割り当てようと試みる。
+\fBMPOL_DEFAULT\fP ã\83¢ã\83¼ã\83\89ã\81¯ã\80\81ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\81ªã\81\84ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\9dã\83ªã\82·ã\83¼ã\82\92å\89\8aé\99¤ã\81\99ã\82\8bã\81\93ã\81¨ã\82\92
+æ\8c\87å®\9aã\81\99ã\82\8bã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82ã\81\93ã\82\8cã\81«ã\82\88ã\82\8aã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\83\9dã\83ªã\82·ã\83¼ã\81¯ã\82·ã\82¹ã\83\86ã\83 ã\81® ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\83\9dã\83ªã\82·ã\83¼ã\81«ã\80\8cæ\88»ã\82\8bã\80\8dã\81\93ã\81¨ã\81«ã\81ªã\82\8bã\80\82
+システムのデフォルトポリシーは「ローカルからの割り当て (local allocation)」、 つまりメモリー割り当てのきっかけとなった CPU
+ã\81®ã\83\8eã\83¼ã\83\89ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\82\8bã\80\82 \fInodemask\fP ã\81«ã\81¯ NULL ã\82\92æ\8c\87å®\9aã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\80\8cè\87ªã\83\8eã\83¼ã\83\89 (local
+node)ã\80\8dã\81«ç©ºã\81\8dã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå\85¨ã\81\8fã\81ªã\81\84å ´å\90\88ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81¯ ã\80\8cè¿\91ã\81\8fã\81® (near by) ã\83\8eã\83¼ã\83\89ã\80\8dã\81\8bã\82\89ã\83¡ã\83¢ã\83ªã\83¼を割り当てようと試みる。
-\fBMPOL_BIND\fP モードは厳密なポリシーで、メモリ割り当ては \fInodemask\fP に指定されたノードに限定される。 \fInodemask\fP
+\fBMPOL_BIND\fP モードは厳密なポリシーで、メモリー割り当ては \fInodemask\fP に指定されたノードに限定される。 \fInodemask\fP
に 2 個以上のノードが指定された場合、ページの割り当ては ノード ID が数字として最小のノードから開始され、
-ã\81\9dã\81®ã\83\8eã\83¼ã\83\89ã\81«ç©ºã\81\8dã\83¡ã\83¢ã\83ªã\81\8cã\81ªã\81\8fã\81ªã\82\8bã\81¾ã\81§ã\81\9dã\81®ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89 ã\83\9aã\83¼ã\82¸å\89²ã\82\8aå½\93ã\81¦ã\81\8cè¡\8cã\82\8fã\82\8cã\82\8bã\80\82ã\81\9dã\81®ã\83\8eã\83¼ã\83\89ã\81«ç©ºã\81\8dã\83¡ã\83¢ã\83ªがなくなったら、 次に小さなノード ID
-を持つノードからページ割り当てが行われる。 これを、 \fInodemask\fP で指定された全てのノードで空きメモリがなくなるまで繰り返す。
+ã\81\9dã\81®ã\83\8eã\83¼ã\83\89ã\81«ç©ºã\81\8dã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\8fã\81ªã\82\8bã\81¾ã\81§ã\81\9dã\81®ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89 ã\83\9aã\83¼ã\82¸å\89²ã\82\8aå½\93ã\81¦ã\81\8cè¡\8cã\82\8fã\82\8cã\82\8bã\80\82ã\81\9dã\81®ã\83\8eã\83¼ã\83\89ã\81«ç©ºã\81\8dã\83¡ã\83¢ã\83ªã\83¼がなくなったら、 次に小さなノード ID
+ã\82\92æ\8c\81ã\81¤ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89ã\83\9aã\83¼ã\82¸å\89²ã\82\8aå½\93ã\81¦ã\81\8cè¡\8cã\82\8fã\82\8cã\82\8bã\80\82 ã\81\93ã\82\8cã\82\92ã\80\81 \fInodemask\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\85¨ã\81¦ã\81®ã\83\8eã\83¼ã\83\89ã\81§ç©ºã\81\8dã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\8fã\81ªã\82\8bã\81¾ã\81§ç¹°ã\82\8aè¿\94ã\81\99ã\80\82
\fInodemask\fP で指定された以外のノードからはページの割り当ては行われない。
.\" NOTE: the following sentence doesn't make sense in the context
.\" To be effective the memory area should be fairly large,
.\" at least 1MB or bigger.
\fBMPOL_INTERLEAVE\fP では、ページ割り当てを \fInodemask\fP に指定されたノードの間でノード ID の数字順で交互に行う。
-このポリシーでは、複数のノードにページを広げて配置し、これらのページへのメモリ アクセスを分散することで、遅延ではなく、帯域を最適化する。
-ただし、一つのページへのアクセスに関しては依然として一つのノードのメモリ帯域 が上限となる。
+このポリシーでは、複数のノードにページを広げて配置し、これらのページへのメモリー アクセスを分散することで、遅延ではなく、帯域を最適化する。
+ただし、一つのページへのアクセスに関しては依然として一つのノードのメモリー帯域 が上限となる。
\fBMPOL_PREFERRED\fP は、割り当て時に優先されるノード (preferred node) を設定する。
-ã\82«ã\83¼ã\83\8dã\83«ã\81¯ã\81¾ã\81\9aå\84ªå\85\88ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89ã\83\9aã\83¼ã\82¸å\89²ã\82\8aå½\93ã\81¦ã\82\92è¡\8cã\81\8aã\81\86ã\81¨ã\81\97ã\80\81 å\84ªå\85\88ã\83\8eã\83¼ã\83\89ã\81«ç©ºã\81\8dã\83¡ã\83¢ã\83ªã\81\8cå°\91ã\81ªã\81\84å ´å\90\88ã\81«ã\80\8cè¿\91ã\81\8fã\81® (near by)ã\80\8dã\83\8eã\83¼ã\83\89ã\81\8bã\82\89 å\89²ã\82\8aå½\93ã\81¦ã\82\92è¡\8cã\81\86ã\80\82
-\fInodemask\fP に複数のノード ID が指定された場合は、 \fInodemask\fP 内の最初のノードが優先ノードとして選択される。 引き数
-\fInodemask\fP, \fImaxnode\fP で空集合が指定された場合は、ポリシーは (上述のシステムの デフォルトポリシーと同様に)
-「ローカルからの割り当て」となる。
+ã\82«ã\83¼ã\83\8dã\83«ã\81¯ã\81¾ã\81\9aå\84ªå\85\88ã\83\8eã\83¼ã\83\89ã\81\8bã\82\89ã\83\9aã\83¼ã\82¸å\89²ã\82\8aå½\93ã\81¦ã\82\92è¡\8cã\81\8aã\81\86ã\81¨ã\81\97ã\80\81 å\84ªå\85\88ã\83\8eã\83¼ã\83\89ã\81«ç©ºã\81\8dã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå°\91ã\81ªã\81\84å ´å\90\88ã\81«ã\80\8cè¿\91ã\81\8fã\81® (near by)ã\80\8dã\83\8eã\83¼ã\83\89ã\81\8bã\82\89
+割り当てを行う。 \fInodemask\fP に複数のノード ID が指定された場合は、 \fInodemask\fP
+内の最初のノードが優先ノードとして選択される。 引き数 \fInodemask\fP, \fImaxnode\fP で空集合が指定された場合は、ポリシーは
+(上述のシステムの デフォルトポリシーと同様に) 「ローカルからの割り当て」となる。
-プロセスのメモリポリシーは \fBexecve\fP(2) の前後で保持され、 \fBfork\fP(2) や \fBclone\fP(2)
+ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\9dã\83ªã\82·ã\83¼ã\81¯ \fBexecve\fP(2) ã\81®å\89\8då¾\8cã\81§ä¿\9dæ\8c\81ã\81\95ã\82\8cã\80\81 \fBfork\fP(2) ã\82\84 \fBclone\fP(2)
を使って作成された子プロセスに継承される。
.SH 返り値
成功すると、 \fBset_mempolicy\fP() は 0 を返す。エラーの場合、\-1 を返し、 \fIerrno\fP にエラーを示す値を設定する。
.SH エラー
.TP
\fBEFAULT\fP
-\fInodemask\fP と \fImaxnode\fP で指定されたメモリ領域の一部または全部が、 呼び出し元がアクセス可能なアドレス空間外を指している。
+\fInodemask\fP と \fImaxnode\fP で指定されたメモリー領域の一部または全部が、 呼び出し元がアクセス可能なアドレス空間外を指している。
.TP
\fBEINVAL\fP
\fImode\fP が不正である。 \fImode\fP が \fBMPOL_DEFAULT\fP で、 \fInodemask\fP が空ではない。 \fImode\fP が
\fBMPOL_BIND\fP か \fBMPOL_INTERLEAVE\fP で、 \fInodemask\fP が空である。 \fImaxnode\fP
で実際に意味があるビット数より多くのビット数が指定された。 \fInodemask\fP に、サポートされている最大ノード ID
より大きいノードが指定された。 \fInodemask\fP に、オンラインで、かつそのプロセスの現在の CPU 集合コンテキストで
-許可されているノードが一つも含まれていないか、 メモリを含むノードが一つも指定されていない。 \fImode\fP 引き数に
+許å\8f¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\8eã\83¼ã\83\89ã\81\8cä¸\80ã\81¤ã\82\82å\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\81\8bã\80\81 ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\90«ã\82\80ã\83\8eã\83¼ã\83\89ã\81\8cä¸\80ã\81¤ã\82\82æ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82 \fImode\fP å¼\95ã\81\8dæ\95°ã\81«
\fBMPOL_F_STATIC_NODES\fP と \fBMPOL_F_RELATIVE_NODES\fP の両方が指定された。
.TP
\fBENOMEM\fP
-利用可能なカーネルメモリが十分でなかった。
+å\88©ç\94¨å\8f¯è\83½ã\81ªã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå\8d\81å\88\86ã\81§ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.SH バージョン
\fBset_mempolicy\fP() システムコールはバージョン 2.6.7 で Linux カーネルに追加された。
.SH 準拠
このシステムコールは Linux 固有である。
.SH 注意
-ã\83\9aã\83¼ã\82¸ã\81\8cã\82¹ã\83¯ã\83\83ã\83\97ã\83»ã\82¢ã\82¦ã\83\88ã\81\95ã\82\8cã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81 ã\83\97ã\83ã\82»ã\82¹ã\83\9dã\83ªã\82·ã\83¼ã\81®è¨å®\9aã\81¯æ\8e¨å¥¨ã\81\95ã\82\8cã\81ªã\81\84ã\80\82 ã\82¹ã\83¯ã\83\83ã\83\97ã\83»ã\82¢ã\82¦ã\83\88ã\81\95ã\82\8cã\81\9fã\83\9aã\83¼ã\82¸ã\81\8cã\83\9aã\83¼ã\82¸ã\83»インする際にも、
-ページ割り当て時に適用されるプロセスポリシーやメモリ領域ポリシーが 使用される。
+ã\83\9aã\83¼ã\82¸ã\81\8cã\82¹ã\83¯ã\83\83ã\83\97ã\82¢ã\82¦ã\83\88ã\81\95ã\82\8cã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81 ã\83\97ã\83ã\82»ã\82¹ã\83\9dã\83ªã\82·ã\83¼ã\81®è¨å®\9aã\81¯æ\8e¨å¥¨ã\81\95ã\82\8cã\81ªã\81\84ã\80\82 ã\82¹ã\83¯ã\83\83ã\83\97ã\82¢ã\82¦ã\83\88ã\81\95ã\82\8cã\81\9fã\83\9aã\83¼ã\82¸ã\81\8cã\83\9aã\83¼ã\82¸インする際にも、
+ページ割り当て時に適用されるプロセスポリシーやメモリー領域ポリシーが 使用される。
ライブラリによるサポートについては \fBnuma\fP(7) を参照。
.SH 関連項目
\fI注\fP: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。
.SH 説明
\fBset_thread_area\fP() は、カレントスレッドのスレッド局所記憶 (thread\-local storage; TLS)
-é\85\8då\88\97ã\81®ä¸ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82 \fBset_thread_area\fP() ã\81«ã\82\88ã\82\8aè¨å®\9aã\81\95ã\82\8cã\82\8b TLS é\85\8då\88\97ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\81\8bã\82\89å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦æ¸¡ã\81\95ã\82\8cã\82\8b
-\fIu_info\->entry_number\fP の値に対応している。値が範囲内にある場合、 \fBset_thread_area\fP() は
-\fIu_info\fP で指された TLS ディスクリプタをスレッドの TLS 配列にコピーする。
+é\85\8då\88\97ã\81®ä¸ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82 \fBset_thread_area\fP() ã\81«ã\82\88ã\82\8aè¨å®\9aã\81\95ã\82\8cã\82\8b TLS
+配列のエントリーは、ユーザーから引き数として渡される \fIu_info\->entry_number\fP の値に対応している。値が範囲内にある場合、
+\fBset_thread_area\fP() は \fIu_info\fP で指された TLS ディスクリプターをスレッドの TLS 配列にコピーする。
.PP
\fIentry_number\fP として \-1 が渡された場合、 \fBset_thread_area\fP() は未使用 (free) の TLS
-ã\82¨ã\83³ã\83\88ã\83ªã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82 æ\9cªä½¿ç\94¨ã\81® TLS ã\82¨ã\83³ã\83\88ã\83ªã\81\8cã\81\82ã\81£ã\81\9få ´å\90\88ã\80\81ã\81©ã\81®ã\82¨ã\83³ã\83\88ã\83ªが変更されたかが分かる ように終了時に
+ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82 æ\9cªä½¿ç\94¨ã\81® TLS ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\81\82ã\81£ã\81\9få ´å\90\88ã\80\81ã\81©ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼が変更されたかが分かる ように終了時に
\fIu_info\->entry_number\fP の値が変更される。
.SH 返り値
\fBset_thread_area\fP() は成功した場合 0 を返す。失敗した場合は \-1 を返し、 \fIerrno\fP を適切に設定する。
\fIu_info\->entry_number\fP が範囲外である。
.TP
\fBEFAULT\fP
-\fIu_info\fP が不正なポインタである。
+\fIu_info\fP ã\81\8cä¸\8dæ£ã\81ªã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBESRCH\fP
-未使用の TLS エントリが見つからなかった。
+æ\9cªä½¿ç\94¨ã\81® TLS ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.SH バージョン
\fBset_thread_area\fP() は Linux 2.5.29 で初めて登場した。
.SH 準拠
.\"
.TH SET_TID_ADDRESS 2 2014\-07\-08 Linux "Linux Programmer's Manual"
.SH 名前
-set_tid_address \- スレッド ID へのポインタを設定する
+set_tid_address \- ã\82¹ã\83¬ã\83\83ã\83\89 ID ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <linux/unistd.h>\fP
システムコール \fBset_tid_address\fP() は呼び出し元スレッドの \fIclear_child_tid\fP の値を \fItidptr\fP
に設定する。
.LP
-\fIclear_child_tid\fP が NULL でないスレッドが終了すると、そのスレッドが他のスレッドとメモリを共有していれば、
+\fIclear_child_tid\fP ã\81\8c NULL ã\81§ã\81ªã\81\84ã\82¹ã\83¬ã\83\83ã\83\89ã\81\8cçµ\82äº\86ã\81\99ã\82\8bã\81¨ã\80\81ã\81\9dã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81\8cä»\96ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81¨ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\85±æ\9c\89ã\81\97ã\81¦ã\81\84ã\82\8cã\81°ã\80\81
\fIclear_child_tid\fP で指定されたアドレスに 0 が書き込まれ、カーネルは以下の処理を実行する。
futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);
-この処理の結果、このメモリアドレスに対する futex wait を実行しているスレッドを一つ起こす (wake)。 futex wake
+ã\81\93ã\81®å\87¦ç\90\86ã\81®çµ\90æ\9e\9cã\80\81ã\81\93ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\81«å¯¾ã\81\99ã\82\8b futex wait ã\82\92å®\9fè¡\8cã\81\97ã\81¦ã\81\84ã\82\8bã\82¹ã\83¬ã\83\83ã\83\89ã\82\92ä¸\80ã\81¤èµ·ã\81\93ã\81\99 (wake)ã\80\82 futex wake
操作でのエラーは無視される。
.SH 返り値
\fBset_tid_address\fP() は常に呼び出し元のスレッド ID を返す。
set\-user\-ID を変更するかもしれない。 glibc 2.1 では、 \fBsetresuid(\-1,\fP\fI euid\fP\fB, \-1)\fP
と等価であり、保存 set\-user\-ID 変更しない。 同様のことが \fBsetegid\fP() にも言えるが、 glibc 2.2 か 2.3 で、
実装が \fBsetregid(\-1,\fP\fI egid\fP\fB)\fP から \fBsetresgid(\-1,\fP\fI egid\fP\fB, \-1)\fP
-へ変更された点だけが違う (どの glibc バージョンで変更が行われたかは、ハードウェアアーキテクチャによって異なる)。
+ã\81¸å¤\89æ\9b´ã\81\95ã\82\8cã\81\9fç\82¹ã\81 ã\81\91ã\81\8cé\81\95ã\81\86 (ã\81©ã\81® glibc ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81§å¤\89æ\9b´ã\81\8cè¡\8cã\82\8fã\82\8cã\81\9fã\81\8bã\81¯ã\80\81ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\82\88ã\81£ã\81¦ç\95°ã\81ªã\82\8b)ã\80\82
-POSIX.1 では、 \fBseteuid\fP() (\fBsetegid\fP()) で、 \fIeuid\fP (\fIegid\fP) として現在の実効ユーザ
-(グループ) ID と同じ値を指定可能である 必要はないとされており、いくつかの実装では \fIeuid\fP (\fIegid\fP) として現在の実効ユーザ
+POSIX.1 では、 \fBseteuid\fP() (\fBsetegid\fP()) で、 \fIeuid\fP (\fIegid\fP) として現在の実効ユーザー
+(グループ) ID と同じ値を指定可能である 必要はないとされており、いくつかの実装では \fIeuid\fP (\fIegid\fP) として現在の実効ユーザー
(グループ) ID と同じ値を 指定することができない。
.SS "C ライブラリとカーネル ABI の違い"
Linux では、 \fBseteuid\fP() と \fBsetegid\fP() は、それぞれ \fBsetreuid\fP(2) と
が変更される度にファイルシステムグループ ID もまた新しい実効グループ ID の値に変更される。
通常、 \fBsetfsuid\fP() や \fBsetfsgid\fP() を明示的に呼び出すのは、Linux NFS サーバー のように、
-ファイルアクセスに用いるユーザID / グループID を変更しなければならないが、 対応する実(real)/実効(effective) ユーザID /
-グループID は変更したくないような プログラムに限られる。 NFS サーバーのようなプログラムで、通常のユーザID を変更すると、
+ファイルアクセスに用いるユーザーID / グループID を変更しなければならないが、 対応する実(real)/実効(effective) ユーザーID
+/ グループID は変更したくないような プログラムに限られる。 NFS サーバーのようなプログラムで、通常のユーザーID を変更すると、
プロセスを望まないシグナルにさらす可能性があり、 セキュリティホールになる。(下記参照)
-\fBsetfsgid\fP() は、スーパーユーザによって呼び出された場合か、 \fIfsgid\fP が呼び出し元の実グループID、実効グループID、
+\fBsetfsgid\fP() ã\81¯ã\80\81ã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\83¼ã\81«ã\82\88ã\81£ã\81¦å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9få ´å\90\88ã\81\8bã\80\81 \fIfsgid\fP ã\81\8cå\91¼ã\81³å\87ºã\81\97å\85\83ã\81®å®\9fã\82°ã\83«ã\83¼ã\83\97IDã\80\81å®\9få\8a¹ã\82°ã\83«ã\83¼ã\83\97IDã\80\81
保存セットグループID (saved set\-group\-ID)、現在のファイルシステムグループ ID の値のいずれかに一致する場合にのみ成功する。
.SH 返り値
成功時も失敗時も、 この呼び出しは直前の呼び出し元のファイルシステムグループ ID の値を返す。
glibc が引き数がグループID として不正だと判断した場合は、 システムコールを行わず \fIerrno\fP に \fBEINVAL\fP を設定して \-1
が返される。
.LP
-このシステムコールが導入された当時、プロセスは 同じ実効ユーザIDのプロセスへシグナルを送ることができた。
+このシステムコールが導入された当時、プロセスは 同じ実効ユーザーIDのプロセスへシグナルを送ることができた。
今日では、シグナル送信権限の扱いはかなり違うものになっている。 なぜ今日では \fBsetfsuid\fP(2) と \fBsetfsgid\fP()
の両者が不要なのかの議論については \fBsetfsuid\fP(2) を参照のこと。
.\"
.TH SETFSUID 2 2013\-08\-08 Linux "Linux Programmer's Manual"
.SH 名前
-setfsuid \- ファイルシステムのチェックに用いられるユーザ ID を設定する
+setfsuid \- ファイルシステムのチェックに用いられるユーザー ID を設定する
.SH 書式
\fB#include <sys/fsuid.h>\fP
.sp
\fBint setfsuid(uid_t \fP\fIfsuid\fP\fB);\fP
.SH 説明
\fBsetfsuid\fP() は、 呼び出し元のファイルシステムユーザー ID \(em ファイルシステムへの全てのアクセスのチェックにおいて
-Linux カーネルが使用するユーザ ID \(em の値を変更する。通常はファイルシステムユーザー ID の値は実効 (effective)
-ユーザID と同じになる。実際、 実効ユーザID が変更される度にファイルシステムユーザー ID もまた新しい実効ユーザ ID の値に変更される。
+Linux カーネルが使用するユーザー ID \(em の値を変更する。通常はファイルシステムユーザー ID の値は実効 (effective)
+ユーザーID と同じになる。実際、 実効ユーザーID が変更される度にファイルシステムユーザー ID もまた新しい実効ユーザー ID の値に変更される。
通常、 \fBsetfsuid\fP() や \fBsetfsgid\fP() を明示的に呼び出すのは、Linux NFS サーバー のように、
-ファイルアクセスに用いるユーザID / グループID を変更しなければならないが、 対応する実(real)/実効(effective) ユーザID /
-グループID は変更したくないような プログラムに限られる。 NFS サーバーのようなプログラムで、通常のユーザID を変更すると、
+ファイルアクセスに用いるユーザーID / グループID を変更しなければならないが、 対応する実(real)/実効(effective) ユーザーID
+/ グループID は変更したくないような プログラムに限られる。 NFS サーバーのようなプログラムで、通常のユーザーID を変更すると、
プロセスを望まないシグナルにさらす可能性があり、 セキュリティホールになる。(下記参照)
-\fBsetfsuid\fP() ã\81¯ã\80\81ã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\81«ã\82\88ã\81£ã\81¦å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9få ´å\90\88ã\81\8bã\80\81 \fIfsuid\fP ã\81\8cå\91¼ã\81³å\87ºã\81\97å\85\83ã\81®å®\9fã\83¦ã\83¼ã\82¶IDã\80\81å®\9få\8a¹ã\83¦ã\83¼ã\82¶ID、
-保存セットユーザID (saved set\-user\-ID)、現在のファイルシステムグループ ID の値のいずれかに一致する場合にのみ成功する。
+\fBsetfsuid\fP() ã\81¯ã\80\81ã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\83¼ã\81«ã\82\88ã\81£ã\81¦å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9få ´å\90\88ã\81\8bã\80\81 \fIfsuid\fP ã\81\8cå\91¼ã\81³å\87ºã\81\97å\85\83ã\81®å®\9fã\83¦ã\83¼ã\82¶ã\83¼IDã\80\81å®\9få\8a¹ã\83¦ã\83¼ã\82¶ã\83¼ID、
+保存セットユーザーID (saved set\-user\-ID)、現在のファイルシステムグループ ID の値のいずれかに一致する場合にのみ成功する。
.SH 返り値
成功時も失敗時も、 この呼び出しは直前の呼び出し元のファイルシステムユーザー ID の値を返す。
.SH バージョン
.SH 準拠
\fBsetfsuid\fP() は Linux 特有であり、移植を想定したプログラムで使用してはいけない。
.SH 注意
-glibc が引き数がユーザID として不正だと判断した場合は、 システムコールを行わず \fIerrno\fP に \fBEINVAL\fP を設定して \-1
+glibc が引き数がユーザーID として不正だと判断した場合は、 システムコールを行わず \fIerrno\fP に \fBEINVAL\fP を設定して \-1
が返される。
.LP
このシステムコールが導入された当時、 あるプロセスは同じ実効ユーザー ID を持つ別のプロセスにシグナルを送信できた。 これは、
\fBint setns(int \fP\fIfd\fP\fB, int \fP\fInstype\fP\fB);\fP
.fi
.SH 説明
-名前空間を参照するファイルディスクリプタを指定すると、
+å\90\8då\89\8d空é\96\93ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81¨ã\80\81
呼び出したスレッドにその名前空間を関連付けしなおす。
-\fIfd\fP 引き数は、 \fI/proc/[pid]/ns/\fP ディレクトリ内の名前空間エントリ
-のいずれかを参照するファイルディスクリプタである。
+\fIfd\fP 引き数は、 \fI/proc/[pid]/ns/\fP ディレクトリ内の名前空間エントリー
+ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
\fI/proc/[pid]/ns/\fP の詳細は \fBnamespaces\fP(7) を参照。
\fInstype\fP 引き数で指定された制限の範囲内で、
呼び出したスレッドに \fIfd\fP に対応する名前空間を関連付けしなおす。
(もしくは気にする必要がない) 場合には、 \fInstype\fP に 0 を指定すれば十分
である。呼び出し側が \fIfd\fP がどのタイプの名前空間を参照しているかを
知っておらず、かつ、特定のタイプの名前空間であることを保証したい場合、
-\fInstype\fP に 0 以外の値を指定するとよい。 (ファイルディスクリプタが別の
+\fInstype\fP ã\81« 0 以å¤\96ã\81®å\80¤ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81¨ã\82\88ã\81\84ã\80\82 (ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\88¥ã\81®
プロセスによりオープンされ、例えば、UNIX ドメインソケット経由で呼び出し
側に渡された場合などでは、呼び出し側が \fIfd\fP がどのタイプの名前空間を
参照しているかを知らない可能性がある。)
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP が有効なファイルディスクリプタではない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fIfd\fP が \fInstype\fP で指定されたタイプと一致しない名前空間を参照している。
呼び出し元プロセスがマルチスレッドで、新しいユーザー名前空間に参加しようとした。
.TP
\fBENOMEM\fP
-指定された名前空間に変更するのに必要なメモリが割り当てられない。
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\90\8då\89\8d空é\96\93ã\81«å¤\89æ\9b´ã\81\99ã\82\8bã\81®ã\81«å¿\85è¦\81ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81ªã\81\84ã\80\82
.TP
\fBEPERM\fP
呼び出し元スレッドはこの操作を行うのに必要なケーパビリティを持っていなかった。
exit(EXIT_FAILURE);
}
- fd = open(argv[1], O_RDONLY); /* 名前空間のディスクリプタを取得 */
+ fd = open(argv[1], O_RDONLY); /* å\90\8då\89\8d空é\96\93ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\8f\96å¾\97 */
if (fd == \-1)
errExit("open");
.PD
.ad
.SH 説明
-これらのインタフェースすべてが Linux で利用可能で、 これらを使ってプロセスのプロセスグループ ID (PGID) の 取得や設定ができる。
+ã\81\93ã\82\8cã\82\89ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81\99ã\81¹ã\81¦ã\81\8c Linux ã\81§å\88©ç\94¨å\8f¯è\83½ã\81§ã\80\81 ã\81\93ã\82\8cã\82\89ã\82\92使ã\81£ã\81¦ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97 ID (PGID) ã\81® å\8f\96å¾\97ã\82\84è¨å®\9aã\81\8cã\81§ã\81\8dã\82\8bã\80\82
推奨の、POSIX.1 で規定された方法では、 \fBgetpgrp\fP(void) で呼び出し元プロセスの PGID を取得し、
\fBsetpgid\fP() で設定する。
\fBsetpgid\fP() と \fBgetpgrp\fP() は、 \fBbash\fP(1) のようなプログラムで、シェルのジョブ制御 (job
control) の実装のための プロセスグループを作成するのに使われる。
-セッションが制御端末を持っていて、その端末に対して \fBCLOCAL\fP フラグが設定されておらず、端末のハングアップが起きた場合、
-セッション・リーダーに \fBSIGHUP\fP が送られる。 セッション・リーダーが終了した場合には、その制御端末の
-フォアグランドのプロセスグループに所属する各プロセスにも \fBSIGHUP\fP シグナルが送られる。
+セッションが制御端末を持っていて、その端末に対して \fBCLOCAL\fP フラグが設定されておらず、端末のハングアップが起きた場合、 セッションリーダーに
+\fBSIGHUP\fP が送られる。 セッションリーダーが終了した場合には、その制御端末の フォアグランドのプロセスグループに所属する各プロセスにも
+\fBSIGHUP\fP シグナルが送られる。
.\" exit.3 refers to the following text:
プロセスの終了によってプロセスグループが孤児 (orphaned) になった際に、
.\"
.TH SETRESUID 2 2014\-09\-21 Linux "Linux Programmer's Manual"
.SH 名前
-setresuid, setresgid \- ユーザやグループの 実、実効、保存 ID を設定する
+setresuid, setresgid \- ã\83¦ã\83¼ã\82¶ã\83¼ã\82\84ã\82°ã\83«ã\83¼ã\83\97ã\81® å®\9fã\80\81å®\9få\8a¹ã\80\81ä¿\9då\98 ID ã\82\92è¨å®\9aã\81\99ã\82\8b
.SH 書式
\fB#define _GNU_SOURCE\fP /* feature_test_macros(7) 参照 */
.br
実効ユーザー (グループ) ID を保存ユーザー (グループ) ID に 設定することが、Linux 1.1.37 (1.1.38) から可能になった。
POSIX.1 では、非特権プロセスに対して Linux 上で認められている ID の変更の 全パターンを規定しているわけではない。
-\fBsetreuid\fP() では、実効ユーザ ID を実ユーザ ID もしくは保存 set\-user\-ID と 同じ値にすることができるが、
-非特権プロセスが実ユーザ ID を実ユーザ ID、実効ユーザ ID、 保存 set\-user\-ID のどの値にも設定できるかは規定されていない。
+\fBsetreuid\fP() では、実効ユーザー ID を実ユーザー ID もしくは保存 set\-user\-ID と 同じ値にすることができるが、
+非特権プロセスが実ユーザー ID を実ユーザー ID、実効ユーザー ID、 保存 set\-user\-ID のどの値にも設定できるかは規定されていない。
\fBsetregid\fP() では、実グループ ID を保存 set\-group\-ID と同じ値に変更でき、 実効グループ ID を実グループ ID
や保存 set\-group\-ID と同じ値に変更できる。 どのような ID の変更が認められているかの正確な詳細は 実装ごとに異なる。
.br
.ad b
.SH 説明
-\fBsetsid\fP() ã\81¯ã\80\81 å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81\8cã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\83»ã\83ªã\83¼ã\83\80ã\83¼ (process group leader) ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\80\81
+\fBsetsid\fP() は、 呼び出したプロセスがプロセスグループリーダー (process group leader) でなければ、
新しいセッションを作成する。 呼び出したプロセスは、 新しいセッションのリーダーとなる (すなわち、そのセッション ID がプロセス ID
-ã\81¨å\90\8cã\81\98å\80¤ã\81«ã\81ªã\82\8b)ã\80\82 ã\81¾ã\81\9fã\80\81å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81¯ã\80\81 ã\81\9dã\81®ã\82»ã\83\83ã\82·ã\83§ã\83³ã\81®æ\96°ã\81\97ã\81\84ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\81®ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\83»ã\83ªã\83¼ã\83\80ã\83¼ã\81«ã\82\82ã\81ªã\82\8b
-(すなわち、プロセスグループ ID がプロセス ID と同じ値になる)。
+ã\81¨å\90\8cã\81\98å\80¤ã\81«ã\81ªã\82\8b)ã\80\82 ã\81¾ã\81\9fã\80\81å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81¯ã\80\81 ã\81\9dã\81®ã\82»ã\83\83ã\82·ã\83§ã\83³ã\81®æ\96°ã\81\97ã\81\84ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\81®ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\83ªã\83¼ã\83\80ã\83¼ã\81«ã\82\82ã\81ªã\82\8b (ã\81\99ã\81ªã\82\8fã\81¡ã\80\81ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97
+ID がプロセス ID と同じ値になる)。
呼び出したプロセスは、 新しいプロセスグループと新しいセッションの唯一のプロセスとなる。 新しいセッションは制御端末を持たない。
.SH 返り値
\fBfork\fP(2) で作成された子プロセスは、親プロセスのセッション ID を継承する。 \fBexecve\fP(2) の前後でセッション ID
は保存される。
-ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\83»ã\83ªã\83¼ã\83\80ã\83¼ã\81¯ã\80\81 ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97 ID ã\81\8cã\81\9dã\81® PID ã\81¨å\90\8cã\81\98å\80¤ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81§ã\81\82ã\82\8bã\80\82 ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\83»リーダーが \fBsetsid\fP()
+ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\83ªã\83¼ã\83\80ã\83¼ã\81¯ã\80\81 ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97 ID ã\81\8cã\81\9dã\81® PID ã\81¨å\90\8cã\81\98å\80¤ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81§ã\81\82ã\82\8bã\80\82 ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97リーダーが \fBsetsid\fP()
を呼び出すことを許可しないと、 そのプロセスグループ内の他のプロセスを元のセッションに残したまま、
-ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\83»ã\83ªã\83¼ã\83\80ã\83¼ã\81\8cè\87ªå\88\86è\87ªèº«ã\82\92æ\96°ã\81\97ã\81\84ã\82»ã\83\83ã\82·ã\83§ã\83³ã\81«å\85¥ã\82\8cã\82\8bã\81¨ã\81\84ã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\8fã\81ªã\82\8bã\80\82 ã\81\93ã\81®ã\82\88ã\81\86ã\81ªã\82·ã\83\8aã\83ªã\82ªã\81¯ã\80\81
-セッションとプロセスグループという厳密な 2 階層モデルを壊すことになる。 \fBsetsid\fP() が成功することを保証するには、 \fBfork\fP(2)
-ã\81¨ \fB_exit\fP(2) ã\82\92è¡\8cã\81\84ã\80\81 ã\81\9dã\81®å\90ã\83\97ã\83ã\82»ã\82¹ã\81« \fBsetsid\fP() ã\82\92ã\81\95ã\81\9bã\82\8cã\81°ã\82\88ã\81\84ã\80\82
+ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\83ªã\83¼ã\83\80ã\83¼ã\81\8cè\87ªå\88\86è\87ªèº«ã\82\92æ\96°ã\81\97ã\81\84ã\82»ã\83\83ã\82·ã\83§ã\83³ã\81«å\85¥ã\82\8cã\82\8bã\81¨ã\81\84ã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\8fã\81ªã\82\8bã\80\82 ã\81\93ã\81®ã\82\88ã\81\86ã\81ªã\82·ã\83\8aã\83ªã\82ªã\81¯ã\80\81 ã\82»ã\83\83ã\82·ã\83§ã\83³ã\81¨ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\81¨ã\81\84ã\81\86å\8e³å¯\86ã\81ª
+2 階層モデルを壊すことになる。 \fBsetsid\fP() が成功することを保証するには、 \fBfork\fP(2) と \fB_exit\fP(2) を行い、
+その子プロセスに \fBsetsid\fP() をさせればよい。
.SH 関連項目
\fBsetsid\fP(1), \fBgetsid\fP(2), \fBsetpgid\fP(2), \fBsetpgrp\fP(2), \fBtcgetsid\fP(3),
\fBcredentials\fP(7)
を設定する。 これが行なわれた後にはプログラムが再びルートの特権を得ることはできない。
.PP
したがって、set\-user\-ID\-root プログラムで、一時的にルート特権を解除し、
-非特権ユーザであるかのように振舞い、後でルート権限をもう一度得ようと する場合には、 \fBsetuid\fP() を使うことができない。その場合には、
+é\9d\9eç\89¹æ¨©ã\83¦ã\83¼ã\82¶ã\83¼ã\81§ã\81\82ã\82\8bã\81\8bã\81®ã\82\88ã\81\86ã\81«æ\8c¯è\88\9eã\81\84ã\80\81å¾\8cã\81§ã\83«ã\83¼ã\83\88権é\99\90ã\82\92ã\82\82ã\81\86ä¸\80度å¾\97ã\82\88ã\81\86ã\81¨ ã\81\99ã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81 \fBsetuid\fP() ã\82\92使ã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\80\82ã\81\9dã\81®å ´å\90\88ã\81«ã\81¯ã\80\81
\fBseteuid\fP(2) を使う必要がある。
.SH 返り値
成功した場合は 0 が返される。エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
SVr4, POSIX.1\-2001. 4.4BSD のコールとは完全な互換性はない、 BSD のコールは実 (real)、保存 (saved)、実効
(effective) ID の全てを設定する。
.SH 注意
-Linux ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\83¦ã\83¼ã\82¶ã\83¼ ID ã\81®æ¦\82念ã\82\92æ\8c\81ã\81¤ã\80\82
+Linux はファイルシステムユーザー ID の概念を持つ。
通常、これは実効ユーザー ID に等しい。
\fBsetuid\fP() コールは呼び出し元のプロセスの
-ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\83¦ã\83¼ã\82¶ã\83¼ ID ã\82\82è¨å®\9aã\81\99ã\82\8bã\80\82
+ファイルシステムユーザー ID も設定する。
\fBsetfsuid\fP(2) も参照すること。
.PP
\fIuid\fP が前の実効 UID と異っていた場合、
.SH エラー
.TP
\fBEPERM\fP
-ユーザプロセスに対しては、常にこのエラーとなる。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\83\97ã\83ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦ã\81¯ã\80\81常ã\81«ã\81\93ã\81®ã\82¨ã\83©ã\83¼ã\81¨ã\81ªã\82\8bã\80\82
.SH バージョン
Linux 2.1.121 以降では、もはやこの関数は存在しない。
.SH 準拠
で参照されたオープン済みファイルの情報だけを設定する点が異なる (\fIfiledes\fP は \fBopen\fP(2) によって返される)。
.PP
拡張属性の名前 は普通のヌル終端された文字列である。 \fIname\fP には、名前空間を表す接頭辞 (prefix) が含まれる。 個々の inode
-ã\81«å¯¾ã\81\97ã\81¦ã\80\81äº\92ã\81\84ã\81«ç\8b¬ç«\8bã\81ªå\90\8då\89\8d空é\96\93ã\81\8cè¤\87æ\95°ã\81\82ã\81£ã\81¦ã\82\82ã\82\88ã\81\84ã\80\82 æ\8b¡å¼µå±\9eæ\80§ã\81®å\80¤ \fIvalue\fP ã\81¯ã\80\81ã\81\82ã\82\8bä¸\80å®\9aã\81®é\95·ã\81\95ã\81®ä»»æ\84\8fã\81®ã\83\86ã\82ã\82¹ã\83\88ã\83»ã\83\87ã\83¼ã\82¿ã\81¾ã\81\9fã\81¯
-ã\83\90ã\82¤ã\83\8aã\83ªã\83»ã\83\87ã\83¼ã\82¿ã\81®é\9b\86å\90\88ã\81§ã\81\82ã\82\8bã\80\82
+に対して、互いに独立な名前空間が複数あってもよい。 拡張属性の値 \fIvalue\fP は、ある一定の長さの任意のテキストデータまたは
+バイナリデータの集合である。
.PP
操作の意味を明確にするために \fIflags\fP 引き数を使用することができる。 \fBXATTR_CREATE\fP は属性の作成だけを行うことを指定する。
指定された名前の属性がすでに存在する場合は失敗する。 \fBXATTR_REPLACE\fP は属性の置換だけを行うことを指定する。
.\"
.TH SHMCTL 2 2014\-02\-07 Linux "Linux Programmer's Manual"
.SH 名前
-shmctl \- System V 共有メモリ (shared memory) を制御する
+shmctl \- System V 共有メモリー (shared memory) を制御する
.SH 書式
.ad l
\fB#include <sys/ipc.h>\fP
\fBint shmctl(int \fP\fIshmid\fP\fB, int \fP\fIcmd\fP\fB, struct shmid_ds *\fP\fIbuf\fP\fB);\fP
.ad b
.SH 説明
-\fBshmctl\fP() ã\81¯ã\80\81è\98å\88¥å\90ã\81\8c \fIshmid\fP ã\81® System\ V å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントに対して \fIcmd\fP
+\fBshmctl\fP() ã\81¯ã\80\81è\98å\88¥å\90ã\81\8c \fIshmid\fP ã\81® System\ V å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントに対して \fIcmd\fP
で指示した制御命令を実行する。
.PP
-\fIbuf\fP 引き数は、 \fIshmid_ds\fP 構造体へのポインタである。 この構造体は \fI<sys/shm.h>\fP
+\fIbuf\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81 \fIshmid_ds\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¯ \fI<sys/shm.h>\fP
で以下のように定義されている
.PP
.in +4n
.TP 10
\fBIPC_STAT\fP
\fIshmid\fP に関連づけられたカーネルデータ構造体の情報を \fIbuf\fP で指された \fIshmid_ds\fP 構造体にコピーする。
-å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントに対する 読み込み許可を持たなければならない。
+å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントに対する 読み込み許可を持たなければならない。
.TP
\fBIPC_SET\fP
\fIbuf\fP によって指される \fIshmid_ds\fP 構造体のいくつかのメンバーの値を、
-ã\81\93ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントに関連づけられたカーネルデータ構造体に書き込み、 \fIshm_ctime\fP メンバーも更新する。
+ã\81\93ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントに関連づけられたカーネルデータ構造体に書き込み、 \fIshm_ctime\fP メンバーも更新する。
以下のフィールドは変更できる。 \fIshm_perm.uid\fP, \fIshm_perm.gid\fP, \fIshm_perm.mode\fP (の最下位 9
ビット)。 呼び出したプロセスの実効 UID が所有者 (\fIshm_perm.uid\fP) または作成者 (\fIshm_perm.cuid\fP)
と一致するか、呼び出し元が特権を持たなければならない。
セグメントに破棄のマークが付けられると、 関連するデータ構造体において \fIshm_perm.mode\fP フィールドの (標準ではない)
\fBSHM_DEST\fP フラグが設定される。 このデータ構造体は \fBIPC_STAT\fP で取得される。
.IP
-呼び出し元は最終的にはセグメントを忘れずに破棄\fIしなければならない\fP。 そうでなれば、フォールト (fault) されたページは メモリかスワップ
+å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯æ\9c\80çµ\82ç\9a\84ã\81«ã\81¯ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92å¿\98ã\82\8cã\81\9aã\81«ç ´æ£\84\fIã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84\fPã\80\82 ã\81\9dã\81\86ã\81§ã\81ªã\82\8cã\81°ã\80\81ã\83\95ã\82©ã\83¼ã\83«ã\83\88 (fault) ã\81\95ã\82\8cã\81\9fã\83\9aã\83¼ã\82¸ã\81¯ ã\83¡ã\83¢ã\83ªã\83¼ã\81\8bã\82¹ã\83¯ã\83\83ã\83\97
(swap) に残り続ける。
.IP
\fBproc\fP(5) の \fI/proc/sys/kernel/shm_rmid_forced\fP の説明も参照のこと。
.TP 10
\fBIPC_INFO\fP (Linux 固有)
-ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81§ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\81®å\88¶é\99\90ã\81¨ã\83\91ã\83©ã\83¡ã\83¼ã\82¿に関する情報を、 \fIbuf\fP が指す構造体に入れて返す。 この構造体は \fIshminfo\fP 型である
+ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81§ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\88¶é\99\90ã\81¨ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼に関する情報を、 \fIbuf\fP が指す構造体に入れて返す。 この構造体は \fIshminfo\fP 型である
(そのためキャストが必要である)。 \fIshminfo\fP は \fB_GNU_SOURCE\fP 機能検査マクロが定義された場合に
\fI<sys/shm.h>\fP で以下のように定義される:
.nf
unsigned long shmseg; /* プロセスが付加できる
セグメントの最大数。
カーネル内では未使用 */
- unsigned long shmall; /* 共有メモリの最大ページ数。
+ unsigned long shmall; /* å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®æ\9c\80大ã\83\9aã\83¼ã\82¸æ\95°ã\80\82
システム全体での値 */
};
\fBproc\fP(5) を参照。
.TP
\fBSHM_INFO\fP (Linux 固有)
-共有メモリが消費しているシステム資源に関する情報を 格納した \fIshm_info\fP 構造体を返す。 この構造体は、 \fB_GNU_SOURCE\fP
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cæ¶\88è²»ã\81\97ã\81¦ã\81\84ã\82\8bã\82·ã\82¹ã\83\86ã\83 è³\87æº\90ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92 æ ¼ç´\8dã\81\97ã\81\9f \fIshm_info\fP æ§\8bé\80 ä½\93ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¯ã\80\81 \fB_GNU_SOURCE\fP
機能検査マクロが定義された場合に \fI<sys/shm.h>\fP で以下のように定義される:
.nf
.in +4n
struct shm_info {
int used_ids; /* 現在存在するセグメント数 */
- unsigned long shm_tot; /* 共有メモリのページ総数 */
- unsigned long shm_rss; /* メモリ上にある (スワップされて
- いない) 共有メモリページ数 */
- unsigned long shm_swp; /* スワップされている共有メモリ
+ unsigned long shm_tot; /* å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83\9aã\83¼ã\82¸ç·\8fæ\95° */
+ unsigned long shm_rss; /* メモリー上にある (スワップされて
+ ã\81\84ã\81ªã\81\84) å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\83\9aã\83¼ã\82¸æ\95° */
+ unsigned long shm_swp; /* スワップされている共有メモリー
ページ数 */
unsigned long swap_attempts;
/* Linux 2.4 以降では未使用 */
.TP
\fBSHM_STAT\fP (Linux 固有)
\fBIPC_STAT\fP と同じく \fIshmid_ds\fP 構造体を返す。 但し、 \fIshmid\fP
-引き数は、セグメント識別子ではなく、システム上の全ての共有メモリ セグメントに関する情報を管理するカーネルの内部配列へのインデックス である。
+引き数は、セグメント識別子ではなく、システム上の全ての共有メモリー セグメントに関する情報を管理するカーネルの内部配列へのインデックス である。
.PP
-å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯ã\80\81\fIcmd\fP ã\81«ä»¥ä¸\8bã\81®å\80¤ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントが スワップされることを防止したり、許可したりできる:
+å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯ã\80\81\fIcmd\fP ã\81«ä»¥ä¸\8bã\81®å\80¤ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントが スワップされることを防止したり、許可したりできる:
.br
.TP 10
\fBSHM_LOCK\fP (Linux 固有)
-å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントをスワップすることを防止する。 ロックが有効になった後、呼び出し元は、
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントをスワップすることを防止する。 ロックが有効になった後、呼び出し元は、
存在することが要求された全てのページをフォールトさせなければならない。 セグメントがロックされると、 関連するデータ構造体において
\fIshm_perm.mode\fP フィールドの (標準的ではない) \fBSHM_LOCKED\fP フラグが設定される。 このデータ構造体は
\fBIPC_STAT\fP で取得される。
.TP
\fBSHM_UNLOCK\fP (Linux 固有)
-ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®ã\83ã\83\83ã\82¯ã\82\92解é\99¤ã\81\97ã\80\81ã\82¹ã\83¯ã\83\83ã\83\97ã\83»ã\82¢ã\82¦ã\83\88ã\81\99ã\82\8bã\81\93ã\81¨ã\82\92å\8f¯è\83½ã\81«ã\81\99ã\82\8bã\80\82
+セグメントのロックを解除し、スワップアウトすることを可能にする。
.PP
.\" There was some weirdness in 2.6.9: SHM_LOCK and SHM_UNLOCK could
.\" be applied to a segment, regardless of ownership of the segment.
.\" in 2.6.10. MTK, May 2005
2.6.10 より前のカーネルでは、特権プロセスだけが \fBSHM_LOCK\fP と \fBSHM_UNLOCK\fP を利用することができた。 2.6.10
以降のカーネルでは、非特権プロセスであっても次の条件を満たせば これらの操作を利用することができる。その条件とは、プロセスの実効 UID
-がそのセグメントの所有者もしくは作成者の UID と一致し、 (\fBSHM_LOCK\fP の場合には) ロックするメモリの合計が
+ã\81\8cã\81\9dã\81®ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®æ\89\80æ\9c\89è\80\85ã\82\82ã\81\97ã\81\8fã\81¯ä½\9cæ\88\90è\80\85ã\81® UID ã\81¨ä¸\80è\87´ã\81\97ã\80\81 (\fBSHM_LOCK\fP ã\81®å ´å\90\88ã\81«ã\81¯) ã\83ã\83\83ã\82¯ã\81\99ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81®å\90\88è¨\88ã\81\8c
\fBRLIMIT_MEMLOCK\fP リソース上限 (\fBsetrlimit\fP(2) 参照) の範囲内に入っていることである。
.SH 返り値
-\fBIPC_INFO\fP と \fBSHM_INFO\fP 操作は、成功すると、全ての共有メモリセグメントに関する情報を
-管ç\90\86ã\81\97ã\81¦ã\81\84ã\82\8bã\82«ã\83¼ã\83\8dã\83«ã\81®å\86\85é\83¨é\85\8då\88\97ã\81®ä½¿ç\94¨ä¸ã\82¨ã\83³ã\83\88ã\83ªã\81®ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81® ã\81\86ã\81¡æ\9c\80大å\80¤ã\82\92è¿\94ã\81\99 (ã\81\93ã\81®æ\83\85å ±ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81®å\85¨ã\81¦ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªセグメントに関する情報を
+\fBIPC_INFO\fP ã\81¨ \fBSHM_INFO\fP æ\93\8dä½\9cã\81¯ã\80\81æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81å\85¨ã\81¦ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92
+管ç\90\86ã\81\97ã\81¦ã\81\84ã\82\8bã\82«ã\83¼ã\83\8dã\83«ã\81®å\86\85é\83¨é\85\8då\88\97ã\81®ä½¿ç\94¨ä¸ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81® ã\81\86ã\81¡æ\9c\80大å\80¤ã\82\92è¿\94ã\81\99 (ã\81\93ã\81®æ\83\85å ±ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81®å\85¨ã\81¦ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントに関する情報を
取得するために、 \fBSHM_STAT\fP 操作を繰り返し実行する際に使用できる)。 \fBSHM_STAT\fP 操作は、成功すると、 \fIshmid\fP
-で指定されたインデックスを持つ共有メモリセグメントの識別子を返す。 他の操作は、成功の場合 0 を返す。
+ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\82\92æ\8c\81ã\81¤å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®è\98å\88¥å\90ã\82\92è¿\94ã\81\99ã\80\82 ä»\96ã\81®æ\93\8dä½\9cã\81¯ã\80\81æ\88\90å\8a\9fã\81®å ´å\90\88 0 ã\82\92è¿\94ã\81\99ã\80\82
エラーの場合は \-1 を返し、 \fIerrno\fP を適切に設定する。
.SH エラー
.TP
\fBENOMEM\fP
(2.6.9 以降のカーネルにおいて) \fBSHM_LOCK\fP が指定され、 ロックされる予定のセグメントのサイズ
-(ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントの合計バイト数) が、 呼び出したプロセスの実ユーザー ID についての制限を超えた。 この制限は
+(ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントの合計バイト数) が、 呼び出したプロセスの実ユーザー ID についての制限を超えた。 この制限は
\fBRLIMIT_MEMLOCK\fP ソフト資源制限で定義される (\fBsetrlimit\fP(2) を参照)。
.TP
\fBEOVERFLOW\fP
.\" Like Linux, the FreeBSD man pages still document
.\" the inclusion of these header files.
Linux や POSIX の全てのバージョンでは、 \fI<sys/types.h>\fP と \fI<sys/ipc.h>\fP
-のインクルードは必要ない。しかしながら、いくつかの古い実装ではこれらのヘッダファイルのインクルードが必要であり、 SVID
+ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81¯å¿\85è¦\81ã\81ªã\81\84ã\80\82ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å\8f¤ã\81\84å®\9fè£\85ã\81§ã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\82\8aã\80\81 SVID
でもこれらのインクルードをするように記載されている。このような古いシステムへの移植性を意図したアプリケーションではこれらのファイルをインクルードする必要があるかもしれない。
\fBIPC_INFO\fP, \fBSHM_STAT\fP, \fBSHM_INFO\fP 操作は、 \fBipcs\fP(1)
プログラムで割り当て済の資源に関する情報を提供するために 使用されている。将来、これらの操作は変更されたり、 \fI/proc\fP
-ファイルシステムのインタフェースに移動されるかもしれない。
+ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«ç§»å\8b\95ã\81\95ã\82\8cã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
-Linux ã\81§ã\81¯ã\80\81 \fIshmctl(IPC_RMID)\fP ã\82\92使ã\81£ã\81¦ã\81\99ã\81§ã\81«å\89\8aé\99¤ã\83\9eã\83¼ã\82¯ã\81\8cã\81¤ã\81\91ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントを あるプロセスが付加
+Linux ã\81§ã\81¯ã\80\81 \fIshmctl(IPC_RMID)\fP ã\82\92使ã\81£ã\81¦ã\81\99ã\81§ã\81«å\89\8aé\99¤ã\83\9eã\83¼ã\82¯ã\81\8cã\81¤ã\81\91ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントを あるプロセスが付加
(attach) (\fBshmat\fP(2)) することを許可している。 この機能は他の UNIX の実装では利用できない。
移植性を考慮したアプリケーションではこれに依存しないようにすべきである。
.\"
.TH SHMGET 2 2015\-01\-10 Linux "Linux Programmer's Manual"
.SH 名前
-shmget \- System V å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントを割り当てる
+shmget \- System V å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントを割り当てる
.SH 書式
.ad l
\fB#include <sys/ipc.h>\fP
\fBint shmget(key_t \fP\fIkey\fP\fB, size_t \fP\fIsize\fP\fB, int \fP\fIshmflg\fP\fB);\fP
.ad b
.SH 説明
-\fBshmget\fP() ã\81¯ \fIkey\fP å¼\95ã\81\8dæ\95°ã\81«å¯¾å¿\9cã\81\99ã\82\8b System\ V å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントの識別子を返す。 \fIkey\fP の値が
-\fBIPC_PRIVATE\fP ã\81®å ´å\90\88ã\80\81ã\82\82ã\81\97ã\81\8fã\81¯ \fIkey\fP ã\81«å¯¾å¿\9cã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントが存在せず、 \fIshmflg\fP に
-\fBIPC_CREAT\fP ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81\9få ´å\90\88ã\80\81 æ\96°ã\81\97ã\81\84å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82 ä½\9cæ\88\90ã\81\95ã\82\8cã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントは、 \fIsize\fP
+\fBshmget\fP() ã\81¯ \fIkey\fP å¼\95ã\81\8dæ\95°ã\81«å¯¾å¿\9cã\81\99ã\82\8b System\ V å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントの識別子を返す。 \fIkey\fP の値が
+\fBIPC_PRIVATE\fP ã\81®å ´å\90\88ã\80\81ã\82\82ã\81\97ã\81\8fã\81¯ \fIkey\fP ã\81«å¯¾å¿\9cã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントが存在せず、 \fIshmflg\fP に
+\fBIPC_CREAT\fP ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81\9få ´å\90\88ã\80\81 æ\96°ã\81\97ã\81\84å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82 ä½\9cæ\88\90ã\81\95ã\82\8cã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントは、 \fIsize\fP
引き数の値を \fBPAGE_SIZE\fP の倍数へと切り上げた (round up) 大きさとなる。
.PP
\fIshmflg\fP に \fBIPC_CREAT\fP と \fBIPC_EXCL\fP の両方が指定された場合、 \fIkey\fP
-ã\81«å¯¾å¿\9cã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントが既に存在すると、 \fBshmget\fP() は失敗し、 \fIerrno\fP に \fBEEXIST\fP が設定される
+ã\81«å¯¾å¿\9cã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントが既に存在すると、 \fBshmget\fP() は失敗し、 \fIerrno\fP に \fBEEXIST\fP が設定される
(これは \fBopen\fP(2) に \fBO_CREAT | O_EXCL\fP を指定した場合の動作と同じである)。
.PP
\fIshmflg\fP は以下の内容から構成される:
.TP 12
\fBIPC_CREAT\fP
新しいセグメントを作成する。このフラグが指定されなかった場合、 \fBshmget\fP() は \fIkey\fP に対応するセグメントを探し、
-ユーザがそのセグメントにアクセスする許可があるかどうかをチェックする。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\81\9dã\81®ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8b許å\8f¯ã\81\8cã\81\82ã\82\8bã\81\8bã\81©ã\81\86ã\81\8bã\82\92ã\83\81ã\82§ã\83\83ã\82¯ã\81\99ã\82\8bã\80\82
.TP
\fBIPC_EXCL\fP
このフラグは \fBIPC_CREAT\fP とともに使用し、 この呼び出しで確実にセグメントが作成されるようにする。 セグメントが既に存在した場合には、
.\" specified.
このフラグは、 \fBmmap\fP(2) の \fBMAP_NORESERVE\fP フラグと同じ役割を果たす。
このセグメントに対するスワップ空間の予約を行わない。 スワップ空間を予約した場合は、そのセグメントの変更が必ず成功することが
-保証される。スワップ空間の予約を行わなかった場合は、物理メモリに空きが ないと書き込み時に \fBSIGSEGV\fP を受け取る可能性がある。
+ä¿\9d証ã\81\95ã\82\8cã\82\8bã\80\82ã\82¹ã\83¯ã\83\83ã\83\97空é\96\93ã\81®äº\88ç´\84ã\82\92è¡\8cã\82\8fã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ã\80\81ç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\83¼ã\81«ç©ºã\81\8dã\81\8c ã\81ªã\81\84ã\81¨æ\9b¸ã\81\8dè¾¼ã\81¿æ\99\82ã\81« \fBSIGSEGV\fP ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\80\82
\fBproc\fP(5) にある \fI/proc/sys/vm/overcommit_memory\fP ファイルに関する議論も参照のこと。
.PP
上記のフラグに加えて、 \fIshmflg\fP の下位 9 ビットは、所有者、グループ、その他への許可を指定する。 これらのビットは \fBopen\fP(2)
の \fImode\fP 引き数と同じ形式で同じ意味を持つ。 今のところ、システムは実行 (execute) 許可を参照しない。
.PP
-å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81\8cæ\96°ã\81\9fã\81«ä½\9cæ\88\90ã\81\95ã\82\8cã\82\8bé\9a\9bã\80\81 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントの内容は 0 で初期化され、 関連情報を保持するデータ構造体 \fIshmid_ds\fP
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81\8cæ\96°ã\81\9fã\81«ä½\9cæ\88\90ã\81\95ã\82\8cã\82\8bé\9a\9bã\80\81 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントの内容は 0 で初期化され、 関連情報を保持するデータ構造体 \fIshmid_ds\fP
は以下のように初期化される。
.IP
\fIshm_perm.cuid\fP と \fIshm_perm.uid\fP に呼び出し元プロセスの実効 (effective) ユーザーID を設定する。
.IP
\fIshm_ctime\fP に現在の時刻を設定する。
.PP
-å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントが既に存在する場合、アクセス許可の検査と、 破壊 (destruction) マークがつけられていないかのチェックが行われる。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントが既に存在する場合、アクセス許可の検査と、 破壊 (destruction) マークがつけられていないかのチェックが行われる。
.SH 返り値
-æ\88\90å\8a\9fã\81®å ´å\90\88ã\80\81æ\9c\89å\8a¹ã\81ªå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントの識別子が返される。 エラーの場合、 \-1 が返り、 \fIerrno\fP にエラーを示す値が設定される。
+æ\88\90å\8a\9fã\81®å ´å\90\88ã\80\81æ\9c\89å\8a¹ã\81ªå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントの識別子が返される。 エラーの場合、 \-1 が返り、 \fIerrno\fP にエラーを示す値が設定される。
.SH エラー
失敗した場合は \fIerrno\fP が以下のどれかに設定される:
.TP
\fBEACCES\fP
-ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ã\81\9dã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントへのアクセス許可を持たず、 \fBCAP_IPC_OWNER\fP ケーパビリティも持っていない。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ã\81\9dã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントへのアクセス許可を持たず、 \fBCAP_IPC_OWNER\fP ケーパビリティも持っていない。
.TP
\fBEEXIST\fP
\fBIPC_CREAT\fP と \fBIPC_EXCL\fP が \fIshmflg\fP に指定されたが、 \fIkey\fP
-に対応する共有メモリセグメントはすでに存在する。
+ã\81«å¯¾å¿\9cã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81¯ã\81\99ã\81§ã\81«å\98å\9c¨ã\81\99ã\82\8bã\80\82
.TP
\fBEINVAL\fP
新しいセグメントを作成しようとしたが、 \fIsize\fP が \fBSHMMIN\fP より小さいか \fBSHMMAX\fP よりも大きかった。
指定された \fIkey\fP に対応するセグメントが存在せず、 \fBIPC_CREAT\fP も指定されていなかった。
.TP
\fBENOMEM\fP
-セグメントの管理情報 (overhead) に割り当てるメモリがなかった。
+ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®ç®¡ç\90\86æ\83\85å ± (overhead) ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBENOSPC\fP
-ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメント数の制限 (\fBSHMMNI\fP) に達した、または要求された \fIsize\fP のセグメントの割り当てが
-システム全体の共有メモリサイズの制限 (\fBSHMALL\fP) を超過した。
+ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメント数の制限 (\fBSHMMNI\fP) に達した、または要求された \fIsize\fP のセグメントの割り当てが
+ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82µã\82¤ã\82ºã\81®å\88¶é\99\90 (\fBSHMALL\fP) ã\82\92è¶\85é\81\8eã\81\97ã\81\9fã\80\82
.TP
\fBEPERM\fP
\fBSHM_HUGETLB\fP フラグが指定されたが、呼び出し元には権限がなかった (\fBCAP_IPC_LOCK\fP ケーパビリティを持っていなかった)。
.\" Like Linux, the FreeBSD man pages still document
.\" the inclusion of these header files.
Linux や POSIX の全てのバージョンでは、 \fI<sys/types.h>\fP と \fI<sys/ipc.h>\fP
-のインクルードは必要ない。しかしながら、いくつかの古い実装ではこれらのヘッダファイルのインクルードが必要であり、 SVID
+ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81¯å¿\85è¦\81ã\81ªã\81\84ã\80\82ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å\8f¤ã\81\84å®\9fè£\85ã\81§ã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\82\8aã\80\81 SVID
でもこれらのインクルードをするように記載されている。このような古いシステムへの移植性を意図したアプリケーションではこれらのファイルをインクルードする必要があるかもしれない。
.\"
\fBIPC_PRIVATE\fP はフラグではなく \fIkey_t\fP 型である。 この特別な値が \fIkey\fP に使用された場合は、 \fBshmget\fP()
-ã\81¯ \fIshmflg\fP ã\81®ä¸\8bä½\8d 9 ã\83\93ã\83\83ã\83\88ã\82\92é\99¤ã\81\84ã\81\9få\85¨ã\81¦ã\82\92ç\84¡è¦\96ã\81\97ã\80\81 æ\96°ã\81\97ã\81\84å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントを作成する。
-.SS 共有メモリの上限
-\fBshmget\fP() ã\82³ã\83¼ã\83«ã\81«å½±é\9f¿ã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメント資源の制限は以下の通りである:
+ã\81¯ \fIshmflg\fP ã\81®ä¸\8bä½\8d 9 ã\83\93ã\83\83ã\83\88ã\82\92é\99¤ã\81\84ã\81\9få\85¨ã\81¦ã\82\92ç\84¡è¦\96ã\81\97ã\80\81 æ\96°ã\81\97ã\81\84å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントを作成する。
+.SS å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®ä¸\8aé\99\90
+\fBshmget\fP() ã\82³ã\83¼ã\83«ã\81«å½±é\9f¿ã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメント資源の制限は以下の通りである:
.TP
\fBSHMALL\fP
-共有メモリの全使用量のシステム全体での上限値。 システムページサイズが単位である。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\85¨ä½¿ç\94¨é\87\8fã\81®ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81§ã\81®ä¸\8aé\99\90å\80¤ã\80\82 ã\82·ã\82¹ã\83\86ã\83 ã\83\9aã\83¼ã\82¸ã\82µã\82¤ã\82ºã\81\8cå\8d\98ä½\8dã\81§ã\81\82ã\82\8bã\80\82
.\" commit 060028bac94bf60a65415d1d55a359c3a17d5c31
Linux では、この上限値は \fI/proc/sys/kernel/shmall\fP 経由で参照したり、変更したりできる。 Linux 3.16
SHMMAX / PAGE_SIZE * (SHMMNI / 16)
\fBSHMMAX\fP と \fBSHMMNI\fP が変更されないとすると、 この式の結果に (バイト単位の値を得るために) ページサイズを掛け算すると、
-å\85¨ã\81¦ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81§ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bå\85¨ã\83¡ã\83¢ã\83ªの上限として、 8 GB という値が得られる。
+å\85¨ã\81¦ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81§ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bå\85¨ã\83¡ã\83¢ã\83ªã\83¼の上限として、 8 GB という値が得られる。
.TP
\fBSHMMAX\fP
-1 つの共有メモリセグメントの最大サイズ (バイト数)。
+1 ã\81¤ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®æ\9c\80大ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88æ\95°)ã\80\82
.\" commit 060028bac94bf60a65415d1d55a359c3a17d5c31
Linux では、この上限値は \fI/proc/sys/kernel/shmmax\fP 経由で参照したり、変更したりできる。 Linux 3.16
Linux 2.2 から Linux 3.15 までは、この上限値のデフォルト値は 0x2000000 (32MB) であった。
-共有メモリセグメントの一部分だけをマッピングすることはできないので、 使用可能なセグメントの最大サイズには仮想メモリの総量という別の上限が適用される。
-例えば、i386 ではマッピング可能な最大セグメントの大きさはおおよそ 2.8GB で、 x86_64 では上限はおおよそ 127TB である。
+共有メモリーセグメントの一部分だけをマッピングすることはできないので、
+使用可能なセグメントの最大サイズには仮想メモリーの総量という別の上限が適用される。 例えば、i386
+ではマッピング可能な最大セグメントの大きさはおおよそ 2.8GB で、 x86_64 では上限はおおよそ 127TB である。
.TP
\fBSHMMIN\fP
-å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントのバイト単位の大きさの下限: 実装依存 (現在は 1 バイトだが、実質的な最小サイズは \fBPAGE_SIZE\fP である)。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントのバイト単位の大きさの下限: 実装依存 (現在は 1 バイトだが、実質的な最小サイズは \fBPAGE_SIZE\fP である)。
.TP
\fBSHMMNI\fP
-ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメント数の上限値。 この上限値のデフォルトは、 Linux 2.2 以降では 128、 Linux 2.4 以降で
+ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメント数の上限値。 この上限値のデフォルトは、 Linux 2.2 以降では 128、 Linux 2.4 以降で
4096 である。
.\" Kernels between 2.4.x and 2.6.8 had an off-by-one error that meant
.\" This /proc file is not available in Linux 2.2 and earlier -- MTK
Linux では、この上限値は \fI/proc/sys/kernel/shmmni\fP 経由で参照したり、変更したりできる。
.PP
-ã\83\97ã\83ã\82»ã\82¹å½\93ã\82\8aã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントの個数の最大値 (\fBSHMSEG\fP) に関する実装上の制限はない。
+ã\83\97ã\83ã\82»ã\82¹å½\93ã\82\8aã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントの個数の最大値 (\fBSHMSEG\fP) に関する実装上の制限はない。
.SS "Linux での注意"
-ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.3.30 ã\81¾ã\81§ã\81¯ã\80\81Linux ã\81¯ å\89\8aé\99¤ã\81\8cäº\88å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントに対して \fBshmget\fP() が行われると
+ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.3.30 ã\81¾ã\81§ã\81¯ã\80\81Linux ã\81¯ å\89\8aé\99¤ã\81\8cäº\88å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントに対して \fBshmget\fP() が行われると
\fBEIDRM\fP を返していた。
.SH バグ
\fBIPC_PRIVATE\fP という名前を選んだのはおそらく失敗であろう。 \fBIPC_NEW\fP の方がより明確にその機能を表しているだろう。
.\"
.TH SHMOP 2 2014\-07\-08 Linux "Linux Programmer's Manual"
.SH 名前
-shmat, shmdt \- System V 共有メモリ (shared memory) の操作
+shmat, shmdt \- System V 共有メモリー (shared memory) の操作
.SH 書式
.nf
\fB#include <sys/types.h>\fP
.fi
.SH 説明
.SS shmat()
-\fBshmat\fP() ã\81¯ \fIshmid\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9f System\ V å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメント (shared memory segment)
+\fBshmat\fP() ã\81¯ \fIshmid\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9f System\ V å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメント (shared memory segment)
を コールしたプロセスのアドレス空間に付加 (attach) する。 付加するアドレスは \fIshmaddr\fP に以下のどれかの形式で指定する:
.IP * 3
\fIshmaddr\fP が NULL ならば、システムはセグメントを付加するための 適切な (使用されていない) アドレスを選択する。
\fBSHM_RDONLY\fP
セグメントを読み込み専用に付加する。 プロセスはそのセグメントへの読み込み許可を持っていなければならない。
このフラグが指定されなかった場合、そのセグメントは読み込みと書き込みアクセスのために付加され、
-ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\81\9dã\81®ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«èªã\81¿è¾¼ã\81¿ã\81¨æ\9b¸ã\81\8dè¾¼ã\81¿ã\81®è¨±å\8f¯ã\82\92æ\8c\81ã\81£ã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 æ\9b¸ã\81\8dè¾¼ã\81¿å°\82ç\94¨ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントという概念は存在しない。
+ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\81\9dã\81®ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«èªã\81¿è¾¼ã\81¿ã\81¨æ\9b¸ã\81\8dè¾¼ã\81¿ã\81®è¨±å\8f¯ã\82\92æ\8c\81ã\81£ã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 æ\9b¸ã\81\8dè¾¼ã\81¿å°\82ç\94¨ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントという概念は存在しない。
.TP
\fBSHM_REMAP\fP (Linux 固有)
このフラグは、 セグメントのマッピングを既存のマッピングに置き換えることを指示する。 マッピングの範囲は、 \fIshmaddr\fP
呼び出したプロセスの \fBbrk\fP(2) の値は付加によって変化しない。 そのセグメントはプロセスが終了 (exit) したら自動的に分離
(detach) される。 同じセグメントをプロセスのアドレス空間に、読み込み専用および読み書き両用 として付加でき、また複数回付加することもできる。
.PP
-æ\88\90å\8a\9fã\81\97ã\81\9f \fBshmat\fP() ã\82³ã\83¼ã\83«ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントに関連する \fIshmid_ds\fP 構造体 (\fBshmctl\fP(2) を参照)
+æ\88\90å\8a\9fã\81\97ã\81\9f \fBshmat\fP() ã\82³ã\83¼ã\83«ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントに関連する \fIshmid_ds\fP 構造体 (\fBshmctl\fP(2) を参照)
のメンバーを以下のように更新する:
.IP
\fIshm_atime\fP には現在の時刻を設定する。
.\"
\fIshm_nattch\fP を 1 増加させる。
.SS shmdt()
-\fBshmdt\fP() ã\81¯å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81\8bã\82\89 \fIshmaddr\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¢ã\83\89ã\83¬ã\82¹ã\81«é\85\8dç½®ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントを分離
-(detach) ã\81\99ã\82\8bã\80\82 å\88\86é\9b¢ã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントは、現在 \fIshmaddr\fP に付加されているものでなければならない。 \fIshmaddr\fP
+\fBshmdt\fP() ã\81¯å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81\8bã\82\89 \fIshmaddr\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¢ã\83\89ã\83¬ã\82¹ã\81«é\85\8dç½®ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントを分離
+(detach) ã\81\99ã\82\8bã\80\82 å\88\86é\9b¢ã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントは、現在 \fIshmaddr\fP に付加されているものでなければならない。 \fIshmaddr\fP
は、それを付加した時に \fBshmat\fP() が返した値に等しくなければならない。
.PP
-æ\88\90å\8a\9fã\81\97ã\81\9f \fBshmdt\fP() ã\82³ã\83¼ã\83«ã\81¯ã\81\9dã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントに関連する \fIshmid_ds\fP 構造体のメンバーを以下のように更新する:
+æ\88\90å\8a\9fã\81\97ã\81\9f \fBshmdt\fP() ã\82³ã\83¼ã\83«ã\81¯ã\81\9dã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントに関連する \fIshmid_ds\fP 構造体のメンバーを以下のように更新する:
.IP
\fIshm_dtime\fP には現在の時刻が設定される。
.IP
.IP
\fIshm_nattch\fP を 1 減少させる。 もし 0 になり、削除マークがあった場合は そのセグメントは削除される。
.SH 返り値
-\fBshmat\fP() ã\81¯ã\80\81æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 ä»\98å\8a ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントのアドレスを返す。 エラーの場合、 \fI(void\ *)\ \-1\fP
+\fBshmat\fP() ã\81¯ã\80\81æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 ä»\98å\8a ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントのアドレスを返す。 エラーの場合、 \fI(void\ *)\ \-1\fP
を返し、 \fIerrno\fP にエラーの原因を示す値を設定する。
\fBshmdt\fP() は、成功すると 0 を返す。 エラーの場合、\-1 を返し、 \fIerrno\fP にエラーの原因を示す値を設定する。
\fBSHM_REMAP\fP が指定されているが、 \fIshmaddr\fP が NULL であった。
.TP
\fBENOMEM\fP
-ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ (descriptor) ã\82\84ã\83\9aã\83¼ã\82¸ã\83»ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\81\9fã\82\81ã\81®ã\83¡ã\83¢ã\83ªを 割り当てることができない。
+ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ (descriptor) ã\82\84ã\83\9aã\83¼ã\82¸ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\81\9fã\82\81ã\81®ã\83¡ã\83¢ã\83ªã\83¼を 割り当てることができない。
.PP
\fBshmdt\fP() が失敗した場合、 \fBEINVAL\fP は以下のようにセットされる:
.TP
\fBEINVAL\fP
.\" The following since 2.6.17-rc1:
-\fIshmaddr\fP ã\81«ä»\98å\8a ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントが存在しない。 もしくは、 \fIshmaddr\fP がページ境界に合っていない。
+\fIshmaddr\fP ã\81«ä»\98å\8a ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントが存在しない。 もしくは、 \fIshmaddr\fP がページ境界に合っていない。
.SH 準拠
.\" SVr4 documents an additional error condition EMFILE.
SVr4, POSIX.1\-2001.
に、\fIshmat\fP() の返り値の型は \fIchar\ *\fP から \fIvoid\ *\fP に変更された。
.SH 注意
.PP
-\fBfork\fP(2) ã\81\97ã\81\9få¾\8cã\80\81å\90ã\83\97ã\83ã\82»ã\82¹ã\81¯ä»\98å\8a ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントを継承する。
+\fBfork\fP(2) ã\81\97ã\81\9få¾\8cã\80\81å\90ã\83\97ã\83ã\82»ã\82¹ã\81¯ä»\98å\8a ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントを継承する。
-\fBexec\fP(2) ã\81\97ã\81\9få¾\8cã\80\81å\85¨ã\81¦ã\81®ä»\98å\8a ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントはプロセスから分離される。
+\fBexec\fP(2) ã\81\97ã\81\9få¾\8cã\80\81å\85¨ã\81¦ã\81®ä»\98å\8a ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントはプロセスから分離される。
-\fBexit\fP(2) ã\81«ã\81\8aã\81\84ã\81¦ã\80\81å\85¨ã\81¦ã\81®ä»\98å\8a ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントはプロセスから分離される。
+\fBexit\fP(2) ã\81«ã\81\8aã\81\84ã\81¦ã\80\81å\85¨ã\81¦ã\81®ä»\98å\8a ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントはプロセスから分離される。
-共有メモリセグメントを付加する場合の移植性の高い方法としては、 \fIshmaddr\fP を NULL にして \fBshmat\fP() を使用するのがよい。
-このような方法で付加される共有メモリセグメントは、 プロセスが異なれば別のアドレスに付加される、という点に注意すること。
-よって共有メモリ内で管理されるポインタは、 絶対アドレスではなく、 (一般的にはセグメントの開始アドレスからの) 相対アドレスで作成するべきである。
+共有メモリーセグメントを付加する場合の移植性の高い方法としては、 \fIshmaddr\fP を NULL にして \fBshmat\fP()
+を使用するのがよい。 このような方法で付加される共有メモリーセグメントは、 プロセスが異なれば別のアドレスに付加される、という点に注意すること。
+よって共有メモリー内で管理されるポインターは、 絶対アドレスではなく、 (一般的にはセグメントの開始アドレスからの)
+相対アドレスで作成するべきである。
.PP
-Linux ã\81§ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«æ\97¢ã\81«å\89\8aé\99¤ã\83\9eã\83¼ã\82¯ã\81\8cä»\98ã\81\91ã\82\89ã\82\8cã\81¦ã\81\84ã\81¦ã\82\82ã\80\81 ã\81\9dã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªセグメントを付加することができる。 しかし
+Linux ã\81§ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81«æ\97¢ã\81«å\89\8aé\99¤ã\83\9eã\83¼ã\82¯ã\81\8cä»\98ã\81\91ã\82\89ã\82\8cã\81¦ã\81\84ã\81¦ã\82\82ã\80\81 ã\81\9dã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントを付加することができる。 しかし
POSIX.1\-2001 ではこのような動作を指定しておらず、 他の多くの実装もこれをサポートしていない。
.LP
-以ä¸\8bã\81®ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\80\81 \fBshmat\fP() ã\81«å½±é\9f¿ã\81\99ã\82\8b:
+以下のシステムパラメーターは、 \fBshmat\fP() に影響する:
.TP
\fBSHMLBA\fP
セグメントの下限アドレス倍数 (Segment low boundary address multiple)。 \fBshmat\fP()
キャッシュ内部で一貫して扱えるようにするためだったりする。 \fBSHMLBA\fP は通常はシステムページサイズの倍数である (Linux
の多くのアーキテクチャーではシステムページサイズと同じである)。
.PP
-ç\8f¾å\9c¨ã\81®å®\9fè£\85ã\81§ã\81¯ã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81\94ã\81¨ã\81® å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»セグメントの最大数 (\fBSHMSEG\fP) に関する実装依存の制限はない。
+ç\8f¾å\9c¨ã\81®å®\9fè£\85ã\81§ã\81¯ã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81\94ã\81¨ã\81® å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼セグメントの最大数 (\fBSHMSEG\fP) に関する実装依存の制限はない。
.SH 関連項目
\fBbrk\fP(2), \fBmmap\fP(2), \fBshmctl\fP(2), \fBshmget\fP(2), \fBcapabilities\fP(7),
\fBshm_overview\fP(7), \fBsvipc\fP(7)
.fi
.in
.PP
-アーキテクチャによっては共用体 (union) が用いられており、その場合には \fIsa_handler\fP と \fIsa_sigaction\fP
+ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\82\88ã\81£ã\81¦ã\81¯å\85±ç\94¨ä½\93 (union) ã\81\8cç\94¨ã\81\84ã\82\89ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81ã\81\9dã\81®å ´å\90\88ã\81«ã\81¯ \fIsa_handler\fP ã\81¨ \fIsa_sigaction\fP
の両方を同時に割り当てることはできない。
.PP
\fIsa_restorer\fP はアプリケーションが使用することを意図したフィールドではない (POSIX は \fIsa_restorer\fP
フィールドを規定していない)。 このフィールドの詳細な目的については \fBsigreturn\fP(2) に書かれている。
.PP
\fIsa_handler\fP は \fIsignum\fP に対応する動作を指定するもので、 デフォルトの動作を行う \fBSIG_DFL\fP、
-そのシグナルを無視する \fBSIG_IGN\fP、 シグナルハンドラ関数へのポインタが設定できる。
-シグナルハンドラ関数の引き数は一つであり、シグナル番号が引き数として 渡される。
+そのシグナルを無視する \fBSIG_IGN\fP、 シグナルハンドラー関数へのポインターが設定できる。
+シグナルハンドラー関数の引き数は一つであり、シグナル番号が引き数として 渡される。
.PP
\fIsa_flags\fP に \fBSA_SIGINFO\fP が指定された場合、 (\fIsa_handler\fP ではなく) \fIsa_sigaction\fP
-により \fIsignum\fP に対応するシグナルハンドラ関数が指定される。指定される関数は、最初の引き数としてシグナル番号を、二番目の引き数として
-\fIsiginfo_t\fP へのポインタを、三番目の引き数として (\fIvoid\ *\fP にキャストした) \fIucontext_t\fP
-ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92å\8f\97ã\81\91ã\81¨ã\82\8bã\80\82 (ä¸\80è\88¬ç\9a\84ã\81«ã\81¯ã\80\81ã\83\8fã\83³ã\83\89ã\83©関数の三番目の引き数が使用されない。\fIucontext_t\fP についての詳しい情報は
+により \fIsignum\fP に対応するシグナルハンドラー関数が指定される。指定される関数は、最初の引き数としてシグナル番号を、二番目の引き数として
+\fIsiginfo_t\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92ã\80\81ä¸\89ç\95ªç\9b®ã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦ (\fIvoid\ *\fP ã\81«ã\82ã\83£ã\82¹ã\83\88ã\81\97ã\81\9f) \fIucontext_t\fP
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å\8f\97ã\81\91ã\81¨ã\82\8bã\80\82 (ä¸\80è\88¬ç\9a\84ã\81«ã\81¯ã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\83¼関数の三番目の引き数が使用されない。\fIucontext_t\fP についての詳しい情報は
\fBgetcontext\fP(3) を参照。)
.PP
-\fIsa_mask\fP ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©実行中に禁止 (block) すべきシグナルのマスクを指定する
-(ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動されたスレッド のシグナルのマスクに追加することで行われる)。 さらに、
-\fBSA_NODEFER\fP フラグが指定されていない場合は、ハンドラを起動するきっかけとなる シグナルにも \fIsa_mask\fP が適用される。
+\fIsa_mask\fP ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼実行中に禁止 (block) すべきシグナルのマスクを指定する
+(ハンドラー実行中のシグナルの禁止は、シグナルハンドラーが起動されたスレッド のシグナルのマスクに追加することで行われる)。 さらに、
+\fBSA_NODEFER\fP ã\83\95ã\83©ã\82°ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92èµ·å\8b\95ã\81\99ã\82\8bã\81\8dã\81£ã\81\8bã\81\91ã\81¨ã\81ªã\82\8b ã\82·ã\82°ã\83\8aã\83«ã\81«ã\82\82 \fIsa_mask\fP ã\81\8cé\81©ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82
.PP
-\fIsa_flags\fP ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©の動作を変更するためのフラグの集合を指定する。 \fIsa_flags\fP には、以下に示すフラグの (0
+\fIsa_flags\fP ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼の動作を変更するためのフラグの集合を指定する。 \fIsa_flags\fP には、以下に示すフラグの (0
個以上の) 論理和をとったものを指定する。
.RS 4
.TP
\fBSA_NOCLDSTOP\fP
\fIsignum\fP が \fBSIGCHLD\fP の場合、 子プロセスが停止したり (子プロセスが \fBSIGSTOP\fP, \fBSIGTSTP\fP,
\fBSIGTTIN\fP, \fBSIGTTOU\fP を受けたとき) 再開したり (子プロセスが \fBSIGCONT\fP を受けたとき) したときに
-\fBSIGCHLD\fP の通知を受けない。 このフラグは、 \fBSIGCHLD\fP に対してハンドラを設定する際にのみ意味を持つ。
+\fBSIGCHLD\fP ã\81®é\80\9aç\9f¥ã\82\92å\8f\97ã\81\91ã\81ªã\81\84ã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ã\80\81 \fBSIGCHLD\fP ã\81«å¯¾ã\81\97ã\81¦ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8bé\9a\9bã\81«ã\81®ã\81¿æ\84\8få\91³ã\82\92æ\8c\81ã\81¤ã\80\82
.TP
\fBSA_NOCLDWAIT\fP (Linux 2.6 以降)
.\" To be precise: Linux 2.5.60 -- MTK
(Linux 2.6 以降) \fIsignum\fP が \fBSIGCHLD\fP の場合、子プロセスが終了したときに
子プロセスをゾンビプロセスに変化させない (\fBwaitpid\fP(2) も参照)。 このフラグは、 \fBSIGCHLD\fP
-に対してハンドラを設定する際、もしくはそのシグナルの処理方法を \fBSIG_DFL\fP に設定する際にのみ意味を持つ。
+ã\81«å¯¾ã\81\97ã\81¦ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8bé\9a\9bã\80\81ã\82\82ã\81\97ã\81\8fã\81¯ã\81\9dã\81®ã\82·ã\82°ã\83\8aã\83«ã\81®å\87¦ç\90\86æ\96¹æ³\95ã\82\92 \fBSIG_DFL\fP ã\81«è¨å®\9aã\81\99ã\82\8bé\9a\9bã\81«ã\81®ã\81¿æ\84\8få\91³ã\82\92æ\8c\81ã\81¤ã\80\82
-\fBSIGCHLD\fP に対してハンドラを設定する際に \fBSA_NOCLDWAIT\fP フラグをセットした場合、 子プロセスが終了した際に
+\fBSIGCHLD\fP ã\81«å¯¾ã\81\97ã\81¦ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8bé\9a\9bã\81« \fBSA_NOCLDWAIT\fP ã\83\95ã\83©ã\82°ã\82\92ã\82»ã\83\83ã\83\88ã\81\97ã\81\9få ´å\90\88ã\80\81 å\90ã\83\97ã\83ã\82»ã\82¹ã\81\8cçµ\82äº\86ã\81\97ã\81\9fé\9a\9bã\81«
\fBSIGCHLD\fP シグナルが生成されるかどうかは、 POSIX.1 では規定されていない。 Linux では、この状況で \fBSIGCHLD\fP
シグナルは生成される。 いくつかの他の実装では生成されない。
.TP
\fBSA_NODEFER\fP
-ã\81\9dã\82\8cè\87ªèº«ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®å\86\85é\83¨ã\81«ã\81\84ã\82\8bæ\99\82ã\81§ã\82\82 ã\81\9dã\81®ã\82·ã\82°ã\83\8aã\83«ã\82\92ã\83\9eã\82¹ã\82¯ã\81\97ã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©を設定する際にのみ意味を持つ。
+ã\81\9dã\82\8cè\87ªèº«ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®å\86\85é\83¨ã\81«ã\81\84ã\82\8bæ\99\82ã\81§ã\82\82 ã\81\9dã\81®ã\82·ã\82°ã\83\8aã\83«ã\82\92ã\83\9eã\82¹ã\82¯ã\81\97ã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼を設定する際にのみ意味を持つ。
\fBSA_NOMASK\fP はこのフラグと同じ意味だが、廃止されており、非標準である。
.TP
\fBSA_ONSTACK\fP
-\fBsigaltstack\fP(2) ã\81§æ\8f\90ä¾\9bã\81\95ã\82\8cã\82\8bå\88¥ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83»ã\82¹ã\82¿ã\83\83ã\82¯ã\81§ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©を呼び出す。
-å\88¥ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83»ã\82¹ã\82¿ã\83\83ã\82¯ã\81\8cå\88©ç\94¨å\8f¯è\83½ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\80\81ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\81\8c 使ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©を設定する際にのみ意味を持つ。
+\fBsigaltstack\fP(2) ã\81§æ\8f\90ä¾\9bã\81\95ã\82\8cã\82\8bå\88¥ã\81®ã\82·ã\82°ã\83\8aã\83«ã\82¹ã\82¿ã\83\83ã\82¯ã\81§ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼を呼び出す。
+å\88¥ã\81®ã\82·ã\82°ã\83\8aã\83«ã\82¹ã\82¿ã\83\83ã\82¯ã\81\8cå\88©ç\94¨å\8f¯è\83½ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\80\81ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\81\8c 使ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼を設定する際にのみ意味を持つ。
.TP
\fBSA_RESETHAND\fP
-ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\82\92è¨å®\9aã\81\99ã\82\8bé\9a\9bã\81«ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\81®å\8b\95ä½\9cã\82\92ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81«æ\88»ã\81\99ã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©を設定する際にのみ意味を持つ。
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8bé\9a\9bã\81«ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\81®å\8b\95ä½\9cã\82\92ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81«æ\88»ã\81\99ã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼を設定する際にのみ意味を持つ。
\fBSA_ONESHOT\fP はこのフラグと同じ意味だが、廃止されており、非標準である。
.TP
\fBSA_RESTART\fP
いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シグナル方式 (semantics) と互換性のある動作を提供する。
-このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 \fBsignal\fP(7) に書かれているシステムコールの再開に関する議論を参照のこと。
+ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8bé\9a\9bã\81«ã\81®ã\81¿æ\84\8få\91³ã\82\92æ\8c\81ã\81¤ã\80\82 \fBsignal\fP(7) ã\81«æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®å\86\8dé\96\8bã\81«é\96¢ã\81\99ã\82\8bè°è«\96ã\82\92å\8f\82ç\85§ã\81®ã\81\93ã\81¨ã\80\82
.TP
\fBSA_RESTORER\fP
\fIアプリケーションでの使用を意図したものではない\fP。 このフラグは C ライブラリが \fIsa_restorer\fP フィールドに "signal
.\" (The
.\" .I sa_sigaction
.\" field was added in Linux 2.1.86.)
-シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は \fIsa_handler\fP のかわりに \fIsa_sigaction\fP
-を設定しなければならない このフラグはシグナルハンドラを設定する際にのみ意味を持つ。
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯ä¸\80ã\81¤ã\81§ã\81¯ã\81ªã\81\8fã\80\81ä¸\89ã\81¤ã\81®å¼\95ã\81\8dæ\95°ã\82\92æ\8c\81ã\81¤ã\80\82ã\81\93ã\81®å ´å\90\88ã\81¯ \fIsa_handler\fP ã\81®ã\81\8bã\82\8fã\82\8aã\81« \fIsa_sigaction\fP
+ã\82\92è¨å®\9aã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8bé\9a\9bã\81«ã\81®ã\81¿æ\84\8få\91³ã\82\92æ\8c\81ã\81¤ã\80\82
.RE
.PP
-\fIsa_sigaction\fP のパラメータ \fIsiginfo_t\fP は以下のフィールドを持つ構造体である:
+\fIsa_sigaction\fP のパラメーター \fIsiginfo_t\fP は以下のフィールドを持つ構造体である:
.sp
.in +4n
.nf
\fBsigqueue\fP(3) で送信されたシグナルでは \fIsi_int\fP と \fIsi_pid\fP
にシグナルの送信者により指定された値が設定される。詳細は \fBsigqueue\fP(3) を参照。
.IP *
-POSIX.1b タイマ (Linux 2.6 以降) は \fIsi_overrun\fP と \fIsi_timerid\fP を設定する。
-\fIsi_timerid\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\81\8cã\82¿ã\82¤ã\83\9eã\82\92ç\89¹å®\9aã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81\99ã\82\8bå\86\85é\83¨ ID ã\81§ã\81\82ã\82\8aã\80\81 \fBtimer_create\fP(2) ã\81\8cè¿\94ã\81\99ã\82¿ã\82¤ã\83\9e
-ID と同じではない。 \fIsi_overrun\fP フィールドはタイマが回り切った回数である。 これは \fBtimer_getoverrun\fP(2)
-の呼び出しで取得できる情報と同じである。 これらのフィールドは非標準で Linux による拡張である。
+POSIX.1b タイマー (Linux 2.6 以降) は \fIsi_overrun\fP と \fIsi_timerid\fP を設定する。
+\fIsi_timerid\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\81\8cã\82¿ã\82¤ã\83\9eã\83¼ã\82\92ç\89¹å®\9aã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81\99ã\82\8bå\86\85é\83¨ ID ã\81§ã\81\82ã\82\8aã\80\81 \fBtimer_create\fP(2)
+が返すタイマー ID と同じではない。 \fIsi_overrun\fP フィールドはタイマーが回り切った回数である。 これは
+\fBtimer_getoverrun\fP(2) の呼び出しで取得できる情報と同じである。 これらのフィールドは非標準で Linux による拡張である。
.IP *
メッセージキューの通知用に送信されたシグナル (\fBmq_notify\fP(3) の \fBSIGEV_SIGNAL\fP の説明を参照) では、
\fIsi_int\fP/\fIsi_ptr\fP に \fBmq_notify\fP(3) に渡された \fIsigev_value\fP が設定される。 \fIsi_pid\fP
-にはメッセージ送信者のプロセス ID が設定され、 \fIsi_uid\fP にはメッセージ送信者の実ユーザ ID が設定される。
+にはメッセージ送信者のプロセス ID が設定され、 \fIsi_uid\fP にはメッセージ送信者の実ユーザー ID が設定される。
.IP *
.\" FIXME .
.\" When si_utime and si_stime where originally implemented, the
.\" and wait4()). Solaris 8 does include child times.
\fBSIGCHLD\fP は \fIsi_pid\fP, \fIsi_uid\fP, \fIsi_status\fP, \fIsi_utime\fP, \fIsi_stime\fP
を設定し、子プロセスに関する情報を提供する。 \fIsi_pid\fP フィールドは子プロセスのプロセス ID で、 \fIsi_uid\fP
-フィールドは子プロセスの実ユーザ ID である。 \fIsi_stime\fP フィールドには、 (\fIsi_code\fP が \fBCLD_EXITED\fP
+フィールドは子プロセスの実ユーザー ID である。 \fIsi_stime\fP フィールドには、 (\fIsi_code\fP が \fBCLD_EXITED\fP
の場合は) 子プロセスの終了ステータスが、それ以外の場合は状態が変化する原因となったシグナル番号が格納される。 \fIsi_utime\fP と
-\fIsi_stime\fP には子プロセスが使用したユーザ CPU 時間とシステム CPU 時間がそれぞれ格納される。(\fBgetrusage\fP(2) や
+\fIsi_stime\fP には子プロセスが使用したユーザー CPU 時間とシステム CPU 時間がそれぞれ格納される。(\fBgetrusage\fP(2) や
\fBtimes\fP(2) と異なり) これらのフィールドには wait 待ちの子プロセスにより使用された時間は含まれない。 2.6 より前と 2.6.27
以降のカーネルでは、 これらのフィールドに格納される CPU 時間の単位は \fIsysconf(_SC_CLK_TCK)\fP である。 2.6.27
より前の 2.6 系のカーネルでは、バグがあり、 これらのフィールドの CPU 時間の単位が (カーネルのコンフィグで指定される) システムの
jiffy であった (\fBtime\fP(7) 参照)。
.IP *
\fBSIGILL\fP, \fBSIGFPE\fP, \fBSIGSEGV\fP, \fBSIGBUS\fP, \fBSIGTRAP\fP では、 \fIsi_addr\fP に
-fault が発生したアドレスが設定される。 いくつかのアーキテクチャでは、 これらのシグナルは \fIsi_trapno\fP フィールドにも設定される。
+fault ã\81\8cç\99ºç\94\9fã\81\97ã\81\9fã\82¢ã\83\89ã\83¬ã\82¹ã\81\8cè¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82 ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81 ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\82°ã\83\8aã\83«ã\81¯ \fIsi_trapno\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ã\82\82è¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82
\fBSIGBUS\fP が発生するエラーのいくつか、特に \fBBUS_MCEERR_AO\fP と \fBBUS_MCEERR_AR\fP では、
-\fIsi_addr_lsb\fP も設定される。 このフィールドは報告されるアドレスの最下位ビットを示し、 これによりメモリ破壊の程度を知ることができる。
+\fIsi_addr_lsb\fP も設定される。 このフィールドは報告されるアドレスの最下位ビットを示し、 これによりメモリー破壊の程度を知ることができる。
例えば、ページ全体が壊れている場合には \fIsi_addr_lsb\fP には \fIlog2(sysconf(_SC_PAGESIZE))\fP が入る。
\fBSIGTRAP\fP が \fBptrace\fP(2) イベント (PTRACE_EVENT_foo) に対応して配送される際、 \fIsi_addr\fP
は設定されないが、 \fIsi_pid\fP と \fIsi_uid\fP にはトラップの配送に責任を負うプロセス ID とユーザー ID がそれぞれ格納される。
.IP *
\fBSIGIO\fP/\fBSIGPOLL\fP (2 つの名前は Linux では同義語) では \fIsi_band\fP と \fIsi_fd\fP が設定される。
\fIsi_band\fP イベントは、 \fBpoll\fP(2) が \fIrevents\fP フィールドに設定するのと同じ値が入ったビットマスクである。
-\fIsi_fd\fP フィールドは I/O イベントが発生したファイルディスクリプタを示す。
+\fIsi_fd\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ I/O ã\82¤ã\83\99ã\83³ã\83\88ã\81\8cç\99ºç\94\9fã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92示ã\81\99ã\80\82
.IP *
.\" commit a0727e8ce513fe6890416da960181ceb10fbfae6
seccomp フィルターが \fBSECCOMP_RET_TRAP\fP を返す際に (Linux 3.5 以降で) 生成される \fBSIGSYS\fP
\fBsigqueue\fP(3)
.TP
\fBSI_TIMER\fP
-POSIX タイマが満了した
+POSIX ã\82¿ã\82¤ã\83\9eã\83¼ã\81\8cæº\80äº\86ã\81\97ã\81\9f
.TP
\fBSI_MESGQ\fP (Linux 2.6.6 以降)
POSIX メッセージキューの状態が変化した; \fBmq_notify\fP(3) 参照
特権が必要な命令コード
.TP
\fBILL_PRVREG\fP
-特権が必要なレジスタ
+特権が必要なレジスター
.TP
\fBILL_COPROC\fP
コプロセッサのエラー
.RS 4
.TP
\fBBUS_ADRALN\fP
-ä¸\8dæ£ã\81ªã\82¢ã\83\89ã\83¬ã\82¹ã\83»ã\82¢ã\83©ã\82¤ã\83¡ã\83³ã\83\88 (alignment)
+不正なアドレスアライメント (alignment)
.TP
\fBBUS_ADRERR\fP
存在しない物理アドレス
オブジェクト固有のハードウェアエラー
.TP
\fBBUS_MCEERR_AR\fP (Linux 2.6.32 以降)
-マシンチェックで使用中のハードウェアメモリのエラーが検出された。対応が必須。
+ã\83\9eã\82·ã\83³ã\83\81ã\82§ã\83\83ã\82¯ã\81§ä½¿ç\94¨ä¸ã\81®ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82¨ã\83©ã\83¼ã\81\8cæ¤\9cå\87ºã\81\95ã\82\8cã\81\9fã\80\82対å¿\9cã\81\8cå¿\85é \88ã\80\82
.TP
\fBBUS_MCEERR_AO\fP (Linux 2.6.32 以降)
-å®\9fè¡\8cä¸ã\81«ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\83¡ã\83¢ã\83ªã\82¨ã\83©ã\83¼ã\81\8cæ¤\9cå\87ºã\81\95ã\82\8cã\81\9fã\81\8cã\80\81使ç\94¨ä¸ã\81®ã\83¡ã\83¢ã\83ªではない。対応は必須ではない。
+å®\9fè¡\8cä¸ã\81«ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\83¡ã\83¢ã\83ªã\83¼ã\82¨ã\83©ã\83¼ã\81\8cæ¤\9cå\87ºã\81\95ã\82\8cã\81\9fã\81\8cã\80\81使ç\94¨ä¸ã\81®ã\83¡ã\83¢ã\83ªã\83¼ではない。対応は必須ではない。
.RE
.PP
\fBSIGTRAP\fP シグナルの場合、 \fIsi_code\fP には以下の値が入る可能性がある:
プロセスのブレークポイント
.TP
\fBTRAP_TRACE\fP
-ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\88ã\83¬ã\83¼ã\82¹ã\83»ã\83\88ã\83©ã\83\83ã\83\97
+プロセスのトレーストラップ
.TP
\fBTRAP_BRANCH\fP (Linux 2.4 以降)
-ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\96ã\83©ã\83³ã\83\81ã\83»ã\83\88ã\83©ã\83\83ã\83\97
+プロセスのブランチトラップ
.TP
\fBTRAP_HWBKPT\fP (Linux 2.4 以降)
-ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\83»ブレークポイント/ウォッチポイント
+ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\81®ブレークポイント/ウォッチポイント
.RE
.PP
\fBSIGCHLD\fP シグナルの場合、 \fIsi_code\fP には以下の値が入る可能性がある:
入力データが利用可能
.TP
\fBPOLL_OUT\fP
-出力バッファが利用可能
+å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cå\88©ç\94¨å\8f¯è\83½
.TP
\fBPOLL_MSG\fP
入力メッセージが利用可能
.SH エラー
.TP
\fBEFAULT\fP
-\fIact\fP か \fIoldact\fP が指しているメモリが正しいプロセスのアドレス空間にない。
+\fIact\fP ã\81\8b \fIoldact\fP ã\81\8cæ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8cæ£ã\81\97ã\81\84ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81«ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルである \fBSIGKILL\fP や \fBSIGSTOP\fP
POSIX.1\-2001, SVr4.
.SH 注意
\fBfork\fP(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コピーを継承する。 \fBexecve\fP(2)
-の前後で、ハンドラが設定されているシグナルの処理方法はデフォルトにリセットされ、 無視が設定されているシグナルの処理方法は変更されずそのままとなる。
+ã\81®å\89\8då¾\8cã\81§ã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82·ã\82°ã\83\8aã\83«ã\81®å\87¦ç\90\86æ\96¹æ³\95ã\81¯ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81«ã\83ªã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\80\81 ç\84¡è¦\96ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82·ã\82°ã\83\8aã\83«ã\81®å\87¦ç\90\86æ\96¹æ³\95ã\81¯å¤\89æ\9b´ã\81\95ã\82\8cã\81\9aã\81\9dã\81®ã\81¾ã\81¾ã\81¨ã\81ªã\82\8bã\80\82
POSIX では、 \fBkill\fP(2) や \fBraise\fP(3) で生成できないシグナル \fBSIGFPE\fP, \fBSIGILL\fP,
\fBSIGSEGV\fP を無視 (ignore) した場合、その後の動作は未定義である。 ゼロによる整数割り算の結果は未定義となる。
カーネルの実装では、このフラグを設定しているシグナル だけでなく、どのシグナルでも受けることを許していた (実際には \fIsa_mask\fP
の設定により無効にできる)。
.PP
-\fBsigaction\fP() の二番目の引き数に NULL を指定して呼び出すと、現在のシグナルハンドラを確認する
+\fBsigaction\fP() ã\81®äº\8cç\95ªç\9b®ã\81®å¼\95ã\81\8dæ\95°ã\81« NULL ã\82\92æ\8c\87å®\9aã\81\97ã\81¦å\91¼ã\81³å\87ºã\81\99ã\81¨ã\80\81ç\8f¾å\9c¨ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92確èª\8dã\81\99ã\82\8b
ことができる。また、二番目と三番目の引き数を NULL にて呼び出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックできる。
.PP
\fBSIGKILL\fP や \fBSIGSTOP\fP を (\fIsa_mask\fP に指定して) 禁止することはできない。 禁止しようとしても黙って無視される。
.PP
シグナル集合の操作に関する詳細は \fBsigsetops\fP(3) を参照のこと。
.PP
-シグナルハンドラ内から安全に呼び出すことができる、 async\-signal\-safe functions (非同期シングルで安全な関数) の
+シグナルハンドラー内から安全に呼び出すことができる、 async\-signal\-safe functions (非同期シングルで安全な関数) の
リストについては \fBsignal\fP(7) を参照。
.SS 非公式
\fBSA_SIGINFO\fP が導入される前は、 \fIstruct sigcontext\fP 型の二番目の引き数と一緒に \fIsa_handler\fP
現在はこの使用法は廃止されている。
.SH バグ
2.6.13 以前のカーネルでは、 \fIsa_flags\fP に \fBSA_NODEFER\fP を指定した場合、
-ハンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 \fIsa_mask\fP に指定されたシグナルもマスクされなくなる。
+ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cå®\9fè¡\8cä¸ã\81«é\85\8dé\80\81ã\81\95ã\82\8cã\81\9fã\82·ã\82°ã\83\8aã\83«è\87ªèº«ã\81\8cã\83\9eã\82¹ã\82¯ã\81\95ã\82\8cã\81ªã\81\8fã\81ªã\82\8bã\81 ã\81\91ã\81§ã\81ªã\81\8fã\80\81 \fIsa_mask\fP ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82·ã\82°ã\83\8aã\83«ã\82\82ã\83\9eã\82¹ã\82¯ã\81\95ã\82\8cã\81ªã\81\8fã\81ªã\82\8bã\80\82
このバグは、カーネル 2.6.14 で修正された。
.SH 例
\fBmprotect\fP(2) 参照。
.ad
.SH 説明
\fBsigaltstack\fP() を使うと、 プロセスは新しい代替シグナルスタックを定義したり、 既存の代替シグナルスタックの状態を取得できる。
-シグナルハンドラが代替シグナルスタックを要求するように設定されていると (\fBsigaction\fP(2)
-参照)、ハンドラの実行中はそのシグナルスタックが使われる。
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8c代æ\9b¿ã\82·ã\82°ã\83\8aã\83«ã\82¹ã\82¿ã\83\83ã\82¯ã\82\92è¦\81æ±\82ã\81\99ã\82\8bã\82\88ã\81\86ã\81«è¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81¨ (\fBsigaction\fP(2)
+å\8f\82ç\85§)ã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®å®\9fè¡\8cä¸ã\81¯ã\81\9dã\81®ã\82·ã\82°ã\83\8aã\83«ã\82¹ã\82¿ã\83\83ã\82¯ã\81\8c使ã\82\8fã\82\8cã\82\8bã\80\82
代替シグナルスタックを使う際の一般的な手順は、以下の通りである:
.TP 3
1.
-代替シグナルスタックで使うメモリ領域を確保する。
+代替シグナルスタックで使うメモリー領域を確保する。
.TP
2.
\fBsigaltstack\fP() を使って、 代替シグナルスタックの存在と場所をシステムに知らせる。
.TP
3.
-\fBsigaction\fP(2) を使ってシグナルハンドラを確立する際、 \fBSA_ONSTACK\fP フラグを指定することにより、
-そのシグナルハンドラを代替シグナルスタック上で実行することを システムに知らせる。
+\fBsigaction\fP(2) ã\82\92使ã\81£ã\81¦ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92確ç«\8bã\81\99ã\82\8bé\9a\9bã\80\81 \fBSA_ONSTACK\fP ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81«ã\82\88ã\82\8aã\80\81
+ã\81\9dã\81®ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92代æ\9b¿ã\82·ã\82°ã\83\8aã\83«ã\82¹ã\82¿ã\83\83ã\82¯ä¸\8aã\81§å®\9fè¡\8cã\81\99ã\82\8bã\81\93ã\81¨ã\82\92 ã\82·ã\82¹ã\83\86ã\83 ã\81«ç\9f¥ã\82\89ã\81\9bã\82\8bã\80\82
.P
\fIss\fP 引き数は、新しいシグナルスタックを指定するために使う。 また \fIoss\fP 引き数は、現在確立されている
シグナルスタックの情報を取得するために使う。 この操作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよい。
新規の代替シグナルスタックを確立するには、 \fIss.ss_flags\fP を 0 に設定し、 \fIss.ss_sp\fP と \fIss.ss_size\fP に
スタックの開始アドレスとスタックサイズを指定する。 定数 \fBSIGSTKSZ\fP は、代替シグナルスタックが通常必要する
-サイズよりも充分大きく定義されている。 また定数 \fBMINSIGSTKSZ\fP は、 シグナルハンドラの実行に必要な最小サイズに定義されている。
+ã\82µã\82¤ã\82ºã\82\88ã\82\8aã\82\82å\85\85å\88\86大ã\81\8dã\81\8få®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81¾ã\81\9få®\9aæ\95° \fBMINSIGSTKSZ\fP ã\81¯ã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®å®\9fè¡\8cã\81«å¿\85è¦\81ã\81ªæ\9c\80å°\8fã\82µã\82¤ã\82ºã\81«å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
-代替スタックでシグナルハンドラが起動された場合には、 カーネルにより自動的に、\fIss.ss_sp\fP で指定されたアドレスは
-動作しているハードウェアアーキテクチャに適したアドレス境界に 調整される。
+代æ\9b¿ã\82¹ã\82¿ã\83\83ã\82¯ã\81§ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cèµ·å\8b\95ã\81\95ã\82\8cã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82\88ã\82\8aè\87ªå\8b\95ç\9a\84ã\81«ã\80\81\fIss.ss_sp\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¢ã\83\89ã\83¬ã\82¹ã\81¯
+å\8b\95ä½\9cã\81\97ã\81¦ã\81\84ã\82\8bã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«é\81©ã\81\97ã\81\9fã\82¢ã\83\89ã\83¬ã\82¹å¢\83ç\95\8cã\81« 調æ\95´ã\81\95ã\82\8cã\82\8bã\80\82
既存のスタックを無効にするには、 \fIss.ss_flags\fP を \fBSS_DISABLE\fP に指定する。 この場合、\fIss\fP
の他のフィールドは無視される。
.SH 注意
代替シグナルスタックを使用する最もよくある場面は、 \fBSIGSEGV\fP シグナルを扱うときである。 \fBSIGSEGV\fP
はプロセスの通常のスタックが利用できる空間が使い果たされた際に 生成されるシグナルである。この場合には、 \fBSIGSEGV\fP
-用のシグナルハンドラをプロセスのスタック上では起動することができない。 そのため、このシグナルを扱おうとする場合には、
+ç\94¨ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ä¸\8aã\81§ã\81¯èµ·å\8b\95ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\80\82 ã\81\9dã\81®ã\81\9fã\82\81ã\80\81ã\81\93ã\81®ã\82·ã\82°ã\83\8aã\83«ã\82\92æ\89±ã\81\8aã\81\86ã\81¨ã\81\99ã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81
代替シグナルスタックを使用しなければならない。
.P
プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから
標準のスタックを使い果たしてしまうと、 カーネルはプロセスに \fBSIGSEGV\fP シグナルを送る。
このような状況では、代替シグナルスタック上でしかシグナルをキャッチできない。
.P
-Linux がサポートする多くのハードウェアアーキテクチャでは、 スタックは下位アドレス方向に積まれる。 \fBsigaltstack\fP()
+Linux ã\81\8cã\82µã\83\9dã\83¼ã\83\88ã\81\99ã\82\8bå¤\9aã\81\8fã\81®ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81 ã\82¹ã\82¿ã\83\83ã\82¯ã\81¯ä¸\8bä½\8dã\82¢ã\83\89ã\83¬ã\82¹æ\96¹å\90\91ã\81«ç©\8dã\81¾ã\82\8cã\82\8bã\80\82 \fBsigaltstack\fP()
はスタックが積まれる方向を自動的に決定する。
.P
-代æ\9b¿ã\82·ã\82°ã\83\8aã\83«ã\82¹ã\82¿ã\83\83ã\82¯ä¸\8aã\81§å®\9fè¡\8cã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81\8bã\82\89å\91¼ã\81°ã\82\8cã\82\8bé\96¢æ\95°ã\82\82ã\80\81代æ\9b¿ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©を使う
-(ã\83\97ã\83ã\82»ã\82¹ã\81\8c代æ\9b¿ã\82·ã\82°ã\83\8aã\83«ã\82¹ã\82¿ã\83\83ã\82¯ä¸\8aã\81§å®\9fè¡\8cã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81 ä»\96ã\81®ã\82·ã\82°ã\83\8aã\83«ã\81§å\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\83\8fã\83³ã\83\89ã\83©ã\82\82ã\81\93ã\81®ä»£æ\9b¿ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©を使う)。
+代æ\9b¿ã\82·ã\82°ã\83\8aã\83«ã\82¹ã\82¿ã\83\83ã\82¯ä¸\8aã\81§å®\9fè¡\8cã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8bã\82\89å\91¼ã\81°ã\82\8cã\82\8bé\96¢æ\95°ã\82\82ã\80\81代æ\9b¿ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼を使う
+(ã\83\97ã\83ã\82»ã\82¹ã\81\8c代æ\9b¿ã\82·ã\82°ã\83\8aã\83«ã\82¹ã\82¿ã\83\83ã\82¯ä¸\8aã\81§å®\9fè¡\8cã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81 ä»\96ã\81®ã\82·ã\82°ã\83\8aã\83«ã\81§å\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\82ã\81\93ã\81®ä»£æ\9b¿ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼を使う)。
標準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張しない。 代替シグナルスタック用に確保したサイズを越えた場合、
結果は予想できない。
.P
\fBこのシステムコールの使用は避け、\fP 代わりに \fBsigaction\fP(2) を使用すること。 下記の「移植性」を参照。
\fBsignal\fP() はシグナル \fIsignum\fP の処理方法を \fIhandler\fP に設定する。 \fIhandler\fP には、
-\fBSIG_IGN\fPã\80\81 \fBSIG_DFL\fPã\80\81 ã\83\97ã\83ã\82°ã\83©ã\83\9eã\81\8cå®\9a義ã\81\97ã\81\9fé\96¢æ\95° (ã\80\8cã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©」) のアドレスの いずれかを指定する。
+\fBSIG_IGN\fPã\80\81 \fBSIG_DFL\fPã\80\81 ã\83\97ã\83ã\82°ã\83©ã\83\9eã\81\8cå®\9a義ã\81\97ã\81\9fé\96¢æ\95° (ã\80\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼」) のアドレスの いずれかを指定する。
シグナル \fIsignum\fP がプロセスに配送されると、以下のいずれかが発生する。
.TP 3
.TP
*
処理方法として関数が設定されている場合、 まず最初に処理方法が \fBSIG_DFL\fP にリセットされるかそのシグナルのブロックが実行された後、
-\fIsignum\fP を引き数として \fIhandler\fP が呼び出される。 ハンドラが起動される際にシグナルがブロックされた場合、
-ハンドラが返る際にそのシグナルのブロックが解除される。
+\fIsignum\fP ã\82\92å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦ \fIhandler\fP ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\80\82 ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cèµ·å\8b\95ã\81\95ã\82\8cã\82\8bé\9a\9bã\81«ã\82·ã\82°ã\83\8aã\83«ã\81\8cã\83\96ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81\9få ´å\90\88ã\80\81
+ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cè¿\94ã\82\8bé\9a\9bã\81«ã\81\9dã\81®ã\82·ã\82°ã\83\8aã\83«ã\81®ã\83\96ã\83ã\83\83ã\82¯ã\81\8c解é\99¤ã\81\95ã\82\8cã\82\8bã\80\82
.PP
シグナル \fBSIGKILL\fP と \fBSIGSTOP\fP は捕捉できず、無視することもできない。
.SH 返り値
-\fBsignal\fP() ã\81¯ã\80\81ä»\8aã\81¾ã\81§ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©の値を返す。 エラーの場合は \fBSIG_ERR\fP を返し、 \fIerrno\fP
+\fBsignal\fP() ã\81¯ã\80\81ä»\8aã\81¾ã\81§ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼の値を返す。 エラーの場合は \fBSIG_ERR\fP を返し、 \fIerrno\fP
にエラーの原因を示す値を設定する。
.SH エラー
.TP
.PP
\fBSIGCHLD\fP の動作として \fBSIG_IGN\fP を設定した場合の詳細な動作については、 \fBsigaction\fP(2) を参照すること。
.PP
-ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©内から安全に呼び出すことができる、 async\-signal\-safe functions (非同期シングルで安全な関数) の
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼内から安全に呼び出すことができる、 async\-signal\-safe functions (非同期シングルで安全な関数) の
リストについては \fBsignal\fP(7) を参照。
.PP
.\" libc4 and libc5 define
.in
.SS 移植性
移植性のある \fBsignal\fP() の使い方は、シグナルの処理方法を \fBSIG_DFL\fP か \fBSIG_IGN\fP に設定する方法だけである。
-ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©を設定するのに \fBsignal\fP() を使ったときの動作はシステムにより異なる (POSIX.1
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼を設定するのに \fBsignal\fP() を使ったときの動作はシステムにより異なる (POSIX.1
は明示的にこの違いを認めている)。 \fB移植性が必要なときはこのシステムコールを使用しないこと。\fP
POSIX.1 は、 \fBsigaction\fP(2) を規定することで移植性に関する混乱を解決した。 \fBsigaction\fP(2)
-ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©が起動される際の挙動を明示的に制御できる。 \fBsignal\fP() の代わりにこのインターフェイスを使うこと。
+ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼が起動される際の挙動を明示的に制御できる。 \fBsignal\fP() の代わりにこのインターフェイスを使うこと。
-オリジナルの UNIX システムでは、 \fBsignal\fP() を使って設定されたハンドラがシグナルの配送により起動されると、
+ã\82ªã\83ªã\82¸ã\83\8aã\83«ã\81® UNIX ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ã\80\81 \fBsignal\fP() ã\82\92使ã\81£ã\81¦è¨å®\9aã\81\95ã\82\8cã\81\9fã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\81®é\85\8dé\80\81ã\81«ã\82\88ã\82\8aèµ·å\8b\95ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81
そのシグナルの処理方法は \fBSIG_DFL\fP にリセットされ、システムは同じシグナルがさらに生成されても
シグナルの配送をブロックしなかった。これは、以下のフラグで \fBsigaction\fP(2) を呼び出すのと等価である。
sa.sa_flags = SA_RESETHAND | SA_NODEFER;
System\ V でも、 \fBsignal\fP() に対してこれらの挙動を規定している。
-ã\81\93ã\81\86ã\81\97ã\81\9fæ\8c\99å\8b\95ã\81¯ã\81¾ã\81\9aã\81\8fã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\81\8cã\83\8fã\83³ã\83\89ã\83©自身を再設定する機会が 来るより前に、同じシグナルがまた配送される可能性がある。
-さらに、同じシグナルが立て続けに配送されると、同じシグナルが ハンドラを繰り返し起動されることになる。
+ã\81\93ã\81\86ã\81\97ã\81\9fæ\8c\99å\8b\95ã\81¯ã\81¾ã\81\9aã\81\8fã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cã\83\8fã\83³ã\83\89ã\83©ã\83¼自身を再設定する機会が 来るより前に、同じシグナルがまた配送される可能性がある。
+ã\81\95ã\82\89ã\81«ã\80\81å\90\8cã\81\98ã\82·ã\82°ã\83\8aã\83«ã\81\8cç«\8bã\81¦ç¶\9aã\81\91ã\81«é\85\8dé\80\81ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81å\90\8cã\81\98ã\82·ã\82°ã\83\8aã\83«ã\81\8c ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92ç¹°ã\82\8aè¿\94ã\81\97èµ·å\8b\95ã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\81«ã\81ªã\82\8bã\80\82
BSD はこの状況が改善したが、残念なことに、その過程で既存の \fBsignal\fP() の挙動も変更された。 BSD
-ã\81§ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81\8cèµ·å\8b\95ã\81\95ã\82\8cã\81\9fé\9a\9bã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\81®å\87¦ç\90\86æ\96¹æ³\95ã\81¯ã\83ªã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\81\9aã\80\81 ã\83\8fã\83³ã\83\89ã\83©の実行中は、同じシグナルのさらなる生成は配送がブロックされる。
-また、 シグナルハンドラが中断された場合、 停止中のシステムコールのいくつかは自動的に再スタートされる。 BSD の挙動は、 以下のフラグを指定した
+ã\81§ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cèµ·å\8b\95ã\81\95ã\82\8cã\81\9fé\9a\9bã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\81®å\87¦ç\90\86æ\96¹æ³\95ã\81¯ã\83ªã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\81\9aã\80\81 ã\83\8fã\83³ã\83\89ã\83©ã\83¼の実行中は、同じシグナルのさらなる生成は配送がブロックされる。
+ã\81¾ã\81\9fã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cä¸æ\96ã\81\95ã\82\8cã\81\9få ´å\90\88ã\80\81 å\81\9cæ¢ä¸ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®ã\81\84ã\81\8fã\81¤ã\81\8bã\81¯è\87ªå\8b\95ç\9a\84ã\81«å\86\8dã\82¹ã\82¿ã\83¼ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82 BSD ã\81®æ\8c\99å\8b\95ã\81¯ã\80\81 以ä¸\8bã\81®ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\97ã\81\9f
\fBsigaction\fP(2) の呼び出しと等価である。
sa.sa_flags = SA_RESTART;
.\"
.TH SIGNALFD 2 2014\-07\-08 Linux "Linux Programmer's Manual"
.SH 名前
-signalfd \- シグナル受け付け用のファイルディスクリプタを生成する
+signalfd \- ã\82·ã\82°ã\83\8aã\83«å\8f\97ã\81\91ä»\98ã\81\91ç\94¨ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8b
.SH 書式
\fB#include <sys/signalfd.h>\fP
.sp
\fBint signalfd(int \fP\fIfd\fP\fB, const sigset_t *\fP\fImask\fP\fB, int \fP\fIflags\fP\fB);\fP
.SH 説明
-\fBsignalfd\fP() ã\81¯ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83å®\9bã\81¦ã\81®ã\82·ã\82°ã\83\8aã\83«ã\82\92å\8f\97ã\81\91ä»\98ã\81\91ã\82\8bã\81\9fã\82\81ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83« ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®æ\96¹æ³\95ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\82\84
-\fBsigwaitinfo\fP(2) を用いる方法の代わりとなるものであり、このファイルディスクリプタを \fBselect\fP(2),
-\fBpoll\fP(2), \fBepoll\fP(7) で監視できるという利点がある。
+\fBsignalfd\fP() ã\81¯ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83å®\9bã\81¦ã\81®ã\82·ã\82°ã\83\8aã\83«ã\82\92å\8f\97ã\81\91ä»\98ã\81\91ã\82\8bã\81\9fã\82\81ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83« ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\80\82
+この方法はシグナルハンドラーや \fBsigwaitinfo\fP(2) を用いる方法の代わりとなるものであり、このファイルディスクリプターを
+\fBselect\fP(2), \fBpoll\fP(2), \fBepoll\fP(7) で監視できるという利点がある。
-\fImask\fP 引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、
-\fBsigsetops\fP(3) で説明されているマクロを使って初期化することができる。 通常、ファイルディスクリプタ経由で受信するシグナル集合は、
+\fImask\fP 引き数には、呼び出し元がこのファイルディスクリプター経由で受け付けたい
+シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 \fBsigsetops\fP(3)
+で説明されているマクロを使って初期化することができる。 通常、ファイルディスクリプター経由で受信するシグナル集合は、
そのシグナルがデフォルトの配送方法に基いて処理されるのを防ぐために、 \fBsigprocmask\fP(2) を使ってブロックしておくべきである。
-シグナル \fBSIGKILL\fP と \fBSIGSTOP\fP を signalfd ファイルディスクリプタ経由で受信することはできない。 これらのシグナルが
-\fImask\fP で指定された場合には黙って無視される。
+シグナル \fBSIGKILL\fP と \fBSIGSTOP\fP を signalfd ファイルディスクリプター経由で受信することはできない。
+これらのシグナルが \fImask\fP で指定された場合には黙って無視される。
-\fIfd\fP 引き数が \-1 の場合、 \fBsignalfd\fP() は新しいファイルディスクリプタを生成し、 \fImask\fP
-で指定されたシグナル集合をそのファイルディスクリプタに関連付ける。 \fIfd\fP 引き数が \-1 以外の場合、 \fIfd\fP には有効な既存の
-signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92æ\8c\87å®\9aã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81\9aã\80\81 ã\81\9dã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿に関連付けられているシグナル集合は \fImask\fP
+\fIfd\fP å¼\95ã\81\8dæ\95°ã\81\8c \-1 ã\81®å ´å\90\88ã\80\81 \fBsignalfd\fP() ã\81¯æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\94\9fæ\88\90ã\81\97ã\80\81 \fImask\fP
+ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82·ã\82°ã\83\8aã\83«é\9b\86å\90\88ã\82\92ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«é\96¢é\80£ä»\98ã\81\91ã\82\8bã\80\82 \fIfd\fP å¼\95ã\81\8dæ\95°ã\81\8c \-1 以å¤\96ã\81®å ´å\90\88ã\80\81 \fIfd\fP ã\81«ã\81¯æ\9c\89å\8a¹ã\81ªæ\97¢å\98ã\81®
+signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92æ\8c\87å®\9aã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81\9aã\80\81 ã\81\9dã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼に関連付けられているシグナル集合は \fImask\fP
を使って置き換えられる。
Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 \fBsignalfd\fP()
を追加で呼び出す必要がなくなる。
.TP
\fBSFD_CLOEXEC\fP
-新しいファイルディスクリプタに対して close\-on\-exec (\fBFD_CLOEXEC\fP) フラグをセットする。
+æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ close\-on\-exec (\fBFD_CLOEXEC\fP) ã\83\95ã\83©ã\82°ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\80\82
このフラグが役に立つ理由については、 \fBopen\fP(2) の \fBO_CLOEXEC\fP フラグの説明を参照のこと。
.PP
バージョン 2.6.26 以前の Linux では、 \fIflags\fP 引き数は未使用であり、0 を指定しなければならない。
-\fBsignalfd\fP() が返すファイルディスクリプタは以下の操作をサポートしている。
+\fBsignalfd\fP() ã\81\8cè¿\94ã\81\99ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ä»¥ä¸\8bã\81®æ\93\8dä½\9cã\82\92ã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fBread\fP(2)
\fImask\fP に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待ち (pending) であれば、それらのシグナルの情報が
-\fBread\fP(2) に渡されたバッファを使って、 \fIsignalfd_siginfo\fP 構造体に格納されて返される。 \fBread\fP(2)
-ã\81¯ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\81«æ ¼ç´\8då\8f¯è\83½ã\81ªç¯\84å\9b²ã\81§ã\81§ã\81\8dã\82\8bã\81 ã\81\91å¤\9aã\81\8fã\81®å\87¦ç\90\86å¾\85ã\81¡ã\81®ã\82·ã\82°ã\83\8aã\83«ã\81« ã\81¤ã\81\84ã\81¦ã\81®æ\83\85å ±ã\82\92è¿\94ã\81\99ã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡は最低でも \fIsizeof(struct
+\fBread\fP(2) ã\81«æ¸¡ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92使ã\81£ã\81¦ã\80\81 \fIsignalfd_siginfo\fP æ§\8bé\80 ä½\93ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\81¦è¿\94ã\81\95ã\82\8cã\82\8bã\80\82 \fBread\fP(2)
+ã\81¯ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8då\8f¯è\83½ã\81ªç¯\84å\9b²ã\81§ã\81§ã\81\8dã\82\8bã\81 ã\81\91å¤\9aã\81\8fã\81®å\87¦ç\90\86å¾\85ã\81¡ã\81®ã\82·ã\82°ã\83\8aã\83«ã\81« ã\81¤ã\81\84ã\81¦ã\81®æ\83\85å ±ã\82\92è¿\94ã\81\99ã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼は最低でも \fIsizeof(struct
signalfd_siginfo)\fP バイトの大きさがなければならない。 \fBread\fP(2) の返り値は読み出されたトータルのバイト数である。
.IP
\fBread\fP(2) が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセスに対しては処理待ちではなくなる
-(つまり、シグナルハンドラで捕捉されることもなく、 \fBsigwaitinfo\fP(2) を使って受け取ることもできなくなる)。
+(ã\81¤ã\81¾ã\82\8aã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81§æ\8d\95æ\8d\89ã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\82\82ã\81ªã\81\8fã\80\81 \fBsigwaitinfo\fP(2) ã\82\92使ã\81£ã\81¦å\8f\97ã\81\91å\8f\96ã\82\8bã\81\93ã\81¨ã\82\82ã\81§ã\81\8dã\81ªã\81\8fã\81ªã\82\8b)ã\80\82
.IP
\fImask\fP に指定されているシグナルがそのプロセスに対して一つも処理待ちでなければ、 \fBread\fP(2) は、 \fImask\fP
-で指定されたシグナルのうちいずれか一つがそのプロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプタが非停止
+ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82·ã\82°ã\83\8aã\83«ã\81®ã\81\86ã\81¡ã\81\84ã\81\9aã\82\8cã\81\8bä¸\80ã\81¤ã\81\8cã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦ç\99ºç\94\9fã\81\99ã\82\8bã\81¾ã\81§ å\81\9cæ¢ (block) ã\81\99ã\82\8bã\80\81ã\82\82ã\81\97ã\81\8fã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cé\9d\9eå\81\9cæ¢
(nonblocking) に設定されている場合はエラー \fBEAGAIN\fP で失敗する。
.TP
\fBpoll\fP(2), \fBselect\fP(2) (と同様の操作)
-\fImask\fP に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであれば、 ファイルディスクリプタは読み出し可能となる
+\fImask\fP ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82·ã\82°ã\83\8aã\83«ã\81®ã\81\86ã\81¡ä¸\80ã\81¤ä»¥ä¸\8aã\81\8cã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦å\87¦ç\90\86å¾\85ã\81¡ã\81§ã\81\82ã\82\8cã\81°ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯èªã\81¿å\87ºã\81\97å\8f¯è\83½ã\81¨ã\81ªã\82\8b
(\fBselect\fP(2) の \fIreadfds\fP 引き数や \fBpoll\fP(2) の \fBPOLLIN\fP フラグ)。
.IP
-signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\80\81ã\81\93ã\82\8c以å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ 多重 API である \fBpselect\fP(2),
+signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81ã\81\93ã\82\8c以å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ 多重 API である \fBpselect\fP(2),
\fBppoll\fP(2), \fBepoll\fP(7) もサポートしている。
.TP
\fBclose\fP(2)
-ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきである。 同じ signalfd
-オブジェクトに関連付けられたファイルディスクリプタが全て クローズされると、そのオブジェクト用の資源がカーネルにより解放される。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\81\9dã\82\8c以é\99\8dã\81¯å¿\85è¦\81ã\81ªã\81\8fã\81ªã\81£ã\81\9fé\9a\9bã\81«ã\81¯ã\80\81ã\82¯ã\83ã\83¼ã\82ºã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 å\90\8cã\81\98 signalfd
+ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81«é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\85¨ã\81¦ ã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\82\8bã\81¨ã\80\81ã\81\9dã\81®ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ç\94¨ã\81®è³\87æº\90ã\81\8cã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82\88ã\82\8a解æ\94¾ã\81\95ã\82\8cã\82\8bã\80\82
.SS "signalfd_siginfo 構造体"
-signalfd ファイルディスクリプタからの \fBread\fP(2) で返される \fIsignalfd_siginfo\fP
+signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8bã\82\89ã\81® \fBread\fP(2) ã\81§è¿\94ã\81\95ã\82\8cã\82\8b \fIsignalfd_siginfo\fP
構造体のフォーマットは以下の通りである。
.in +4n
.nf
int32_t ssi_code; /* シグナルコード */
uint32_t ssi_pid; /* 送信元の PID */
uint32_t ssi_uid; /* 送信元の実 UID */
- int32_t ssi_fd; /* ファイルディスクリプタ (SIGIO) */
- uint32_t ssi_tid; /* カーネルタイマ ID (POSIX タイマ)
+ int32_t ssi_fd; /* ファイルディスクリプター (SIGIO) */
+ uint32_t ssi_tid; /* カーネルタイマー ID (POSIX タイマー)
uint32_t ssi_band; /* Band イベント (SIGIO) */
- uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */
+ uint32_t ssi_overrun; /* POSIX ã\82¿ã\82¤ã\83\9eã\83¼ã\81®ã\82ªã\83¼ã\83\90ã\83¼ã\83©ã\83³å\9b\9eæ\95° */
uint32_t ssi_trapno; /* シグナルの原因となったトラップ番号 */
int32_t ssi_status; /* 終了ステータスかシグナル (SIGCHLD) */
int32_t ssi_int; /* sigqueue(3) から送られた整数 */
- uint64_t ssi_ptr; /* sigqueue(3) から送られたポインタ */
- uint64_t ssi_utime; /* 消費したユーザ CPU 時間 (SIGCHLD) */
+ uint64_t ssi_ptr; /* sigqueue(3) から送られたポインター */
+ uint64_t ssi_utime; /* 消費したユーザー CPU 時間 (SIGCHLD) */
uint64_t ssi_stime; /* 消費したシステム CPU 時間 (SIGCHLD) */
uint64_t ssi_addr; /* シグナルを生成したアドレス
(ハードウェアが生成したシグナルの場合) */
フィールドで返される値から判定することができる。 このフィールドは \fIsiginfo_t\fP の \fIsi_code\fP フィールドと同様である。詳細は
\fBsigaction\fP(2) を参照。
.SS "fork(2) での扱い"
-\fBfork\fP(2) が行われると、子プロセスは signalfd ファイルディスクリプタのコピーを 継承する。
-子プロセスでこのファイルディスクリプタから \fBread\fP(2) を行うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。
+\fBfork\fP(2) ã\81\8cè¡\8cã\82\8fã\82\8cã\82\8bã\81¨ã\80\81å\90ã\83\97ã\83ã\82»ã\82¹ã\81¯ signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\82³ã\83\94ã\83¼ã\82\92 ç¶\99æ\89¿ã\81\99ã\82\8bã\80\82
+å\90ã\83\97ã\83ã\82»ã\82¹ã\81§ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8bã\82\89 \fBread\fP(2) ã\82\92è¡\8cã\81\86ã\81¨ã\80\81å\90ã\83\97ã\83ã\82»ã\82¹ã\81«å¯¾ã\81\99ã\82\8bã\82ã\83¥ã\83¼ã\81«å\85¥ã\81£ã\81¦ã\81\84ã\82\8bã\82·ã\82°ã\83\8aã\83«ã\81«é\96¢ã\81\99ã\82\8b æ\83\85å ±ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82
.SS "execve(2) での扱い"
-ä»\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¨å\85¨ã\81\8få\90\8cæ§\98ã\81«ã\80\81 signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿も \fBexecve\fP(2)
-の前後でオープンされたままとなる。但し、そのファイルディスクリプタに close\-on\-exec のマーク (\fBfcntl\fP(2) 参照)
+ä»\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¨å\85¨ã\81\8få\90\8cæ§\98ã\81«ã\80\81 signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼も \fBexecve\fP(2)
+ã\81®å\89\8då¾\8cã\81§ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\81¾ã\81¾ã\81¨ã\81ªã\82\8bã\80\82ä½\86ã\81\97ã\80\81ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81« close\-on\-exec ã\81®ã\83\9eã\83¼ã\82¯ (\fBfcntl\fP(2) å\8f\82ç\85§)
が付いている場合はクローズされる。 \fBexecve\fP(2) の前に読み出し可能となっていた全てのシグナルは新しく起動されたプログラム
でも引き続き読み出し可能である (これは伝統的なシグナルの扱いと同じであり、 処理待ちのブロックされたシグナルは \fBexecve\fP(2)
の前後で処理待ちのままとなる)。
.SS スレッドでの扱い
-マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは シグナルの標準的な扱いと全く同じである。
-言い換えると、あるスレッドが signalfd ファイルディスクリプタから 読み出しを行うと、そのスレッド自身宛てのシグナルとプロセス (すなわち
+ã\83\9eã\83«ã\83\81ã\82¹ã\83¬ã\83\83ã\83\89ã\83\97ã\83ã\82°ã\83©ã\83 ã\81«ã\81\8aã\81\91ã\82\8b signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\89±ã\81\84ã\81¯ ã\82·ã\82°ã\83\8aã\83«ã\81®æ¨\99æº\96ç\9a\84ã\81ªæ\89±ã\81\84ã\81¨å\85¨ã\81\8få\90\8cã\81\98ã\81§ã\81\82ã\82\8bã\80\82
+è¨\80ã\81\84æ\8f\9bã\81\88ã\82\8bã\81¨ã\80\81ã\81\82ã\82\8bã\82¹ã\83¬ã\83\83ã\83\89ã\81\8c signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8bã\82\89 èªã\81¿å\87ºã\81\97ã\82\92è¡\8cã\81\86ã\81¨ã\80\81ã\81\9dã\81®ã\82¹ã\83¬ã\83\83ã\83\89è\87ªèº«å®\9bã\81¦ã\81®ã\82·ã\82°ã\83\8aã\83«ã\81¨ã\83\97ã\83ã\82»ã\82¹ (ã\81\99ã\81ªã\82\8fã\81¡
スレッドグループ全体) 宛てのシグナルが読み出される。 (スレッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)
.SH 返り値
-æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 \fBsignalfd\fP() ã\81¯ signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 è¿\94ã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は、 \fIfd\fP が
-\-1 ã\81®å ´å\90\88ã\81¯æ\96°è¦\8fã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81§ã\81\82ã\82\8aã\80\81 \fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ª signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81 ã\81£ã\81\9få ´å\90\88ã\81¯ \fIfd\fP è\87ªèº«ã\81§ã\81\82ã\82\8bã\80\82
-エラーの場合、\-1 を返し、 \fIerrno\fP にエラーを示す値を設定する。
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 \fBsignalfd\fP() ã\81¯ signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 è¿\94ã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は、 \fIfd\fP が
+\-1 ã\81®å ´å\90\88ã\81¯æ\96°è¦\8fã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8aã\80\81 \fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ª signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81 ã\81£ã\81\9få ´å\90\88ã\81¯ \fIfd\fP
+自身である。 エラーの場合、\-1 を返し、 \fIerrno\fP にエラーを示す値を設定する。
.SH エラー
.TP
\fBEBADF\fP
-ファイルディスクリプタ \fIfd\fP が有効なファイルディスクリプタでない。
+ファイルディスクリプター \fIfd\fP が有効なファイルディスクリプターでない。
.TP
\fBEINVAL\fP
.\" or, the
.\" .I sizemask
.\" argument is not equal to
.\" .IR sizeof(sigset_t) ;
-\fIfd\fP が有効な signalfd ファイルディスクリプタではない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ª signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fIflags\fP が無効である。もしくは、Linux 2.6.26 以前の場合には \fIflags\fP が 0 以外である。
.TP
\fBEMFILE\fP
-オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。
+ã\82ªã\83¼ã\83\97ã\83³æ¸\88ã\81¿ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\95°ã\81\8cã\83\97ã\83ã\82»ã\82¹ã\81\82ã\81\9fã\82\8aã\81®ä¸\8aé\99\90ã\81« é\81\94ã\81\97ã\81¦ã\81\84ã\81\9fã\80\82
.TP
\fBENFILE\fP
オープン済みのファイル総数がシステム全体の上限に達していた。
(カーネル内の) 無名 inode デバイスをマウントできなかった。
.TP
\fBENOMEM\fP
-æ\96°ã\81\97ã\81\84 signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªがなかった。
+æ\96°ã\81\97ã\81\84 signalfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼がなかった。
.SH バージョン
.\" signalfd() is in glibc 2.7, but reportedly does not build
\fBsignalfd\fP() はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作する glibc 側のサポートはバージョン
.SH 準拠
\fBsignalfd\fP() と \fBsignalfd4\fP() は Linux 固有である。
.SH 注意
-一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができる。
-これにより、異なるファイルディスクリプタで異なるシグナルを受け取ることが できる (この機能は \fBselect\fP(2), \fBpoll\fP(2),
-\fBepoll\fP(7) を使ってファイルディスクリプタを監視する場合に有用かもしれない。
-異なるシグナルが到着すると、異なるファイルディスクリプタが利用可能に なるからだ)。 一つのシグナルが二つ以上のファイルディスクリプタの \fImask\fP
-に含まれている場合、そのシグナルの発生はそのシグナルを \fImask\fP に含むファイルディスクリプタのうちいずれか一つから読み出すことができる。
+一つのプロセスは複数の signalfd ファイルディスクリプターを生成することができる。
+これにより、異なるファイルディスクリプターで異なるシグナルを受け取ることが できる (この機能は \fBselect\fP(2), \fBpoll\fP(2),
+\fBepoll\fP(7) を使ってファイルディスクリプターを監視する場合に有用かもしれない。
+異なるシグナルが到着すると、異なるファイルディスクリプターが利用可能に なるからだ)。 一つのシグナルが二つ以上のファイルディスクリプターの
+\fImask\fP に含まれている場合、そのシグナルの発生はそのシグナルを \fImask\fP
+に含むファイルディスクリプターのうちいずれか一つから読み出すことができる。
.SS "C ライブラリとカーネル ABI の違い"
実際の Linux のシステムコールでは \fIsize_t sizemask\fP という引き数が追加で必要である。この引き数で \fImask\fP
のサイズを指定する。 glibc の \fBsignalfd\fP() ラッパー関数にはこの引き数は含まれず、
カーネル 2.6.25 より前では、 \fBsigqueue\fP(3) により送信されたシグナルと一緒に渡されるデータでは、フィールド
\fIssi_ptr\fP と \fIssi_int\fP は設定されない。
.SH 例
-下記のプログラムは、シグナル \fBSIGINT\fP と \fBSIGQUIT\fP を signalfd ファイルディスクリプタ経由で受信する。 シグナル
+下記のプログラムは、シグナル \fBSIGINT\fP と \fBSIGQUIT\fP を signalfd ファイルディスクリプター経由で受信する。 シグナル
\fBSIGQUIT\fP 受信後にプログラムは終了する。 以下に示すシェルセッションにこのプログラムの使い方を示す。
.in +4n
.nf
.SH エラー
.TP
\fBEFAULT\fP
-\fIset\fP が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。
+\fIset\fP ã\81\8cæ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81®æ\9c\89å\8a¹ã\81ªé\83¨å\88\86ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.SH 準拠
POSIX.1\-2001.
.SH 注意
.\" See arch/x86/kernel/signal.c::__setup_frame() [in 3.17 source code]
Linux カーネルがプロセスに対してブロックされていないシグナルが処理待ちと判定した場合、 そのプロセスの次回のユーザーモードへの遷移
(すなわち、システムコールからのリターン時やそのプロセスが CPU に再スケジュールされる際)、 カーネルはプロセスコンテキストの種々の値
-(プロセッサーのステータスワード、 レジスタ、 シグナルマスク、 シグナルスタック設定) をユーザー空間のスタックに保存する。
+(ã\83\97ã\83ã\82»ã\83\83ã\82µã\83¼ã\81®ã\82¹ã\83\86ã\83¼ã\82¿ã\82¹ã\83¯ã\83¼ã\83\89ã\80\81 ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\83\9eã\82¹ã\82¯ã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\82¹ã\82¿ã\83\83ã\82¯è¨å®\9a) ã\82\92ã\83¦ã\83¼ã\82¶ã\83¼ç©ºé\96\93ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\81«ä¿\9då\98ã\81\99ã\82\8bã\80\82
また、 カーネルは、 ユーザーモードへの遷移時にシグナルハンドラーが呼び出され、 ハンドラーからのリターン時に、 制御が "signal
trampoline" と呼ばれるユーザー空間コードブロックに渡されるように、準備を行う。 signal trampoline のコードが
\fBsigreturn\fP() を呼び出す。
-\fBsigreturn\fP() は、シグナルハンドラを起動するために行ったことの全て \(em プロセスのシグナルマスクの変更、
+\fBsigreturn\fP() ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92èµ·å\8b\95ã\81\99ã\82\8bã\81\9fã\82\81ã\81«è¡\8cã\81£ã\81\9fã\81\93ã\81¨ã\81®å\85¨ã\81¦ \(em ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83\9eã\82¹ã\82¯ã\81®å¤\89æ\9b´ã\80\81
シグナルスタックの切り替え (\fBsigaltstack\fP(2) 参照) \(em の取り消しを行う。 プロセスのシグナルマスクの復元、
-スタックの切り替え、 プロセスのコンテキスト (プロセッサフラグ、 レジスタ (スタックポインター、 命令ポインターを含む)) の復元を行い、
+スタックの切り替え、 プロセスのコンテキスト (プロセッサフラグ、 レジスター (スタックポインター、 命令ポインターを含む)) の復元を行い、
プロセスがシグナルにより割り込まれた場所から実行を再開できるようにする。
.SH 返り値
\fBsigreturn\fP() が返ることはない。
.ad b
.SH 説明
\fBsigsuspend\fP() は、呼び出し元プロセスのシグナルマスクを \fImask\fP で指定されたマスクに一時的に置き換え、
-シグナルハンドラの起動もしくはプロセスの終了がアクションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®èµ·å\8b\95ã\82\82ã\81\97ã\81\8fã\81¯ã\83\97ã\83ã\82»ã\82¹ã\81®çµ\82äº\86ã\81\8cã\82¢ã\82¯ã\82·ã\83§ã\83³ã\81¨ã\81\97ã\81¦ è¨å®\9aã\81\95ã\82\8cã\81\9fã\82·ã\82°ã\83\8aã\83«ã\81\8cé\85\8dé\80\81ã\81\95ã\82\8cã\82\8bã\81¾ã\81§ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\82\92å\81\9cæ¢ã\81\99ã\82\8bã\80\82
シグナルがプロセスを終了させるものの場合、 \fBsigsuspend\fP() は返らない。シグナルが捕捉された場合、
-シグナルハンドラの処理が終わった後に \fBsigsuspend\fP() は返り、シグナルマスクは \fBsigsuspend\fP()
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®å\87¦ç\90\86ã\81\8cçµ\82ã\82\8fã\81£ã\81\9få¾\8cã\81« \fBsigsuspend\fP() ã\81¯è¿\94ã\82\8aã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\9eã\82¹ã\82¯ã\81¯ \fBsigsuspend\fP()
が呼び出される前の状態に復元される。
\fBSIGKILL\fP と \fBSIGSTOP\fP を禁止 (block) することはできない; これらのシグナルを \fImask\fP
.SH エラー
.TP
\fBEFAULT\fP
-\fImask\fP が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。
+\fImask\fP ã\81\8cæ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81®æ\9c\89å\8a¹ã\81ªé\83¨å\88\86ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEINTR\fP
システムコールはシグナルにより割り込まれた。
POSIX.1\-2001.
.SH 注意
.PP
-\fBsigsuspend\fP() ã\81¯ã\80\81é\80\9a常ã\80\81ã\82¯ã\83ªã\83\86ã\82£ã\82«ã\83«ã\83»ã\82³ã\83¼ã\83\89ã\83»セクション (critical code section) の
+\fBsigsuspend\fP() ã\81¯ã\80\81é\80\9a常ã\80\81ã\82¯ã\83ªã\83\86ã\82£ã\82«ã\83«ã\82³ã\83¼ã\83\89セクション (critical code section) の
実行中にシグナルが配送されるのを防止するために、 \fBsigprocmask\fP(2) と組み合わせて使用される。 まず最初に、呼び出し元は
-\fBsigprocmask\fP(2) ã\82\92使ã\81£ã\81¦ã\82·ã\82°ã\83\8aã\83«ã\82\92ç¦\81æ¢ã\81\99ã\82\8bã\80\82 ã\82¯ã\83ªã\83\86ã\82£ã\82«ã\83«ã\83»ã\82³ã\83¼ã\83\89ã\81\8cå®\8cäº\86ã\81\99ã\82\8bã\81¨ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯ \fBsigprocmask\fP(2)
+\fBsigprocmask\fP(2) を使ってシグナルを禁止する。 クリティカルコードが完了すると、呼び出し元は \fBsigprocmask\fP(2)
が (\fIoldset\fP 引き数で) 返すシグナルマスクを指定して \fBsigsuspend\fP()
-ã\82\92å\91¼ã\81³å\87ºã\81\99ã\81\93ã\81¨ã\81§ã\80\81ã\82¯ã\83ªã\83\86ã\82£ã\82«ã\83«ã\83»ã\82³ã\83¼ã\83\89å®\9fè¡\8cä¸ã\81«ç\99ºç\94\9fã\81\97ã\81\9f ã\82·ã\82°ã\83\8aã\83«ã\82\92å¾\85ã\81¤ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
+を呼び出すことで、クリティカルコード実行中に発生した シグナルを待つことができる。
.PP
シグナル集合の操作に関する詳細は \fBsigsetops\fP(3) を参照のこと。
.SH 関連項目
\fBsigwaitinfo\fP() はそのシグナルを待機中のシグナルの集合から削除し、関数の結果としてシグナル番号を返す。 \fIinfo\fP 引き数が
NULL でない場合、配送されたシグナルの情報が入った \fIsiginfo_t\fP 型 (\fBsigaction\fP(2) を参照) の構造体を
-\fIinfo\fP が指すバッファに入れて返す。
+\fIinfo\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82
.PP
呼び出し元に対して \fIset\fP の複数のシグナルが処理待ちの場合、 \fBsigwaitinfo\fP()
で取得するシグナルは通常の順序決定ルールに基づいて決定される。 詳細は \fBsignal\fP(7) を参照のこと。
\fIset\fP のうちのどのシグナルも \fBsigtimedwait\fP() に指定された \fItimeout\fP の期間内に処理待ちにならなかった。
.TP
\fBEINTR\fP
-ã\82·ã\82°ã\83\8aã\83«å¾\85ã\81¡ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81«ã\82\88ã\81£ã\81¦ä¸æ\96 (interrupt) ã\81\95ã\82\8cã\81\9f (ã\81\93ã\81®ã\83\8fã\83³ã\83\89ã\83©は \fIset\fP にあるシグナル以外のものである)。
+ã\82·ã\82°ã\83\8aã\83«å¾\85ã\81¡ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\81£ã\81¦ä¸æ\96 (interrupt) ã\81\95ã\82\8cã\81\9f (ã\81\93ã\81®ã\83\8fã\83³ã\83\89ã\83©ã\83¼は \fIset\fP にあるシグナル以外のものである)。
\fBsignal\fP(7) 参照。
.TP
\fBEINVAL\fP
.SH 注意
通常の使用法では、呼び出し側プロセスはこれらの関数より先に \fBsigprocmask\fP(2) の呼び出すことにより \fIset\fP
に含まれるシグナルをブロックし (そのためにこれらのシグナルがこの後に続く \fBsigwaitinfo\fP() や \fBsigtimedwait\fP()
-ã\81®å\91¼ã\81³å\87ºã\81\97ã\81®é\96\93ã\81«å\87¦ç\90\86å¾\85ã\81¡ã\81«ã\81ªã\81£ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®å\8b\95ä½\9cã\81¯è¡\8cã\82\8fã\82\8cã\81\9a)ã\80\81 ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\82°ã\83\8aã\83«ã\81«å¯¾ã\81\99ã\82\8bã\83\8fã\83³ã\83\89ã\83©ã\81¯è¨å®\9aã\81\97ã\81ªã\81\84ã\80\82 ã\83\9eã\83«ã\83\81ã\82¹ã\83¬ã\83\83ã\83\89ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\81¯ã\80\81
-\fBsigwaitinfo\fP() や \fBsigtimedwait\fP()
+ã\81®å\91¼ã\81³å\87ºã\81\97ã\81®é\96\93ã\81«å\87¦ç\90\86å¾\85ã\81¡ã\81«ã\81ªã\81£ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®å\8b\95ä½\9cã\81¯è¡\8cã\82\8fã\82\8cã\81\9a)ã\80\81 ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\82°ã\83\8aã\83«ã\81«å¯¾ã\81\99ã\82\8bã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯è¨å®\9aã\81\97ã\81ªã\81\84ã\80\82
+マルチスレッドプログラムでは、 \fBsigwaitinfo\fP() や \fBsigtimedwait\fP()
を呼び出したスレッド以外のスレッドで、そのシグナルがデフォルトの動作に基いて処理されないように、全てのスレッドで該当シグナルをブロックすべきである。
指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての処理待ちのシグナル集合と、プロセス全体宛ての
.SH 説明
\fBsocket\fP() は通信のための端点(endpoint)を作成し、ディスクリプター(descriptor)を返す。
.PP
-\fIdomain\fP å¼\95æ\95°ã\81¯é\80\9aä¿¡ã\82\92è¡\8cã\81ªã\81\86ã\83\89ã\83¡ã\82¤ã\83³ã\82\92æ\8c\87å®\9aã\81\99ã\82\8b; ã\81\93ã\82\8cã\81¯ã\81©ã\81® ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83»ã\83\95ã\82¡ã\83\9fã\83ª(protocol
-family)を通信に使用するかを指定する。 これらのファミリは \fI<sys/socket.h>\fP に定義されている。
+\fIdomain\fP å¼\95æ\95°ã\81¯é\80\9aä¿¡ã\82\92è¡\8cã\81ªã\81\86ã\83\89ã\83¡ã\82¤ã\83³ã\82\92æ\8c\87å®\9aã\81\99ã\82\8b; ã\81\93ã\82\8cã\81¯ã\81©ã\81® ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83\95ã\82¡ã\83\9fã\83ªã\83¼(protocol
+family)ã\82\92é\80\9aä¿¡ã\81«ä½¿ç\94¨ã\81\99ã\82\8bã\81\8bã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\83\95ã\82¡ã\83\9fã\83ªã\83¼ã\81¯ \fI<sys/socket.h>\fP ã\81«å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
現在、理解できるフォーマットは以下の通り。
.TS
tab(:);
T}
T{
\fBAF_INET\fP
-T}:IPv4 ã\82¤ã\83³ã\82¿ã\83¼ã\83\8dã\83\83ã\83\88ã\83»ã\83\97ã\83ã\83\88ã\82³ã\83«:T{
+T}:IPv4 インターネットプロトコル:T{
\fBip\fP(7)
T}
T{
\fBAF_INET6\fP
-T}:IPv6 ã\82¤ã\83³ã\82¿ã\83¼ã\83\8dã\83\83ã\83\88ã\83»ã\83\97ã\83ã\83\88ã\82³ã\83«:T{
+T}:IPv6 インターネットプロトコル:T{
\fBipv6\fP(7)
T}
T{
T{
\fBAF_NETLINK\fP
T}:T{
-ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\83¦ã\83¼ã\82¶ã\83»デバイス
+ã\82«ã\83¼ã\83\8dã\83«ã\83¦ã\83¼ã\82¶ã\83¼ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹デバイス
T}:T{
\fBnetlink\fP(7)
T}
ソケットは \fItype\fP で指定される型を持ち、それは通信方式(semantics)を指定する。 定義されている型は現在以下の通り。
.TP 16
\fBSOCK_STREAM\fP
-é \86åº\8fæ\80§ã\81¨ä¿¡é ¼æ\80§ã\81\8cã\81\82ã\82\8aã\80\81å\8f\8cæ\96¹å\90\91ã\81®ã\80\81æ\8e¥ç¶\9aã\81\95ã\82\8cã\81\9f ã\83\90ã\82¤ã\83\88ã\83»ã\82¹ã\83\88ã\83ªã\83¼ã\83 (byte stream)ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\80\82
+順序性と信頼性があり、双方向の、接続された バイトストリーム(byte stream)を提供する。
帯域外(out\-of\-band)データ転送メカニズムもサポートされる。
.TP
\fBSOCK_DGRAM\fP
.TP
\fBSOCK_SEQPACKET\fP
固定最大長のデータグラム転送パスに基づいた順序性、信頼性のある 双方向の接続に基づいた通信を提供する。受け取り側ではそれぞれの入力
-ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81§ã\83\91ã\82±ã\83\83ã\83\88å\85¨ä½\93ã\82\92èªã\81¿å\8f\96ã\82\8bã\81\93ã\81¨ã\81\8cè¦\81æ±\82ã\81\95ã\82\8cã\82\8bã\80\82
+システムコールでパケット全体を読み取ることが要求される。
.TP
\fBSOCK_RAW\fP
-ç\94\9fã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\83»ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\80\82
+生のネットワークプロトコルへのアクセスを提供する。
.TP
\fBSOCK_RDM\fP
信頼性はあるが、順序は保証しないデータグラム層を提供する。
\fBSOCK_PACKET\fP
廃止されており新しいプログラムで使用してはいけない。 \fBpacket\fP(7) を参照すること
.PP
-ã\81\82ã\82\8b種ã\81®ã\82½ã\82±ã\83\83ã\83\88å\9e\8bã\81\8cå\85¨ã\81¦ã\81®ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83»ã\83\95ã\82¡ã\83\9fã\83ªで実装されているわけではない。
+ã\81\82ã\82\8b種ã\81®ã\82½ã\82±ã\83\83ã\83\88å\9e\8bã\81\8cå\85¨ã\81¦ã\81®ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83\95ã\82¡ã\83\9fã\83ªã\83¼で実装されているわけではない。
.PP
Linux 2.6.27 以降では、 \fItype\fP 引数は二つ目の目的にも使用される。 ソケットの型を指定するのに加えて、
以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 \fBsocket\fP() の振舞いを変更することができる。
を追加で呼び出す必要がなくなる。
.TP
\fBSOCK_CLOEXEC\fP
-新しいファイルディスクリプタに対して close\-on\-exec (\fBFD_CLOEXEC\fP) フラグをセットする。
+æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ close\-on\-exec (\fBFD_CLOEXEC\fP) ã\83\95ã\83©ã\82°ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\80\82
このフラグが役に立つ理由については、 \fBopen\fP(2) の \fBO_CLOEXEC\fP フラグの説明を参照のこと。
.PP
\fIprotocol\fP はソケットによって使用される固有のプロトコルを指定する。通常それぞれの
-ã\82½ã\82±ã\83\83ã\83\88ã\81¯ã\80\81ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fã\83\97ã\83ã\83\88ã\82³ã\83«ã\83»ã\83\95ã\82¡ã\83\9fã\83ªの種類ごとに一つのプロトコルのみを サポートする。 その場合は \fIprotocol\fP に 0 を指定できる。
+ã\82½ã\82±ã\83\83ã\83\88ã\81¯ã\80\81ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fã\83\97ã\83ã\83\88ã\82³ã\83«ã\83\95ã\82¡ã\83\9fã\83ªã\83¼の種類ごとに一つのプロトコルのみを サポートする。 その場合は \fIprotocol\fP に 0 を指定できる。
しかし、多くのプロトコルが存在してもかまわない。 この場合にはこの方法により固有のプロトコルを指定する必要がある。
使用されるプロトコル番号は通信の行なわれる\*(lq通信ドメイン\*(rqに 固有である; \fBprotocols\fP(5) を参照すること。
プロトコル名をどうやってプロトコル番号に対応させるかについては \fBgetprotoent\fP(3) を参照すること。
.PP
-\fBSOCK_STREAM\fP å\9e\8bã\81®ã\82½ã\82±ã\83\83ã\83\88ã\81¯å\85¨äº\8cé\87\8dã\83\90ã\82¤ã\83\88ã\83»ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81¯ã\83¬ã\82³ã\83¼ã\83\89å¢\83ç\95\8cã\82\92ä¿\9då\98ã\81\97ã\81ªã\81\84ã\80\82
+\fBSOCK_STREAM\fP 型のソケットは全二重バイトストリームである。 これらはレコード境界を保存しない。
ストリームは、ソケットがデータを送ったり受けたりする前に \fI接続された\fP 状態になってなければならない。他のソケットへの接続は
\fBconnect\fP(2) コールによって行なわれる。一度接続したらデータは \fBread\fP(2) と \fBwrite\fP(2) コールや
\fBsend\fP(2) と \fBrecv\fP(2) コールの変種を使用して転送できる。 セッションが完了したら \fBclose\fP(2)
が有効になっている場合、プロトコル独自の方法で接続の相手側がまだ 有効であるかをチェックする。
もしプロセスが、壊れたストリームでデータを送受信しようとした場合には \fBSIGPIPE\fP シグナルが送られる;
これは通常のそのシグナルを扱っていないプロセスを 終了させる。 \fBSOCK_SEQPACKET\fP ソケットは \fBSOCK_STREAM\fP
-ã\82½ã\82±ã\83\83ã\83\88ã\81¨å\90\8cã\81\98ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82 å\94¯ä¸\80ã\81®é\81\95ã\81\84ã\81¯ \fBread\fP(2) ã\82³ã\83¼ã\83«ã\81\8cè¦\81æ±\82ã\81\95ã\82\8cã\81\9fé\87\8fã\81®ã\83\87ã\83¼ã\82¿ã\81®ã\81¿ã\82\92è¿\94ã\81\97ã\80\81å\88°ç\9d\80ã\81\97ã\81\9fã\83\91ã\82±ã\83\83ã\83\88ã\81®æ®\8bã\82\8aã\81®é\83¨å\88\86ã\82\92
+ソケットと同じシステムコールを使用する。 唯一の違いは \fBread\fP(2) コールが要求された量のデータのみを返し、到着したパケットの残りの部分を
捨ててしまうことである。同様に入ってくるデータグラムの全てのメッセージ境界は 保存される。
.PP
\fBSOCK_DGRAM\fP と \fBSOCK_RAW\fP ソケットは \fBsendto\fP(2)
\fBpacket\fP(7) を用いること。
.PP
\fBfcntl\fP(2) の \fBF_SETOWN\fP 操作を使って、シグナル \fBSIGURG\fP や \fBSIGPIPE\fP
-ã\82\92å\8f\97ã\81\91ã\81¨ã\82\8bã\83\97ã\83ã\82»ã\82¹ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\82\92æ\8c\87å®\9aã\81§ã\81\8dã\82\8bã\80\82 \fBSIGURG\fP ã\82·ã\82°ã\83\8aã\83«ã\81¯å¸¯å\9f\9få¤\96ã\83\87ã\83¼ã\82¿ã\81\8cå\88°ç\9d\80ã\81\97ã\81\9fæ\99\82ã\81«ã\80\81 \fBSIGPIPE\fP ã\82·ã\82°ã\83\8aã\83«ã\81¯
+を受けとるプロセスグループを指定できる。 \fBSIGURG\fP シグナルは帯域外データが到着した時に、 \fBSIGPIPE\fP シグナルは
\fBSOCK_STREAM\fP 接続が予期せず切断された時に送られる。 また、 \fBF_SETOWN\fP 操作は、I/O や I/O イベントの非同期
-(asynchronous) é\80\9aç\9f¥ã\82\92 \fBSIGIO\fP ã\82\92çµ\8cç\94±ã\81§å\8f\97ã\81\91å\8f\96ã\82\8bã\83\97ã\83ã\82»ã\82¹ã\82\84ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\82\92è¨å®\9aã\81\99ã\82\8bã\81®ã\81«ã\82\82使ç\94¨ã\81§ã\81\8dã\82\8bã\80\82 \fBF_SETOWN\fP
+(asynchronous) 通知を \fBSIGIO\fP を経由で受け取るプロセスやプロセスグループを設定するのにも使用できる。 \fBF_SETOWN\fP
を使用することは \fBFIOSETOWN\fP または \fBSIOCSPGRP\fP の引数で \fBioctl\fP(2) を使用することと等価である。
.PP
-ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\81\8cã\83\97ã\83ã\83\88ã\82³ã\83«ã\83»ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81«ã\82¨ã\83©ã\83¼ç\8a¶æ\85\8bã\82\92ä¼\9dã\81\88ã\81\9få ´å\90\88 (ä¾\8bã\81\88ã\81°ã\80\81IP ã\81® ICMP ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92使ç\94¨ã\81\97ã\81¦)ã\81«ã\81¯ã\80\81ã\82½ã\82±ã\83\83ã\83\88ã\81®
-ã\83\9aã\83³ã\83\87ã\82£ã\83³ã\82°ã\83»ã\82¨ã\83©ã\83¼ã\83»ã\83\95ã\83©ã\82°ã\81\8cè¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82次ã\81«ã\81\93ã\81®ã\82½ã\82±ã\83\83ã\83\88ã\82\92æ\93\8dä½\9cã\81\97ã\81\9f æ\99\82ã\81«ã\83\9aã\83³ã\83\87ã\82£ã\83³ã\82°ã\81\95ã\82\8cã\81¦ã\81\84ã\81\9fã\82¨ã\83©ã\83¼ã\83»コードが返される。プロトコルによっては
-ã\82¨ã\83©ã\83¼ã\81«ã\81¤ã\81\84ã\81¦ã\81®ã\82\88ã\82\8a詳ã\81\97ã\81\84æ\83\85å ±ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bã\81\9fã\82\81ã\81«ã\82½ã\82±ã\83\83ã\83\88ã\81\94ã\81¨ã\81®ã\82¨ã\83©ã\83¼ã\83»ã\82ã\83¥ã\83¼ã\82\92 å\8f\97ã\81\91å\8f\96ã\82\8bã\81\93ã\81¨ã\81\8cå\8f¯è\83½ã\81§ã\81\82ã\82\8bã\80\82 \fBip\fP(7) ã\81®
+ネットワークがプロトコルモジュールにエラー状態を伝えた場合 (例えば、IP の ICMP メッセージを使用して)には、ソケットの
+ã\83\9aã\83³ã\83\87ã\82£ã\83³ã\82°ã\82¨ã\83©ã\83¼ã\83\95ã\83©ã\82°ã\81\8cè¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82次ã\81«ã\81\93ã\81®ã\82½ã\82±ã\83\83ã\83\88ã\82\92æ\93\8dä½\9cã\81\97ã\81\9f æ\99\82ã\81«ã\83\9aã\83³ã\83\87ã\82£ã\83³ã\82°ã\81\95ã\82\8cã\81¦ã\81\84ã\81\9fã\82¨ã\83©ã\83¼コードが返される。プロトコルによっては
+エラーについてのより詳しい情報を受け取るためにソケットごとのエラーキューを 受け取ることが可能である。 \fBip\fP(7) の
\fBIP_RECVERR\fP を参照すること。
.PP
-ã\82½ã\82±ã\83\83ã\83\88ã\81®æ\93\8dä½\9cã\81¯ã\82½ã\82±ã\83\83ã\83\88ã\83»ã\83¬ã\83\99ã\83« \fIoptions\fP ã\81«ã\82\88ã\81£ã\81¦å\88¶å¾¡ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¯ \fI<sys/socket.h>\fP
+ソケットの操作はソケットレベル \fIoptions\fP によって制御される。 これらのオプションは \fI<sys/socket.h>\fP
に定義されている。 \fBsetsockopt\fP(2) と \fBgetsockopt\fP(2) 関数はそれぞれオプションの設定と取得を行なう。
.SH 返り値
-æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81æ\96°ã\81\97ã\81\84ã\82½ã\82±ã\83\83ã\83\88ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81\9få ´å\90\88ã\81¯ \-1 ã\82\92è¿\94ã\81\97ã\80\81 \fIerrno\fP ã\82\92é\81©å\88\87ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82
+成功した場合、新しいソケットのファイルディスクリプターを返す。 エラーが発生した場合は \-1 を返し、 \fIerrno\fP を適切に設定する。
.SH エラー
.TP
\fBEACCES\fP
指定されたアドレスファミリーがサポートされていない。
.TP
\fBEINVAL\fP
-ç\9f¥ã\82\89ã\81ªã\81\84ã\83\97ã\83ã\83\88ã\82³ã\83«ã\80\81ã\81¾ã\81\9fã\81¯å\88©ç\94¨ã\81§ã\81\8dã\81ªã\81\84ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83»ã\83\95ã\82¡ã\83\9fã\83ªである。
+ç\9f¥ã\82\89ã\81ªã\81\84ã\83\97ã\83ã\83\88ã\82³ã\83«ã\80\81ã\81¾ã\81\9fã\81¯å\88©ç\94¨ã\81§ã\81\8dã\81ªã\81\84ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83\95ã\82¡ã\83\9fã\83ªã\83¼である。
.TP
\fBEINVAL\fP
.\" Since Linux 2.6.27
オープンされたファイルの総数がシステム全体の上限に達していた。
.TP
\fBENOBUFS\fP または \fBENOMEM\fP
-十分なメモリがない。十分な資源が解放されるまではソケットを 作成することはできない。
+å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82å\8d\81å\88\86ã\81ªè³\87æº\90ã\81\8c解æ\94¾ã\81\95ã\82\8cã\82\8bã\81¾ã\81§ã\81¯ã\82½ã\82±ã\83\83ã\83\88ã\82\92 ä½\9cæ\88\90ã\81\99ã\82\8bã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81ªã\81\84ã\80\82
.TP
\fBEPROTONOSUPPORT\fP
-ã\81\93ã\81®ã\83\89ã\83¡ã\82¤ã\83³ã\81§ã\81¯æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\97ã\83ã\83\88ã\82³ã\83«ã\81¾ã\81\9fã\81¯ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83»ã\82¿ã\82¤ã\83\97ã\81\8c ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
+このドメインでは指定されたプロトコルまたはプロトコルタイプが サポートされていない。
.PP
-ä¸\8bä½\8dã\81®ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83»ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81\8bã\82\89ä»\96ã\81®ã\82¨ã\83©ã\83¼ã\81\8cç\94\9fæ\88\90ã\81\95ã\82\8cã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
+下位のプロトコルモジュールから他のエラーが生成されるかもしれない。
.SH 準拠
4.4BSD, POSIX.1\-2001.
BSD 以外のシステムへの、 または、BSD 以外のシステムからの移植ができる。
.SH 注意
POSIX.1\-2001 では \fI<sys/types.h>\fP のインクルードは必須とされておらず、 Linux
-ã\81§ã\81¯ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83\95ã\82¡ã\82¤ã\83«ã\81¯å¿\85è¦\81ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81æ´å\8f²ç\9a\84ã\81«ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å®\9fè£\85 (BSD ç³») ã\81§ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ファイルが
+ã\81§ã\81¯ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81¯å¿\85è¦\81ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81æ´å\8f²ç\9a\84ã\81«ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å®\9fè£\85 (BSD ç³») ã\81§ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ファイルが
必要であり、移植性が必要なアプリケーションではこのファイルを インクルードするのが賢明であろう。
-4.x BSD ã\81«ã\81\8aã\81\84ã\81¦å®\9aæ\95°ã\82\92使ç\94¨ã\81\99ã\82\8bå ´å\90\88ã\80\81ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83»ã\83\95ã\82¡ã\83\9fã\83ªã\83¼ã\81«ã\81¯
-\fBPF_UNIX\fP, \fBPF_INET\fP ç\89ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82ä¸\80æ\96¹ã\81§ã\82¢ã\83\89ã\83¬ã\82¹ã\83»ã\83\95ã\82¡ã\83\9fã\83ªã\83¼ã\81«ã\81¯
+4.x BSD において定数を使用する場合、プロトコルファミリーには
+\fBPF_UNIX\fP, \fBPF_INET\fP 等を使用している。一方でアドレスファミリーには
\fBAF_UNIX\fP, \fBAF_INET\fP 等が使用されている。
-ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89 BSD ã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\81§ã\81¯ ã\80\8cä¸\80è\88¬ã\81«ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83»ã\83\95ã\82¡ã\83\9fã\83ªã\83¼ã\81¯
-ã\82¢ã\83\89ã\83¬ã\82¹ã\83»ã\83\95ã\82¡ã\83\9fã\83ªã\83¼ã\81¨å\90\8cã\81\98ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82ã\80\8d ã\81¨ä¿\9d証ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
+しかしながら BSD のマニュアルでは 「一般にプロトコルファミリーは
+アドレスファミリーと同じものである。」 と保証している。
それ以外の規格では全ての場所で AF_* が使用されている。
.SH 例
\fBsocket\fP() の利用例が \fBgetaddrinfo\fP(3) に記載されている。
.\"
.TH SOCKETCALL 2 2012\-10\-16 Linux "Linux Programmer's Manual"
.SH 名前
-socketcall \- ã\82½ã\82±ã\83\83ã\83\88ã\83»ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«
+socketcall \- ソケットシステムコール
.SH 書式
\fBint socketcall(int \fP\fIcall\fP\fB, unsigned long *\fP\fIargs\fP\fB);\fP
.SH 説明
-\fBsocketcall\fP() ã\81¯ã\82½ã\82±ã\83\83ã\83\88ã\83»ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®ã\81\9fã\82\81ã\81®å\85±é\80\9aã\81®ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\82¨ã\83³ã\83\88ã\83ªã\83» ポイント(kernel entry point)である。
+\fBsocketcall\fP() ã\81¯ã\82½ã\82±ã\83\83ã\83\88ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®ã\81\9fã\82\81ã\81®å\85±é\80\9aã\81®ã\82«ã\83¼ã\83\8dã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ ポイント(kernel entry point)である。
\fIcall\fP はどのソケット関数を呼び出すかを指定する。 \fIargs\fP は適切なコールに渡すための実際の引き数を含んでいるブロックを指す。
.PP
-ã\83¦ã\83¼ã\82¶ã\83¼ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯é\80\9a常ã\81®å\90\8då\89\8dã\82\92使ç\94¨ã\81\97ã\81¦é\81©å\88\87ã\81ªé\96¢æ\95°ã\82\92å\91¼ã\81³å\87ºã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 æ¨\99æº\96ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81®å®\9fè£\85è\80\85ã\82\84ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\83\8fã\83\83ã\82«ã\83¼ã\81®ã\81¿ã\81\8c
-\fBsocketcall\fP() について知る必要がある。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯é\80\9a常ã\81®å\90\8då\89\8dã\82\92使ç\94¨ã\81\97ã\81¦é\81©å\88\87ã\81ªé\96¢æ\95°ã\82\92å\91¼ã\81³å\87ºã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 æ¨\99æº\96ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81®å®\9fè£\85è\80\85ã\82\84ã\82«ã\83¼ã\83\8dã\83«ã\83\8fã\83\83ã\82«ã\83¼ã\81®ã\81¿ã\81\8c \fBsocketcall\fP()
+について知る必要がある。
.SH 準拠
このコールは Linux 特有であり、移植を意図したプログラムで 使用してはいけない。
.SH 注意
-いくつかのアーキテクチャ\\(emfor 例えば x86\-64 や ARM\\(emでは、システムコール \fBsocketcall\fP()
+いくつかのアーキテクチャー\\(emfor 例えば x86\-64 や ARM\\(emでは、システムコール \fBsocketcall\fP()
が存在しない。実際には、その代わりに \fBsocket\fP(2), \fBaccept\fP(2), \fBbind\fP(2)
などが独立したシステムコールとして実装されている。
.SH 関連項目
で名前のないソケットの接続されたペアを作成する。 \fIprotocol\fP が指定されると、このプロトコルを用いる。 これらの引き数の詳細は
\fBsocket\fP(2) を参照のこと。
-新しいソケットの参照に使用するディスクリプタ (descriptor) が \fIsv\fP[0] と \fIsv\fP[1] に返される。
+新しいソケットの参照に使用するディスクリプター (descriptor) が \fIsv\fP[0] と \fIsv\fP[1] に返される。
二つのソケットは全く同じである。
.SH 返り値
成功した場合にはゼロが返される。エラー時には \-1 が返され、 \fIerrno\fP が適切に設定される。
.SH エラー
.TP
\fBEAFNOSUPPORT\fP
-ã\81\93ã\81®ã\83\9eã\82·ã\83³ã\81§ã\81¯æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¢ã\83\89ã\83¬ã\82¹ã\83»ã\83\95ã\82¡ã\83\9fã\83ªがサポートされていない。
+ã\81\93ã\81®ã\83\9eã\82·ã\83³ã\81§ã\81¯æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¢ã\83\89ã\83¬ã\82¹ã\83\95ã\82¡ã\83\9fã\83ªã\83¼がサポートされていない。
.TP
\fBEFAULT\fP
アドレス \fIsv\fP がこのプロセスで使えるアドレス空間を指定していない。
.TP
\fBEMFILE\fP
-このプロセスが使用しているディスクリプタの数が多すぎる。
+ã\81\93ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8c使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\95°ã\81\8cå¤\9aã\81\99ã\81\8eã\82\8bã\80\82
.TP
\fBENFILE\fP
オープンされたファイルの総数がシステム全体の上限に達していた。
に対応している。フラグの説明は \fBsocket\fP(2) を参照のこと。
POSIX.1\-2001 では \fI<sys/types.h>\fP のインクルードは必須とされておらず、 Linux
-ã\81§ã\81¯ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83\95ã\82¡ã\82¤ã\83«ã\81¯å¿\85è¦\81ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81æ´å\8f²ç\9a\84ã\81«ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å®\9fè£\85 (BSD ç³») ã\81§ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ファイルが
+ã\81§ã\81¯ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81¯å¿\85è¦\81ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81æ´å\8f²ç\9a\84ã\81«ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å®\9fè£\85 (BSD ç³») ã\81§ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ファイルが
必要であり、移植性が必要なアプリケーションではこのファイルを インクルードするのが賢明であろう。
.SH 関連項目
\fBpipe\fP(2), \fBread\fP(2), \fBsocket\fP(2), \fBwrite\fP(2), \fBsocket\fP(7), \fBunix\fP(7)
\fB loff_t *\fP\fIoff_out\fP\fB, size_t \fP\fIlen\fP\fB, unsigned int \fP\fIflags\fP\fB);\fP
.fi
.SH 説明
-\fBsplice\fP() ã\81¯ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81¨ã\83¦ã\83¼ã\82¶ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81¨ã\81®é\96\93ã\81®ã\82³ã\83\94ã\83¼ã\82\92ä¼´ã\82\8fã\81\9aã\81«ã\80\81 2 ã\81¤ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿é\96\93ã\81§ã\83\87ã\83¼ã\82¿ã\81®ç§»å\8b\95ã\82\92è¡\8cã\81\86ã\80\82
-ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ \fIfd_in\fP ã\81\8bã\82\89ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ \fIfd_out\fP ã\81¸æ\9c\80大 \fIlen\fP ã\83\90ã\82¤ã\83\88ã\82\92転é\80\81ã\81\99ã\82\8bã\80\82 2
-ã\81¤ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿のうち一つは パイプを参照していなければならない。
+\fBsplice\fP() ã\81¯ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81¨ã\83¦ã\83¼ã\82¶ã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81¨ã\81®é\96\93ã\81®ã\82³ã\83\94ã\83¼ã\82\92ä¼´ã\82\8fã\81\9aã\81«ã\80\81 2
+ã\81¤ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼é\96\93ã\81§ã\83\87ã\83¼ã\82¿ã\81®ç§»å\8b\95ã\82\92è¡\8cã\81\86ã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ \fIfd_in\fP ã\81\8bã\82\89ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ \fIfd_out\fP
+ã\81¸æ\9c\80大 \fIlen\fP ã\83\90ã\82¤ã\83\88ã\82\92転é\80\81ã\81\99ã\82\8bã\80\82 2 ã\81¤ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼のうち一つは パイプを参照していなければならない。
\fIfd_in\fP と \fIoff_in\fP には以下のルールが適用される。
.IP * 3
の現在のファイルオフセットから読み出され、 現在のファイルオフセットは適切に調整される。
.IP *
\fIfd_in\fP がパイプを参照しておらず、 \fIoff_in\fP が NULL でない場合、 \fIoff_in\fP は \fIfd_in\fP
-からのデータ読み出しを開始する先頭オフセットを格納したバッファ へのポインタでなければならない。この場合、 \fIfd_in\fP
+からのデータ読み出しを開始する先頭オフセットを格納したバッファー へのポインターでなければならない。この場合、 \fIfd_in\fP
の現在のファイルオフセットは変更されない。
.PP
\fIfd_out\fP と \fIoff_out\fP に関しても同様である。
.TP 1.9i
\fBSPLICE_F_MOVE\fP
ページのコピーでなく移動を試みる。 これはカーネルに対するヒントでしかない。 つまり、カーネルがパイプからページを移動できない場合や、
-ã\83\91ã\82¤ã\83\97ã\83\90ã\83\83ã\83\95ã\82¡ã\81\8cã\83\9aã\83¼ã\82¸å\85¨é\83¨ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81 ã\83\9aã\83¼ã\82¸ã\81®ã\82³ã\83\94ã\83¼ã\81\8cè¡\8cã\82\8fã\82\8cã\82\8bã\81\93ã\81¨ã\82\82ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81®æ\9c\80å\88\9dã\81®å®\9fè£\85ã\81«ã\81¯ã\83\90ã\82°ã\81\8cã\81\82ã\81£ã\81\9fã\80\82ã\81\9dã\81®ã\81\9fã\82\81ã\80\81 Linux
-2.6.21 以降ではこのフラグの操作はできないようになっている (ただし、 \fBsplice\fP()
+ã\83\91ã\82¤ã\83\97ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cã\83\9aã\83¼ã\82¸å\85¨é\83¨ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81 ã\83\9aã\83¼ã\82¸ã\81®ã\82³ã\83\94ã\83¼ã\81\8cè¡\8cã\82\8fã\82\8cã\82\8bã\81\93ã\81¨ã\82\82ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81®æ\9c\80å\88\9dã\81®å®\9fè£\85ã\81«ã\81¯ã\83\90ã\82°ã\81\8cã\81\82ã\81£ã\81\9fã\80\82ã\81\9dã\81®ã\81\9fã\82\81ã\80\81
+Linux 2.6.21 以降ではこのフラグの操作はできないようになっている (ただし、 \fBsplice\fP()
コールでこのフラグを指定することは今も認められている)。 将来、正しい実装が行われることだろう。
.TP
\fBSPLICE_F_NONBLOCK\fP
入出力時に停止 (block) しない。 このフラグを指定すると、 splice によるパイプ操作を非停止モード (nonblocking) で
-行おうとするが、その場合でも \fBsplice\fP() は停止することもある。なぜなら、データのやり取りを行う ファイルディスクリプタは
+è¡\8cã\81\8aã\81\86ã\81¨ã\81\99ã\82\8bã\81\8cã\80\81ã\81\9dã\81®å ´å\90\88ã\81§ã\82\82 \fBsplice\fP() ã\81¯å\81\9cæ¢ã\81\99ã\82\8bã\81\93ã\81¨ã\82\82ã\81\82ã\82\8bã\80\82ã\81ªã\81\9cã\81ªã\82\89ã\80\81ã\83\87ã\83¼ã\82¿ã\81®ã\82\84ã\82\8aå\8f\96ã\82\8aã\82\92è¡\8cã\81\86 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯
(\fBO_NONBLOCK\fP フラグをセットされていない場合) 停止する可能性があるからである。
.TP
\fBSPLICE_F_MORE\fP
\fBSPLICE_F_NONBLOCK\fP が \fIflags\fP に指定されていて、かつ操作が停止するような状態であった。
.TP
\fBEBADF\fP
-ファイルディスクリプタの一方または両方が有効ではない、 もしくは適切な read\-write モードではない。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ä¸\80æ\96¹ã\81¾ã\81\9fã\81¯ä¸¡æ\96¹ã\81\8cæ\9c\89å\8a¹ã\81§ã\81¯ã\81ªã\81\84ã\80\81 ã\82\82ã\81\97ã\81\8fã\81¯é\81©å\88\87ã\81ª read\-write ã\83¢ã\83¼ã\83\89ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
.\" The append-mode error is given since 2.6.27; in earlier kernels,
.\" splice() in append mode was broken
対象のファイルシステムが splice に対応していない、 または対象のファイルが追記モードでオープンされている、
-またはディスクリプタのどちらもパイプを参照していない、 または seek できないデバイスに対してオフセットが指定された。
+ã\81¾ã\81\9fã\81¯ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\81©ã\81¡ã\82\89ã\82\82ã\83\91ã\82¤ã\83\97ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\80\81 ã\81¾ã\81\9fã\81¯ seek ã\81§ã\81\8dã\81ªã\81\84ã\83\87ã\83\90ã\82¤ã\82¹ã\81«å¯¾ã\81\97ã\81¦ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\80\82
.TP
\fBENOMEM\fP
-メモリ不足。
+メモリー不足。
.TP
\fBESPIPE\fP
-\fIoff_in\fP か \fIoff_out\fP のいずれかが NULL ではないが、対応するファイルディスクリプタが パイプを参照している。
+\fIoff_in\fP ã\81\8b \fIoff_out\fP ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81\8c NULL ã\81§ã\81¯ã\81ªã\81\84ã\81\8cã\80\81対å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c ã\83\91ã\82¤ã\83\97ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.SH バージョン
\fBsplice\fP() システムコールは Linux 2.6.17 で初めて登場した。
ライブラリによるサポートは glibc バージョン 2.5 で追加された。
このシステムコールは Linux 固有である。
.SH 注意
3 つのシステムコール (\fBsplice\fP(), \fBvmsplice\fP(2), \fBtee\fP(2))
-を使うと、ユーザ空間プログラムは任意のカーネルバッファに対する 完全な制御ができる。カーネルバッファは、パイプに使用されているのと
-同種のバッファを使ってカーネル内に実装されている。 大まかにいうと、これらのシステムコールは以下の仕事を行う:
+を使うと、ユーザー空間プログラムは任意のカーネルバッファーに対する 完全な制御ができる。カーネルバッファーは、パイプに使用されているのと
+å\90\8c種ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92使ã\81£ã\81¦ã\82«ã\83¼ã\83\8dã\83«å\86\85ã\81«å®\9fè£\85ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 大ã\81¾ã\81\8bã\81«ã\81\84ã\81\86ã\81¨ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ä»¥ä¸\8bã\81®ä»\95äº\8bã\82\92è¡\8cã\81\86:
.TP 1.2i
\fBsplice\fP()
-ã\83\90ã\83\83ã\83\95ã\82¡ã\81\8bã\82\89ä»»æ\84\8fã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\84ã\80\81ã\81\9dã\81®é\80\86æ\96¹å\90\91ã\80\81 ã\82\82ã\81\97ã\81\8fã\81¯ã\81\82ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\81\8bã\82\89å\88¥ã\81®ã\83\90ã\83\83ã\83\95ã\82¡への、データ移動を行う。
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8bã\82\89ä»»æ\84\8fã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\84ã\80\81ã\81\9dã\81®é\80\86æ\96¹å\90\91ã\80\81 ã\82\82ã\81\97ã\81\8fã\81¯ã\81\82ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8bã\82\89å\88¥ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼への、データ移動を行う。
.TP
\fBtee\fP(2)
-ã\81\82ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\81\8bã\82\89å\88¥ã\81®ã\83\90ã\83\83ã\83\95ã\82¡へのデータ「コピー」を行う。
+ã\81\82ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8bã\82\89å\88¥ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼へのデータ「コピー」を行う。
.TP
\fBvmsplice\fP(2)
-ユーザ空間からバッファへのデータ「コピー」を行う。
+ユーザー空間からバッファーへのデータ「コピー」を行う。
.PP
.\"
.\" Linus: Now, imagine using the above in a media server, for example.
.\" the data and choose to forward it to two or more different
.\" users - for things like logging etc.).
.\"
-ã\81\93ã\81\93ã\81§ã\81¯ã\82³ã\83\94ã\83¼ã\81®è©±ã\82\92ã\81\97ã\81¦ã\81\84ã\82\8bã\81\8cã\80\81å®\9fé\9a\9bã\81®ã\82³ã\83\94ã\83¼ã\81¯ä¸\80è\88¬ç\9a\84ã\81«å\9b\9eé\81¿ã\81\95ã\82\8cã\82\8bã\80\82 ã\82«ã\83¼ã\83\8dã\83«ã\81¯ã\80\81ã\83\91ã\82¤ã\83\97ã\83»ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\81®ã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿集合として
-実装し、ページへの参照回数を管理することで、これを実現している。 カーネルは、対象となるページを参照する (出力バッファ用の) ポインタを
-新規に作成することでバッファ内のページの「コピー」を作成し、 そのページの参照回数を増やす。つまり、ポインタだけがコピーされ、
-バッファのページはコピーされない。
+ã\81\93ã\81\93ã\81§ã\81¯ã\82³ã\83\94ã\83¼ã\81®è©±ã\82\92ã\81\97ã\81¦ã\81\84ã\82\8bã\81\8cã\80\81å®\9fé\9a\9bã\81®ã\82³ã\83\94ã\83¼ã\81¯ä¸\80è\88¬ç\9a\84ã\81«å\9b\9eé\81¿ã\81\95ã\82\8cã\82\8bã\80\82 ã\82«ã\83¼ã\83\8dã\83«ã\81¯ã\80\81ã\83\91ã\82¤ã\83\97ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼集合として
+実装し、ページへの参照回数を管理することで、これを実現している。 カーネルは、対象となるページを参照する (出力バッファー用の) ポインターを
+新規に作成することでバッファー内のページの「コピー」を作成し、 そのページの参照回数を増やす。つまり、ポインターだけがコピーされ、
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\9aã\83¼ã\82¸ã\81¯ã\82³ã\83\94ã\83¼ã\81\95ã\82\8cã\81ªã\81\84ã\80\82
.SH 例
\fBtee\fP(2) 参照。
.SH 関連項目
\fI注\fP: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。
.SH 説明
-\fBspu_run\fP() システムコールは、Cell Broadband Engine アーキテクチャを実装した PowerPC マシンで
+\fBspu_run\fP() ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\80\81Cell Broadband Engine ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\82\92å®\9fè£\85ã\81\97ã\81\9f PowerPC ã\83\9eã\82·ã\83³ã\81§
Synergistic Processor Units (SPU) にアクセスするために 使用される。 \fIfd\fP 引き数は、
-\fBspu_create\fP(2) が返すファイルディスクリプタで、 特定の SPU コンテキストを参照する。 そのコンテキストが物理 SPU
-に割り当てられると、 \fInpc\fP で渡された命令ポインタ (instruction pointer) から実行が開始される。
+\fBspu_create\fP(2) ã\81\8cè¿\94ã\81\99ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\80\81 ç\89¹å®\9aã\81® SPU ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\80\82 ã\81\9dã\81®ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81\8cç\89©ç\90\86 SPU
+に割り当てられると、 \fInpc\fP で渡された命令ポインター (instruction pointer) から実行が開始される。
SPU コードの実行は同期的 (synchronously) に行われる、つまり SPU が実行中は \fBspu_run\fP() は停止 (block)
する。 SPU コードの実行をメイン CPU や他の SPU と並行して行う必要がある場合は、 最初に、その SPU
コードを実行する新しいスレッドを、(例えば \fBpthread_create\fP(3) などを使って) 生成しなければならない。
-\fBspu_run\fP() が返るときには、SPU のプログラムカウンタの現在値が \fInpc\fP に書き込まれる。 これにより、連続する
-\fBspu_run\fP() の呼び出しで同じ \fInpc\fP ポインタを使うことができる。
+\fBspu_run\fP() ã\81\8cè¿\94ã\82\8bã\81¨ã\81\8dã\81«ã\81¯ã\80\81SPU ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81®ç\8f¾å\9c¨å\80¤ã\81\8c \fInpc\fP ã\81«æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\82\8bã\80\82 ã\81\93ã\82\8cã\81«ã\82\88ã\82\8aã\80\81é\80£ç¶\9aã\81\99ã\82\8b
+\fBspu_run\fP() ã\81®å\91¼ã\81³å\87ºã\81\97ã\81§å\90\8cã\81\98 \fInpc\fP ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92使ã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
-\fIevent\fP 引き数には、拡張ステータスコード用のバッファを指定する。 \fBSPU_CREATE_EVENTS_ENABLED\fP フラグ付きで
-SPU コンテキストが作成されると、 \fBspu_run\fP() が返る前に Linux カーネルによりこのバッファに
+\fIevent\fP å¼\95ã\81\8dæ\95°ã\81«ã\81¯ã\80\81æ\8b¡å¼µã\82¹ã\83\86ã\83¼ã\82¿ã\82¹ã\82³ã\83¼ã\83\89ç\94¨ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 \fBSPU_CREATE_EVENTS_ENABLED\fP ã\83\95ã\83©ã\82°ä»\98ã\81\8dã\81§
+SPU ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81\8cä½\9cæ\88\90ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81 \fBspu_run\fP() ã\81\8cè¿\94ã\82\8bå\89\8dã\81« Linux ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82\88ã\82\8aã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«
拡張ステータスコードが格納される。
ステータスコードには以下の定数が一つ以上入る。
.TP
\fBSPE_EVENT_DMA_ALIGNMENT\fP
-DMA (direct memory access) ã\81®ã\82¢ã\83©ã\82¤ã\83¡ã\83³ã\83\88ã\83»ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81\9fã\80\82
+DMA (direct memory access) のアライメントエラーが発生した。
.TP
\fBSPE_EVENT_INVALID_DMA\fP
無効な MFC (Memory Flow Controller) DMA コマンドを行おうとした。
.TP
\fBSPE_EVENT_SPE_DATA_STORAGE\fP
-DMA ã\82¹ã\83\88ã\83¬ã\83¼ã\82¸ã\83»ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81\9fã\80\82
+DMA ストレージエラーが発生した。
.TP
\fBSPE_EVENT_SPE_ERROR\fP
不正な命令が実行された。
.PP
NULL は \fIevent\fP 引き数として有効な値である。 この場合、イベントは呼び出し元のプロセスに報告されない。
.SH 返り値
-成功すると、 \fBspu_run\fP() は \fIspu_status\fP レジスタの値を返す。 エラーの場合、\-1 を返し、 \fIerrno\fP
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 \fBspu_run\fP() ã\81¯ \fIspu_status\fP ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81®å\80¤ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81\-1 ã\82\92è¿\94ã\81\97ã\80\81 \fIerrno\fP
を下記のエラーコードのいずれかに設定する。
-\fIspu_status\fP レジスタの値は、ステータスコードと SPU の \fBstop\-and\-signal\fP 命令が返す 14 ビットのコードの
+\fIspu_status\fP ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81®å\80¤ã\81¯ã\80\81ã\82¹ã\83\86ã\83¼ã\82¿ã\82¹ã\82³ã\83¼ã\83\89ã\81¨ SPU ã\81® \fBstop\-and\-signal\fP å\91½ä»¤ã\81\8cè¿\94ã\81\99 14 ã\83\93ã\83\83ã\83\88ã\81®ã\82³ã\83¼ã\83\89ã\81®
ビットマスクで構成される。 後者の 14 ビットのコードはオプションである。 ステータスコードのビットマスクは下記の通りである。
.TP
\fB0x02\fP
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP が有効なファイルディスクリプタでない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEFAULT\fP
-\fInpc\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81ªã\81\84ã\80\82ã\81¾ã\81\9fã\81¯ \fIevent\fP ã\81\8c NULL 以å¤\96ã\81§ã\80\81ã\81\97ã\81\8bã\82\82ç\84¡å\8a¹ã\81ªã\83\9dã\82¤ã\83³ã\82¿である。
+\fInpc\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82ã\81¾ã\81\9fã\81¯ \fIevent\fP ã\81\8c NULL 以å¤\96ã\81§ã\80\81ã\81\97ã\81\8bã\82\82ç\84¡å\8a¹ã\81ªã\83\9dã\82¤ã\83³ã\82¿ã\83¼である。
.TP
\fBEINTR\fP
\fBspu_run\fP() の実行中にシグナルが発生した。 \fBsignal\fP(7) 参照。 必要であれば、 \fInpc\fP
-の値は新しいプログラムカウンタの値に更新される。
+ã\81®å\80¤ã\81¯æ\96°ã\81\97ã\81\84ã\83\97ã\83ã\82°ã\83©ã\83 ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81®å\80¤ã\81«æ\9b´æ\96°ã\81\95ã\82\8cã\82\8bã\80\82
.TP
\fBEINVAL\fP
-\fIfd\fP が \fBspu_create\fP(2) が返した有効なファイルディスクリプタでない。
+\fIfd\fP ã\81\8c \fBspu_create\fP(2) ã\81\8cè¿\94ã\81\97ã\81\9fæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBENOMEM\fP
-Memory Flow Controller (MFC) DMA により発生したページフォールトを 処理するのに必要なメモリがなかった。
+Memory Flow Controller (MFC) DMA ã\81«ã\82\88ã\82\8aç\99ºç\94\9fã\81\97ã\81\9fã\83\9aã\83¼ã\82¸ã\83\95ã\82©ã\83¼ã\83«ã\83\88ã\82\92 å\87¦ç\90\86ã\81\99ã\82\8bã\81®ã\81«å¿\85è¦\81ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBENOSYS\fP
機能が動作中のシステムで提供されていない。理由は、 ハードウェアで SPU が提供されていないか、 spufs
.SH バージョン
\fBspu_run\fP() システムコールはカーネル 2.6.16 で Linux に追加された。
.SH 準拠
-このシステムコールは Linux 固有であり、 PowerPC アーキテクチャでのみ実装されている。
+ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ Linux å\9bºæ\9c\89ã\81§ã\81\82ã\82\8aã\80\81 PowerPC ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81®ã\81¿å®\9fè£\85ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
このシステムコールを使ったプログラムは移植性がない。
.SH 注意
glibc はこのシステムコールに対するラッパー関数を提供していない。 \fBsyscall\fP(2) を使うこと。ただし、 \fBspu_run\fP()
-は より抽象度の高い SPU へのインタフェースを実装するライブラリから 利用されることを意図したものであり、通常のアプリケーションから
+ã\81¯ ã\82\88ã\82\8aæ\8a½è±¡åº¦ã\81®é«\98ã\81\84 SPU ã\81¸ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92å®\9fè£\85ã\81\99ã\82\8bã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81\8bã\82\89 å\88©ç\94¨ã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\82\92æ\84\8få\9b³ã\81\97ã\81\9fã\82\82ã\81®ã\81§ã\81\82ã\82\8aã\80\81é\80\9a常ã\81®ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81\8bã\82\89
使用は意図されていない。推奨のライブラリについては
.UR http://www.bsc.es\:/projects\:/deepcomputing\:/linuxoncell/
.UE
.ad
.SH 説明
.PP
-これらの関数は、ファイルについての情報を \fIstat\fP が指すバッファに格納して返す。 ファイルそのものに対するアクセス許可は必要としないが、
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81¤ã\81\84ã\81¦ã\81®æ\83\85å ±ã\82\92 \fIstat\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\97ã\81¦è¿\94ã\81\99ã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\81\9dã\81®ã\82\82ã\81®ã\81«å¯¾ã\81\99ã\82\8bã\82¢ã\82¯ã\82»ã\82¹è¨±å\8f¯ã\81¯å¿\85è¦\81ã\81¨ã\81\97ã\81ªã\81\84ã\81\8cã\80\81
\(em\fBstat\fP(), \fBfstatat\fP(), \fBlstat\fP() の場合には \(emそのファイルへ至る \fIpathname\fP
を構成する全てのディレクトリに対する実行 (検索) 許可が必要である。
.PP
\fBlstat\fP() は \fBstat\fP() と同じであるが、 \fIpathnames\fP
がシンボリックリンクの場合、リンクが参照しているファイルではなく、 リンク自身の状態を返す点が異なる。
-\fBfstat\fP() は \fBstat\fP() と同じだが、 状態を取得するファイルをファイルディスクリプタ \fIfd\fP で指定する点が異なる。
+\fBfstat\fP() は \fBstat\fP() と同じだが、 状態を取得するファイルをファイルディスクリプター \fIfd\fP で指定する点が異なる。
.PP
これらのシステムコールはいずれも、結果を \fIstat\fP 構造体に入れて返す。 \fIstat\fP 構造体には以下のフィールドが含まれている:
.PP
ino_t st_ino; /* inode 番号 */
mode_t st_mode; /* アクセス保護 */
nlink_t st_nlink; /* ハードリンクの数 */
- uid_t st_uid; /* 所有者のユーザ ID */
+ uid_t st_uid; /* 所有者のユーザー ID */
gid_t st_gid; /* 所有者のグループ ID */
dev_t st_rdev; /* デバイス ID (特殊ファイルの場合) */
off_t st_size; /* 全体のサイズ (バイト単位) */
.fi
.in
-\fI注意:\fP \fIstat\fP 構造体のフィールドの順序はアーキテクチャにより様々である。
-また、上記の定義では、フィールド間に存在することがあるパディングバイトは書かれていない。このパディングバイトはアーキテクチャによっても異なる。詳細を知る必要がある場合は
+\fI注æ\84\8f:\fP \fIstat\fP æ§\8bé\80 ä½\93ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81®é \86åº\8fã\81¯ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\82\88ã\82\8aæ§\98ã\80\85ã\81§ã\81\82ã\82\8bã\80\82
+ã\81¾ã\81\9fã\80\81ä¸\8aè¨\98ã\81®å®\9a義ã\81§ã\81¯ã\80\81ã\83\95ã\82£ã\83¼ã\83«ã\83\89é\96\93ã\81«å\98å\9c¨ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\83\91ã\83\87ã\82£ã\83³ã\82°ã\83\90ã\82¤ã\83\88ã\81¯æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82ã\81\93ã\81®ã\83\91ã\83\87ã\82£ã\83³ã\82°ã\83\90ã\82¤ã\83\88ã\81¯ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\82\88ã\81£ã\81¦ã\82\82ç\95°ã\81ªã\82\8bã\80\82詳細ã\82\92ç\9f¥ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\81¯
glibc とカーネルのソースを調べてほしい。
\fIst_dev\fP フィールドは、このファイルが存在するデバイスを示す (マクロ \fBmajor\fP(3), \fBminor\fP(3)
\fIst_mtime\fP フィールドは、ファイルが修正された場合に変更される (例えば、 \fBmknod\fP(2), \fBtruncate\fP(2),
\fButime\fP(2) を使用した場合や \fBwrite\fP(2) で 1 バイト以上書き込みをした場合など)。 さらに、ディレクトリの
\fIst_mtime\fP は、そのディレクトリで ファイルが作成されたり削除されたりすると変更される。 \fIst_mtime\fP フィールドは
-æ\89\80æ\9c\89è\80\85ã\82\84ã\82°ã\83«ã\83¼ã\83\97ã\82\84ã\83\8fã\83¼ã\83\89ã\83»ã\83ªã\83³ã\82¯æ\95°ã\82\84ã\83¢ã\83¼ã\83\89ã\81®å¤\89æ\9b´ã\81§ã\81¯å¤\89æ\9b´ \fIã\81\95ã\82\8cã\81ªã\81\84ã\80\82\fP
+所有者やグループやハードリンク数やモードの変更では変更 \fIされない。\fP
\fIst_ctime\fP フィールドは書き込みや inode 情報 (所有者、グループ、リンク数、モードなど) の 設定によって変更される。
.PP
S_IFSOCK 0140000 ソケット
S_IFLNK 0120000 シンボリックリンク
S_IFREG 0100000 通常のファイル
-S_IFBLK 0060000 ã\83\96ã\83ã\83\83ã\82¯ã\83»ã\83\87ã\83\90ã\82¤ã\82¹
+S_IFBLK 0060000 ブロックデバイス
S_IFDIR 0040000 ディレクトリ
-S_IFCHR 0020000 ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\83»ã\83\87ã\83\90ã\82¤ã\82¹
+S_IFCHR 0020000 キャラクターデバイス
S_IFIFO 0010000 FIFO
.TE
.in
ディレクトリか?
.TP
\fBS_ISCHR\fP(m)
-ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\83»ã\83\87ã\83\90ã\82¤ã\82¹ã\81\8b?
+キャラクターデバイスか?
.TP
\fBS_ISBLK\fP(m)
-ã\83\96ã\83ã\83\83ã\82¯ã\83»ã\83\87ã\83\90ã\82¤ã\82¹ã\81\8b?
+ブロックデバイスか?
.TP
\fBS_ISFIFO\fP(m)
FIFO (名前付きパイプ) か?
lB l l.
S_ISUID 0004000 set\-user\-ID bit
S_ISGID 0002000 set\-group\-ID bit (下記参照)
-S_ISVTX 0001000 ã\82¹ã\83\86ã\82£ã\83\83ã\82ã\83¼ã\83»ã\83\93ã\83\83ã\83\88 (ä¸\8bè¨\98å\8f\82ç\85§)
+S_ISVTX 0001000 スティッキービット (下記参照)
S_IRWXU 00700 ファイル所有者のアクセス許可用のビットマスク
S_IRUSR 00400 所有者の読み込み許可
.SS fstatat()
\fBfstatat\fP() システムコールは \fBstat\fP() と全く同様に動作するが、以下で説明する点が異なる。
-指定された \fIpathname\fP が相対パスの場合、 ファイルディスクリプタ \fIdirfd\fP が参照するディレクトリに対する相対パスと解釈される
+指定された \fIpathname\fP が相対パスの場合、 ファイルディスクリプター \fIdirfd\fP が参照するディレクトリに対する相対パスと解釈される
(\fBstat\fP() に相対パスを渡した場合のように、呼び出したプロセスのカレントワーキングディレクトリに対する相対パスではない)。
\fIpathname\fP が相対パスで、 \fIdirfd\fP が特別な値 \fBAT_FDCWD\fP の場合、 (\fBstat\fP(2) と同様に)
\fIpathname\fP の構成要素が存在しないか、 \fIpathname\fP が空文字列である。
.TP
\fBENOMEM\fP
-カーネルのメモリが足りない。
+ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
\fIpathname\fP の前半部分 (prefix) の構成要素がディレクトリではない。
\fBfstatat\fP() では以下のエラーも発生することがある。
.TP
\fBEBADF\fP
-\fIdirfd\fP が有効なファイルディスクリプタでない。
+\fIdirfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fIflags\fP に無効なフラグが指定された。
.TP
\fBENOTDIR\fP
-\fIpathname\fP が相対パスで、 \fIdirfd\fP がディレクトリ以外のファイルを参照しているファイルディスクリプタである。
+\fIpathname\fP ã\81\8cç\9b¸å¯¾ã\83\91ã\82¹ã\81§ã\80\81 \fIdirfd\fP ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä»¥å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH バージョン
\fBfstatat\fP() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポートはバージョン 2.4 で glibc
に追加された。
(これらのフィールドは BSD によって導入された。 システムごとに解釈が
異なっており、 NFS マウントの場合には同じシステムでも異なる可能性がある)。
\fI<sys/stat.h>\fP から \fIblkcnt_t\fP の \fIblksize_t\fP 型定義を
-読み込みたい場合は、(\fIどの\fPヘッダファイルをインクルードするよりも前に)
+èªã\81¿è¾¼ã\81¿ã\81\9fã\81\84å ´å\90\88ã\81¯ã\80\81(\fIã\81©ã\81®\fPã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\99ã\82\8bã\82\88ã\82\8aã\82\82å\89\8dã\81«)
\fB_XOPEN_SOURCE\fP を 500 以上の値で定義すること。
.LP
POSIX.1\-1990 には \fBS_IFMT\fP, \fBS_IFSOCK\fP, \fBS_IFLNK\fP, \fBS_IFREG\fP,
SVID\-v2 と XPG2 では 0 と 0100000 の両方が通常のファイル
T}
1000 S_IFIFO p| 010000 FIFO (名前付きパイプ)
-2000 S_IFCHR c 020000 キャラクタ特殊ファイル (V7)
-3000 S_IFMPC 030000 多重化されたキャラクタ特殊ファイル (V7)
+2000 S_IFCHR c 020000 キャラクター特殊ファイル (V7)
+3000 S_IFMPC 030000 多重化されたキャラクター特殊ファイル (V7)
4000 S_IFDIR d/ 040000 ディレクトリ (V7)
5000 S_IFNAM 050000 T{
XENIX の二つの副型を持つ名前付きの特殊ファイル
9000 S_IFNWK n 110000 ネットワーク特殊ファイル (HP\-UX)
a000 S_IFLNK l@ 120000 シンボリックリンク (BSD)
b000 S_IFSHAD 130000 T{
-Solaris の ACL 用の隠し inode (ユーザ空間からは見えない)
+Solaris の ACL 用の隠し inode (ユーザー空間からは見えない)
T}
c000 S_IFSOCK s= 140000 ソケット (BSD; VxFS の "S_IFSOC")
d000 S_IFDOOR D> 150000 Solaris の door ファイル
ナノ秒のタイムスタンプは XFS, JFS, Btrfs, ext4 でサポートされている (Linux 2.6.23 以降)。
ナノ秒のタイムスタンプは ext2, ext3, Reiserfs ではサポートされていない。
サブ秒のタイムスタンプをサポートしていないファイルシステムでは、 ナノ秒のフィールドには値 0 が入る。
-.SS è\83\8cå¾\8cã\81®ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\82¤ã\83³ã\82¿フェース
+.SS è\83\8cå¾\8cã\81®ã\82«ã\83¼ã\83\8dã\83«ã\82¤ã\83³ã\82¿ã\83¼フェース
.\"
.\" A note from Andries Brouwer, July 2007
.\"
__SWORD_TYPE f_bsize; /* 最適な転送ブロックサイズ */
fsblkcnt_t f_blocks; /* ファイルシステムの総データブロック数 */
fsblkcnt_t f_bfree; /* ファイルシステムの空きブロック数 */
- fsblkcnt_t f_bavail; /* 非特権ユーザが利用可能な空きブロック数 */
+ fsblkcnt_t f_bavail; /* é\9d\9eç\89¹æ¨©ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cå\88©ç\94¨å\8f¯è\83½ã\81ªç©ºã\81\8dã\83\96ã\83ã\83\83ã\82¯æ\95° */
fsfilcnt_t f_files; /* ファイルシステムの総ファイルノード数 */
fsfilcnt_t f_ffree; /* ファイルシステムの空きファイルノード数 */
fsid_t f_fsid; /* ファイルシステムの ID */
(\fBstatfs\fP() の場合) \fIpath\fP によって参照されるファイルが存在しない。
.TP
\fBENOMEM\fP
-十分なカーネルメモリがない。
+å\8d\81å\88\86ã\81ªã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOSYS\fP
ファイルシステムがこの呼び出しをサポートしていない。
\fIf_fsid\fP はあるランダムな値を持ち、 (\fIf_fsid\fP,\fIino\fP) という 1 組の値でファイルを一意に決定できるようにする、
というのが基本的な考え方である。 いくつかの OS では、デバイス番号 (の変種) を使ったり、
デバイス番号とファイルシステムタイプを組み合わせて使ったりしている。 OS の中には \fIf_fsid\fP
-ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81®å\8f\96å¾\97ã\82\92ã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\81«é\99\90å®\9aã\81\97ã\81¦ã\81\84ã\82\8bã\82\82ã\81®ã\82\82ã\81\82ã\82\8b (é\9d\9eç\89¹æ¨©ã\83¦ã\83¼ã\82¶が取得すると 0 となる)。 NFS でエクスポートされる場合、
+ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81®å\8f\96å¾\97ã\82\92ã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\83¼ã\81«é\99\90å®\9aã\81\97ã\81¦ã\81\84ã\82\8bã\82\82ã\81®ã\82\82ã\81\82ã\82\8b (é\9d\9eç\89¹æ¨©ã\83¦ã\83¼ã\82¶ã\83¼が取得すると 0 となる)。 NFS でエクスポートされる場合、
このフィールドがファイルシステムのファイルハンドルで使われており、 この値を提供するとセキュリティ上の問題がある。
.LP
いくつかの OS では、 \fIfsid\fP を \fBsysfs\fP(2) システムコールの第 2 引き数として使用できる。
.\" broken in commit ff0c7d15f9787b7e8c601533c015295cc68329f8
.\" fixed in commit d70ef97baf048412c395bb5d65791d8fe133a52b
Linux 2.6.38 から Linux 3.1 までは (3.1 を含む)、 \fBfstatfs\fP() は \fBpipe\fP(2)
-で作成されたファイルディスクリプタに対してはエラー \fBENOSYS\fP で失敗していた。
+ã\81§ä½\9cæ\88\90ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ã\81¯ã\82¨ã\83©ã\83¼ \fBENOSYS\fP ã\81§å¤±æ\95\97ã\81\97ã\81¦ã\81\84ã\81\9fã\80\82
.SH 関連項目
\fBstat\fP(2), \fBstatvfs\fP(2), \fBpath_resolution\fP(7)
.SH この文書について
.TP
\fBEINVAL\fP
(\fBswapon\fP()) 指定されたパスが有効なスワップの署名 (signature) を含んでいないか、tmpfs
-のようなインメモリファイルシステム上にある。
+ã\81®ã\82\88ã\81\86ã\81ªã\82¤ã\83³ã\83¡ã\83¢ã\83ªã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81«ã\81\82ã\82\8bã\80\82
.TP
\fBEINVAL\fP (Linux 3.4 以降)
(\fBswapon\fP()) \fIflags\fP に無効なフラグ値が指定された。
に含まれているディレクトリのどれかに検索許可が与えられていない (\fBpath_resolution\fP(7) も参照すること)。
.TP
\fBEDQUOT\fP
-そのファイルシステムのリソース使用量がユーザクォータに達している。対象となるリソースは inode
+ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83ªã\82½ã\83¼ã\82¹ä½¿ç\94¨é\87\8fã\81\8cã\83¦ã\83¼ã\82¶ã\83¼ã\82¯ã\82©ã\83¼ã\82¿ã\81«é\81\94ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82対象ã\81¨ã\81ªã\82\8bã\83ªã\82½ã\83¼ã\82¹ã\81¯ inode
かディスクブロックで、どちらになるかはファイルシステムの実装依存である。
.TP
\fBEEXIST\fP
十分なカーネルメモリーがない。
.TP
\fBENOSPC\fP
-そのファイルを含んでいるデバイスに新しいディレクトリエントリを 作成するための空きがない。
+ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\90«ã\82\93ã\81§ã\81\84ã\82\8bã\83\87ã\83\90ã\82¤ã\82¹ã\81«æ\96°ã\81\97ã\81\84ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 ä½\9cæ\88\90ã\81\99ã\82\8bã\81\9fã\82\81ã\81®ç©ºã\81\8dã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
\fIlinkpath\fP に含まれるディレクトリ部分が、実際には、ディレクトリではない。
\fBsymlinkat\fP() では以下のエラーも発生する。
.TP
\fBEBADF\fP
-\fInewdirfd\fP が有効なファイルディスクリプタでない。
+\fInewdirfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBENOENT\fP
\fIlinkpath\fP が相対パス名で、 \fInewdirfd\fP が削除されたディレクトリを参照している。
.TP
\fBENOTDIR\fP
-\fIlinkpath\fP が相対パスで、 \fInewdirfd\fP がディレクトリ以外のファイルを参照しているファイルディスクリプタである。
+\fIlinkpath\fP ã\81\8cç\9b¸å¯¾ã\83\91ã\82¹ã\81§ã\80\81 \fInewdirfd\fP ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä»¥å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH バージョン
\fBsymlinkat\fP() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポートはバージョン 2.4 で glibc
に追加された。
.\"
.TH SYNC 2 2014\-08\-19 Linux "Linux Programmer's Manual"
.SH 名前
-sync, syncfs \- バッファキャッシュをディスクに書き込む
+sync, syncfs \- ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82ã\83£ã\83\83ã\82·ã\83¥ã\82\92ã\83\87ã\82£ã\82¹ã\82¯ã\81«æ\9b¸ã\81\8dè¾¼ã\82\80
.SH 書式
\fB#include <unistd.h>\fP
.sp
.RE
.ad
.SH 説明
-\fBsync\fP() を呼び出すと、バッファされたファイルのメタデータとデータ本体に
+\fBsync\fP() ã\82\92å\91¼ã\81³å\87ºã\81\99ã\81¨ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83¡ã\82¿ã\83\87ã\83¼ã\82¿ã\81¨ã\83\87ã\83¼ã\82¿æ\9c¬ä½\93ã\81«
対して行われた全ての変更が、対応するファイルシステムに書き込まれる。
-\fBsyncfs\fP() は \fBsync\fP() と同様だが、オープンされたファイルディスクリプタ \fIfd\fP
+\fBsyncfs\fP() は \fBsync\fP() と同様だが、オープンされたファイルディスクリプター \fIfd\fP
が参照するファイルを含むファイルシステムだけを同期する点が異なる。
.SH 返り値
\fBsyncfs\fP() は成功すると 0 を返す。エラーが発生した場合は \-1 を返し、
\fBsyncfs\fP() は少なくとも以下の理由で失敗する可能性がある:
.TP
\fBEBADF\fP
-\fIfd\fP が有効なファイルディスクリプタでない。。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82ã\80\82
.SH バージョン
\fBsyncfs\fP() は Linux 2.6.39 で初めて登場した。
ライブラリによるサポートは glibc バージョン 2.14 で追加された。
\fB unsigned int \fP\fIflags\fP\fB);\fP
.fi
.SH 説明
-\fBsync_file_range\fP() を使うと、ファイルディスクリプタ \fIfd\fP で参照されるオープンされたファイルのディスクとの同期に関して、
-きめ細かな制御が可能となる。
+\fBsync_file_range\fP() を使うと、ファイルディスクリプター \fIfd\fP
+ã\81§å\8f\82ç\85§ã\81\95ã\82\8cã\82\8bã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\81¨ã\81®å\90\8cæ\9c\9fã\81«é\96¢ã\81\97ã\81¦ã\80\81 ã\81\8dã\82\81ç´°ã\81\8bã\81ªå\88¶å¾¡ã\81\8cå\8f¯è\83½ã\81¨ã\81ªã\82\8bã\80\82
\fIoffset\fP は、同期を行うファイルの領域の開始バイトである。 \fInbytes\fP には同期を行う領域の長さをバイト単位で指定する。
\fInbytes\fP が 0 の場合は、 \fIoffset\fP からファイル末尾までの全バイトを同期する。 同期はシステムのページサイズの単位で行われる。
.SS 警告
このシステムコールは非常に危険であり、 移植性が必要なプログラムで使用すべきではない。 これらの操作ではどれもファイルのメタデータの書き出しを行わない。
したがって、アプリケーションにより作成済みのディスクブロックの 上書きの実行が確実に行われない限り、クラッシュの後でもデータが 利用できる保証はない。
-æ\9b¸ã\81\8dè¾¼ã\81¿ã\81\8cä¸\8aæ\9b¸ã\81\8dã\81 ã\81\91ã\81§ã\81\82ã\82\8bã\81\8bã\82\92ç\9f¥ã\82\8bã\81\9fã\82\81ã\81®ã\83¦ã\83¼ã\82¶ã\82¤ã\83³ã\82¿フェースは存在しない。 (\fIbtrfs\fP などの) copy\-on\-write
+æ\9b¸ã\81\8dè¾¼ã\81¿ã\81\8cä¸\8aæ\9b¸ã\81\8dã\81 ã\81\91ã\81§ã\81\82ã\82\8bã\81\8bã\82\92ç\9f¥ã\82\8bã\81\9fã\82\81ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82¤ã\83³ã\82¿ã\83¼フェースは存在しない。 (\fIbtrfs\fP などの) copy\-on\-write
動作を使ったファイルシステムでは、 既存の割り当て済みのブロックに対する上書き自体ができない。 前もって割り当てられた領域に書き込みを行う場合、
多くのファイルシステムでは block allocator への書き込みも必要となるが、 このシステムコールは block allocator
のディスクへの同期を行わない。 このシステムコールはディスク書き込みキャッシュのフラッシュを
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP が有効なファイルディスクリプタではない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fIflags\fP に不正なビットが指定されている。または \fIoffset\fP か \fInbytes\fP が不正である。
I/O エラー。
.TP
\fBENOMEM\fP
-メモリ不足である。
+メモリー不足である。
.TP
\fBENOSPC\fP
ディスク領域不足である。
.SH 注意
.SS sync_file_range2()
.\" See kernel commit edd5cd4a9424f22b0fa08bef5e299d41befd5622
-いくつかのアーキテクチャ (例えば、 PowerPC や ARM) では、 64 ビットの引き数は適切なレジスタの組に割り当てる必要がある。
-このようなアーキテクチャでは、 「書式」に書かれている \fBsync_file_range\fP() の呼び出しシグネチャーで、 引き数 \fIfd\fP と
-\fIoffset\fP の間のパディング (詰めもの) でレジスタが一つ消費されてしまう (詳細は \fBsyscall\fP(2) 参照)。 そのため、
-これらのアーキテクチャでは引き数が適切な順序になった別のシステムコールが定義されている。
+いくつかのアーキテクチャー (例えば、 PowerPC や ARM) では、 64 ビットの引き数は適切なレジスターの組に割り当てる必要がある。
+ã\81\93ã\81®ã\82\88ã\81\86ã\81ªã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81 ã\80\8cæ\9b¸å¼\8fã\80\8dã\81«æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8b \fBsync_file_range\fP() ã\81®å\91¼ã\81³å\87ºã\81\97ã\82·ã\82°ã\83\8dã\83\81ã\83£ã\83¼ã\81§ã\80\81 å¼\95ã\81\8dæ\95° \fIfd\fP ã\81¨
+\fIoffset\fP ã\81®é\96\93ã\81®ã\83\91ã\83\87ã\82£ã\83³ã\82° (è©°ã\82\81ã\82\82ã\81®) ã\81§ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81\8cä¸\80ã\81¤æ¶\88è²»ã\81\95ã\82\8cã\81¦ã\81\97ã\81¾ã\81\86 (詳細ã\81¯ \fBsyscall\fP(2) å\8f\82ç\85§)ã\80\82 ã\81\9dã\81®ã\81\9fã\82\81ã\80\81
+ã\81\93ã\82\8cã\82\89ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯å¼\95ã\81\8dæ\95°ã\81\8cé\81©å\88\87ã\81ªé \86åº\8fã\81«ã\81ªã\81£ã\81\9få\88¥ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8cå®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
.PP
.in +4n
.nf
全く同じである。このシステムコールに対するライブラリによるサポートは
glibc では提供されていない。
-このバージョンのシステムコールは、Linux 2.6.20 で ARM アーキテクチャで
+ã\81\93ã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\80\81Linux 2.6.20 ã\81§ ARM ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§
初めて登場し、 \fBarm_sync_file_range\fP() という名前であった。
Linux 2.6.22 で、同様のシステムコールが PowerPC 用に追加された際に、
システムコールの名前が変更された。
-glibc によるサポートが提供されているアーキテクチャでは、
+glibc ã\81«ã\82\88ã\82\8bã\82µã\83\9dã\83¼ã\83\88ã\81\8cæ\8f\90ä¾\9bã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81
glibc のラッパー関数は \fBsync_file_range\fP() という名前で
\fBsync_file_range2\fP() を適切に使用するようになっている。
.SH 関連項目
ライブラリにラッパー関数が存在しないシステムコールを呼び出したい場合である。
\fBsyscall\fP() は、システムコールを行う前に CPU
-ã\83¬ã\82¸ã\82¹ã\82¿ã\82\92ä¿\9då\98ã\81\97ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8bã\82\89è¿\94ã\81£ã\81\9fé\9a\9bã\81«ã\83¬ã\82¸ã\82¹ã\82¿を復元し、エラーが発生した場合はシステムコールが返したエラーコードを \fBerrno\fP(3)
+ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\82\92ä¿\9då\98ã\81\97ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8bã\82\89è¿\94ã\81£ã\81\9fé\9a\9bã\81«ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼を復元し、エラーが発生した場合はシステムコールが返したエラーコードを \fBerrno\fP(3)
に格納する。
-システムコールのシンボル定数は、ヘッダファイル \fI<sys/syscall.h>\fP に書かれている。
+ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®ã\82·ã\83³ã\83\9cã\83«å®\9aæ\95°ã\81¯ã\80\81ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83« \fI<sys/syscall.h>\fP ã\81«æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
.SH 返り値
返り値は呼び出されたシステムコールによって定義される。 一般に、返り値 0 は成功を表す。 \-1 はエラーを表し、エラーコードは \fIerrno\fP
に入れられる。
.SH 注意
\fBsyscall\fP() は 4BSD で最初に登場した。
-.SS アーキテクチャ固有の要件
-各アーキテクチャの ABI には、 システムコールの引き数のカーネルへの渡し方に関する独自の要件がある。
+.SS アーキテクチャー固有の要件
+å\90\84ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81® ABI ã\81«ã\81¯ã\80\81 ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®å¼\95ã\81\8dæ\95°ã\81®ã\82«ã\83¼ã\83\8dã\83«ã\81¸ã\81®æ¸¡ã\81\97æ\96¹ã\81«é\96¢ã\81\99ã\82\8bç\8b¬è\87ªã\81®è¦\81件ã\81\8cã\81\82ã\82\8bã\80\82
(ほとんどのシステムコールのように) glibc ラッパー関数があるシステムコールでは、 glibc
-ã\81\8c詳細ã\82\92å\87¦ç\90\86ã\81\97ã\80\81ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81«å¿\9cã\81\98ã\81\9fæ\96¹æ³\95ã\81§å¼\95ã\81\8dæ\95°ã\81\8cé\81©å\88\87ã\81ªã\83¬ã\82¸ã\82¹ã\82¿にコピーされる。 しかし、 システムコールを呼び出すのに \fBsyscall\fP()
-を使う場合には、 呼び出し側でアーキテクチャ依存の詳細を処理しなければならない場合がある。 これはいくつかの 32
-ビットアーキテクチャでは非常によくあることだ。
+ã\81\8c詳細ã\82\92å\87¦ç\90\86ã\81\97ã\80\81ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«å¿\9cã\81\98ã\81\9fæ\96¹æ³\95ã\81§å¼\95ã\81\8dæ\95°ã\81\8cé\81©å\88\87ã\81ªã\83¬ã\82¸ã\82¹ã\82¿ã\83¼にコピーされる。 しかし、 システムコールを呼び出すのに \fBsyscall\fP()
+を使う場合には、 呼び出し側でアーキテクチャー依存の詳細を処理しなければならない場合がある。 これはいくつかの 32
+ã\83\93ã\83\83ã\83\88ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯é\9d\9e常ã\81«ã\82\88ã\81\8fã\81\82ã\82\8bã\81\93ã\81¨ã\81 ã\80\82
-例えば、ARM アーキテクチャの Embedded ABI (EABI) では、 (\fIlong long\fP などの) 64
-ビット値は偶数番地のレジスタのペアに境界があっていなければならない。したがって、 glibc が提供するラッパー関数ではなく \fBsyscall\fP()
-を使う場合には、 \fBreadahead\fP() システムコールは ARM アーキテクチャの EABI では以下のようにして起動されることになる。
+ä¾\8bã\81\88ã\81°ã\80\81ARM ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81® Embedded ABI (EABI) ã\81§ã\81¯ã\80\81 (\fIlong long\fP ã\81ªã\81©ã\81®) 64
+ã\83\93ã\83\83ã\83\88å\80¤ã\81¯å\81¶æ\95°ç\95ªå\9c°ã\81®ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81®ã\83\9aã\82¢ã\81«å¢\83ç\95\8cã\81\8cã\81\82ã\81£ã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82ã\81\97ã\81\9fã\81\8cã\81£ã\81¦ã\80\81 glibc ã\81\8cæ\8f\90ä¾\9bã\81\99ã\82\8bã\83©ã\83\83ã\83\91ã\83¼é\96¢æ\95°ã\81§ã\81¯ã\81ªã\81\8f \fBsyscall\fP()
+ã\82\92使ã\81\86å ´å\90\88ã\81«ã\81¯ã\80\81 \fBreadahead\fP() ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ ARM ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81® EABI ã\81§ã\81¯ä»¥ä¸\8bã\81®ã\82\88ã\81\86ã\81«ã\81\97ã\81¦èµ·å\8b\95ã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\81«ã\81ªã\82\8bã\80\82
.in +4n
.nf
.in
.PP
オフセット引き数は 64 ビットで、最初の引き数 (\fIfd\fP) は \fIr0\fP で渡されるので、呼び出し側では手動で 64
-ビット値を分割して境界を合わせて、 64 ビット値が \fIr2\fP/\fIr3\fP レジスタペアで渡されるようにしなければならない。このため、 \fIr1\fP
+ã\83\93ã\83\83ã\83\88å\80¤ã\82\92å\88\86å\89²ã\81\97ã\81¦å¢\83ç\95\8cã\82\92å\90\88ã\82\8fã\81\9bã\81¦ã\80\81 64 ã\83\93ã\83\83ã\83\88å\80¤ã\81\8c \fIr2\fP/\fIr3\fP ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\83\9aã\82¢ã\81§æ¸¡ã\81\95ã\82\8cã\82\8bã\82\88ã\81\86ã\81«ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82ã\81\93ã\81®ã\81\9fã\82\81ã\80\81 \fIr1\fP
(2 番目の引数 0) としてダミー値を挿入している。
.\" Mike Frysinger: this issue ends up forcing MIPS
次のシステムコールに影響がある: \fBfadvise64_64\fP(2), \fBftruncate64\fP(2), \fBposix_fadvise\fP(2),
\fBpread64\fP(2), \fBpwrite64\fP(2), \fBreadahead\fP(2), \fBsync_file_range\fP(2),
\fBtruncate64\fP(2)
-.SS アーキテクチャ毎の呼び出し規約
-å\90\84ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81«ã\81¯ã\80\81ã\81\9dã\82\8cã\81\9eã\82\8cç\8b¬è\87ªã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«èµ·å\8b\95æ\96¹æ³\95ã\81¨ã\82«ã\83¼ã\83\8dã\83«ã\81¸ã\81®å¼\95ã\81\8dæ\95°ã\81®æ¸¡ã\81\97æ\96¹ã\81\8cã\81\82ã\82\8bã\80\82 å\90\84種ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£の詳細を以下の 2
+.SS アーキテクチャー毎の呼び出し規約
+å\90\84ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\81¯ã\80\81ã\81\9dã\82\8cã\81\9eã\82\8cç\8b¬è\87ªã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«èµ·å\8b\95æ\96¹æ³\95ã\81¨ã\82«ã\83¼ã\83\8dã\83«ã\81¸ã\81®å¼\95ã\81\8dæ\95°ã\81®æ¸¡ã\81\97æ\96¹ã\81\8cã\81\82ã\82\8bã\80\82 å\90\84種ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼の詳細を以下の 2
つの表にまとめる。
-最初の表は、 カーネルモードに遷移するのに使用される命令、 システムコール番号を示すのに使用されるレジスタ、
-システムコールの結果を返すのに使用されるレジスタの一覧である (なお、 ここに載っているカーネルモードに遷移するのに使用される命令は、
+æ\9c\80å\88\9dã\81®è¡¨ã\81¯ã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\83¢ã\83¼ã\83\89ã\81«é\81·ç§»ã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bå\91½ä»¤ã\80\81 ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ç\95ªå\8f·ã\82\92示ã\81\99ã\81®ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\80\81
+ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®çµ\90æ\9e\9cã\82\92è¿\94ã\81\99ã\81®ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81®ä¸\80覧ã\81§ã\81\82ã\82\8b (ã\81ªã\81\8aã\80\81 ã\81\93ã\81\93ã\81«è¼\89ã\81£ã\81¦ã\81\84ã\82\8bã\82«ã\83¼ã\83\8dã\83«ã\83¢ã\83¼ã\83\89ã\81«é\81·ç§»ã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bå\91½ä»¤ã\81¯ã\80\81
カーネルモードに遷移する最速や最善の方法でない場合もあるので、 \fBvdso\fP(7) を参照する必要があるかもしれない)。
.if t \{\
.ft CW
.ft P
\}
.PP
-2 つ目の表は、システムコールの引き数を渡すのに使用されるレジスタの一覧である。
+2 ã\81¤ç\9b®ã\81®è¡¨ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®å¼\95ã\81\8dæ\95°ã\82\92渡ã\81\99ã\81®ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81®ä¸\80覧ã\81§ã\81\82ã\82\8bã\80\82
.if t \{\
.ft CW
\}
\}
.PP
これらの表にはすべての呼び出し規約が記載されているわけではない点に注意すること \(em
-ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81«ã\82\88ã\81£ã\81¦ã\81¯ã\80\81ã\81\93ã\81\93ã\81«è¨\98è¼\89ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ä»\96ã\81®ã\83¬ã\82¸ã\82¹ã\82¿が見境なく上書きされる場合もある。
+ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\82\88ã\81£ã\81¦ã\81¯ã\80\81ã\81\93ã\81\93ã\81«è¨\98è¼\89ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ä»\96ã\81®ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼が見境なく上書きされる場合もある。
.SH 例
.nf
#define _GNU_SOURCE
.SH 書式
Linux のシステムコール。
.SH 説明
-システムコールは、アプリケーションと Linux カーネルとの間の 基本的なインタフェースである。
+ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\80\81ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81¨ Linux ã\82«ã\83¼ã\83\8dã\83«ã\81¨ã\81®é\96\93ã\81® å\9fºæ\9c¬ç\9a\84ã\81ªã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81§ã\81\82ã\82\8bã\80\82
.SS システムコールとライブラリのラッパー関数
システムコールは一般には直接起動されず、 glibc (や他の何らかのライブラリ) 経由で起動される。 システムコールの直接起動については、詳細は
\fBintro\fP(2) を参照のこと。 いつもという訳ではないが、普通は、ラッパー関数の名前はその関数が起動する システムコールの名前と同じである。
例えば、glibc には \fBtruncate\fP() という関数があり、この関数は "truncate" システムコールを起動する。
-たいていの場合、glibc のラッパー関数はかなり簡単なもので、 システムコールを起動する前に引き数を適切なレジスタにコピーし、
+ã\81\9fã\81\84ã\81¦ã\81\84ã\81®å ´å\90\88ã\80\81glibc ã\81®ã\83©ã\83\83ã\83\91ã\83¼é\96¢æ\95°ã\81¯ã\81\8bã\81ªã\82\8aç°¡å\8d\98ã\81ªã\82\82ã\81®ã\81§ã\80\81 ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\92èµ·å\8b\95ã\81\99ã\82\8bå\89\8dã\81«å¼\95ã\81\8dæ\95°ã\82\92é\81©å\88\87ã\81ªã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81«ã\82³ã\83\94ã\83¼ã\81\97ã\80\81
システムコールが返った後は \fIerrno\fP を適切に設定する以外は、ほとんど処理を行わない (これらは、ラッパー関数が提供されていない場合に
システムコールを起動するのに使用する \fBsyscall\fP(2) により実行される処理と同じである)。 [注意]
システムコールは失敗を示すのに負のエラー番号を呼び出し元に返す。 失敗が起こった際には、ラッパー関数は返されたエラー番号を反転して
カーネル用であり、標準のカーネルに登場することはないかもしれない。
\fBset_zone_reclaim\fP(2) は少しの間だけ存在した。 Linux 2.6.13 で追加され、2.6.16
-で削除された。このシステムコールがユーザ空間から使える状態になったことはない。
+で削除された。このシステムコールがユーザー空間から使える状態になったことはない。
.SH 注意
.PP
たいていは、 \fI/usr/include/asm/unistd.h\fP で定義されている番号 __NR_xxx のシステムコールのコードは、 Linux
といったプロプリエタリなオペレーティングシステムのエミュレーション機能があるプラットフォームでは、多くの追加システムコールがある。 mips64
には、32 ビットシステムコールのフルセットも含まれている。
-時間の経過とともに、いくつかのシステムコールではインタフェースの 変更が必要になってきた。
+æ\99\82é\96\93ã\81®çµ\8cé\81\8eã\81¨ã\81¨ã\82\82ã\81«ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81§ã\81¯ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81® å¤\89æ\9b´ã\81\8cå¿\85è¦\81ã\81«ã\81ªã\81£ã\81¦ã\81\8dã\81\9fã\80\82
こうした変更の理由の一つは、システムコールに渡される構造体やスカラー値 のサイズを増やす必要があることだった。
これらの変更の結果、現在では、同様の処理を実行するが 引き数のサイズなどの詳細は異なる、一連のシステムコール群が いくつか存在する (例えば、
\fBtruncate\fP(2) と \fBtruncate64\fP(2))。 (すでに述べたように、
.IP *
.\" 64-bit off_t changes: ftruncate64, *stat64,
.\" fcntl64 (because of the flock structure), getdents64, *statfs64
-Linux 2.4 で、ユーザ ID とグループ ID のサイズが 16 ビットから 32 ビットに増えた。
+Linux 2.4 で、ユーザー ID とグループ ID のサイズが 16 ビットから 32 ビットに増えた。
この変更に対応するため、いくつかのシステムコールが追加された (\fBchown32\fP(2), \fBgetuid32\fP(2),
\fBgetgroups32\fP(2), \fBsetresuid32\fP(2) など)。 これらのシステムコールが、末尾の "32" が付かない同名の
古いバージョンに代わって使われるようになった。
.IP *
-Linux 2.4 では、32 ビットアーキテクチャ上のアプリケーションが 大きなファイル (つまり、32 ビットでは表現できないサイズや
+Linux 2.4 では、32 ビットアーキテクチャー上のアプリケーションが 大きなファイル (つまり、32 ビットでは表現できないサイズや
ファイルオフセットが必要なファイル) にアクセスできるようになった。 この変更に対応するため、ファイルオフセットとサイズを扱う
システムコールの置き換えが必要となった。その結果、 \fBfcntl64\fP(2), \fBftruncate64\fP(2),
\fBgetdents64\fP(2), \fBstat64\fP(2), \fBstatfs64\fP(2)
-と、ファイルディスクリプタやシンボリックリンクで同じ機能を持つ システムコールが追加された。 これらのシステムコールが、末尾の "64"
+ã\81¨ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\84ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81§å\90\8cã\81\98æ©\9fè\83½ã\82\92æ\8c\81ã\81¤ ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8c追å\8a ã\81\95ã\82\8cã\81\9fã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8cã\80\81æ\9c«å°¾ã\81® "64"
が付かない同名の 古いバージョンに代わって使われるようになった。 但し、"stat" 系のシステムコールはその限りではない。
64\-bit ファイルアクセスと 32\-bit UID のみを持つ 新しいプラットフォーム (alpha, ia64, s390x など) では、
.\" and the semantics of the latter call were changed to what
.\" they are today.
\fBselect\fP(2) と \fBmmap\fP(2) は 5つもしくはそれ以上の引き数を使用しており、 i386 では引き数の受け渡しに問題が生じる。
-そのため、他のアーキテクチャでは \fI__NR_select\fP と \fI__NR_mmap\fP に対応する \fIsys_select\fP() と
+ã\81\9dã\81®ã\81\9fã\82\81ã\80\81ä»\96ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ \fI__NR_select\fP ã\81¨ \fI__NR_mmap\fP ã\81«å¯¾å¿\9cã\81\99ã\82\8b \fIsys_select\fP() ã\81¨
\fIsys_mmap\fP() が存在するが、i386 では代わりに \fIold_select\fP() と \fIold_mmap\fP()
-というルーチンがある (これらのルーチンは引き数ブロックへのポインタを使用する)。 現在では 5つの引き数を渡すことはもはや問題ではなくなっており、
+ã\81¨ã\81\84ã\81\86ã\83«ã\83¼ã\83\81ã\83³ã\81\8cã\81\82ã\82\8b (ã\81\93ã\82\8cã\82\89ã\81®ã\83«ã\83¼ã\83\81ã\83³ã\81¯å¼\95ã\81\8dæ\95°ã\83\96ã\83ã\83\83ã\82¯ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92使ç\94¨ã\81\99ã\82\8b)ã\80\82 ç\8f¾å\9c¨ã\81§ã\81¯ 5ã\81¤ã\81®å¼\95ã\81\8dæ\95°ã\82\92渡ã\81\99ã\81\93ã\81¨ã\81¯ã\82\82ã\81¯ã\82\84å\95\8fé¡\8cã\81§ã\81¯ã\81ªã\81\8fã\81ªã\81£ã\81¦ã\81\8aã\82\8aã\80\81
\fI__NR__newselect\fP は \fIsys_select\fP() に直接対応するようになっている。 \fI__NR_mmap2\fP
についても同様である。
.SH 関連項目
SVr4.
.SH 注意
この System\-V 由来のシステムコールは廃止予定 (obsolete) であり、 使用しないこと。 \fI/proc\fP
-が利用できるシステムでは、同じ情報が \fI/proc/filesystems\fP 経由で取得でき、このインタフェースを使用すること。
+ã\81\8cå\88©ç\94¨ã\81§ã\81\8dã\82\8bã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ã\80\81å\90\8cã\81\98æ\83\85å ±ã\81\8c \fI/proc/filesystems\fP çµ\8cç\94±ã\81§å\8f\96å¾\97ã\81§ã\81\8dã\80\81ã\81\93ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92使ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82
.SH バグ
libc または glibc のサポートは存在しない。 \fIbuf\fP の大きさがどれだけ必要かを推測する方法がない。
.SH この文書について
.PP
ここでバイト単位で与えられる。
-Linux 2.3.23 (i386)、2.3.48 (全てのアーキテクチャ) からは構造体は
+Linux 2.3.23 (i386)、2.3.48 (全てのアーキテクチャー) からは構造体は
.nf
.in +4n
.\"
.TH SYSLOG 2 2014\-07\-08 Linux "Linux Programmer's Manual"
.SH 名前
-syslog, klogctl \- ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\83ªã\83³ã\82°ã\83»ã\83\90ã\83\83ã\83\95ã\82¡を読んだり消去したりする; console_loglevel の設定を行う
+syslog, klogctl \- ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83ªã\83³ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼を読んだり消去したりする; console_loglevel の設定を行う
.SH 書式
.nf
\fBint syslog(int \fP\fItype\fP\fB, char *\fP\fIbufp\fP\fB, int \fP\fIlen\fP\fB);\fP
\fB/* glibc ではラッパー関数は提供されていない */\fP
.sp
-/* glibc のインタフェース */
+/* glibc ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ */
.br
\fB#include <sys/klog.h>\fP
.sp
\fBsyslog\fP(3) を参照のこと。
このページはカーネルの \fBsyslog\fP() システムコールについて説明している。 \fBsyslog\fP() システムコールはカーネルの
-\fIprintk\fP() バッファを制御するために使用される。 このシステムコールに対する glibc ラッパー関数は \fBklogctl\fP()
+\fIprintk\fP() ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92å\88¶å¾¡ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81«å¯¾ã\81\99ã\82\8b glibc ã\83©ã\83\83ã\83\91ã\83¼é\96¢æ\95°ã\81¯ \fBklogctl\fP()
と呼ばれている。
-.SS "ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\83ã\82°ã\83»ã\83\90ã\83\83ã\83\95ã\82¡ (kernel log buffer)"
+.SS "ã\82«ã\83¼ã\83\8dã\83«ã\83ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ (kernel log buffer)"
.\" Under "General setup" ==> "Kernel log buffer size"
.\" For 2.6, precisely the option seems to have appeared in 2.5.55.
-カーネルは長さ \fBLOG_BUF_LEN\fP の巡回式のバッファを持っており、 それにはカーネル関数の \fBprintk\fP()
+ã\82«ã\83¼ã\83\8dã\83«ã\81¯é\95·ã\81\95 \fBLOG_BUF_LEN\fP ã\81®å·¡å\9b\9eå¼\8fã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92æ\8c\81ã\81£ã\81¦ã\81\8aã\82\8aã\80\81 ã\81\9dã\82\8cã\81«ã\81¯ã\82«ã\83¼ã\83\8dã\83«é\96¢æ\95°ã\81® \fBprintk\fP()
の引き数として与えられた メッセージが (そのログレベルにかかわらず) 格納される。 初期のカーネルでは \fBLOG_BUF_LEN\fP の値は 4096
であった。 カーネル 1.3.54 からは 8192、 カーネル 2.1.113 からは 16384 になり、 カーネル 2.4.23 以降および
2.6 以降ではカーネル設定オプション (\fBCONFIG_LOG_BUF_SHIFT\fP、 デフォルト値はアーキテクチャー依存)
-で値を設定できるようになっている。 Linux 2.6.6 以降では、コマンド 10 (下記参照) でバッファのサイズを問い合わせできる。
+ã\81§å\80¤ã\82\92è¨å®\9aã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\80\82 Linux 2.6.6 以é\99\8dã\81§ã\81¯ã\80\81ã\82³ã\83\9eã\83³ã\83\89 10 (ä¸\8bè¨\98å\8f\82ç\85§) ã\81§ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82µã\82¤ã\82ºã\82\92å\95\8fã\81\84å\90\88ã\82\8fã\81\9bã\81§ã\81\8dã\82\8bã\80\82
.SS コマンド
\fItype\fP 引き数はこの関数が行う動作を決定する。 以下のリストに示す値を \fItype\fP に指定できる。
-シンボル名はカーネルソースで定義されているが、ユーザ空間には公開されていない。 したがって、数字を使うか、名前を自分で定義する必要がある。
+シンボル名はカーネルソースで定義されているが、ユーザー空間には公開されていない。 したがって、数字を使うか、名前を自分で定義する必要がある。
.TP
\fBSYSLOG_ACTION_CLOSE\fP (0)
ログをクローズする。現在のところ NOP である。
ログをオープンする。現在のところ NOP である。
.TP
\fBSYSLOG_ACTION_READ\fP (2)
-ã\83ã\82°ã\82\92èªã\81¿å\87ºã\81\99ã\80\82 ã\81\93ã\81®å\91¼ã\81³å\87ºã\81\97ã\81¯ã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\83ã\82°ã\83»ã\83\90ã\83\83ã\83\95ã\82¡が空でなくなるまで待って、 最大 \fIlen\fP バイトまで \fIbufp\fP
-ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\81«èªã\81¿è¾¼ã\81¿ã\80\81 èªã\81¿è¾¼ã\82\93ã\81 ã\83\90ã\82¤ã\83\88æ\95°ã\82\92è¿\94ã\81\99ã\80\82 ã\83ã\82°ã\81\8bã\82\89èªã\81¾ã\82\8cã\81\9fã\83\90ã\82¤ã\83\88ã\81¯ã\83ã\82°ã\83»ã\83\90ã\83\83ã\83\95ã\82¡から消える。 つまり、情報は一度しか読むことができない。
+ã\83ã\82°ã\82\92èªã\81¿å\87ºã\81\99ã\80\82 ã\81\93ã\81®å\91¼ã\81³å\87ºã\81\97ã\81¯ã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\83ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼が空でなくなるまで待って、 最大 \fIlen\fP バイトまで \fIbufp\fP
+ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«èªã\81¿è¾¼ã\81¿ã\80\81 èªã\81¿è¾¼ã\82\93ã\81 ã\83\90ã\82¤ã\83\88æ\95°ã\82\92è¿\94ã\81\99ã\80\82 ã\83ã\82°ã\81\8bã\82\89èªã\81¾ã\82\8cã\81\9fã\83\90ã\82¤ã\83\88ã\81¯ã\83ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼から消える。 つまり、情報は一度しか読むことができない。
これはユーザーのプログラムが \fI/proc/kmsg\fP を読んだ時にカーネルによって実行される関数でもある。
.TP
\fBSYSLOG_ACTION_READ_ALL\fP (3)
-ã\83ªã\83³ã\82°ã\83»ã\83\90ã\83\83ã\83\95ã\82¡ã\81«æ®\8bã\81£ã\81¦ã\81\84ã\82\8bã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92ã\81\99ã\81¹ã\81¦èªã\81¿å\87ºã\81\97ã\80\81 \fIbufp\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82 ã\81\93ã\81®å\91¼ã\81³å\87ºã\81\97ã\83ã\82°ã\83»ã\83\90ã\83\83ã\83\95ã\82¡の最後の \fIlen\fP
-ã\83\90ã\82¤ã\83\88ã\82\92 (é\9d\9eç ´å£\8aç\9a\84ã\81«) èªã\81¿å\87ºã\81\99ã\81\8cã\80\81 æ\9c\80å¾\8cã\81®ã\80\8cã\83ªã\83³ã\82°ã\83»ã\83\90ã\83\83ã\83\95ã\82¡消去」命令 (下記のコマンド 5 参照)
-以降にバッファに書き込まれた情報しか読み出せない。 返り値は読み込んだバイト数である。
+ã\83ªã\83³ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ®\8bã\81£ã\81¦ã\81\84ã\82\8bã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92ã\81\99ã\81¹ã\81¦èªã\81¿å\87ºã\81\97ã\80\81 \fIbufp\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82 ã\81\93ã\81®å\91¼ã\81³å\87ºã\81\97ã\83ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼の最後の \fIlen\fP
+ã\83\90ã\82¤ã\83\88ã\82\92 (é\9d\9eç ´å£\8aç\9a\84ã\81«) èªã\81¿å\87ºã\81\99ã\81\8cã\80\81 æ\9c\80å¾\8cã\81®ã\80\8cã\83ªã\83³ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼消去」命令 (下記のコマンド 5 参照)
+以é\99\8dã\81«ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\81\9fæ\83\85å ±ã\81\97ã\81\8bèªã\81¿å\87ºã\81\9bã\81ªã\81\84ã\80\82 è¿\94ã\82\8aå\80¤ã\81¯èªã\81¿è¾¼ã\82\93ã\81 ã\83\90ã\82¤ã\83\88æ\95°ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBSYSLOG_ACTION_READ_CLEAR\fP (4)
-ã\83ªã\83³ã\82°ã\83»ã\83\90ã\83\83ã\83\95ã\82¡に残っているメッセージをすべて読み出し、クリアする。 この呼び出しは \fItype\fP 3
-ã\81¨å\85¨ã\81\8få\90\8cã\81\98ã\81\93ã\81¨ã\82\92è¡\8cã\81\84ã\80\81追å\8a ã\81§ã\80\8cã\83ªã\83³ã\82°ã\83»ã\83\90ã\83\83ã\83\95ã\82¡消去」 ("clear ring buffer") コマンドも実行する。
+ã\83ªã\83³ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼に残っているメッセージをすべて読み出し、クリアする。 この呼び出しは \fItype\fP 3
+ã\81¨å\85¨ã\81\8få\90\8cã\81\98ã\81\93ã\81¨ã\82\92è¡\8cã\81\84ã\80\81追å\8a ã\81§ã\80\8cã\83ªã\83³ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼消去」 ("clear ring buffer") コマンドも実行する。
.TP
\fBSYSLOG_ACTION_CLEAR\fP (5)
-ã\80\8cã\83ªã\83³ã\82°ã\83»ã\83\90ã\83\83ã\83\95ã\82¡消去」 (\"clear ring buffer\") コマンドのみを実行する。 引き数 \fIbufp\fP と \fIlen\fP
+ã\80\8cã\83ªã\83³ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼消去」 (\"clear ring buffer\") コマンドのみを実行する。 引き数 \fIbufp\fP と \fIlen\fP
は無視される。
.IP
-ã\81\93ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81¯å®\9fé\9a\9bã\81«ã\83ªã\83³ã\82°ã\83»ã\83\90ã\83\83ã\83\95ã\82¡をクリアするわけではなく、 コマンド 3 (\fBSYSLOG_ACTION_READ_ALL\fP) と 4
+ã\81\93ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81¯å®\9fé\9a\9bã\81«ã\83ªã\83³ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼をクリアするわけではなく、 コマンド 3 (\fBSYSLOG_ACTION_READ_ALL\fP) と 4
(\fBSYSLOG_ACTION_READ_CLEAR\fP で返す内容を決定するカーネルの管理変数を設定する。 このコマンドはコマンド 2
(\fBSYSLOG_ACTION_READ\fP) と 9 (\fBSYSLOG_ACTION_SIZE_UNREAD\fP) には影響を与えない。
.TP
詳細は「ログレベル」の節を参照のこと。 引き数 \fIbufp\fP は無視される。
.TP
\fBSYSLOG_ACTION_SIZE_UNREAD\fP (9) (Linux 2.4.10 以降)
-ã\82³ã\83\9eã\83³ã\83\89 2 (\fBSYSLOG_ACTION_READ\fP) ã\81§ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\83ã\82°ã\83»ã\83\90ã\83\83ã\83\95ã\82¡から読み出せるバイト数を返す。 引き数 \fIbufp\fP と
+ã\82³ã\83\9eã\83³ã\83\89 2 (\fBSYSLOG_ACTION_READ\fP) ã\81§ã\82«ã\83¼ã\83\8dã\83«ã\83ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼から読み出せるバイト数を返す。 引き数 \fIbufp\fP と
\fIlen\fP は無視される。
.TP
\fBSYSLOG_ACTION_SIZE_BUFFER\fP (10) (Linux 2.6.6 以降)
-ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\83ã\82°ã\83»ã\83\90ã\83\83ã\83\95ã\82¡の全体のサイズを返す。 引き数 \fIbufp\fP と \fIlen\fP は無視される。
+ã\82«ã\83¼ã\83\8dã\83«ã\83ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼の全体のサイズを返す。 引き数 \fIbufp\fP と \fIlen\fP は無視される。
.PP
.\"
.\"
メッセージをコンソールに出力する。
.SH 返り値
\fItype\fP が 2, 3, 4 の場合、成功すると \fBsyslog\fP() は読み出したバイト数を返す。 \fItype\fP が 9 の場合、
-ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\83ã\82°ã\83»ã\83\90ã\83\83ã\83\95ã\82¡ã\81«ã\81\82ã\82\8bç\8f¾å\9c¨èªã\81¿å\87ºã\81\97å\8f¯è\83½ã\81ªã\83\90ã\82¤ã\83\88æ\95°ã\82\92è¿\94ã\81\99ã\80\82 \fItype\fP ã\81\8c 10 ã\81®å ´å\90\88ã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\83ã\82°ã\83»ã\83\90ã\83\83ã\83\95ã\82¡ã\81®ç·\8fé\87\8fã\82\92è¿\94ã\81\99ã\80\82
-\fItype\fP がそれ以外の値の場合、成功すると 0 が返される。
+ã\82«ã\83¼ã\83\8dã\83«ã\83ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81\82ã\82\8bç\8f¾å\9c¨èªã\81¿å\87ºã\81\97å\8f¯è\83½ã\81ªã\83\90ã\82¤ã\83\88æ\95°ã\82\92è¿\94ã\81\99ã\80\82 \fItype\fP ã\81\8c 10 ã\81®å ´å\90\88ã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\83ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ç·\8fé\87\8fã\82\92è¿\94ã\81\99ã\80\82 \fItype\fP
+がそれ以外の値の場合、成功すると 0 が返される。
エラーの場合は、\-1\ が返り、 \fIerrno\fP にエラーを示す値が設定される。
.SH エラー
.TP
\fBEPERM\fP
十分な権限を持たないプロセス (正確にはケーパビリティ \fBCAP_SYS_ADMIN\fP も \fBCAP_SYSLOG\fP も持たないプロセス) が
-\fIconsole_loglevel\fP ã\82\92å¤\89æ\9b´ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\81\8bã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»リングを消去しようとした。
+\fIconsole_loglevel\fP ã\82\92å¤\89æ\9b´ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\81\8bã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83\83ã\82»ã\83¼ã\82¸リングを消去しようとした。
.TP
\fBERESTARTSYS\fP
-ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\81«ã\82\88ã\81£ã\81¦å\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\80\81ä½\95ã\82\82èªã\81¿å\87ºã\81\9bã\81ªã\81\8bã\81£ã\81\9fã\80\82 (ã\83\88ã\83¬ã\83¼ã\82¹ä¸ã\81«ã\81\97ã\81\8bç\99ºç\94\9fã\81\99ã\82\8bã\81\93ã\81¨ã\81¯ã\81ªã\81\84)
+システムコールがシグナルによって割り込まれ、何も読み出せなかった。 (トレース中にしか発生することはない)
.SH 準拠
-ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81¯ Linux ç\89¹æ\9c\89ã\81§ã\81\82ã\82\8aã\80\81移æ¤\8dã\82\92æ\84\8få\9b³ã\81\97ã\81\9fã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\81¯ 使ç\94¨ã\81\97ã\81¦ã\81¯ã\81\84ã\81\91ã\81ªã\81\84ã\80\82
+このシステムコールは Linux 特有であり、移植を意図したプログラムでは 使用してはいけない。
.SH 注意
.\" In libc4 and libc5 the number of this call was defined by
.\" .BR SYS_klog .
.\" add a "tee(in, out1, out2)" system call that duplicates the pages
.\" (again, incrementing their reference count, not copying the data) from
.\" one pipe to two other pipes.
-\fBtee\fP() は、ファイルディスクリプタ \fIfd_in\fP が参照するパイプからファイルディスクリプタ \fIfd_out\fP が参照するパイプへ最大
-\fIlen\fP バイトのデータを複製する。 この操作では、複製されるデータは \fIfd_in\fP からは消費されない。したがって、これらのデータをこの後の
-\fBsplice\fP(2) でコピーすることができる。
+\fBtee\fP() は、ファイルディスクリプター \fIfd_in\fP が参照するパイプからファイルディスクリプター \fIfd_out\fP
+が参照するパイプへ最大 \fIlen\fP バイトのデータを複製する。 この操作では、複製されるデータは \fIfd_in\fP
+からは消費されない。したがって、これらのデータをこの後の \fBsplice\fP(2) でコピーすることができる。
\fIflags\fP は一連の修飾フラグであり、 \fBsplice\fP(2) や \fBvmsplice\fP(2) と共通の名前である。
.TP 1.9i
が同じパイプを参照している。
.TP
\fBENOMEM\fP
-メモリ不足。
+メモリー不足。
.SH バージョン
\fBtee\fP() システムコールは Linux 2.6.17 で初めて登場した。
ライブラリによるサポートは glibc バージョン 2.5 で追加された。
.SH 説明
\fBtime\fP() は、紀元 (Epoch; 1970\-01\-01 00:00:00 (UTC)) からの秒数で返す。
-もし \fIt\fP が NULL でなかったら返り値は \fIt\fP の指しているメモリにも格納される。
+ã\82\82ã\81\97 \fIt\fP ã\81\8c NULL ã\81§ã\81ªã\81\8bã\81£ã\81\9fã\82\89è¿\94ã\82\8aå\80¤ã\81¯ \fIt\fP ã\81®æ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\82\82æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82
.SH 返り値
成功した場合、紀元(the Epoch)からの経過秒数を返す。エラーの場合は \fI((time_t)\ \-1)\fP を返し、\fIerrno\fP を設定する。
.SH エラー
.\"
.TH TIMERFD_CREATE 2 2011\-09\-14 Linux "Linux Programmer's Manual"
.SH 名前
-timerfd_create, timerfd_settime, timerfd_gettime \- ファイルディスクリプタ経由で通知するタイマー
+timerfd_create, timerfd_settime, timerfd_gettime \- ファイルディスクリプター経由で通知するタイマー
.SH 書式
.nf
\fB#include <sys/timerfd.h>\fP
\fBint timerfd_gettime(int \fP\fIfd\fP\fB, struct itimerspec *\fP\fIcurr_value\fP\fB);\fP
.fi
.SH 説明
-これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する タイマーの生成と操作を行う。 これらは、 \fBsetitimer\fP(2) や
-\fBtimer_create\fP(2) を用いる方法の代わりとなるものであり、このファイルディスクリプタを \fBselect\fP(2),
+これらのシステムコールは、満了通知をファイルディスクリプター経由で配送する タイマーの生成と操作を行う。 これらは、 \fBsetitimer\fP(2)
+や \fBtimer_create\fP(2) を用いる方法の代わりとなるものであり、このファイルディスクリプターを \fBselect\fP(2),
\fBpoll\fP(2), \fBepoll\fP(7) で監視できるという利点がある。
.\"
.\" Since Linux 3.11, commit 11ffa9d6065f344a9bd769a2452f26f2f671e5f8
.\" CLOCK_BOOTTIME
.\" Since Linux 3.15, commit 4a2378a943f09907fb1ae35c15de917f60289c14
-\fBtimerfd_create\fP() は新規のタイマーオブジェクトを生成し、そのタイマーを参照するファイル ディスクリプタを返す。
+\fBtimerfd_create\fP() ã\81¯æ\96°è¦\8fã\81®ã\82¿ã\82¤ã\83\9eã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ç\94\9fæ\88\90ã\81\97ã\80\81ã\81\9dã\81®ã\82¿ã\82¤ã\83\9eã\83¼ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83« ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
\fIclockid\fP 引き数は、タイマーの進捗を管理するためのクロックを指定するもので、 \fBCLOCK_REALTIME\fP か
\fBCLOCK_MONOTONIC\fP のいずれかでなければならない。 \fBCLOCK_REALTIME\fP
はシステム全体で使用されるクロックで、このクロックは変更可能である。 \fBCLOCK_MONOTONIC\fP
を追加で呼び出す必要がなくなる。
.TP
\fBTFD_CLOEXEC\fP
-新しいファイルディスクリプタに対して close\-on\-exec (\fBFD_CLOEXEC\fP) フラグをセットする。
+æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ close\-on\-exec (\fBFD_CLOEXEC\fP) ã\83\95ã\83©ã\82°ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\80\82
このフラグが役に立つ理由については、 \fBopen\fP(2) の \fBO_CLOEXEC\fP フラグの説明を参照のこと。
.PP
バージョン 2.6.26 以前の Linux では、 \fIflags\fP 引き数は未使用であり、0 を指定しなければならない。
.SS timerfd_settime()
-\fBtimerfd_settime\fP() は、ファイルディスクリプタ \fIfd\fP により参照されるタイマーを開始したり停止したりする。
+\fBtimerfd_settime\fP() は、ファイルディスクリプター \fIfd\fP により参照されるタイマーを開始したり停止したりする。
\fInew_value\fP 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 (interval) を
指定する。この引き数で使用されている \fIitimerspec\fP 構造体には 2 つのフィールドがあり、各フィールドは \fItimespec\fP
\fBtimerfd_settime\fP() を呼び出した時点でのタイマーの設定を返すのに使用される。 下記の \fBtimerfd_gettime\fP()
の説明を参照。
.SS timerfd_gettime()
-\fBtimerfd_gettime\fP() は、ファイルディスクリプタ \fIfd\fP で参照されるタイマーの現在の設定が入った \fIitimerspec\fP
-構造体を、 \fIcurr_value\fP に格納して返す。
+\fBtimerfd_gettime\fP() は、ファイルディスクリプター \fIfd\fP で参照されるタイマーの現在の設定が入った
+\fIitimerspec\fP 構造体を、 \fIcurr_value\fP に格納して返す。
\fIit_value\fP フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構造体の両方のフィールドが 0
であれば、タイマーは現在停止している。 タイマー設定時に \fBTFD_TIMER_ABSTIME\fP
\fIit_interval\fP フィールドは、タイマーの間隔を返す。 この構造体の両方のフィールドが 0 であれば、タイマーは
\fInew_value.it_value\fP で指定された時間後に一回だけ満了して停止するように設定されている。
-.SS ã\82¿ã\82¤ã\83\9eã\83¼ã\83»ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿に対する操作
-\fBtimerfd_create\fP() が返すファイルディスクリプタは以下の操作をサポートしている。
+.SS ã\82¿ã\82¤ã\83\9eã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼に対する操作
+\fBtimerfd_create\fP() ã\81\8cè¿\94ã\81\99ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ä»¥ä¸\8bã\81®æ\93\8dä½\9cã\82\92ã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fBread\fP(2)
\fBtimerfd_settime\fP() を使ってタイマーの設定が最後変更されて以降、または \fBread\fP(2)
-の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生していれば、 \fBread\fP(2) に渡されたバッファに、タイマー満了回数を示す 8
+ã\81®å\91¼ã\81³å\87ºã\81\97ã\81«æ\9c\80å¾\8cã\81«æ\88\90å\8a\9fã\81\97ã\81¦ä»¥é\99\8dã\81«ã\80\81ã\82¿ã\82¤ã\83\9eã\83¼ã\81®æº\80äº\86ã\81\8cä¸\80å\9b\9e以ä¸\8aç\99ºç\94\9fã\81\97ã\81¦ã\81\84ã\82\8cã\81°ã\80\81 \fBread\fP(2) ã\81«æ¸¡ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\80\81ã\82¿ã\82¤ã\83\9eã\83¼æº\80äº\86å\9b\9eæ\95°ã\82\92示ã\81\99 8
バイトの unsigned 型の整数 (\fIuint64_t\fP) が返される (返される値はホストバイトオーダ、つまりそのホストマシンにおける
整数の通常のバイトオーダである)。
.IP
\fBread\fP(2) を行った時点でタイマーの満了が発生していなければ、 \fBread\fP(2) は停止 (block)
-する、もしくはファイルディスクリプタが 非停止 (nonblocking) に設定されている場合はエラー \fBEAGAIN\fP で失敗する
+ã\81\99ã\82\8bã\80\81ã\82\82ã\81\97ã\81\8fã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c é\9d\9eå\81\9cæ¢ (nonblocking) ã\81«è¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\82¨ã\83©ã\83¼ \fBEAGAIN\fP ã\81§å¤±æ\95\97ã\81\99ã\82\8b
(非停止モードにするには、 \fBfcntl\fP(2) の \fBF_SETFL\fP 命令で \fBO_NONBLOCK\fP フラグをセットする)。
.IP
-渡されたバッファの大きさが 8 バイト未満の場合、 \fBread\fP(2) はエラー \fBEINVAL\fP で失敗する。
+渡ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å¤§ã\81\8dã\81\95ã\81\8c 8 ã\83\90ã\82¤ã\83\88æ\9cªæº\80ã\81®å ´å\90\88ã\80\81 \fBread\fP(2) ã\81¯ã\82¨ã\83©ã\83¼ \fBEINVAL\fP ã\81§å¤±æ\95\97ã\81\99ã\82\8bã\80\82
.TP
\fBpoll\fP(2), \fBselect\fP(2) (と同様の操作)
-一つ以上のタイマー満了が発生していれば、 ファイルディスクリプタは読み出し可能となる (\fBselect\fP(2) の \fIreadfds\fP 引き数や
+ä¸\80ã\81¤ä»¥ä¸\8aã\81®ã\82¿ã\82¤ã\83\9eã\83¼æº\80äº\86ã\81\8cç\99ºç\94\9fã\81\97ã\81¦ã\81\84ã\82\8cã\81°ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯èªã\81¿å\87ºã\81\97å\8f¯è\83½ã\81¨ã\81ªã\82\8b (\fBselect\fP(2) ã\81® \fIreadfds\fP å¼\95ã\81\8dæ\95°ã\82\84
\fBpoll\fP(2) の \fBPOLLIN\fP フラグ)。
.IP
-ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\80\81ä»\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿多重 API である \fBpselect\fP(2), \fBppoll\fP(2),
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81ä»\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼多重 API である \fBpselect\fP(2), \fBppoll\fP(2),
\fBepoll\fP(7) もサポートしている。
.TP
\fBclose\fP(2)
.\"
-ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきである。 同じ timer
-オブジェクトに関連付けられたファイルディスクリプタが全て クローズされると、そのタイマーは解除され、
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\81\9dã\82\8c以é\99\8dã\81¯å¿\85è¦\81ã\81ªã\81\8fã\81ªã\81£ã\81\9fé\9a\9bã\81«ã\81¯ã\80\81ã\82¯ã\83ã\83¼ã\82ºã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 å\90\8cã\81\98 timer
+ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81«é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\85¨ã\81¦ ã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\82\8bã\81¨ã\80\81ã\81\9dã\81®ã\82¿ã\82¤ã\83\9eã\83¼ã\81¯è§£é\99¤ã\81\95ã\82\8cã\80\81
そのオブジェクト用の資源がカーネルにより解放される。
.SS "fork(2) での扱い"
.\"
-\fBfork\fP(2) が行われると、子プロセスは \fBtimerfd_create\fP() により生成されたファイルディスクリプタのコピーを
-ç¶\99æ\89¿ã\81\99ã\82\8bã\80\82ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\80\81親ã\83\97ã\83ã\82»ã\82¹ã\81®å¯¾å¿\9cã\81\99ã\82\8b ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿と同じタイマーオブジェクトを参照しており、 子プロセスの
+\fBfork\fP(2) ã\81\8cè¡\8cã\82\8fã\82\8cã\82\8bã\81¨ã\80\81å\90ã\83\97ã\83ã\82»ã\82¹ã\81¯ \fBtimerfd_create\fP() ã\81«ã\82\88ã\82\8aç\94\9fæ\88\90ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\82³ã\83\94ã\83¼ã\82\92
+ç¶\99æ\89¿ã\81\99ã\82\8bã\80\82ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81親ã\83\97ã\83ã\82»ã\82¹ã\81®å¯¾å¿\9cã\81\99ã\82\8b ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼と同じタイマーオブジェクトを参照しており、 子プロセスの
\fBread\fP(2) でも同じタイマーの満了に関する情報が返される。
.SS "execve(2) での扱い"
-\fBexecve\fP(2) の前後で \fBtimerfd_create\fP() により生成されたファイルディスクリプタは保持され、
+\fBexecve\fP(2) ã\81®å\89\8då¾\8cã\81§ \fBtimerfd_create\fP() ã\81«ã\82\88ã\82\8aç\94\9fæ\88\90ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ä¿\9dæ\8c\81ã\81\95ã\82\8cã\80\81
タイマーが開始されていた場合にはタイマーの満了が発生し続ける。
.SH 返り値
-成功すると、 \fBtimerfd_create\fP() は新しいファイルディスクリプタを返す。 エラーの場合、\-1 を返し、 \fIerrno\fP
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 \fBtimerfd_create\fP() ã\81¯æ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81\-1 ã\82\92è¿\94ã\81\97ã\80\81 \fIerrno\fP
にエラーを示す値を設定する。
\fBtimerfd_settime\fP() と \fBtimerfd_gettime\fP() は成功すると 0 を返す。 エラーの場合、\-1 を返し、
\fIflags\fP が無効である。もしくは、Linux 2.6.26 以前の場合には \fIflags\fP が 0 以外である。
.TP
\fBEMFILE\fP
-オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。
+ã\82ªã\83¼ã\83\97ã\83³æ¸\88ã\81¿ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\95°ã\81\8cã\83\97ã\83ã\82»ã\82¹ã\81\82ã\81\9fã\82\8aã\81®ä¸\8aé\99\90ã\81« é\81\94ã\81\97ã\81¦ã\81\84ã\81\9fã\80\82
.TP
\fBENFILE\fP
オープン済みのファイル総数がシステム全体の上限に達していた。
(カーネル内の) 無名 inode デバイスをマウントできなかった。
.TP
\fBENOMEM\fP
-タイマーを作成するのに十分なカーネルメモリがなかった。
+ã\82¿ã\82¤ã\83\9eã\83¼ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82
.PP
\fBtimerfd_settime\fP() と \fBtimerfd_gettime\fP() は以下のエラーで失敗する可能性がある。
.TP
\fBEBADF\fP
-\fIfd\fP が有効なファイルディスクリプタでない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEFAULT\fP
-\fInew_value\fP, \fIold_value\fP, \fIcurr_value\fP が有効なポインタではない。
+\fInew_value\fP, \fIold_value\fP, \fIcurr_value\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
-\fIfd\fP が有効な timerfd ファイルディスクリプタでない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ª timerfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.PP
\fBtimerfd_settime\fP() は以下のエラーで失敗することもある。
.TP
.\" http://marc.info/?l=linux-kernel&m=119447727031225&w=2
.\" "compat_sys_times() bogus until jiffies >= 0"
.\" November 2007
-いくつかのアーキテクチャ (特に i386) における Linux のシステムコールの慣習の
+いくつかのアーキテクチャー (特に i386) における Linux のシステムコールの慣習の
制限により、Linux 2.6 では起動直後は (41秒と) タイムウィンドウが小さく、
\fBtimes\fP() がエラーが起こったことを示す \-1 を間違って返すことがある。 返り値
が \fIclock_t\fP が格納可能な最大値を超過した際にも同じ問題が起こり得る。
\fI注\fP: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を参照。
.SH 説明
-\fBtgkill\fP() ã\81¯ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97 \fItgid\fP ã\81«å±\9eã\81\99ã\82\8bã\82¹ã\83¬ã\83\83ã\83\89 ID ã\81\8c \fItid\fP ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81«ã\82·ã\82°ã\83\8aã\83« \fIsig\fP ã\82\92é\80\81ã\82\8bã\80\82
-(ã\81\93ã\82\8cã\81«å¯¾ã\81\97ã\80\81 \fBkill\fP(2) ã\81¯ä¸\80ã\81¤ã\81®ã\83\97ã\83ã\82»ã\82¹ (ã\81\99ã\81ªã\82\8fã\81¡ã\80\81ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97) ã\81«ã\81¾ã\81¨ã\82\81ã\81¦ã\82·ã\82°ã\83\8aã\83«ã\82\92 é\80\81ã\82\8bã\81®ã\81«ã\81 ã\81\91å\88©ç\94¨ã\81§ã\81\8dã\82\8bã\80\82
+\fBtgkill\fP() はスレッドグループ \fItgid\fP に属するスレッド ID が \fItid\fP のスレッドにシグナル \fIsig\fP を送る。
+(これに対し、 \fBkill\fP(2) は一つのプロセス (すなわち、スレッドグループ) にまとめてシグナルを 送るのにだけ利用できる。
\fBkill\fP(2) で送信されたシグナルはプロセス内の任意のスレッドに配送される。)
.\" FIXME Maybe say something about the following:
しか指定できない。 そのため、スレッドが終了して、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送られる可能性がある。
このシステムコールの使用は避けること。
-ã\81\93ã\82\8cã\82\89ã\81¯ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¸ã\81®ç\9b´æ\8e¥ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81§ã\81\82ã\82\8aã\80\81 ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\83©ã\82¤ã\83\96ã\83©ã\83ªå\86\85é\83¨ã\81§ã\81®ä½¿ç\94¨ã\82\92æ\84\8få\9b³ã\81\97ã\81\9fã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82
+これらはシステムコールへの直接のインターフェースであり、 スレッドライブラリ内部での使用を意図したものである。
.SH 返り値
成功した場合、0 が返される。エラーが発生した場合、\-1 が返され、 \fIerrno\fP が適切に設定される。
.SH エラー
許可がなかった。どのような許可が必要かについては、 \fBkill\fP(2) を参照のこと。
.TP
\fBESRCH\fP
-æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¹ã\83¬ã\83\83ã\83\89ID (ã\81¨ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ID) ã\82\92æ\8c\81ã\81¤ã\83\97ã\83ã\82»ã\82¹ã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\84ã\80\82
+指定されたスレッドID (とスレッドグループID) を持つプロセスが存在しない。
.SH バージョン
\fBtkill\fP() は Linux 2.4.19 / 2.5.4 以降でサポートされ、 \fBtgkill\fP() は Linux 2.5.75
で追加された。
.SH 準拠
\fBtkill\fP() と \fBtgkill\fP() は Linux 固有であり、 移植を想定したプログラムでは使用すべきではない。
.SH 注意
-ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81®èª¬æ\98\8eã\81«ã\81¤ã\81\84ã\81¦ã\81¯ \fBclone\fP(2) ã\81® \fBCLONE_THREAD\fP ã\81®èª¬æ\98\8eã\82\92å\8f\82ç\85§ã\81®ã\81\93ã\81¨ã\80\82
+スレッドグループの説明については \fBclone\fP(2) の \fBCLONE_THREAD\fP の説明を参照のこと。
glibc はこれらのシステムコールに対するラッパー関数を提供していない。 \fBsyscall\fP(2) を使って呼び出すこと。
.SH 関連項目
引き数 \fIlength\fP が最大ファイルサイズより大きい。(XSI)
.TP
\fBEINTR\fP
-完了待ちで停止 (block) している間に、呼び出しが シグナルハンドラにより割り込まれた。 \fBfcntl\fP(2) と \fBsignal\fP(7)
+å®\8cäº\86å¾\85ã\81¡ã\81§å\81\9cæ¢ (block) ã\81\97ã\81¦ã\81\84ã\82\8bé\96\93ã\81«ã\80\81å\91¼ã\81³å\87ºã\81\97ã\81\8c ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9fã\80\82 \fBfcntl\fP(2) ã\81¨ \fBsignal\fP(7)
を参照。
.TP
\fBEINVAL\fP
glibc のラッパー関数は新しいシステムコールが利用できる場合にはそれらを利用する
ようになっているからである。
-いくつかの 32 ビットアーキテクチャでは、これらのシステムコールの呼び出し時のシグネチャーが違っています。理由は \fBsyscall\fP(2)
+ã\81\84ã\81\8fã\81¤ã\81\8bã\81® 32 ã\83\93ã\83\83ã\83\88ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®å\91¼ã\81³å\87ºã\81\97æ\99\82ã\81®ã\82·ã\82°ã\83\8dã\83\81ã\83£ã\83¼ã\81\8cé\81\95ã\81£ã\81¦ã\81\84ã\81¾ã\81\99ã\80\82ç\90\86ç\94±ã\81¯ \fBsyscall\fP(2)
で説明されている通りです。
.SH バグ
.\" http://sourceware.org/bugzilla/show_bug.cgi?id=12037
-glibc 2.12 のヘッダファイルにはバグがあり、 \fBftruncate\fP() の宣言を公開するのに必要な \fB_POSIX_C_SOURCE\fP
-の最小値が 200112L ではなく 200809L となっていた。 このバグは、これ以降のバージョンの glibc では修正されている。
+glibc 2.12 のヘッダーファイルにはバグがあり、 \fBftruncate\fP() の宣言を公開するのに必要な
+\fB_POSIX_C_SOURCE\fP の最小値が 200112L ではなく 200809L となっていた。 このバグは、これ以降のバージョンの
+glibc では修正されている。
.SH 関連項目
\fBopen\fP(2), \fBstat\fP(2), \fBpath_resolution\fP(7)
.SH この文書について
.\" Later added to 2.6.33-stable
\fItarget\fP がシンボリックリンクの場合に、シンボリックリンクの展開を行わない。
このフラグを使うと、 \fIroot\fP に set\-user\-ID されたプログラムにおいて、
-非特権ユーザがファイルシステムのアンマウントをできてしまうという
+é\9d\9eç\89¹æ¨©ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\82¢ã\83³ã\83\9eã\82¦ã\83³ã\83\88ã\82\92ã\81§ã\81\8dã\81¦ã\81\97ã\81¾ã\81\86ã\81¨ã\81\84ã\81\86
セキュリティ問題を回避することができる。
.SH 返り値
成功した場合、0 が返される。 失敗した場合、 \-1 が返され、 \fIerrno\fP に適切な値がセットされる。
使用中 (busy) のため、 \fItarget\fP をアンマウントできなかった。
.TP
\fBEFAULT\fP
-\fItarget\fP がユーザアドレス空間の外を指している。
+\fItarget\fP ã\81\8cã\83¦ã\83¼ã\82¶ã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81®å¤\96ã\82\92æ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fBEINVAL\fP
\fItarget\fP がマウントポイントではない。
\fBftime\fP(3), \fBprofil\fP(3), \fBulimit\fP(3) はライブラリ関数として実装されていることに注意すること。
\fBalloc_hugepages\fP(2), \fBfree_hugepages\fP(2), \fBioperm\fP(2), \fBiopl\fP(2),
-\fBvm86\fP(2) のようなシステムコールは特定のアーキテクチャにのみ存在する。
+\fBvm86\fP(2) ã\81®ã\82\88ã\81\86ã\81ªã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ç\89¹å®\9aã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\81®ã\81¿å\98å\9c¨ã\81\99ã\82\8bã\80\82
\fBipc\fP(2), \fBcreate_module\fP(2), \fBinit_module\fP(2), \fBdelete_module\fP(2)
のようなシステムコールは Linux カーネルがそれらをサポートするよう に構築されている場合にのみ存在する。
どのプロセスもそのファイルをオープン (open) していなければ、 ファイルは削除される。
ファイルが使用していたディスク上の領域は再利用が可能になる。
-名前がファイルへの最後のリンクであっても、どこかのプロセスが そのファイルを開いているなら、ファイルの最後のファイル記述子 (file
+名前がファイルへの最後のリンクであっても、どこかのプロセスが そのファイルを開いているなら、ファイルの最後のファイルディスクリプター (file
descriptor) が閉じられるまでファイルは存在し続ける。
名前が指しているのがシンボリックリンクなら、そのリンクを削除する。
では以下のエラーも発生する。
.TP
\fBEBADF\fP
-\fIdirfd\fP が有効なファイルディスクリプタではない。
+\fIdirfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
無効なフラグ値が \fIflags\fP に指定された。
\fIpathname\fP がディレクトリを参照していて、 \fIflags\fP に \fBAT_REMOVEDIR\fP がされていなかった。
.TP
\fBENOTDIR\fP
-\fIpathname\fP が相対パスで、 \fIdirfd\fP がディレクトリ以外のファイルを参照しているファイルディスクリプタである。
+\fIpathname\fP ã\81\8cç\9b¸å¯¾ã\83\91ã\82¹ã\81§ã\80\81 \fIdirfd\fP ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä»¥å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH バージョン
\fBunlinkat\fP() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポートはバージョン 2.4 で glibc
に追加された。
.SH 説明
\fBunshare\fP() を使うと、プロセスは他のプロセスと現在共有している 実行コンテキストの一部を分離することができる。
実行コンテキストの一部、たとえばマウント名前空間 (mount namespace) などは、新しいプロセスを \fBfork\fP(2) または
-\fBvfork\fP(2) を使って生成したときに、暗黙のうちに共有される。 一方、仮想メモリなどは、 \fBclone\fP(2)
+\fBvfork\fP(2) ã\82\92使ã\81£ã\81¦ç\94\9fæ\88\90ã\81\97ã\81\9fã\81¨ã\81\8dã\81«ã\80\81æ\9a\97é»\99ã\81®ã\81\86ã\81¡ã\81«å\85±æ\9c\89ã\81\95ã\82\8cã\82\8bã\80\82 ä¸\80æ\96¹ã\80\81ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\81ªã\81©ã\81¯ã\80\81 \fBclone\fP(2)
を使ってプロセスを生成するときに、明示的に共有することを要求できる。
\fBunshare\fP() の主な利用法は、プロセスが新しいプロセスを生成することなく、 共有実行コンテキストを制御することである。
で指定する:
.TP
\fBCLONE_FILES\fP
-\fBclone\fP(2) \fBCLONE_FILES\fP フラグの効果を取り消す。 ファイルディスクリプタテーブルを共有させず、
-呼び出し元プロセスは他のプロセスとファイルディスクリプタを共有しなくなる。
+\fBclone\fP(2) \fBCLONE_FILES\fP ã\83\95ã\83©ã\82°ã\81®å\8a¹æ\9e\9cã\82\92å\8f\96ã\82\8aæ¶\88ã\81\99ã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\82\92å\85±æ\9c\89ã\81\95ã\81\9bã\81\9aã\80\81
+å\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83ã\82»ã\82¹ã\81¯ä»\96ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¨ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\85±æ\9c\89ã\81\97ã\81ªã\81\8fã\81ªã\82\8bã\80\82
.TP
\fBCLONE_FS\fP
\fBclone\fP(2) \fBCLONE_FS\fP フラグの効果を取り消す。ファイルシステム属性を共有させず、呼び出し元プロセスは、ルートディレクトリ
呼び出したプロセスはマルチスレッドである。
.TP
\fBENOMEM\fP
-呼び出し元のコンテキストのうち共有を解除する必要がある部分をコピーするために、 十分なメモリが確保できなかった。
+å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81®ã\81\86ã\81¡å\85±æ\9c\89ã\82\92解é\99¤ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bé\83¨å\88\86ã\82\92ã\82³ã\83\94ã\83¼ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\80\81 å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8c確ä¿\9dã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBEPERM\fP
呼び出し元プロセスはこの操作を行うのに必要な特権を持っていなかった。
\fItimes\fP が \fBNULL\fP の場合、ファイルのアクセス時刻と修正時刻は現在の時刻に設定される。
-タイムスタンプの変更は以下のいずれかの場合に許可される。 プロセスに適切な特権がある場合、 実効 (effective) ユーザ ID
-がファイルのユーザ ID と等しい場合、 \fItimes\fP が NULL かつ、プロセスがファイルへの書き込み許可を持っている場合。
+タイムスタンプの変更は以下のいずれかの場合に許可される。 プロセスに適切な特権がある場合、 実効 (effective) ユーザー ID
+がファイルのユーザー ID と等しい場合、 \fItimes\fP が NULL かつ、プロセスがファイルへの書き込み許可を持っている場合。
構造体 \fIutimbuf\fP は以下に示すようになっている。
\fIpath\fP を構成する何れかのディレクトリに検索許可がない (\fBpath_resolution\fP(7) も参照すること)。
.TP
\fBEACCES\fP
-\fItimes\fP が NULL である。 または、呼び出し元の実効ユーザ ID がファイルの所有者と一致しない。
+\fItimes\fP が NULL である。 または、呼び出し元の実効ユーザー ID がファイルの所有者と一致しない。
または、呼び出し元がそのファイルへの書き込み許可を持たず、 特権も持っていない (Linux の場合、ケーパビリティ
\fBCAP_DAC_OVERRIDE\fP も \fBCAP_FOWNER\fP も持っていない)。または、
.TP
\fBexecve\fP(2) をコールするまで呼び出し元のスレッドを停止 (suspend) させる。
子プロセスの終了は、\fB_exit\fP(2) の呼び出しによる通常終了、致命的なシグナルの
配送後の異常終了の二つのケースがある。
-この時点までは、子プロセスはスタックを含む全てのメモリを親プロセスと共有する。
+ã\81\93ã\81®æ\99\82ç\82¹ã\81¾ã\81§ã\81¯ã\80\81å\90ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\82¹ã\82¿ã\83\83ã\82¯ã\82\92å\90«ã\82\80å\85¨ã\81¦ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92親ã\83\97ã\83ã\82»ã\82¹ã\81¨å\85±æ\9c\89ã\81\99ã\82\8bã\80\82
子プロセスは現在の関数から return してはならず、
\fBexit\fP(3) もコールしてはならないが、\fB_exit\fP(2) ならばコールしてもよい。
\fBfork\fP(2) と同様に、 \fBvfork\fP() で作成された子プロセスは、
-(ファイルディスクリプタ、シグナル配送定義、カレントワーキングディレクトリなどの)
+(ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\80\81ã\82·ã\82°ã\83\8aã\83«é\85\8dé\80\81å®\9a義ã\80\81ã\82«ã\83¬ã\83³ã\83\88ã\83¯ã\83¼ã\82ã\83³ã\82°ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81ªã\81©ã\81®)
呼び出し元のプロセスの各種の属性を継承する。
\fBvfork\fP() では、上で説明した仮想アドレス空間の扱いだけが異なる。
-親プロセスへ送られたシグナルは、子プロセスが親プロセスのメモリを解放した後
+親ã\83\97ã\83ã\82»ã\82¹ã\81¸é\80\81ã\82\89ã\82\8cã\81\9fã\82·ã\82°ã\83\8aã\83«ã\81¯ã\80\81å\90ã\83\97ã\83ã\82»ã\82¹ã\81\8c親ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92解æ\94¾ã\81\97ã\81\9få¾\8c
(すなわち、子プロセスが終了するか \fBexecve\fP(2) を呼んだ後) に到着する。
.SS 歴史的な説明
Linux において \fBfork\fP(2) は書き込み時コピー (copy\-on\-write) ページを使用して実装されている。 そのため
-\fBfork\fP(2) を使用することによって被る損害は親プロセスのページテーブルを 複製するために必要な時間とメモリだけである。
+\fBfork\fP(2) ã\82\92使ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\81«ã\82\88ã\81£ã\81¦è¢«ã\82\8bæ\90\8d害ã\81¯è¦ªã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\9aã\83¼ã\82¸ã\83\86ã\83¼ã\83\96ã\83«ã\82\92 è¤\87製ã\81\99ã\82\8bã\81\9fã\82\81ã\81«å¿\85è¦\81ã\81ªæ\99\82é\96\93ã\81¨ã\83¡ã\83¢ã\83ªã\83¼ã\81 ã\81\91ã\81§ã\81\82ã\82\8bã\80\82
しかしながら、忌しき昔には \fBfork\fP(2) は呼び出したプロセスのデータ空間の全てのコピーしていたが、
これはしばしば不必要であった。なぜなら、たいていはすぐ後に \fBexec\fP(3) を実行していたからである。 この場合の効率を上げるために BSD は
\fBvfork\fP() システムコールを導入して親プロセスのアドレス空間を完全にコピー するかわりに、 \fBexecve\fP(2) をコールするか
-exit が起きるまで親プロセスのメモリと制御スレッド を借りるようにした。 親プロセスは子プロセスがその資源を使用している間は停止された。
-\fBvfork\fP() は使いにくいものであった: 例えば、親プロセスの変数を変更しな いようにするためにはどの変数がレジスタに保持されているかを知らな
-ければならなかった。
+exit ã\81\8cèµ·ã\81\8dã\82\8bã\81¾ã\81§è¦ªã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81¨å\88¶å¾¡ã\82¹ã\83¬ã\83\83ã\83\89 ã\82\92å\80\9fã\82\8aã\82\8bã\82\88ã\81\86ã\81«ã\81\97ã\81\9fã\80\82 親ã\83\97ã\83ã\82»ã\82¹ã\81¯å\90ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\81\9dã\81®è³\87æº\90ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bé\96\93ã\81¯å\81\9cæ¢ã\81\95ã\82\8cã\81\9fã\80\82
+\fBvfork\fP() は使いにくいものであった: 例えば、親プロセスの変数を変更しな
+ã\81\84ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\81¯ã\81©ã\81®å¤\89æ\95°ã\81\8cã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81«ä¿\9dæ\8c\81ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8bã\82\92ç\9f¥ã\82\89ã\81ª ã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.SH 準拠
4.3BSD; POSIX.1\-2001 (廃止予定とされている)。
POSIX.1\-2008 では \fBvfork\fP() の規定が削除されている。
ているかもしれない。規格が \fBvfork\fP() に要求していることは、 \fBfork\fP(2) に要
求していることよりは弱い。したがって、 両者を同じものとして実装しても、規格に
準拠していることになる。 特にプログラマーは、子プロセスが終了するか
-\fBexecve\fP(2) を呼び出すまで親プロセスが停止していることや、メモリを共有するこ
+\fBexecve\fP(2) ã\82\92å\91¼ã\81³å\87ºã\81\99ã\81¾ã\81§è¦ªã\83\97ã\83ã\82»ã\82¹ã\81\8cå\81\9cæ¢ã\81\97ã\81¦ã\81\84ã\82\8bã\81\93ã\81¨ã\82\84ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\81\93
とによる特殊な動作をあてにすべきではない。
.SH 注意
.PP
\fBvfork\fP() の動作は構造的な欠陥と考える人もいるだろうし、
BSD のマニュアルには、「このシステムコールは妥当なシステム共有機構が実装さ
-ã\82\8cã\81\9få ´å\90\88ã\81«ã\81¯å\89\8aé\99¤ã\81\95ã\82\8cã\82\8bã\80\82ã\83¦ã\83¼ã\82¶ã\81¯ \fBvfork\fP() ã\81®ã\83¡ã\83¢ã\83ª共有機能に依存するべき
+ã\82\8cã\81\9få ´å\90\88ã\81«ã\81¯å\89\8aé\99¤ã\81\95ã\82\8cã\82\8bã\80\82ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ \fBvfork\fP() ã\81®ã\83¡ã\83¢ã\83ªã\83¼共有機能に依存するべき
ではない。何故ならば、このシステムコール が削除された場合には、それは
\fBfork\fP(2) の同義語とされるからである。」と書かれている。しかしながら、
-最近のメモリ管理ハードウェアにより \fBfork\fP(2) と \fBvfork\fP() の間の性能差が
+最近のメモリー管理ハードウェアにより \fBfork\fP(2) と \fBvfork\fP() の間の性能差が
減ったとはいえ、 Linux や他のシステムで \fBvfork\fP() が残されているのには
いくつか理由がある:
.IP * 3
.\" http://stackoverflow.com/questions/4259629/what-is-the-difference-between-fork-and-vfork
.\" http://developers.sun.com/solaris/articles/subprocess/subprocess.html
.\" http://mailman.uclinux.org/pipermail/uclinux-dev/2009-April/000684.html
-\fBvfork\fP() はメモリ管理ユニット (MMU) を持たないシステムでも実装すること
+\fBvfork\fP() はメモリー管理ユニット (MMU) を持たないシステムでも実装すること
ができるが、そのようなシステムで \fBfork\fP(2) を実装することはできない。
(POSIX.1\-2008 では \fBvfork\fP() が標準から削除された。
\fBposix_spawn\fP(3) 関数の POSIX の原理 (rationale) には、
\fBfork\fP(2)+\fBexec\fP(3) と等価な機能を提供する \fBposix_spawn\fP(3) は、
MMU を持たないシステムでも実装できるように設計されたとの注記がある。)
.SS "Linux での注意"
-\fBpthread_atfork\fP(3) を使って設定された fork ハンドラは NPTL
+\fBpthread_atfork\fP(3) ã\82\92使ã\81£ã\81¦è¨å®\9aã\81\95ã\82\8cã\81\9f fork ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯ NPTL
スレッドライブラリコールを採用したマルチスレッドプログラムでは 呼び出されない。一方、LinuxThreads スレッドライブラリを使った
-プログラムでは、fork ハンドラは呼び出される。 (Linux のスレッドライブラリの説明は \fBpthreads\fP(7) を参照。)
+ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\81¯ã\80\81fork ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯å\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\80\82 (Linux ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81®èª¬æ\98\8eã\81¯ \fBpthreads\fP(7) ã\82\92å\8f\82ç\85§ã\80\82)
\fBvfork\fP() の呼び出しは、以下の \fIflags\fP を指定して \fBclone\fP(2) を呼び出す
のと等価である。
.UE
を参照。
Linux では 2.2.0\-pre6 あたりまでは \fBfork\fP(2) と等価であった。(i386 では) 2.2.0\-pre9 から
-(他のアーキテクチャでは 少し遅れて) 独立したシステムコールとなった。 glibc でのサポートは glibc\-2.0.112 で追加された。
+(ä»\96ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ å°\91ã\81\97é\81\85ã\82\8cã\81¦) ç\8b¬ç«\8bã\81\97ã\81\9fã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¨ã\81ªã\81£ã\81\9fã\80\82 glibc ã\81§ã\81®ã\82µã\83\9dã\83¼ã\83\88ã\81¯ glibc\-2.0.112 ã\81§è¿½å\8a ã\81\95ã\82\8cã\81\9fã\80\82
.SH バグ
.PP
.\"
この返り値は i386 固有のものであり、 ユーザー空間のデータを取得する際に問題があったことを示す。
.TP
\fBENOSYS\fP
-この返り値は、このコールが現在のアーキテクチャで実装されていないことを示す。
+ã\81\93ã\81®è¿\94ã\82\8aå\80¤ã\81¯ã\80\81ã\81\93ã\81®ã\82³ã\83¼ã\83«ã\81\8cç\8f¾å\9c¨ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§å®\9fè£\85ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82
.TP
\fBEPERM\fP
保存されたカーネルスタックが既に存在している。(これはカーネルが通常の 状態であるかをチェックしている。保存されたスタックは vm86 モードで
.\"
.TH VMSPLICE 2 2014\-10\-02 Linux "Linux Programmer's Manual"
.SH 名前
-vmsplice \- ã\83¦ã\83¼ã\82¶ã\83»ページをパイプに継ぎ合わせる
+vmsplice \- ã\83¦ã\83¼ã\82¶ã\83¼ページをパイプに継ぎ合わせる
.SH 書式
.nf
\fB#define _GNU_SOURCE\fP /* feature_test_macros(7) 参照 */
.\" the kernel-space one (contrast this to "write()", which copies
.\" the actual data, and you can thus reuse the buffer immediately
.\" after a successful write), but that is often easy to do.
-\fBvmsplice\fP() ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\80\81 \fIiov\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83¦ã\83¼ã\82¶ã\83»ã\83¡ã\83¢ã\83ªの \fInr_segs\fP の範囲をパイプにマッピングする。
+\fBvmsplice\fP() ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ã\80\81 \fIiov\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83¦ã\83¼ã\82¶ã\83¼ã\83¡ã\83¢ã\83ªã\83¼の \fInr_segs\fP の範囲をパイプにマッピングする。
\fIfd\fP はパイプを参照していなければならない。
-ポインタ \fIiov\fP は \fIiovec\fP 構造体の配列を指す。 \fIiovec\fP 構造体は \fI<sys/uio.h>\fP
+ポインター \fIiov\fP は \fIiovec\fP 構造体の配列を指す。 \fIiovec\fP 構造体は \fI<sys/uio.h>\fP
で以下のように定義されている:
.in +4n
.\" commit bd1a68b59c8e3bce45fb76632c64e1e063c3962d
.\"
.\" .... if we expect to later SPLICE_F_MOVE to the cache.
-ã\83¦ã\83¼ã\82¶ã\83»ã\83\9aã\83¼ã\82¸ã\81\8cã\82«ã\83¼ã\83\8dã\83«ã\81¸æ¸¡ã\81\99ã\82\82ã\81® (gift) ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82 ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81¯ã\81\93ã\81®ã\83¡ã\83¢ã\83ªを絶対に変更してはならない。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\83\9aã\83¼ã\82¸ã\81\8cã\82«ã\83¼ã\83\8dã\83«ã\81¸æ¸¡ã\81\99ã\82\82ã\81® (gift) ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82 ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81¯ã\81\93ã\81®ã\83¡ã\83¢ã\83ªã\83¼を絶対に変更してはならない。
さもなければ、ページキャッシュとディスク上のデータは 一致しなくなるだろう。 ページをカーネルに渡すと、この次の \fBsplice\fP(2)
\fBSPLICE_F_MOVE\fP でそのページの移動を行うことができる。 このフラグが指定されなかった場合、この次の \fBsplice\fP(2)
-\fBSPLICE_F_MOVE\fP でそのページのコピーを行わなければならない。 データはメモリ上でページ境界にあっていなければならず、
+\fBSPLICE_F_MOVE\fP でそのページのコピーを行わなければならない。 データはメモリー上でページ境界にあっていなければならず、
長さもページ境界の倍数でなければならない。
.SH 返り値
成功して完了すると、 \fBvmsplice\fP() はパイプに転送したバイト数を返す。 エラーの場合、 \fBvmplice\fP() は \-1 を返し、
\fIfd\fP が有効でない、もしくはパイプを参照していない。
.TP
\fBEINVAL\fP
-\fInr_segs\fP が \fBIOV_MAX\fP よりも大きい。または \fBSPLICE_F_GIFT\fP が設定されたがメモリがページ境界にあっていない。
+\fInr_segs\fP が \fBIOV_MAX\fP よりも大きい。または \fBSPLICE_F_GIFT\fP
+が設定されたがメモリーがページ境界にあっていない。
.TP
\fBENOMEM\fP
-メモリ不足。
+メモリー不足。
.SH バージョン
\fBvmsplice\fP() システムコールは Linux 2.6.17 で初めて登場した。
ライブラリによるサポートは glibc バージョン 2.5 で追加された。
が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続ける (下記の注意の章を参照のこと)。
子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰する。それ以外の場合は、子プロセスの状態変化が起こるか、
-シグナルハンドラによりシステムコールが中断されるまで、 停止 (block) する (後者は、 \fBsigaction\fP(2) の
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8cä¸æ\96ã\81\95ã\82\8cã\82\8bã\81¾ã\81§ã\80\81 å\81\9cæ¢ (block) ã\81\99ã\82\8b (å¾\8cè\80\85ã\81¯ã\80\81 \fBsigaction\fP(2) ã\81®
\fBSA_RESTART\fP フラグによりシステムコールが自動的に再スタートするようになっていない 場合の動作である)。
以下の説明では、状態変化が起こったがこれらのシステムコールのいずれかに よって待たれていない子プロセスを \fIwaitable\fP (待ち可能) と呼ぶ。
.SS "wait() と waitpid()"
.PP
\fIstatus\fP が NULL でなければ、 \fBwait\fP() や \fBwaitpid\fP() は \fIstatus\fP で指す \fIint\fP
に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 (これらのマクロの引き数には、 \fBwait\fP() や \fBwaitpid\fP()
-が書き込んだ整数そのものを指定する。ポインタではない!)
+ã\81\8cæ\9b¸ã\81\8dè¾¼ã\82\93ã\81 æ\95´æ\95°ã\81\9dã\81®ã\82\82ã\81®ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84!)
.TP
\fBWIFEXITED(\fP\fIstatus\fP\fB)\fP
子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 \fBexit\fP(3) か \fB_exit\fP(2) が呼び出された場合、もしくは
子プロセスのプロセスID。
.TP
\fIsi_uid\fP
-子プロセスの実ユーザID (このフィールドは他のほとんどの実装では設定されない)。
+子プロセスの実ユーザーID (このフィールドは他のほとんどの実装では設定されない)。
.TP
\fIsi_signo\fP
常に \fBSIGCHLD\fP が設定される。
.TP
\fIsi_code\fP
以下のいずれかが設定される: \fBCLD_EXITED\fP (子プロセスが \fB_exit\fP(2) を呼び出した); \fBCLD_KILLED\fP
-(ã\82·ã\82°ã\83\8aã\83«ã\81«ã\82\88ã\82\8aå\90ã\83\97ã\83ã\82»ã\82¹ã\81\8c kill ã\81\95ã\82\8cã\81\9f); \fBCLD_DUMPED\fP (ã\82·ã\82°ã\83\8aã\83«ã\81«ã\82\88ã\82\8aå\90ã\83\97ã\83ã\82»ã\82¹ã\81\8c kill ã\81\95ã\82\8cã\80\81ã\82³ã\82¢ã\83»ã\83\80ã\83³ã\83\97ã\81\8cè¡\8cã\82\8fã\82\8cã\81\9f);
+(シグナルにより子プロセスが kill された); \fBCLD_DUMPED\fP (シグナルにより子プロセスが kill され、コアダンプが行われた);
\fBCLD_STOPPED\fP (シグナルにより子プロセスが停止した); \fBCLD_TRAPPED\fP
(トレースされていた子プロセスがトラップを受信した); \fBCLD_CONTINUED\fP (\fBSIGCONT\fP により子プロセスが再開された)。
.PP
.SH 注意
終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが wait を実行して子プロセスについての情報を取得できるように、
カーネルはゾンビプロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持する。 ゾンビプロセスは、 wait
-によってシステムから削除されない限り、 カーネルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが
+ã\81«ã\82\88ã\81£ã\81¦ã\82·ã\82¹ã\83\86ã\83 ã\81\8bã\82\89å\89\8aé\99¤ã\81\95ã\82\8cã\81ªã\81\84é\99\90ã\82\8aã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83\97ã\83ã\82»ã\82¹ã\83\86ã\83¼ã\83\96ã\83«ã\81® 1 ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92æ¶\88è²»ã\81\99ã\82\8bã\80\82ã\81\93ã\81®ã\83\97ã\83ã\82»ã\82¹ã\83\86ã\83¼ã\83\96ã\83«ã\81\8c
一杯になると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その親プロセスの「ゾンビ」の 子プロセスは (もしあれば)
\fBinit\fP(1) の養子となる。 \fBinit\fP(1) は wait を自動的に実行し、ゾンビを削除する。
を参照。
.SH バグ
POSIX.1\-2008 によると、 \fBwaitid\fP() を呼び出すアプリケーションは、 \fIinfop\fP が \fIsiginfo_t\fP
-構造体を指していること (つまり \fIinfop\fP が NULL でないポインタであること) を保証しなければならない。 Linux では、
+æ§\8bé\80 ä½\93ã\82\92æ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\81\93ã\81¨ (ã\81¤ã\81¾ã\82\8a \fIinfop\fP ã\81\8c NULL ã\81§ã\81ªã\81\84ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\81\93ã\81¨) ã\82\92ä¿\9d証ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 Linux ã\81§ã\81¯ã\80\81
\fIinfop\fP が NULL の場合、 \fBwaitid\fP() は成功し、wait している子プロセスのプロセス ID を返す。
アプリケーションは、この食い違った、非標準で、不必要な機能に依存しないようにすべきである。
.SH 例
.\" fork.2 refers to this example program.
以下のプログラムは、 \fBfork\fP(2) と \fBwaitpid\fP() の使用方法の例を示している。 このプログラムでは子プロセスを生成する。
-コマンドライン引き数が指定されなかったときは、 子プロセスは \fBpause\fP(2) を使ってその実行を一時停止し、ユーザがその子プロセスに
+ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³å¼\95ã\81\8dæ\95°ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81ªã\81\8bã\81£ã\81\9fã\81¨ã\81\8dã\81¯ã\80\81 å\90ã\83\97ã\83ã\82»ã\82¹ã\81¯ \fBpause\fP(2) ã\82\92使ã\81£ã\81¦ã\81\9dã\81®å®\9fè¡\8cã\82\92ä¸\80æ\99\82å\81\9cæ¢ã\81\97ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\81\9dã\81®å\90ã\83\97ã\83ã\82»ã\82¹ã\81«
シグナルを送信できるようにする。 コマンドライン引き数が指定された場合は、 子プロセスは直ちに終了し、
コマンドラインで指定された整数を終了ステータスとして使用する。 親プロセスは、 \fBwaitpid\fP() を使って子プロセスを監視し、 wait
のステータス値を上記の W*() マクロを使って解析するという ループを実行する。
.\"
.TH WRITE 2 2015\-01\-22 Linux "Linux Programmer's Manual"
.SH 名前
-write \- ファイルディスクリプタ (file descriptor) に書き込む
+write \- ファイルディスクリプター (file descriptor) に書き込む
.SH 書式
\fB#include <unistd.h>\fP
.sp
\fBssize_t write(int \fP\fIfd\fP\fB, const void *\fP\fIbuf\fP\fB, size_t \fP\fIcount\fP\fB);\fP
.SH 説明
-\fBwrite\fP() ã\81¯ã\80\81 \fIbuf\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\81\8bã\82\89ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ \fIfd\fP が参照するファイルへ、最大 \fIcount\fP
+\fBwrite\fP() ã\81¯ã\80\81 \fIbuf\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8bã\82\89ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ \fIfd\fP が参照するファイルへ、最大 \fIcount\fP
バイトを書き込む。
書き込まれるバイト数は \fIcount\fP よりも小さくなることがある。 例えば、書き込み対象の物理メディアに十分な領域がない場合、 リソース上限
\fBRLIMIT_FSIZE\fP に達した場合 (\fBsetrlimit\fP(2) 参照)、 \fIcount\fP バイト未満の書き込みが行われた後で
-呼び出しがシグナルハンドラにより割り込まれた場合、 などである。 (\fBpipe\fP(7) も参照のこと。)
+å\91¼ã\81³å\87ºã\81\97ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9få ´å\90\88ã\80\81 ã\81ªã\81©ã\81§ã\81\82ã\82\8bã\80\82 (\fBpipe\fP(7) ã\82\82å\8f\82ç\85§ã\81®ã\81\93ã\81¨ã\80\82)
seek 可能なファイル (つまり \fBlseek\fP(2) が適用できるファイル、例えば通常のファイル) では、
書き込みは現在のファイルオフセットから行われ、 ファイルオフセットは実際に書き込みが行われたバイト数分 加算される。ファイルが \fBO_APPEND\fP
.SH エラー
.TP
\fBEAGAIN\fP
-ファイルディスクリプタ \fIfd\fP がソケット以外のファイルを参照していて、 非停止 (nonblocking) モード (\fBO_NONBLOCK\fP)
-に設定されており、書き込みを行うと停止する状況にある。
+ファイルディスクリプター \fIfd\fP がソケット以外のファイルを参照していて、 非停止 (nonblocking) モード
+(\fBO_NONBLOCK\fP) に設定されており、書き込みを行うと停止する状況にある。
.TP
\fBEAGAIN\fP または \fBEWOULDBLOCK\fP
.\" Actually EAGAIN on Linux
-ファイルディスクリプタ \fIfd\fP がソケットを参照していて、非停止 (nonblocking) モード (\fBO_NONBLOCK\fP)
+ファイルディスクリプター \fIfd\fP がソケットを参照していて、非停止 (nonblocking) モード (\fBO_NONBLOCK\fP)
に設定されており、書き込みを行うと停止する状況にある。 POSIX.1\-2001 は、この場合にどちらのエラーを返すことも認めており、 これら 2
つの定数が同じ値を持つことも求めていない。 したがって、移植性が必要なアプリケーションでは、両方の可能性を 確認すべきである。
.TP
\fBEBADF\fP
-\fIfd\fP が有効なファイルディスクリプタでないか書き込みのためにオープン (open) されていない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\81\8bæ\9b¸ã\81\8dè¾¼ã\81¿ã\81®ã\81\9fã\82\81ã\81«ã\82ªã\83¼ã\83\97ã\83³ (open) ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.TP
\fBEDESTADDRREQ\fP
\fIfd\fP が、 \fBconnect\fP(2) を使って通信相手のアドレスが設定されていないデータグラムソケットを 参照している。
.TP
\fBEDQUOT\fP
-\fIfd\fP が参照するファイルを含むファイルシステムのディスクブロックのユーザクォータの上限に達している。
+\fIfd\fP ã\81\8cå\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\90«ã\82\80ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83\96ã\83ã\83\83ã\82¯ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82¯ã\82©ã\83¼ã\82¿ã\81®ä¸\8aé\99\90ã\81«é\81\94ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fBEFAULT\fP
\fIbuf\fP がアクセス可能なアドレス空間の外にある。
実際、データのためのスペースが確保されたことすら保証されないという バグっぽい実装もある。 これを確実にする唯一の方法は、 全てのデータを write
した後に \fBfsync\fP(2) を呼び出すことである。
-\fBwrite\fP() が 1 バイトも書き込まないうちにシグナルハンドラにより割り込まれた場合、 \fBwrite\fP() はエラー \fBEINTR\fP
+\fBwrite\fP() ã\81\8c 1 ã\83\90ã\82¤ã\83\88ã\82\82æ\9b¸ã\81\8dè¾¼ã\81¾ã\81ªã\81\84ã\81\86ã\81¡ã\81«ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9få ´å\90\88ã\80\81 \fBwrite\fP() ã\81¯ã\82¨ã\83©ã\83¼ \fBEINTR\fP
で失敗する。 1バイトでも書き込んだ後で割り込まれた場合には、 \fBwrite\fP() は成功し、書き込んだバイト数を返す。
.SH バグ
POSIX.1\-2008/SUSv4 セクション XSI 2.9.7 ("Thread Interactions with Regular File
.fi
.SH 説明
\fIcpu_set_t\fP データ構造体は CPU 集合を表現している。 CPU 集合は \fBsched_setaffinity\fP(2)
-や同様のインタフェースで使用されている。
+ã\82\84å\90\8cæ§\98ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81§ä½¿ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
\fIcpu_set_t\fP データ型はビット集合として実装されている。 しかし、 データ構造体はその実装を意識せずに扱うものとされており、 CPU
集合のすべての操作は、 このページで説明されているマクロを通して行うべきである。
\fBCPU_EQUAL\fP() と \fBCPU_EQUAL_S\fP() は、 二つの CPU 集合が等しければ 0 以外を返し、 等しくない場合 0
を返す。
-\fBCPU_ALLOC\fP() は成功するとポインタを返し、 失敗すると NULL を返す (エラーは \fBmalloc\fP(3) と同じである)。
+\fBCPU_ALLOC\fP() ã\81¯æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\97ã\80\81 失æ\95\97ã\81\99ã\82\8bã\81¨ NULL ã\82\92è¿\94ã\81\99 (ã\82¨ã\83©ã\83¼ã\81¯ \fBmalloc\fP(3) ã\81¨å\90\8cã\81\98ã\81§ã\81\82ã\82\8b)ã\80\82
\fBCPU_ALLOC_SIZE\fP() は指定された大きさの CPU 集合を格納するのに必要なバイト数を返す。
\fBCPU_CLR_S\fP(), \fBCPU_ISSET_S\fP(), \fBCPU_AND_S\fP(), \fBCPU_OR_S\fP(),
\fBCPU_XOR_S\fP(), \fBCPU_EQUAL_S\fP() は glibc 2.7 で初めて登場した。
.SH 準拠
-これらのインタフェースは Linux 固有である。
+ã\81\93ã\82\8cã\82\89ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ Linux å\9bºæ\9c\89ã\81§ã\81\82ã\82\8bã\80\82
.SH 注意
CPU 集合を複製するには、 \fBmemcpy\fP(3) を使用する。
引き数はバイト単位のサイズである点に注意すること。
「書式」に書かれている引き数と返り値のデータ型は、それぞれの場合でどんな型が期待されるかのヒントである。 しかしながら、
-これらのインタフェースはマクロとして実装されているため、 このヒントを守らなかった場合に、 コンパイラが必ずしも全ての型エラーを捕捉できるとは限らない。
+これらのインターフェースはマクロとして実装されているため、 このヒントを守らなかった場合に、
+コンパイラが必ずしも全ての型エラーを捕捉できるとは限らない。
.SH バグ
.\" http://sourceware.org/bugzilla/show_bug.cgi?id=7029
glibc 2.8 以前の 32 ビットプラットフォームでは、 \fBCPU_ALLOC\fP() は必要な空間の割り当てを二度行い、
\fBCPU_ALLOC_SIZE\fP() は本来あるべき値の二倍の値を返す。 このバグはプログラムの動作には影響を与えないはずだが、
-無駄にメモリを消費し、 動的に割り当てられた CPU 集合に対して操作を行うマクロの動作の効率が下がる結果となる。 これらのバグは glibc 2.9
+ç\84¡é§\84ã\81«ã\83¡ã\83¢ã\83ªã\83¼ã\82\92æ¶\88è²»ã\81\97ã\80\81 å\8b\95ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9f CPU é\9b\86å\90\88ã\81«å¯¾ã\81\97ã\81¦æ\93\8dä½\9cã\82\92è¡\8cã\81\86ã\83\9eã\82¯ã\83ã\81®å\8b\95ä½\9cã\81®å\8a¹ç\8e\87ã\81\8cä¸\8bã\81\8cã\82\8bçµ\90æ\9e\9cã\81¨ã\81ªã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\83\90ã\82°ã\81¯ glibc 2.9
で修正された。
.SH 例
以下のプログラムは、動的に割り当てた CPU 集合に対していくつかのマクロを使用する例を示している。
.\"
.TH __SETFPUCW 3 2012\-12\-31 Linux "Linux Programmer's Manual"
.SH 名前
-__setfpucw \- i386 アーキテクチャにおける FPU のコントロールワードの設定 (obsolete)
+__setfpucw \- i386 ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\81\8aã\81\91ã\82\8b FPU ã\81®ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83«ã\83¯ã\83¼ã\83\89ã\81®è¨å®\9a (obsolete)
.SH 書式
\fB#include <i386/fpu_control.h>\fP
.sp
\fBvoid __setfpucw(unsigned short \fP\fIcontrol_word\fP\fB);\fP
.SH 説明
-\fB__setfpucw\fP() は、i386アーキテクチャにおいて \fIcontrol_word\fP を FPU (floating\-point
-unit) のレジスタに転送する。 これは浮動小数点演算の精度、丸め方、 および浮動小数点例外を制御するのに使われる。
+\fB__setfpucw\fP() ã\81¯ã\80\81i386ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\81\8aã\81\84ã\81¦ \fIcontrol_word\fP ã\82\92 FPU (floating\-point
+unit) ã\81®ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81«è»¢é\80\81ã\81\99ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯æµ®å\8b\95å°\8fæ\95°ç\82¹æ¼\94ç®\97ã\81®ç²¾åº¦ã\80\81丸ã\82\81æ\96¹ã\80\81 ã\81\8aã\82\88ã\81³æµ®å\8b\95å°\8fæ\95°ç\82¹ä¾\8bå¤\96ã\82\92å\88¶å¾¡ã\81\99ã\82\8bã\81®ã\81«ä½¿ã\82\8fã\82\8cã\82\8bã\80\82
.SH 準拠
この関数は非標準で GNU 拡張である。
.SH 注意
.SH 例
\fB__setfpucw(0x1372)\fP
-は、i386アーキテクチャにおける FPU のコントロールワードを、
+ã\81¯ã\80\81i386ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\81\8aã\81\91ã\82\8b FPU ã\81®ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83«ã\83¯ã\83¼ã\83\89ã\82\92ã\80\81
.br
\- 拡張精度
.br
.SH 準拠
POSIX.1\-2001.
.SH 注意
-\fBl64a\fP() ã\81§è¿\94ã\81\95ã\82\8cã\82\8bå\80¤ã\81¯é\9d\99ç\9a\84ã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿かもしれないので、 以降の呼び出しで上書きされる可能性がある。
+\fBl64a\fP() ã\81§è¿\94ã\81\95ã\82\8cã\82\8bå\80¤ã\81¯é\9d\99ç\9a\84ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼かもしれないので、 以降の呼び出しで上書きされる可能性がある。
.LP
\fIvalue\fP が負の場合、 \fBl64a\fP() の動作は定義されていない。 \fIvalue\fP が 0 の場合は空文字列を返す。
.LP
.SH 説明
\fBabort\fP() 関数は、まず \fBSIGABRT\fP の禁止 (block) を解除してから、 (\fBraise\fP(3)
が呼び出されたかのように) 呼び出し元のプロセスに \fBSIGABRT\fP シグナルを上げる。その結果、 \fBSIGABRT\fP シグナルが捕捉
-(caught) ã\81\95ã\82\8cã\81¦å¯¾å¿\9cã\81\99ã\82\8bã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8c è¿\94ã\81£ã\81¦æ\9d¥ã\81ªã\81\84å ´å\90\88以å¤\96ã\81¯ã\80\81ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®ç\95°å¸¸çµ\82äº\86ã\81\8cèµ·ã\81\93ã\82\8b (\fBlongjmp\fP(3) å\8f\82ç\85§)ã\80\82
+(caught) されて対応するシグナルハンドラーが 返って来ない場合以外は、プログラムの異常終了が起こる (\fBlongjmp\fP(3) 参照)。
.PP
\fBabort\fP() 関数によってプロセスの終了が引き起こされたときには、 すべての開いているストリームは閉じられフラッシュされる。
.PP
-\fBSIGABRT\fP ã\82·ã\82°ã\83\8aã\83«ã\81\8cç\84¡è¦\96ã\80\81ã\81¾ã\81\9fã\81¯è¿\94ã\81£ã\81¦æ\9d¥ã\82\8bã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81§ æ\8d\95æ\8d\89ã\81\95ã\82\8cã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81§ã\81\82ã\81£ã\81¦ã\82\82ã\80\81 \fBabort\fP()
+\fBSIGABRT\fP シグナルが無視、または返って来るシグナルハンドラーで 捕捉されるようになっている場合であっても、 \fBabort\fP()
関数はそのプロセスを終了する。 \fBSIGABRT\fP シグナルに対する処理方法をデフォルトに戻してから、再度 \fBSIGABRT\fP
シグナルを上げることで、このような動作になる。
.SH 返り値
\fBllabs\fP() 関数はバージョン 2.0 から glibc に含まれるようになった。 \fBimaxabs\fP() 関数は バージョン 2.1.1
から glibc に含まれるようになった。
.PP
-\fBllabs\fP() が宣言されるためには、標準ヘッダを include する前に \fB_ISOC99_SOURCE\fP か
+\fBllabs\fP() ã\81\8c宣è¨\80ã\81\95ã\82\8cã\82\8bã\81\9fã\82\81ã\81«ã\81¯ã\80\81æ¨\99æº\96ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92 include ã\81\99ã\82\8bå\89\8dã\81« \fB_ISOC99_SOURCE\fP ã\81\8b
\fB_ISOC9X_SOURCE\fP(どちらかは glibc の バージョンに依存する)を define しておく必要がある。
.PP
デフォルトで、GCC は \fBabs\fP(), \fBlabs\fP() および (GCC 3.0 以降では) \fBllabs\fP() と
デフォルトの重大度のどれかを上書きしたり削除したりすることはできない。 重大度の値は負でない数としなければならない。
.SH 返り値
成功した場合、値 \fBMM_OK\fP が返される。 エラーの場合、返り値は \fBMM_NOTOK\fP である。
-起こる可能性があるエラーには、以下のものが含まれる: メモリを使い果たした。 存在しない重大度またはデフォルトの重大度を削除しようとした。
+èµ·ã\81\93ã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\82¨ã\83©ã\83¼ã\81«ã\81¯ã\80\81以ä¸\8bã\81®ã\82\82ã\81®ã\81\8cå\90«ã\81¾ã\82\8cã\82\8b: ã\83¡ã\83¢ã\83ªã\83¼ã\82\92使ã\81\84æ\9e\9cã\81\9fã\81\97ã\81\9fã\80\82 å\98å\9c¨ã\81\97ã\81ªã\81\84é\87\8d大度ã\81¾ã\81\9fã\81¯ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®é\87\8d大度ã\82\92å\89\8aé\99¤ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\80\82
.SH バージョン
\fBaddseverity\fP() はバージョン 2.1 以降の glibc で提供されている。
.SH 準拠
\fBadjtime\fP() の \fIdelta\fP が NULL でない場合、実行中の調整は停止される。
しかし、すでに実行された調整の取り消しは行われない。
-\fIolddelta\fP が NULL でない場合、 \fIolddelta\fP が指すバッファに、過去の調整要求でまだ完了せず残っている時間量が
+\fIolddelta\fP ã\81\8c NULL ã\81§ã\81ªã\81\84å ´å\90\88ã\80\81 \fIolddelta\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\80\81é\81\8eå\8e»ã\81®èª¿æ\95´è¦\81æ±\82ã\81§ã\81¾ã\81 å®\8cäº\86ã\81\9bã\81\9aæ®\8bã\81£ã\81¦ã\81\84ã\82\8bæ\99\82é\96\93é\87\8fã\81\8c
格納して返される。
.SH 返り値
成功すると、 \fBadjtime\fP() は 0 を返す。失敗すると、\-1 を返し、 \fIerrno\fP にエラーを示す値をセットする。
.sp
\fI\-lrt\fP でリンクする。
.SH 説明
-\fBaio_cancel\fP() 関数は、ファイルディスクリプタ \fIfd\fP についての完了して
+\fBaio_cancel\fP() 関数は、ファイルディスクリプター \fIfd\fP についての完了して
いない非同期 I/O リクエストをキャンセルしようとする。 \fIaiocbp\fP が
NULL の場合、そのような全てのリクエストがキャンセルされる。 \fIaiocbp\fP
が NULL でない場合、\fIaiocbp\fP で指された制御ブロックで記述されたリクエ
\fBaio_cancel\fP() は通常の I/O 操作の実行後と同じように終了する。
(この場合、 \fBaio_error\fP(3) はステータス \fBEINPROGRESSS\fP を返す)。
.LP
-\fIaiocbp\fP が NULL でなく、かつ \fIfd\fP が非同期操作が開始されたファイルディスクリプタと異なる場合、 生じる結果は不定である。
+\fIaiocbp\fP ã\81\8c NULL ã\81§ã\81ªã\81\8fã\80\81ã\81\8bã\81¤ \fIfd\fP ã\81\8cé\9d\9eå\90\8cæ\9c\9fæ\93\8dä½\9cã\81\8cé\96\8bå§\8bã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¨ç\95°ã\81ªã\82\8bå ´å\90\88ã\80\81 ç\94\9fã\81\98ã\82\8bçµ\90æ\9e\9cã\81¯ä¸\8då®\9aã\81§ã\81\82ã\82\8bã\80\82
.LP
.\" FreeBSD: not those on raw disk devices.
どの操作をキャンセルできるかは、実装定義である。
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP が有効なファイルディスクリプタでない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBENOSYS\fP
\fBaio_cancel\fP() は実装されていない。
リソースが足りない。
.TP
\fBEBADF\fP
-\fIaio_fildes\fP が書き込みのためにオープンされた有効なファイルディスクリプタではない。
+\fIaio_fildes\fP ã\81\8cæ\9b¸ã\81\8dè¾¼ã\81¿ã\81®ã\81\9fã\82\81ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
このファイルでは同期 I/O がサポートされていない。
てもよいが、この関数が効果を持つには、POSIX AIO API の他の関数を利用する前に
呼び出さなければならない。
-チューニングの情報は、引き数 \fIinit\fP が指すバッファで与える。
-このバッファは以下の形式の構造体である。
+ã\83\81ã\83¥ã\83¼ã\83\8bã\83³ã\82°ã\81®æ\83\85å ±ã\81¯ã\80\81å¼\95ã\81\8dæ\95° \fIinit\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§ä¸\8eã\81\88ã\82\8bã\80\82
+ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯ä»¥ä¸\8bã\81®å½¢å¼\8fã\81®æ§\8bé\80 ä½\93ã\81§ã\81\82ã\82\8bã\80\82
.PP
.in +4n
.nf
.sp
\fI\-lrt\fP でリンクする。
.SH 説明
-\fBaio_read\fP() 関数は、\fIaiocbp\fP が指すバッファに記載された I/O リクエストを
+\fBaio_read\fP() é\96¢æ\95°ã\81¯ã\80\81\fIaiocbp\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«è¨\98è¼\89ã\81\95ã\82\8cã\81\9f I/O ã\83ªã\82¯ã\82¨ã\82¹ã\83\88ã\82\92
キューに入れる。この関数は \fBread\fP(2) の非同期版である。
呼び出し
リソースが足りない。
.TP
\fBEBADF\fP
-\fIaio_fildes\fP は読み込みのためにオープンされた有効なファイルディスクリプタでない。
+\fIaio_fildes\fP ã\81¯èªã\81¿è¾¼ã\81¿ã\81®ã\81\9fã\82\81ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fIaio_offset\fP, \fIaio_reqprio\fP, \fIaio_nbytes\fP のうち 1 つ以上が無効である。
.SH 注意
.\" or the control block of the operation
使用する前に制御ブロックを 0 にしておくのは、よい考えである。 この制御ブロックは、読み込み操作が進行している間は変更すべきでない。
-読み込まれるバッファ領域は 操作の最中にアクセスすべきではない。 さもないと起こる結果が不定になる。
-これに含まれるメモリ領域は、有効なままにしなければならない。
+読み込まれるバッファー領域は 操作の最中にアクセスすべきではない。 さもないと起こる結果が不定になる。
+これに含まれるメモリー領域は、有効なままにしなければならない。
同じ \fIaiocb\fP 構造体を指定して同時に複数の I/O 操作を行った場合、
どのような結果になるかは不定である。
\fInitems\fP 引き数は \fIaiocb_list\fP の要素数を指定する。
\fIaiocb_list\fP が指すリストの各要素は、NULL (これは無視される) か、
\fBaio_read\fP(3), \fBaio_write\fP(3), \fBlio_listio\fP(3) を使って I/O が開始された
-制御ブロックへのポインタでなければならない。
+å\88¶å¾¡ã\83\96ã\83ã\83\83ã\82¯ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
(\fIaiocb\fP 構造体の説明は \fBaio\fP(7) を参照)
.LP
\fBCLOCK_MONOTONIC\fP がサポートされる場合、 このクロックを使ってタイムアウトの
.sp
\fI\-lrt\fP でリンクする。
.SH 説明
-\fBaio_write\fP() 関数は、\fIaiocbp\fP が指すバッファに記載された I/O リクエストをキューに入れる。この関数は
+\fBaio_write\fP() é\96¢æ\95°ã\81¯ã\80\81\fIaiocbp\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«è¨\98è¼\89ã\81\95ã\82\8cã\81\9f I/O ã\83ªã\82¯ã\82¨ã\82¹ã\83\88ã\82\92ã\82ã\83¥ã\83¼ã\81«å\85¥ã\82\8cã\82\8bã\80\82ã\81\93ã\81®é\96¢æ\95°ã\81¯
\fBwrite\fP(2) の非同期版である。
呼び出し
リソースが足りない。
.TP
\fBEBADF\fP
-\fIaio_fildes\fP が書き込みのためにオープンされた有効なファイルディスクリプタではない。
+\fIaio_fildes\fP ã\81\8cæ\9b¸ã\81\8dè¾¼ã\81¿ã\81®ã\81\9fã\82\81ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEFBIG\fP
ファイルは通常のファイルであり、少なくとも 1 バイトを書き込もうとしている。 しかし開始位置が、このファイルの最大オフセットと同じかそれを超えている。
.SH 注意
.\" or the control block of the operation
使用する前に制御ブロックを 0 にしておくのは、よい考えである。 この制御ブロックは、読み込み操作が進行している間は変更すべきでない。
-読み込まれるバッファ領域は 操作の最中にアクセスすべきではない。 さもないと起こる結果が不定になる。
-これに含まれるメモリ領域は、有効なままにしなければならない。
+読み込まれるバッファー領域は 操作の最中にアクセスすべきではない。 さもないと起こる結果が不定になる。
+これに含まれるメモリー領域は、有効なままにしなければならない。
同じ \fIaiocb\fP 構造体を指定して同時に複数の I/O 操作を行った場合、
どのような結果になるかは不定である。
.\"
.TH ALLOCA 3 2013\-10\-07 GNU "Linux Programmer's Manual"
.SH 名前
-alloca \- 自動的に解放されるメモリを割り当てる
+alloca \- è\87ªå\8b\95ç\9a\84ã\81«è§£æ\94¾ã\81\95ã\82\8cã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8b
.SH 書式
\fB#include <alloca.h>\fP
.sp
\fBvoid *alloca(size_t \fP\fIsize\fP\fB);\fP
.SH 説明
-\fBalloca\fP() é\96¢æ\95°ã\81¯ã\80\81 \fIsize\fP ã\83\90ã\82¤ã\83\88ã\81®é \98å\9f\9fã\82\92å\91¼å\87ºå\85\83ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\83»ã\83\95ã\83¬ã\83¼ã\83 ã\81«å\89²ã\82\8aä»\98ã\81\91ã\82\8bã\80\82 ã\81\93ã\81®ä¸\80æ\99\82ç\9a\84ã\81ªé \98å\9f\9fã\81¯ã\80\81 \fBalloca\fP()
+\fBalloca\fP() 関数は、 \fIsize\fP バイトの領域を呼出元のスタックフレームに割り付ける。 この一時的な領域は、 \fBalloca\fP()
を呼び出した関数が呼出元に返るときに自動的に解放される。
.SH 返り値
-\fBalloca\fP() 関数は、割り付けた領域の始まりを指すポインタを返す。 割り付けによってスタックオーバーフローが起った場合の
+\fBalloca\fP() é\96¢æ\95°ã\81¯ã\80\81å\89²ã\82\8aä»\98ã\81\91ã\81\9fé \98å\9f\9fã\81®å§\8bã\81¾ã\82\8aã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 å\89²ã\82\8aä»\98ã\81\91ã\81«ã\82\88ã\81£ã\81¦ã\82¹ã\82¿ã\83\83ã\82¯ã\82ªã\83¼ã\83\90ã\83¼ã\83\95ã\83ã\83¼ã\81\8cèµ·ã\81£ã\81\9få ´å\90\88ã\81®
プログラムの動作は定義されていない。
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
.SH 注意
\fBalloca\fP() 関数は、機種とコンパイラに依存する。 特定のアプリケーションでは、この関数を使うと \fBmalloc\fP(3) と
\fBfree\fP(3) を組み合わせて使った場合に比べて効率を改善することができる。 特定の場合では、この関数を使うことで、 \fBlongjmp\fP(3)
-や \fBsiglongjmp\fP(3) を使うアプリケーションでのメモリの開放を簡単にすることができる。
+ã\82\84 \fBsiglongjmp\fP(3) ã\82\92使ã\81\86ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81§ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81®é\96\8bæ\94¾ã\82\92ç°¡å\8d\98ã\81«ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
それ以外の場合では、この関数の使用は推奨されない。
\fBalloca\fP() により割り当てられる空間はスタックフレームから割り当てらるので、 関数の戻り先が \fBlongjmp\fP(3) や
.LP
このコードはインライン化されているので、 この関数のアドレスを取得したり、 他のライブラリをリンクして動作を変更することはできない。
.LP
-通常このインラインコードはスタックポインタを移動する 1 つの命令 (instruction) から構成されており、
+é\80\9a常ã\81\93ã\81®ã\82¤ã\83³ã\83©ã\82¤ã\83³ã\82³ã\83¼ã\83\89ã\81¯ã\82¹ã\82¿ã\83\83ã\82¯ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92移å\8b\95ã\81\99ã\82\8b 1 ã\81¤ã\81®å\91½ä»¤ (instruction) ã\81\8bã\82\89æ§\8bæ\88\90ã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81
スタックオーバーフローをチェックしない。 よって NULL エラーが返されることはない。
.SH バグ
スタックフレームが拡張できなかった場合、エラー通知は行われない。 (しかしながら、割り当てに失敗した後で、プログラムが割り当てられなかった
.SH 説明
これらの関数は glibc 固有である。
.LP
-argz vector ã\81¯é\95·ã\81\95æ\83\85å ±ä»\98ã\81\8dã\81®æ\96\87å\97ã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81\82ã\82\8bã\80\82 æ\96\87å\97ã\83\90ã\83\83ã\83\95ã\82¡では、複数の文字列がヌルバイト (\(aq\e0\(aq)
-で区切られており、 文字列の配列として解釈されるようになっている。 長さが 0 でない場合、バッファの最後のバイトはヌルバイトでなければならない。
+argz vector ã\81¯é\95·ã\81\95æ\83\85å ±ä»\98ã\81\8dã\81®æ\96\87å\97ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 æ\96\87å\97ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼では、複数の文字列がヌルバイト (\(aq\e0\(aq)
+ã\81§å\8cºå\88\87ã\82\89ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81 æ\96\87å\97å\88\97ã\81®é\85\8då\88\97ã\81¨ã\81\97ã\81¦è§£é\87\88ã\81\95ã\82\8cã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\80\82 é\95·ã\81\95ã\81\8c 0 ã\81§ã\81ªã\81\84å ´å\90\88ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\9c\80å¾\8cã\81®ã\83\90ã\82¤ã\83\88ã\81¯ã\83\8cã\83«ã\83\90ã\82¤ã\83\88ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.LP
これらの関数は argz vector を操作するためのものである。 ペア (NULL,0) は argz vector であり、逆に言えば 長さ 0
-の argz vectorはヌルポインタを持たなければならない。 空でない argz vector の割り当ては \fBmalloc\fP(3)
+ã\81® argz vectorã\81¯ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92æ\8c\81ã\81\9fã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 空ã\81§ã\81ªã\81\84 argz vector ã\81®å\89²ã\82\8aå½\93ã\81¦ã\81¯ \fBmalloc\fP(3)
を使って行われる。したがって、argz vector を解放するのに \fBfree\fP(3) を使うことができる。
.LP
\fBargz_add\fP() は、文字列 \fIstr\fP を配列 \fI*argz\fP の末尾に追加し、 \fI*argz\fP と \fI*argz_len\fP
を更新する。
.LP
\fBargz_add_sep\fP() も同様の動作をするが、区切り文字 \fIdelim\fP にしたがって文字列 \fIstr\fP
-ã\82\92è¤\87æ\95°ã\81®æ\96\87å\97å\88\97ã\81«å\88\86å\89²ã\81\99ã\82\8bç\82¹ã\81\8cç\95°ã\81ªã\82\8bã\80\82 ä¾\8bã\81\88ã\81°ã\80\81å\8cºå\88\87ã\82\8aæ\96\87å\97 \(aq:\(aq ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\80\81UNIX ã\82µã\83¼ã\83\81ã\83»ã\83\91ã\82¹ã\81«å¯¾ã\81\97ã\81¦
+を複数の文字列に分割する点が異なる。 例えば、区切り文字 \(aq:\(aq を指定して、UNIX サーチパスに対して
この関数を使うことができるだろう。
.LP
\fBargz_append\fP() は argz vector (\fIbuf\fP,\ \fIbuf_len\fP) の後ろに (\fI*argz\fP,\ \fI*argz_len\fP) を付け加え、 \fI*argz\fP と \fI*argz_len\fP を更新する。 (したがって、 \fI*argz_len\fP は
.LP
\fBargz_delete\fP() は、 \fIentry\fP で指し示された文字列を argz vector (\fI*argz\fP,\ \fI*argz_len\fP) から削除し、 \fI*argz\fP と \fI*argz_len\fP を更新する。
.LP
-\fBargz_extract\fP() は \fBargz_create\fP() の反対の操作を行う。argz vector (\fIargz\fP,\ \fIargz_len\fP) を調べ、 \fIargv\fP から始まる配列をサブ文字列へのポインタで埋めていき、 一番最後に NULL を入れて、UNIX
+\fBargz_extract\fP() ã\81¯ \fBargz_create\fP() ã\81®å\8f\8d対ã\81®æ\93\8dä½\9cã\82\92è¡\8cã\81\86ã\80\82argz vector (\fIargz\fP,\ \fIargz_len\fP) ã\82\92調ã\81¹ã\80\81 \fIargv\fP ã\81\8bã\82\89å§\8bã\81¾ã\82\8bé\85\8då\88\97ã\82\92ã\82µã\83\96æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§å\9f\8bã\82\81ã\81¦ã\81\84ã\81\8dã\80\81 ä¸\80ç\95ªæ\9c\80å¾\8cã\81« NULL ã\82\92å\85¥ã\82\8cã\81¦ã\80\81UNIX
流の argv ベクトルを作成する。 配列 \fIargv\fP は \fIargz_count\fP(\fIargz\fP,\fIargz_len\fP) + 1
-個のポインタを収容できる空間を持っていなければならない。
+å\80\8bã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å\8f\8e容ã\81§ã\81\8dã\82\8b空é\96\93ã\82\92æ\8c\81ã\81£ã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.LP
\fBargz_insert\fP() は \fBargz_delete\fP() の反対の操作を行う。argz vector (\fI*argz\fP,\ \fI*argz_len\fP) の位置 \fIbefore\fP に引き数 \fIentry\fP を挿入し、 \fI*argz\fP と \fI*argz_len\fP
を更新する。 \fIbefore\fP が NULL の場合、 \fIentry\fP は末尾に挿入される。
.LP
\fBargz_next\fP() は argz vector を順番に調べるための関数である。 \fIentry\fP が NULL
-ã\81®å ´å\90\88ã\80\81æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92è¿\94ã\81\99ã\80\82 ã\81\9dã\81\86ã\81§ã\81ªã\81\84å ´å\90\88ã\80\81次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92è¿\94ã\81\99ã\80\82 次ã\81®ã\82¨ã\83³ã\83\88ã\83ªがない場合、NULL を返す。
+ã\81®å ´å\90\88ã\80\81æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\9dã\81\86ã\81§ã\81ªã\81\84å ´å\90\88ã\80\81次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¿\94ã\81\99ã\80\82 次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼がない場合、NULL を返す。
.LP
\fBargz_replace\fP() は、 \fIstr\fP をすべて \fIwith\fP で置き換える (必要に応じて argz の再割り当てを行う)。
\fIreplace_count\fP が NULL でない場合、 \fI*replace_count\fP を置き換えを行った数だけ増やす。
\fBargz_stringify\fP() は \fBargz_create_sep\fP() の反対の操作を行う。 末尾の ヌルバイト以外の全てのヌルバイト
(\(aq\e0\(aq) を \fIsep\fP で置き換えて、 argz vector を通常の文字列に変換する。
.SH 返り値
-メモリ割り当てを行う argz 関数群はすべて \fIerror_t\fP 型の返り値を持つ。 成功した場合は 0 を返し、割り当てエラーが発生した場合は
+メモリー割り当てを行う argz 関数群はすべて \fIerror_t\fP 型の返り値を持つ。 成功した場合は 0 を返し、割り当てエラーが発生した場合は
\fBENOMEM\fP を返す。
.SH 準拠
これらの関数は GNU による拡張である。注意して使用すること。
.SH 説明
\fBasprintf\fP() 関数と \fBvasprintf\fP() 関数とは、それぞれ \fBsprintf\fP(3) 関数と
\fBvsprintf\fP(3) 関数とに似ているが、 出力文字列を (終端のヌルバイト (\(aq\e0\(aq) も含めて)
-ä¿\9dæ\8c\81ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªå¤§ã\81\8dã\81\95ã\81®ã\83¡ã\83¢ã\83ªã\82\92確ä¿\9dã\81\97ã\80\81 æ\9c\80å\88\9dã\81®å¼\95æ\95°ã\81«ã\81\9dã\81®æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿は、不要になったら \fBfree\fP(3)
+ä¿\9dæ\8c\81ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªå¤§ã\81\8dã\81\95ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92確ä¿\9dã\81\97ã\80\81 æ\9c\80å\88\9dã\81®å¼\95æ\95°ã\81«ã\81\9dã\81®æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼は、不要になったら \fBfree\fP(3)
に渡し、割り当てられた記憶領域を解放すべきである。
.SH 返り値
-成功すると、これらの関数は出力されたバイト数を (\fBsprintf\fP(3) のように) 返す。 メモリの割り当てができなかったり、
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯å\87ºå\8a\9bã\81\95ã\82\8cã\81\9fã\83\90ã\82¤ã\83\88æ\95°ã\82\92 (\fBsprintf\fP(3) ã\81®ã\82\88ã\81\86ã\81«) è¿\94ã\81\99ã\80\82 ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\89²ã\82\8aå½\93ã\81¦ã\81\8cã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9fã\82\8aã\80\81
その他エラーが生じると、 これらの関数は \-1 を返し、 \fIstrp\fP の内容は未定義となる。
.SH 準拠
これらの関数は GNU の拡張であり、C や POSIX のものではない。 これらは *BSD でも利用できる。 FreeBSD
.SH 説明
最後に \fI<assert.h>\fP がインクルードされた時にマクロ \fBNDEBUG\fP が定義されていた場合、マクロ
\fBassert_perror\fP() は何のコードも生成せず、したがって全く何もしない。 そうでない場合、マクロ \fBassert_perror\fP()
-ã\81¯æ¨\99æº\96ã\82¨ã\83©ã\83¼ã\81«ã\82¨ã\83©ã\83¼ã\83»ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92表示ã\81\97ã\80\81 \fIerrnum\fP ã\81\8c 0 ã\81§ã\81ªã\81\84å ´å\90\88ã\81«ã\81¯ \fBabort\fP(3) ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81¦ã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92çµ\82äº\86ã\81\95ã\81\9bã\82\8bã\80\82
+は標準エラーにエラーメッセージを表示し、 \fIerrnum\fP が 0 でない場合には \fBabort\fP(3) を呼び出してプログラムを終了させる。
メッセージには、ファイル名、マクロ呼び出しがあった関数名と行番号、 \fIstrerror(errnum)\fP の出力が含まれる。
.SH 返り値
値は返されない。
によって、アドレス集合を、そのアドレスをシンボルで表した文字列の配列 に翻訳できる。 \fIsize\fP 引き数は \fIbuffer\fP
に格納されたアドレスの数を指定する。 個々のアドレスのシンボル表現は、関数名 (特定できた場合)、 関数へのオフセット
(16進表記)、実際のリターンアドレス (16進表記) から構成される。 \fBbacktrace_symbols\fP() の実行結果としては、
-文字列ポインタの配列のアドレスが返される。 この配列は \fBbacktrace_symbols\fP() によって \fBmalloc\fP(3)
-され、呼び出し側で free しなければならない (ポインタの配列が指す個々の文字列は free する必要はないし、 free すべきでもない)。
+æ\96\87å\97å\88\97ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®é\85\8då\88\97ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®é\85\8då\88\97ã\81¯ \fBbacktrace_symbols\fP() ã\81«ã\82\88ã\81£ã\81¦ \fBmalloc\fP(3)
+ã\81\95ã\82\8cã\80\81å\91¼ã\81³å\87ºã\81\97å\81´ã\81§ free ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84 (ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®é\85\8då\88\97ã\81\8cæ\8c\87ã\81\99å\80\8bã\80\85ã\81®æ\96\87å\97å\88\97ã\81¯ free ã\81\99ã\82\8bå¿\85è¦\81ã\81¯ã\81ªã\81\84ã\81\97ã\80\81 free ã\81\99ã\81¹ã\81\8dã\81§ã\82\82ã\81ªã\81\84)ã\80\82
\fBbacktrace_symbols_fd\fP() は、 \fBbacktrace_symbols\fP() と同じ引き数 \fIbuffer\fP と
-\fIsize\fP をとるが、呼び出し側に文字列の配列を返す代わりに、 文字列をファイルディスクリプタ \fIfd\fP に 1 行に 1
-エントリの形で書き込む。 \fBbacktrace_symbols_fd\fP() は \fBmalloc\fP(3) を呼び出さない。
+\fIsize\fP をとるが、呼び出し側に文字列の配列を返す代わりに、 文字列をファイルディスクリプター \fIfd\fP に 1 行に 1
+ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å½¢ã\81§æ\9b¸ã\81\8dè¾¼ã\82\80ã\80\82 \fBbacktrace_symbols_fd\fP() ã\81¯ \fBmalloc\fP(3) ã\82\92å\91¼ã\81³å\87ºã\81\95ã\81ªã\81\84ã\80\82
そのため、これに続く関数が失敗する可能性がある状況でも利用できる。
.SH 返り値
\fBbacktrace\fP() は \fIbuffer\fP に格納したアドレスの個数を返す。その個数は \fIsize\fP より大きくなることはない。 返り値が
\fIsize\fP より小さい場合、バックトレース全体が格納されている。返り値が \fIsize\fP
と等しい場合、バックトレースは切り詰められているかもしれない。 切り詰められた場合、最も古いスタックフレームのアドレスは 返されないことになる。
-\fBbacktrace_symbols\fP() は、成功すると、この呼び出しで \fBmalloc\fP(3) された配列へのポインタを返す。
+\fBbacktrace_symbols\fP() ã\81¯ã\80\81æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81ã\81\93ã\81®å\91¼ã\81³å\87ºã\81\97ã\81§ \fBmalloc\fP(3) ã\81\95ã\82\8cã\81\9fé\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
エラーの場合、 NULL を返す。
.SH バージョン
\fBbacktrace\fP(), \fBbacktrace_symbols\fP(), \fBbacktrace_symbols_fd\fP() はバージョン
.SH 注意
これらの関数は、関数のリターンアドレスがスタック上でどのように格納されるか に関してある仮定を置いている。 以下の点に注意。
.IP * 3
-(\fBgcc\fP(1) の 0 以外の最適化レベルで暗黙のうちに行われる) フレームポインタの省略を行うと、これらの前提が崩れる可能性がある。
+(\fBgcc\fP(1) ã\81® 0 以å¤\96ã\81®æ\9c\80é\81©å\8c\96ã\83¬ã\83\99ã\83«ã\81§æ\9a\97é»\99ã\81®ã\81\86ã\81¡ã\81«è¡\8cã\82\8fã\82\8cã\82\8b) ã\83\95ã\83¬ã\83¼ã\83 ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®ç\9c\81ç\95¥ã\82\92è¡\8cã\81\86ã\81¨ã\80\81ã\81\93ã\82\8cã\82\89ã\81®å\89\8dæ\8f\90ã\81\8cå´©ã\82\8cã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\80\82
.IP *
インライン関数はスタックフレームを持たない。
.IP *
末尾呼び出しの最適化 (tail\-call optimization) を行うと、 あるスタックフレームが別のスタックフレームを置き換える可能性がある。
.PP
-ã\82·ã\83³ã\83\9cã\83«å\90\8dã\81¯ç\89¹å\88¥ã\81ªã\83ªã\83³ã\82«ã\83»ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92使ç\94¨ã\81\97ã\81ªã\81\84ã\81¨å\88©ç\94¨ã\81§ã\81\8dã\81ªã\81\84å ´å\90\88ã\81\8cã\81\82ã\82\8bã\80\82 GNU ã\83ªã\83³ã\82«を使用するシステムでは、 \fI\-rdynamic\fP
-ã\83ªã\83³ã\82«ã\83»オプションを使う必要がある。 "static" な関数のシンボル名は公開されず、 バックトレースでは利用できない点に注意すること。
+ã\82·ã\83³ã\83\9cã\83«å\90\8dã\81¯ç\89¹å\88¥ã\81ªã\83ªã\83³ã\82«ã\83¼ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92使ç\94¨ã\81\97ã\81ªã\81\84ã\81¨å\88©ç\94¨ã\81§ã\81\8dã\81ªã\81\84å ´å\90\88ã\81\8cã\81\82ã\82\8bã\80\82 GNU ã\83ªã\83³ã\82«ã\83¼を使用するシステムでは、 \fI\-rdynamic\fP
+ã\83ªã\83³ã\82«ã\83¼オプションを使う必要がある。 "static" な関数のシンボル名は公開されず、 バックトレースでは利用できない点に注意すること。
.SH 例
以下のプログラムは、 \fBbacktrace\fP() と \fBbacktrace_symbols\fP() の使用例を示したものである。
以下に示すシェルのセッションは、 このプログラムを動かした際の実行例である。
.PP
\fIpath\fP に '/' 文字がない場合は、 \fBdirname\fP() は文字列 "." を返し、 \fBbasename\fP() は \fIpath\fP
と同じ内容を返す。 \fIpath\fP が文字列 "/" に等しい場合は、 \fBdirname\fP() も \fBbasename\fP() も文字列 "/"
-を返す。 \fIpath\fP が ヌルポインタだったり、空の文字列を指していた場合は、 \fBdirname\fP() も \fBbasename\fP()
+ã\82\92è¿\94ã\81\99ã\80\82 \fIpath\fP ã\81\8c ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81 ã\81£ã\81\9fã\82\8aã\80\81空ã\81®æ\96\87å\97å\88\97ã\82\92æ\8c\87ã\81\97ã\81¦ã\81\84ã\81\9få ´å\90\88ã\81¯ã\80\81 \fBdirname\fP() ã\82\82 \fBbasename\fP()
も文字列 "." を返す。
.PP
\fBdirname\fP() の返した文字列、 "/"、 \fBbasename\fP() の返した文字列、 を順に結合すると、完全なパス名が得られる。
\fBdirname\fP() と \fBbasename\fP() は、いずれも \fIpath\fP の内容を変更することがある。
したがって、これらの関数を呼び出す際には コピーを渡すのが望ましい。
.PP
-ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\80\81é\9d\99ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返すことがあり、 これらの領域は後の関数呼び出しで上書きされるかもしれない。
-また、これらの関数は \fIpath\fP の一部分を指すポインタを返すこともある。そのため、 \fIpath\fP
-で参照される文字列は、関数が返すポインタが不要になるまでは 変更したり free したりすべきではない。
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\80\81é\9d\99ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返すことがあり、 これらの領域は後の関数呼び出しで上書きされるかもしれない。
+ã\81¾ã\81\9fã\80\81ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ \fIpath\fP ã\81®ä¸\80é\83¨å\88\86ã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\81\93ã\81¨ã\82\82ã\81\82ã\82\8bã\80\82ã\81\9dã\81®ã\81\9fã\82\81ã\80\81 \fIpath\fP
+ã\81§å\8f\82ç\85§ã\81\95ã\82\8cã\82\8bæ\96\87å\97å\88\97ã\81¯ã\80\81é\96¢æ\95°ã\81\8cè¿\94ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cä¸\8dè¦\81ã\81«ã\81ªã\82\8bã\81¾ã\81§ã\81¯ å¤\89æ\9b´ã\81\97ã\81\9fã\82\8a free ã\81\97ã\81\9fã\82\8aã\81\99ã\81¹ã\81\8dã\81§ã\81¯ã\81ªã\81\84ã\80\82
.PP
以下の一連の例 (SUSv2 から引用) は、 いろいろな path に対して \fBdirname\fP() と \fBbasename\fP()
が返す文字列を表したものである。
\&.. . ..
.TE
.SH 返り値
-\fBdirname\fP() ã\81¨ \fBbasename\fP() ã\81¯ã\80\81ã\81\84ã\81\9aã\82\8cã\82\82ã\83\8cã\83«ã\81§çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 (ã\81\93ã\82\8cã\82\89ã\81®ã\83\9dã\82¤ã\83³ã\82¿を
+\fBdirname\fP() ã\81¨ \fBbasename\fP() ã\81¯ã\80\81ã\81\84ã\81\9aã\82\8cã\82\82ã\83\8cã\83«ã\81§çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 (ã\81\93ã\82\8cã\82\89ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を
\fBfree\fP(3) に渡さないこと。)
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
.SH 説明
.LP
.\" Glibc actually starts searching with a port # in the range 600 to 1023
-\fBbindresvport\fP() ã\81¯ã\80\81ã\82½ã\82±ã\83\83ã\83\88ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を特権無名 (privileged anonymous) IP ポートに
+\fBbindresvport\fP() ã\81¯ã\80\81ã\82½ã\82±ã\83\83ã\83\88ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を特権無名 (privileged anonymous) IP ポートに
バインドするのに使う。特権無名 IP ポートとは、 ポート番号が 512 から 1023 の範囲から任意に選択されるポートである。
\fBbindresvport\fP() によって実行された \fBbind\fP(2) が成功し、 \fIsin\fP が NULL
\fBbindresvport\fP() は \fBbind\fP(2) と同じ原因で失敗する可能性がある。 さらに、以下のエラーが発生することがある:
.TP
\fBEACCES\fP
-呼び出し元がスーパーユーザの特権を持っていなかった (より正確に言うと、 \fBCAP_NET_BIND_SERVICE\fP ケーパビリティが必要である)。
+呼び出し元がスーパーユーザーの特権を持っていなかった (より正確に言うと、 \fBCAP_NET_BIND_SERVICE\fP
+ケーパビリティが必要である)。
.TP
\fBEADDRINUSE\fP
全ての特権ポートが使用中である。
\fBbsd_signal\fP() 関数は \fBsignal\fP(2) と同じ引き数をとり、同じ処理を実行する。
両者の違いは、 \fBbsd_signal\fP() では信頼性のあるシグナル処理方式の提供が保証されていることである。
-信頼性のあるシグナル処理方式は以下の特徴を持つ。 a) ハンドラが起動された場合に、シグナルの処理方法 (disposition) が
-ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81«ã\83ªã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\81ªã\81\84ã\80\81 b) ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81®å®\9fè¡\8cä¸ã\81¯ã\80\81ã\81\9dã\82\8c以é\99\8dã\81«ç\99ºç\94\9fã\81\97ã\81\9få\90\8cã\81\98ã\82·ã\82°ã\83\8aã\83«ã\81®é\85\8dé\80\81ã\81\8c ã\83\96ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81ªã\81\84ã\80\81 c) ã\83\8fã\83³ã\83\89ã\83©ã\81\8cå\81\9cæ¢ä¸ã\81®
-(blocking している) システムコールを 中断した場合、そのシステムコールが自動的に再開される。 移植性が必要なアプリケーションでは、
-\fBsignal\fP(2) でこれらが保証されることを前提にすべきではない。
+ä¿¡é ¼æ\80§ã\81®ã\81\82ã\82\8bã\82·ã\82°ã\83\8aã\83«å\87¦ç\90\86æ\96¹å¼\8fã\81¯ä»¥ä¸\8bã\81®ç\89¹å¾´ã\82\92æ\8c\81ã\81¤ã\80\82 a) ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cèµ·å\8b\95ã\81\95ã\82\8cã\81\9få ´å\90\88ã\81«ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\81®å\87¦ç\90\86æ\96¹æ³\95 (disposition) ã\81\8c
+ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81«ã\83ªã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\81ªã\81\84ã\80\81 b) ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®å®\9fè¡\8cä¸ã\81¯ã\80\81ã\81\9dã\82\8c以é\99\8dã\81«ç\99ºç\94\9fã\81\97ã\81\9få\90\8cã\81\98ã\82·ã\82°ã\83\8aã\83«ã\81®é\85\8dé\80\81ã\81\8c ã\83\96ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81ªã\81\84ã\80\81 c)
+ハンドラーが停止中の (blocking している) システムコールを 中断した場合、そのシステムコールが自動的に再開される。
+移植性が必要なアプリケーションでは、 \fBsignal\fP(2) でこれらが保証されることを前提にすべきではない。
.SH 返り値
-\fBbsd_signal\fP() 関数はシグナルハンドラの直前の値を返す。 エラーの場合、 \fBSIG_ERR\fP を返す。
+\fBbsd_signal\fP() é\96¢æ\95°ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®ç\9b´å\89\8dã\81®å\80¤ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81 \fBSIG_ERR\fP ã\82\92è¿\94ã\81\99ã\80\82
.SH エラー
\fBsignal\fP(2) と同じ。
.SH 属性
\fB int (*\fP\fIcompar\fP\fB)(const void *, const void *));\fP
.fi
.SH 説明
-\fBbsearch\fP() 関数は \fInmemb\fP 個のオブジェクトからなる配列を検索 する。配列の最初のメンバーへのポインタは \fIbase\fP
-によって与える。 ポインタ \fIkey\fP で参照されるオブジェクトと一致するメンバーが返される。 配列中の各々のメンバーのサイズは \fIsize\fP
+\fBbsearch\fP() é\96¢æ\95°ã\81¯ \fInmemb\fP å\80\8bã\81®ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81\8bã\82\89ã\81ªã\82\8bé\85\8då\88\97ã\82\92æ¤\9cç´¢ ã\81\99ã\82\8bã\80\82é\85\8då\88\97ã\81®æ\9c\80å\88\9dã\81®ã\83¡ã\83³ã\83\90ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ \fIbase\fP
+によって与える。 ポインター \fIkey\fP で参照されるオブジェクトと一致するメンバーが返される。 配列中の各々のメンバーのサイズは \fIsize\fP
によって指定する。
.PP
配列の内容は比較関数 \fIcompar\fP に基づき、昇順にソートされていなけれ ばならない。 \fIcompar\fP
-ルーチンは二つの引き数を取る関数で、一つ 目に \fIkey\fP へのポインタ、次に配列のメンバーへのポインタを取る。 この順に指定したとき、 \fIkey\fP
-が配列メンバーより小さいときには 負の整数を、大きいときには正の整数を、一致したときには 0 を、それぞれ \fIcompar\fP は返さなければならない。
+ルーチンは二つの引き数を取る関数で、一つ 目に \fIkey\fP へのポインター、次に配列のメンバーへのポインターを取る。 この順に指定したとき、
+\fIkey\fP が配列メンバーより小さいときには 負の整数を、大きいときには正の整数を、一致したときには 0 を、それぞれ \fIcompar\fP
+は返さなければならない。
.SH 返り値
-\fBbsearch\fP() 関数は、配列のメンバーのうち、一致したものへのポインタを 返す。見つからなかったときは NULL を返す。 \fIkey\fP
+\fBbsearch\fP() é\96¢æ\95°ã\81¯ã\80\81é\85\8då\88\97ã\81®ã\83¡ã\83³ã\83\90ã\83¼ã\81®ã\81\86ã\81¡ã\80\81ä¸\80è\87´ã\81\97ã\81\9fã\82\82ã\81®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92 è¿\94ã\81\99ã\80\82è¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\8bã\81£ã\81\9fã\81¨ã\81\8dã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82 \fIkey\fP
と一致したメンバーが 複数あるとき、そのうちのどのメンバーが返されるかはわからない。
.SH 準拠
SVr4, 4.3BSD, POSIX.1\-2001, C89, C99.
.RE
.TP
\fIcachesize\fP
-æ\83³å®\9aã\81\95ã\82\8cã\82\8bã\83¡ã\83¢ã\83ªã\82ã\83£ã\83\83ã\82·ã\83¥ã\81®æ\9c\80大ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d)ã\80\82 ã\81\93ã\81®å\80¤ã\81¯ \fIã\81\82ã\81\8fã\81¾ã\81§\fP å\8f\82è\80\83ã\81§ã\81\82ã\82\8aã\80\81ã\82¢ã\82¯ã\82»ã\82¹ã\83¡ã\82½ã\83\83ã\83\89ã\81¯ã\81\93ã\81®å\80¤ã\82\92è¶\8aã\81\88ã\81\9fã\83¡ã\83¢ã\83ªの
+æ\83³å®\9aã\81\95ã\82\8cã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81®æ\9c\80大ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d)ã\80\82 ã\81\93ã\81®å\80¤ã\81¯ \fIã\81\82ã\81\8fã\81¾ã\81§\fP å\8f\82è\80\83ã\81§ã\81\82ã\82\8aã\80\81ã\82¢ã\82¯ã\82»ã\82¹ã\83¡ã\82½ã\83\83ã\83\89ã\81¯ã\81\93ã\81®å\80¤ã\82\92è¶\8aã\81\88ã\81\9fã\83¡ã\83¢ã\83ªã\83¼の
割り当てに成功することもある。 加えて、物理的な書き込みは可能な限り遅延されるので、 キャッシュの大きさを適度にしておけば I/O
操作の回数をかなり減らすこと ができる。 あきらかにキャッシュを使うと、ツリーが変更されている途中で
システムがクラッシュした場合のデータ破壊やデータロストの可能性は 増える (まあでもそれだけのこと)。 \fIcachesize\fP が 0
.SH 説明
\fBcatgets\fP() は catalog で指定されたメッセージカタログから、 セット \fIset_number\fP のメッセージ
\fImessage_number\fP を読み取る。 \fIcatalog\fP は、 \fBcatopen\fP(3) の呼び出しによって得られたカタログ
-ディスクリプタを指定する。 4番目の引数 \fImessage\fP は、指定のメッセージカタログが現在利用できない 場合に \fBcatgets\fP()
-が返すデフォルトのメッセージを指す。 メッセージテキストは内部のバッファ領域に格納されており、
+ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 4ç\95ªç\9b®ã\81®å¼\95æ\95° \fImessage\fP ã\81¯ã\80\81æ\8c\87å®\9aã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82«ã\82¿ã\83ã\82°ã\81\8cç\8f¾å\9c¨å\88©ç\94¨ã\81§ã\81\8dã\81ªã\81\84 å ´å\90\88ã\81« \fBcatgets\fP()
+が返すデフォルトのメッセージを指す。 メッセージテキストは内部のバッファー領域に格納されており、
保存や変更を行う場合にはアプリケーション側でコピーする必要がある。 返される文字列は常にヌルバイト (\(aq\e0\(aq) で終端される。
.SH 返り値
.LP
-成功した場合、 \fBcatgets\fP() は内部のバッファ領域へのポインタを返す。 ここにはヌル文字で終端されたメッセージ文字列が格納されている。
+成功した場合、 \fBcatgets\fP() は内部のバッファー領域へのポインターを返す。 ここにはヌル文字で終端されたメッセージ文字列が格納されている。
失敗した場合は \fImessage\fP を返す。
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBint catclose(nl_catd \fP\fIcatalog\fP\fB);\fP
.SH 説明
-é\96¢æ\95° \fBcatopen\fP() ã\81¯ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82«ã\82¿ã\83ã\82°ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81ã\82«ã\82¿ã\83ã\82°ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は \fBcatclose\fP()
-ã\81¾ã\81\9fã\81¯ \fBexecve\fP(2) ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\81¾ã\81§æ\9c\89å\8a¹ã\81§ã\81\82ã\82\8bã\80\82 ã\82«ã\82¿ã\83ã\82°ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92å®\9fè£\85ã\81\99ã\82\8bã\81\9fã\82\81ã\81« ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を使用すると、
+é\96¢æ\95° \fBcatopen\fP() ã\81¯ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82«ã\82¿ã\83ã\82°ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81ã\82«ã\82¿ã\83ã\82°ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は \fBcatclose\fP()
+ã\81¾ã\81\9fã\81¯ \fBexecve\fP(2) ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\81¾ã\81§æ\9c\89å\8a¹ã\81§ã\81\82ã\82\8bã\80\82 ã\82«ã\82¿ã\83ã\82°ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å®\9fè£\85ã\81\99ã\82\8bã\81\9fã\82\81ã\81« ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を使用すると、
\fBFD_CLOEXEC\fP フラグが設定される。
.LP
引き数 \fIname\fP はオープンするメッセージカタログの名前を指定する。 \fIname\fP が絶対パスで指定されている場合 (すなわち
で指定されたパスの中の どのパスにおいてもメッセージカタログをオープンできない場合、 実装で定義されているパスが使われる。 後者のデフォルトパスは、
\fIflag\fP 引き数が \fBNL_CAT_LOCALE\fP の場合には \fBLC_MESSAGES\fP のロケール設定に依存し、 \fIflag\fP 引き数が
0 の場合には \fBLANG\fP 環境変数に依存する。 ロケールの \fBLC_MESSAGES\fP を変更すると、
-オープンされているカタログディスクリプタが無効になるかもしれない。
+ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82«ã\82¿ã\83ã\82°ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cç\84¡å\8a¹ã\81«ã\81ªã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
.LP
\fBcatopen\fP() の \fIflag\fP 引き数は、使用される言語のソースを示すために使われる。 \fBNL_CAT_LOCALE\fP
に設定されると、 \fBLC_MESSAGES\fP の現在のロケール設定が使われる。 それ以外の場合は \fBLANG\fP 環境変数が使われる。
関数 \fBcatclose\fP() は \fIcatalog\fP で指定されたメッセージカタログをクローズする。 これは、以降の \fIcatalog\fP
で指定されるメッセージカタログへの全ての参照を無効にする。
.SH 返り値
-関数 \fBcatopen\fP() が成功すると、 \fInl_catd\fP 型のメッセージカタログディスクリプタを返す。 失敗した場合は
+é\96¢æ\95° \fBcatopen\fP() ã\81\8cæ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 \fInl_catd\fP å\9e\8bã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82«ã\82¿ã\83ã\82°ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 失æ\95\97ã\81\97ã\81\9få ´å\90\88ã\81¯
\fI(nl_catdv) \-1\fP を返し、 \fIerrno\fP を設定してエラーを示す。 ここで起こり得るエラーの値には、 \fBopen\fP(2)
の呼び出しの際に起こり得る全てのエラーの値が含まれる。
.LP
.\"
.TH CFREE 3 2007\-07\-26 "" "Linux Programmer's Manual"
.SH 名前
-cfree \- 割り当てられたメモリを解放する
+cfree \- å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\92解æ\94¾ã\81\99ã\82\8b
.SH 書式
.nf
.sp
.sp
をファイルに追加すること。
.LP
-よく尋ねられる質問は 「\fBcalloc\fP(3) で割り当てられたメモリを解放するのに \fBfree\fP(3) を使うことができるか、 それとも
+ã\82\88ã\81\8få°\8bã\81ã\82\89ã\82\8cã\82\8b質å\95\8fã\81¯ ã\80\8c\fBcalloc\fP(3) ã\81§å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\92解æ\94¾ã\81\99ã\82\8bã\81®ã\81« \fBfree\fP(3) ã\82\92使ã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\81\8bã\80\81 ã\81\9dã\82\8cã\81¨ã\82\82
\fBcfree\fP() を使う必要があるか」というものである。 答え: \fBfree\fP(3) を使うこと。
.LP
SCO のマニュアルには以下のように記述されている: 「cfree ルーチンは iBCSe2 規格に従うために提供されており、 単に free
.SH 返り値
SunOS 版の \fBcfree\fP() (\fBfree\fP(3) の別名) は、成功した場合に 1 を返し、失敗した場合に 0 を返す。
エラーの場合、 \fIerrno\fP が \fBEINVAL\fP に設定される: \fIptr\fP の値が \fBmalloc\fP() 系のルーチンの 1
-つで以前に割り当てられた ブロックへのポインタでない。
+ã\81¤ã\81§ä»¥å\89\8dã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9f ã\83\96ã\83ã\83\83ã\82¯ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.SH 準拠
SCO で用いられている引き数が 3 つの \fBcfree\fP() は、iBCSe2 規格: Intel386 Binary Compatibility
Specification, Edition 2 (Intel386 バイナリ互換仕様、第 2 版) に準拠する。
.SH 説明
\fBclosedir\fP() 関数は \fIdirp\fP に関連付けられた ディレクトリストリームをクローズする。
\fBclosedir\fP() の呼び出しが成功すると、 \fIdirp\fP に関連付けられた
-ファイルディスクリプタもクローズされる。
-ディレクトリストリームディスクリプタ (directory stream descriptor) \fIdirp\fP は、
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\82ã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\82\8bã\80\82
+ディレクトリストリームディスクリプター (directory stream descriptor) \fIdirp\fP は、
この呼び出しの後では使用することができない。
.SH 返り値
\fBclosedir\fP() 関数は成功時に 0 を返す。 エラーの場合は、\-1 が返されて、 \fIerrno\fP が適切に設定される。
.SH エラー
.TP
\fBEBADF\fP
-ディレクトリストリームディスクリプタ \fIdirp\fP が無効である。
+ディレクトリストリームディスクリプター \fIdirp\fP が無効である。
.SH 準拠
SVr4, POSIX.1\-2001, 4.3BSD.
.SH 関連項目
.PP
補助データは \fIstruct cmsghdr\fP 構造体のシーケンスに追加データが付加されたものである。
このシーケンスにはこのマニュアルページに書かれている マクロを使ってアクセスすべきで、直接アクセスすべきではない。
-使用可能な制御メッセージのタイプについては、 それぞれのプロトコルのマニュアルページを参照のこと。 接続毎の最大補助用バッファサイズは
+使ç\94¨å\8f¯è\83½ã\81ªå\88¶å¾¡ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81®ã\82¿ã\82¤ã\83\97ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\80\81 ã\81\9dã\82\8cã\81\9eã\82\8cã\81®ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\82\92å\8f\82ç\85§ã\81®ã\81\93ã\81¨ã\80\82 æ\8e¥ç¶\9aæ¯\8eã\81®æ\9c\80大è£\9cå\8a©ç\94¨ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\81¯
\fI/proc/sys/net/core/optmem_max\fP を使って設定できる。 \fBsocket\fP(7) を参照。
.PP
-\fBCMSG_FIRSTHDR\fP() は、渡した \fImsghdr\fP に関連した補助データバッファ中の、最初の \fIcmsghdr\fP
-へのポインタを返す。
+\fBCMSG_FIRSTHDR\fP() は、渡した \fImsghdr\fP に関連した補助データバッファー中の、最初の \fIcmsghdr\fP
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.PP
\fBCMSG_NXTHDR\fP() は、渡した \fIcmsghdr\fP の次にくる (有効な) \fIcmsghdr\fP を返す。
-バッファに十分な空きが無い場合、NULL を返す。
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\8d\81å\88\86ã\81ªç©ºã\81\8dã\81\8cç\84¡ã\81\84å ´å\90\88ã\80\81NULL ã\82\92è¿\94ã\81\99ã\80\82
.PP
\fBCMSG_ALIGN\fP() に長さを与えると、必要なアラインメントを加味した長さを返してくる。 これは定数式である。
.PP
\fBCMSG_SPACE\fP() は、与えたデータ長が占めるのに必要な補助要素 (ancillary element) の
バイト数を返す。これは定数式である。
.PP
-\fBCMSG_DATA\fP() は、 \fIcmsghdr\fP のデータ部分へのポインタを返す。
+\fBCMSG_DATA\fP() ã\81¯ã\80\81 \fIcmsghdr\fP ã\81®ã\83\87ã\83¼ã\82¿é\83¨å\88\86ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.PP
\fBCMSG_LEN\fP() は、 \fIcmsghdr\fP 構造体の \fIcmsg_len\fP
メンバにデータを格納する際に必要な値を返す。アラインメントも考慮に入れ られる。 引数としてデータ長をとる。これは定数式である。
.PP
-補助データを作るためには最初に \fImsghdr\fP のメンバー \fImsg_controllen\fP を、制御メッセージバッファの長さで初期化する。
+è£\9cå\8a©ã\83\87ã\83¼ã\82¿ã\82\92ä½\9cã\82\8bã\81\9fã\82\81ã\81«ã\81¯æ\9c\80å\88\9dã\81« \fImsghdr\fP ã\81®ã\83¡ã\83³ã\83\90ã\83¼ \fImsg_controllen\fP ã\82\92ã\80\81å\88¶å¾¡ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®é\95·ã\81\95ã\81§å\88\9dæ\9c\9få\8c\96ã\81\99ã\82\8bã\80\82
\fBCMSG_FIRSTHDR\fP() を \fImsghdr\fP に用いると最初の制御メッセージが得られ、 \fBCMSG_NXTHDR\fP()
を使うと次の制御メッセージが得られる。 それぞれの制御メッセージでは、 \fIcmsg_len\fP を初期化する (\fBCMSG_LEN\fP() を使う)。
その他の \fIcmsghdr\fP ヘッダーフィールド、そしてデータ部分に対しても \fBCMSG_DATA\fP() を使って初期化をする。 最後に
-\fImsghdr\fP の \fImsg_controllen\fP フィールドに、バッファ中の制御メッセージの長さの \fBCMSG_SPACE\fP()
+\fImsghdr\fP の \fImsg_controllen\fP フィールドに、バッファー中の制御メッセージの長さの \fBCMSG_SPACE\fP()
の合計がセットされる。 \fImsghdr\fP についての詳細は \fBrecvmsg\fP(2) を参照。
.PP
-制御メッセージバッファが全てのメッセージを納めるのには短すぎる場合、 \fImsghdr\fP の \fImsg_flags\fP メンバーに
+å\88¶å¾¡ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cå\85¨ã\81¦ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92ç´\8dã\82\81ã\82\8bã\81®ã\81«ã\81¯ç\9fã\81\99ã\81\8eã\82\8bå ´å\90\88ã\80\81 \fImsghdr\fP ã\81® \fImsg_flags\fP ã\83¡ã\83³ã\83\90ã\83¼ã\81«
\fBMSG_CTRUNC\fP フラグがセットされる。
.SH 準拠
この補助データモデルは、POSIX.1g draft, 4.4BSD\-Lite, RFC\ 2292 に 記述されている IPv6 advanced
Linux では \fBCMSG_LEN\fP(), \fBCMSG_DATA\fP(), \fBCMSG_ALIGN\fP() は定数式である
(それらの引数が定数とみなされる)。 このことは、大域変数のサイズを宣言するのに使える。 しかし移植性はなくなるだろう。
.SH 例
-次のコードは、受け取った補助バッファから \fBIP_TTL\fP オプションを探すものである。
+次ã\81®ã\82³ã\83¼ã\83\89ã\81¯ã\80\81å\8f\97ã\81\91å\8f\96ã\81£ã\81\9fè£\9cå\8a©ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8bã\82\89 \fBIP_TTL\fP ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92æ\8e¢ã\81\99ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82
.PP
.in +4n
.nf
.fi
.in
.PP
-以ä¸\8bã\81®ã\82³ã\83¼ã\83\89ã\81¯ã\80\81 \fBSCM_RIGHTS\fP ã\82\92使ã\81\84ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82¹ã\82¯ã\83ªã\83\97ã\82¿の配列を UNIX ドメインソケットを通して送るものである。
+以ä¸\8bã\81®ã\82³ã\83¼ã\83\89ã\81¯ã\80\81 \fBSCM_RIGHTS\fP ã\82\92使ã\81\84ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼の配列を UNIX ドメインソケットを通して送るものである。
.PP
.in +4n
.nf
C99, POSIX.1\-2001. この関数は IEC 559 で定義されている (また IEEE 754/IEEE 854
では付録で推奨関数として定義されている)。
.SH 注意
-浮動小数点形式が IEEE 754 準拠でないアーキテクチャでは、 これらの関数は負の 0 を正として扱うことがある。
+æµ®å\8b\95å°\8fæ\95°ç\82¹å½¢å¼\8fã\81\8c IEEE 754 æº\96æ\8b ã\81§ã\81ªã\81\84ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81 ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯è² ã\81® 0 ã\82\92æ£ã\81¨ã\81\97ã\81¦æ\89±ã\81\86ã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\80\82
.SH 関連項目
\fBsignbit\fP(3)
.SH この文書について
\fBcrypt\fP() はパスワード暗号化関数である。 鍵探索のハードウェアによる実装を妨げるように(その他にもいろいろ) 変更した Data
Encryption Standard アルゴリズムを元にしている。
.PP
-\fIkey\fP はユーザが入力するパスワードである。
+\fIkey\fP ã\81¯ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cå\85¥å\8a\9bã\81\99ã\82\8bã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\81§ã\81\82ã\82\8bã\80\82
.PP
\fIsalt\fP は集合 [\fBa\-zA\-Z0\-9./\fP] から選ばれた 2 文字の文字列である。 この文字列はアルゴリズムの出力を 4096
通りにかき乱すのに使われる。
.PP
\fIkey\fP の最初の 8 文字の各文字から下位 7 ビットをとって 56 ビットの鍵が得られる。 この 56 ビットの鍵は特定の文字列(ふつうはすべて
-0 の文字列) を繰り返し暗号化するのに用いられる。 返り値は暗号化されたパスワードへのポインタで、13 の印字可能な ASCII 文字
-からなる(最初の 2 文字は salt そのもの)。 返り値は、関数呼出しのたびに上書きされる静的なデータへのポインタである。
+0 ã\81®æ\96\87å\97å\88\97) ã\82\92ç¹°ã\82\8aè¿\94ã\81\97æ\9a\97å\8f·å\8c\96ã\81\99ã\82\8bã\81®ã\81«ç\94¨ã\81\84ã\82\89ã\82\8cã\82\8bã\80\82 è¿\94ã\82\8aå\80¤ã\81¯æ\9a\97å\8f·å\8c\96ã\81\95ã\82\8cã\81\9fã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\80\8113 ã\81®å\8d°å\97å\8f¯è\83½ã\81ª ASCII æ\96\87å\97
+ã\81\8bã\82\89ã\81ªã\82\8b(æ\9c\80å\88\9dã\81® 2 æ\96\87å\97ã\81¯ salt ã\81\9dã\81®ã\82\82ã\81®)ã\80\82 è¿\94ã\82\8aå\80¤ã\81¯ã\80\81é\96¢æ\95°å\91¼å\87ºã\81\97ã\81®ã\81\9fã\81³ã\81«ä¸\8aæ\9b¸ã\81\8dã\81\95ã\82\8cã\82\8bé\9d\99ç\9a\84ã\81ªã\83\87ã\83¼ã\82¿ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.PP
警告: 鍵空間は
.if t 2\s-2\u56\s0\d
ライブラリのひとつを 手にいれるべきだ。
\fBcrypt_r\fP() は \fBcrypt\fP() の再入可能版である。 \fIdata\fP で示される構造体は結果データの保存と情報の管理に使われる。
-この構造体に対して(メモリを割り当てること以外に)呼び出し元がするべき唯一の ことは、 \fBcrypt_r\fP() の初回の呼び出しの前に
+ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81«å¯¾ã\81\97ã\81¦(ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81\93ã\81¨ä»¥å¤\96ã\81«)å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8cã\81\99ã\82\8bã\81¹ã\81\8då\94¯ä¸\80ã\81® ã\81\93ã\81¨ã\81¯ã\80\81 \fBcrypt_r\fP() ã\81®å\88\9då\9b\9eã\81®å\91¼ã\81³å\87ºã\81\97ã\81®å\89\8dã\81«
\fIdata\->initialized\fP をゼロにすることだけである。
.SH 返り値
成功の場合には、暗号化されたパスワードへのポインターが返される。 エラーの場合には NULL が返される。
.\" From <unistd.h>: _XOPEN_SOURCE
\fBctermid\fP(): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE
.SH 説明
-\fBctermid\fP() はプロセスの現在の制御端末のパス名を返す。 \fIs\fP が NULL の場合、静的なバッファを用いる。それ以外の場合、
-\fIs\fP は端末パス名を保持するのに使用されるバッファへのポインタとなる。 シンボル定数 \fBL_ctermid\fP は返されるパス名の最大文字数である。
+\fBctermid\fP() はプロセスの現在の制御端末のパス名を返す。 \fIs\fP が NULL の場合、静的なバッファーを用いる。それ以外の場合、
+\fIs\fP は端末パス名を保持するのに使用されるバッファーへのポインターとなる。 シンボル定数 \fBL_ctermid\fP
+は返されるパス名の最大文字数である。
.SH 返り値
-パス名へのポインタ。
+ã\83\91ã\82¹å\90\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
-\fBctermid\fP() 関数は例外付きでスレッドセーフである。 NULL パラメータで呼び出された場合はスレッドセーフではない。
+\fBctermid\fP() é\96¢æ\95°ã\81¯ä¾\8bå¤\96ä»\98ã\81\8dã\81§ã\82¹ã\83¬ã\83\83ã\83\89ã\82»ã\83¼ã\83\95ã\81§ã\81\82ã\82\8bã\80\82 NULL ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81§å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9få ´å\90\88ã\81¯ã\82¹ã\83¬ã\83\83ã\83\89ã\82»ã\83¼ã\83\95ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.SH 準拠
SVr4, POSIX.1\-2001.
.SH バグ
.sp
という形式のヌル終端された文字列へ変換する。 曜日の略称は "Sun", "Mon", "Tue", "Wed", "Thu", "Fri",
"Sat" である。 月の略称は "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
-"Sep", "Oct", "Nov", "Dec" である。 返り値は、静的 (static) に割り当てられた文字列へのポインタである。
+"Sep", "Oct", "Nov", "Dec" ã\81§ã\81\82ã\82\8bã\80\82 è¿\94ã\82\8aå\80¤ã\81¯ã\80\81é\9d\99ç\9a\84 (static) ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
この文字列は、日付・時刻関数のいずれかが呼び出されると上書きされることがある。 またこの関数は大域変数 \fItzname\fP, \fItimezone\fP,
\fIdaylight\fP に現在のタイムゾーンの情報を設定する (\fBtzset\fP(3) 参照)。 リエントラント版である \fBctime_r\fP()
-ã\82\82å\90\8cæ§\98ã\81 ã\81\8cã\80\81 æ\96\87å\97å\88\97ã\81¯ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cç\94¨æ\84\8fã\81\97ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82ã\83\90ã\83\83ã\83\95ã\82¡のサイズは 少なくとも 26 バイト以上でなければならない。 この関数は
+ã\82\82å\90\8cæ§\98ã\81 ã\81\8cã\80\81 æ\96\87å\97å\88\97ã\81¯ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cç\94¨æ\84\8fã\81\97ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼のサイズは 少なくとも 26 バイト以上でなければならない。 この関数は
\fItzname\fP, \fItimezone\fP, and \fIdaylight\fP を設定する必要はない。
.PP
関数 \fBgmtime\fP() は、カレンダー時刻 \fItimep\fP を 協定世界時 (UTC) での要素別の時刻へ変換する。
年が整数型に収まらない場合、NULL を返す。 返り値は静的に確保された構造体を指しており、この後で 日付や時刻に関する関数のいずれかが呼び出されると
上書きされる可能性がある。 \fBgmtime_r\fP() も同様だが、 データはユーザーが用意した構造体に格納される。
.PP
-é\96¢æ\95° \fBlocaltime\fP() ã\81¯ã\80\81ã\82«ã\83¬ã\83³ã\83\80ã\83¼æ\99\82å\88» \fItimep\fP ã\82\92 ã\83¦ã\83¼ã\82¶ã\81\8cæ\8c\87å®\9aã\81\97ã\81\9fã\82¿ã\82¤ã\83 ã\82¾ã\83¼ã\83³ã\81§ã\81®æ\99\82å\88»è¦\81ç´ å\88¥ã\81®è¡¨ç\8f¾ã\81¸å¤\89æ\8f\9bã\81\99ã\82\8bã\80\82 ã\81\93ã\81®é\96¢æ\95°ã\81¯
-\fBtzset\fP(3) を呼び出したかのように振舞い、 大域変数 \fItzname\fP に現在のタイムゾーンの情報を設定する。
+é\96¢æ\95° \fBlocaltime\fP() ã\81¯ã\80\81ã\82«ã\83¬ã\83³ã\83\80ã\83¼æ\99\82å\88» \fItimep\fP ã\82\92 ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cæ\8c\87å®\9aã\81\97ã\81\9fã\82¿ã\82¤ã\83 ã\82¾ã\83¼ã\83³ã\81§ã\81®æ\99\82å\88»è¦\81ç´ å\88¥ã\81®è¡¨ç\8f¾ã\81¸å¤\89æ\8f\9bã\81\99ã\82\8bã\80\82
+この関数は \fBtzset\fP(3) を呼び出したかのように振舞い、 大域変数 \fItzname\fP に現在のタイムゾーンの情報を設定する。
また、\fItimezone\fP に協定世界時 (UTC) とローカル標準時との 時差の秒数を設定し、 一年の一部で夏時間が適用される場合は
\fIdaylight\fP に 0 が設定される。 返り値は静的に確保された構造体を指しており、この後で 日付や時刻に関する関数のいずれかが呼び出されると
上書きされる可能性がある。 \fBlocaltime_r\fP() も同様だが、 データはユーザーが用意した構造体に格納される。 この関数は
\fItzname\fP, \fItimezone\fP, and \fIdaylight\fP を設定する必要はない。
.PP
関数 \fBasctime\fP() は、要素別の時刻 \fItm\fP を \fBctime\fP() と同じ形式のヌル終端された文字列へ変換する。
-返り値は静的に割り当てられた文字列へのポインタである。この文字列は、 日付・時刻関数のいずれかが呼び出されると上書きされることがある。
-ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ç\89\88ã\81§ã\81\82ã\82\8b \fBasctime_r\fP() ã\82\82å\90\8cæ§\98ã\81 ã\81\8cã\80\81 æ\96\87å\97å\88\97ã\81¯ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cç\94¨æ\84\8fã\81\97ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82ã\83\90ã\83\83ã\83\95ã\82¡のサイズは 少なくとも
+è¿\94ã\82\8aå\80¤ã\81¯é\9d\99ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82ã\81\93ã\81®æ\96\87å\97å\88\97ã\81¯ã\80\81 æ\97¥ä»\98ã\83»æ\99\82å\88»é\96¢æ\95°ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\81¨ä¸\8aæ\9b¸ã\81\8dã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\80\82
+ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ç\89\88ã\81§ã\81\82ã\82\8b \fBasctime_r\fP() ã\82\82å\90\8cæ§\98ã\81 ã\81\8cã\80\81 æ\96\87å\97å\88\97ã\81¯ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cç\94¨æ\84\8fã\81\97ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼のサイズは 少なくとも
26 バイト以上でなければならない。
.PP
関数 \fBmktime\fP() は、(ローカルタイムで記述されている) 要素別の時刻を カレンダー時刻へ変換する。この際、呼び出し元がフィールド
の使用が推奨されている。
.SH 注意
\fBasctime\fP(), \fBctime\fP(), \fBgmtime\fP(), \fBlocaltime\fP() の 4
-つの関数は静的データへのポインタを返すので、スレッドセーフではない。 これらの関数のスレッドセーフ版である \fBasctime_r\fP(),
+ã\81¤ã\81®é\96¢æ\95°ã\81¯é\9d\99ç\9a\84ã\83\87ã\83¼ã\82¿ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\81®ã\81§ã\80\81ã\82¹ã\83¬ã\83\83ã\83\89ã\82»ã\83¼ã\83\95ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\82»ã\83¼ã\83\95ç\89\88ã\81§ã\81\82ã\82\8b \fBasctime_r\fP(),
\fBctime_r\fP(), \fBgmtime_r\fP(), \fBlocaltime_r\fP() は SUSv2 で規定されている。
POSIX.1\-2001 では、「関数 \fBasctime\fP(), \fBctime\fP(), \fBgmtime\fP(), \fBlocaltime\fP()
directory) をルートディレクトリ ("/") に変更する。 それ以外の場合、現在の作業ディレクトリは変更されない。
.PP
\fInoclose\fP が 0 の場合、 \fBdaemon\fP() は標準入力・標準出力・標準エラーを \fI/dev/null\fP にリダイレクトする。
-それ以外の場合、これらのファイルディスクリプタは変更されない。
+ã\81\9dã\82\8c以å¤\96ã\81®å ´å\90\88ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯å¤\89æ\9b´ã\81\95ã\82\8cã\81ªã\81\84ã\80\82
.SH 返り値
.\" not .IR in order not to underline _
(この関数が fork して \fBfork\fP(2) が成功すると、親プロセスでは \fB_exit\fP(2)
\fItype\fP 引き数は \fIDBTYPE\fP 型である (インクルードファイル \fI<db.h>\fP で定義されている)。
\fBDB_BTREE\fP, \fBDB_HASH\fP, \fBDB_RECNO\fP のいずれかをセットできる。
.PP
-\fIopeninfo\fP 引き数はアクセスメソッドに固有な構造体へのポインタである。 それぞれの構造体に関しては各アクセスメソッドの
+\fIopeninfo\fP å¼\95ã\81\8dæ\95°ã\81¯ã\82¢ã\82¯ã\82»ã\82¹ã\83¡ã\82½ã\83\83ã\83\89ã\81«å\9bºæ\9c\89ã\81ªæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\81\9dã\82\8cã\81\9eã\82\8cã\81®æ§\8bé\80 ä½\93ã\81«é\96¢ã\81\97ã\81¦ã\81¯å\90\84ã\82¢ã\82¯ã\82»ã\82¹ã\83¡ã\82½ã\83\83ã\83\89ã\81®
マニュアルページに記述されている。 \fIopeninfo\fP が NULL の場合、それぞれのアクセスメソッドとシステムとに適合した
デフォルトが用いられる。
.PP
-\fBdbopen\fP() は、成功した場合 \fIDB\fP 構造体へのポインタを、エラーの場合 NULL を返す。 \fIDB\fP 構造体は
+\fBdbopen\fP() ã\81¯ã\80\81æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88 \fIDB\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92ã\80\81ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88 NULL ã\82\92è¿\94ã\81\99ã\80\82 \fIDB\fP æ§\8bé\80 ä½\93ã\81¯
\fI<db.h>\fP インクルードファイルの中で定義されており、 少なくとも以下のようなフィールドを持っている。
.sp
.in +4n
.in
.PP
各要素には、データベースのタイプと、 様々な動作をする関数のセットが記述されている。 これらの関数は \fBdbopen\fP()
-ã\81«ã\82\88ã\81£ã\81¦è¿\94ã\81\95ã\82\8cã\82\8bæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92å¼\95ã\81\8dæ\95°ã\81«ã\81¨ã\82\8bã\80\82 ã\82ã\83¼/ã\83\87ã\83¼ã\82¿æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿やフラグ値を取るものもある。
+ã\81«ã\82\88ã\81£ã\81¦è¿\94ã\81\95ã\82\8cã\82\8bæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å¼\95ã\81\8dæ\95°ã\81«ã\81¨ã\82\8bã\80\82 ã\82ã\83¼/ã\83\87ã\83¼ã\82¿æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼やフラグ値を取るものもある。
.TP
\fItype\fP
用いられているアクセスメソッド (とファイルフォーマット) の型。
.TP
\fIclose\fP
-キャッシュされた情報をディスクに掃きだすためのルーチンへのポインタ。 割り当てられたリソースを解放し、利用したファイル(群)をクローズする。
-キー/データ対がメモリにキャッシュされている場合、 \fIclose\fP や \fIsync\fP
+ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81\95ã\82\8cã\81\9fæ\83\85å ±ã\82\92ã\83\87ã\82£ã\82¹ã\82¯ã\81«æ\8e\83ã\81\8dã\81 ã\81\99ã\81\9fã\82\81ã\81®ã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82 å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83ªã\82½ã\83¼ã\82¹ã\82\92解æ\94¾ã\81\97ã\80\81å\88©ç\94¨ã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«(群)ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\99ã\82\8bã\80\82
+ã\82ã\83¼/ã\83\87ã\83¼ã\82¿å¯¾ã\81\8cã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81 \fIclose\fP ã\82\84 \fIsync\fP
関数での同期に失敗すると、情報に矛盾が生じるか情報を失う可能性がある。 \fIclose\fP ルーチンはエラーの場合 \-1 を返し (\fIerrno\fP
をセットする)、成功すると 0 を返す。
.TP
\fIdel\fP
-データベースからキー/データ対を削除するルーチンへのポインタ。
+ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89ã\82ã\83¼/ã\83\87ã\83¼ã\82¿å¯¾ã\82\92å\89\8aé\99¤ã\81\99ã\82\8bã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82
.IP
\fIflag\fP 引き数は次の値がセットできる。
.RS
がファイル中に無い場合 1 を返す。
.TP
\fIfd\fP
-ç\94¨ã\81\84ã\81¦ã\81\84ã\82\8bã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92è¿\94ã\81\99ã\83«ã\83¼ã\83\81ã\83³ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿。 同じファイル名 \fIfile\fP で \fBdbopen\fP()
-ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9få\85¨ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦ã\80\81 ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92示ã\81\99å\8d\98ä¸\80ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82¹ã\82¯ã\83ªã\83\97ã\82¿はロック関数
-\fBfcntl\fP(2) ã\81¨ \fBflock\fP(2) ã\81¸ã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦å®\89å\85¨ã\81«ä½¿ç\94¨ã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は、必ずしもアクセスメソッドで
-用いられているファイルのいずれかに関連づけられていなくても良い。 メモリ内のデータベースにはファイルデスクリプタは無い。 \fIfd\fP
-ã\83«ã\83¼ã\83\81ã\83³ã\81¯ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88 \-1 ã\82\92è¿\94ã\81\97 (\fIerrno\fP ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8b)ã\80\81æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を返す。
+ç\94¨ã\81\84ã\81¦ã\81\84ã\82\8bã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\83«ã\83¼ã\83\81ã\83³ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼。 同じファイル名 \fIfile\fP で \fBdbopen\fP()
+ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9få\85¨ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦ã\80\81 ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92示ã\81\99å\8d\98ä¸\80ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼はロック関数
+\fBfcntl\fP(2) ã\81¨ \fBflock\fP(2) ã\81¸ã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦å®\89å\85¨ã\81«ä½¿ç\94¨ã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は、必ずしもアクセスメソッドで
+用いられているファイルのいずれかに関連づけられていなくても良い。 メモリー内のデータベースにはファイルディスクリプターは無い。 \fIfd\fP
+ã\83«ã\83¼ã\83\81ã\83³ã\81¯ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88 \-1 ã\82\92è¿\94ã\81\97 (\fIerrno\fP ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8b)ã\80\81æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を返す。
.TP
\fIget\fP
-データベースからキーを用いてデータを取り出すための ルーチンへのポインタ。 指定した \fIkey\fP に関連づけられたデータのアドレスと長さが
+ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89ã\82ã\83¼ã\82\92ç\94¨ã\81\84ã\81¦ã\83\87ã\83¼ã\82¿ã\82\92å\8f\96ã\82\8aå\87ºã\81\99ã\81\9fã\82\81ã\81® ã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82 æ\8c\87å®\9aã\81\97ã\81\9f \fIkey\fP ã\81«é\96¢é\80£ã\81¥ã\81\91ã\82\89ã\82\8cã\81\9fã\83\87ã\83¼ã\82¿ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81¨é\95·ã\81\95ã\81\8c
\fIdata\fP が参照する構造体に返される。 \fIget\fP ルーチンはエラーの場合 \-1 を返し (\fIerrno\fP をセットする)、成功すると 0
を返す。また \fIkey\fP がファイル中に無い場合 1 を返す。
.TP
\fIput\fP
-キー/データ対をデータベースに納めるルーチンへのポインタ。
+ã\82ã\83¼/ã\83\87ã\83¼ã\82¿å¯¾ã\82\92ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«ç´\8dã\82\81ã\82\8bã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82
.IP
\fIflag\fP 引き数には次の値のうちのどれか一つがセットできる。
.RS
\fBR_NOOVERWRITE\fP がセットされていてキーが既に存在する場合 1 を返す。
.TP
\fIseq\fP
-データベースからシーケンシャルにデータを取り出すための ルーチンへのポインタ。 キーのアドレスと長さが \fIkey\fP
+ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89ã\82·ã\83¼ã\82±ã\83³ã\82·ã\83£ã\83«ã\81«ã\83\87ã\83¼ã\82¿ã\82\92å\8f\96ã\82\8aå\87ºã\81\99ã\81\9fã\82\81ã\81® ã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82 ã\82ã\83¼ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81¨é\95·ã\81\95ã\81\8c \fIkey\fP
が参照する構造体に返される。データのアドレスと長さが \fIdata\fP が参照する構造体に返される。
.IP
シーケンシャルなキー/データ対の取得はいつでも行える。また 「カーソル」の位置は \fIdel\fP, \fIget\fP, \fIput\fP, \fIsync\fP
かつデータベースファイルが文字型のスペシャルファイルで、 完成しているキー/データ対が無い場合には、 \fIseq\fP ルーチンは 2 を返す。
.TP
\fIsync\fP
-ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81\95ã\82\8cã\81\9fæ\83\85å ±ã\82\92ã\83\87ã\82£ã\82¹ã\82¯ã\81«æ\8e\83ã\81\8då\87ºã\81\99ã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\80\82 ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8cã\83¡ã\83¢ã\83ªの中だけにある場合、 \fIsync\fP
+ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81\95ã\82\8cã\81\9fæ\83\85å ±ã\82\92ã\83\87ã\82£ã\82¹ã\82¯ã\81«æ\8e\83ã\81\8då\87ºã\81\99ã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82 ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8cã\83¡ã\83¢ã\83ªã\83¼の中だけにある場合、 \fIsync\fP
ルーチンは何の効果もなく常に成功する。
.IP
flag には以下の値がセットできる。
\fIDBT\fP 構造体の各要素は次のように定義されている。
.TP
\fIdata\fP
-バイト文字列へのポインタ。
+ã\83\90ã\82¤ã\83\88æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82
.TP
\fIsize\fP
バイト文字列の長さ。
.PP
-キーとデータのバイト文字列は、 基本的には無制限の長さの文字列を参照できるが、 しかしいずれも使用可能なメモリに収まっていなくてはならない。
+ã\82ã\83¼ã\81¨ã\83\87ã\83¼ã\82¿ã\81®ã\83\90ã\82¤ã\83\88æ\96\87å\97å\88\97ã\81¯ã\80\81 å\9fºæ\9c¬ç\9a\84ã\81«ã\81¯ç\84¡å\88¶é\99\90ã\81®é\95·ã\81\95ã\81®æ\96\87å\97å\88\97ã\82\92å\8f\82ç\85§ã\81§ã\81\8dã\82\8bã\81\8cã\80\81 ã\81\97ã\81\8bã\81\97ã\81\84ã\81\9aã\82\8cã\82\82使ç\94¨å\8f¯è\83½ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81«å\8f\8eã\81¾ã\81£ã\81¦ã\81\84ã\81ªã\81\8fã\81¦ã\81¯ã\81ªã\82\89ã\81ªã\81\84ã\80\82
アクセスメソッドはバイト文字列のアラインメントについては 何も保証していない事に注意すること。
.SH エラー
\fBdbopen\fP() ルーチンは失敗するとライブラリルーチン \fBopen\fP(2) と \fBmalloc\fP(3) で指定されているエラーに応じた
ファイルが正しくフォーマットされていない。
.TP
\fBEINVAL\fP
-指定したパラメータ (ハッシュ関数、バイト埋めなど) が現在のファイル仕様
-に合っていない、パラメータが関数にとって無意味 (例えば、あらかじめ初期
+指定したパラメーター (ハッシュ関数、バイト埋めなど) が現在のファイル仕様
+ã\81«å\90\88ã\81£ã\81¦ã\81\84ã\81ªã\81\84ã\80\81ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8cé\96¢æ\95°ã\81«ã\81¨ã\81£ã\81¦ç\84¡æ\84\8få\91³ (ä¾\8bã\81\88ã\81°ã\80\81ã\81\82ã\82\89ã\81\8bã\81\98ã\82\81å\88\9dæ\9c\9f
化しないでカーソルを使うとか)、ファイルとソフトウェアのバージョンが
合っていない。
.PP
\fIdel\fP, \fIget\fP, \fIput\fP, \fIseq\fP ルーチンは失敗するとライブラリルーチン \fBread\fP(2), \fBwrite\fP(2),
\fBfree\fP(3), \fBmalloc\fP(3) で指定されているエラーに応じた \fIerrno\fP をセットする。
.PP
-\fIfd\fP ルーチンはメモリ内データベースに対し失敗すると \fIerrno\fP に \fBENOENT\fP をセットする。
+\fIfd\fP ルーチンはメモリー内データベースに対し失敗すると \fIerrno\fP に \fBENOENT\fP をセットする。
.PP
\fIsync\fP ルーチンは失敗するとライブラリルーチン \fBfsync\fP(2) で指定されているエラーに応じた \fIerrno\fP をセットする。
.SH バグ
typedef \fIDBT\fP は \*(lqdata base thang\*(rqの略語であるが、これが使われているのは、
まだ使われていない妥当な名前が思い付かなかったためである。
.PP
-ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を使ったやりとりはひどい代物であり、 将来のバージョンでは削除されるだろう。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を使ったやりとりはひどい代物であり、 将来のバージョンでは削除されるだろう。
.PP
どのアクセスメソッドも、同時アクセス、ロック、トランザクション の仕組みは備えていない。
.SH 関連項目
.\"
.TH DIRFD 3 2013\-07\-05 Linux "Linux Programmer's Manual"
.SH 名前
-dirfd \- ディレクトリストリームのファイルディスクリプタを取得する
+dirfd \- ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
\fB#include <sys/types.h>\fP
.br
.RE
.ad
.SH 説明
-関数 \fBdirfd\fP() はディレクトリストリーム \fIdirp\fP に関連づけられたファイルディスクリプタを返す。
+é\96¢æ\95° \fBdirfd\fP() ã\81¯ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¹ã\83\88ã\83ªã\83¼ã\83 \fIdirp\fP ã\81«é\96¢é\80£ã\81¥ã\81\91ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.LP
-このディスクリプタはディレクトリストリームが内部で使用するものである。 よって、ファイルの位置に依存せず、かつその位置を変更しない関数
-\fBfstat\fP(2) や \fBfchdir\fP(2) などでしか役に立たない。 このディスクリプタは \fBclosedir\fP(3)
+ã\81\93ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81\8cå\86\85é\83¨ã\81§ä½¿ç\94¨ã\81\99ã\82\8bã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82 ã\82\88ã\81£ã\81¦ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81®ä½\8dç½®ã\81«ä¾\9då\98ã\81\9bã\81\9aã\80\81ã\81\8bã\81¤ã\81\9dã\81®ä½\8dç½®ã\82\92å¤\89æ\9b´ã\81\97ã\81ªã\81\84é\96¢æ\95°
+\fBfstat\fP(2) ã\82\84 \fBfchdir\fP(2) ã\81ªã\81©ã\81§ã\81\97ã\81\8bå½¹ã\81«ç«\8bã\81\9fã\81ªã\81\84ã\80\82 ã\81\93ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ \fBclosedir\fP(3)
が呼ばれたときに自動的にクローズされる。
.SH 返り値
-成功すると、負でない値のファイルディスクリプタが返される。 エラーの場合は \-1 が返され、 \fIerrno\fP にエラーの原因を示す値が設定される。
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81è² ã\81§ã\81ªã\81\84å\80¤ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\81¯ \-1 ã\81\8cè¿\94ã\81\95ã\82\8cã\80\81 \fIerrno\fP ã\81«ã\82¨ã\83©ã\83¼ã\81®å\8e\9få\9b ã\82\92示ã\81\99å\80¤ã\81\8cè¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82
.SH エラー
.\" glibc 2.8
POSIX.1\-2008 では 2 つのエラーが規定されている。 現在の実装ではどちらのエラーも返されない。
\fIdirp\fP が有効なディレクトリストリームを参照していない。
.TP
\fBENOTSUP\fP
-この実装では、ファイルディスクリプタのディレクトリとの関連付けが サポートされていない。
+ã\81\93ã\81®å®\9fè£\85ã\81§ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81¨ã\81®é\96¢é\80£ä»\98ã\81\91ã\81\8c ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBdirfd\fP() 関数はスレッドセーフである。
\fBdl_iterate_phdr\fP() 関数はアプリケーションの共有オブジェクトのリストを辿り、 各オブジェクトに対して関数 \fIcallback\fP
を 1 回ずつ呼び出す。 これは全ての共有オブジェクトが処理されるか、 \fIcallback\fP が 0 以外の値を返すまで行われる。
-各々の \fIcallback\fP 呼び出しは 3 つの引き数を受け取る: \fIinfo\fP は共有オブジェクトの情報を保持する構造体へのポインタである。
+å\90\84ã\80\85ã\81® \fIcallback\fP å\91¼ã\81³å\87ºã\81\97ã\81¯ 3 ã\81¤ã\81®å¼\95ã\81\8dæ\95°ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8b: \fIinfo\fP ã\81¯å\85±æ\9c\89ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®æ\83\85å ±ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
\fIsize\fP は \fIinfo\fP で指される構造体のサイズである。 \fIdata\fP は呼び出し元プログラムから
\fBdl_iterate_phdr\fP() の呼び出しの (同じく \fIdata\fP という名前の) 第 2 引き数として渡される値のコピーである。
const char *dlpi_name; /* (ヌル文字で終端された)
オブジェクト名 */
const ElfW(Phdr) *dlpi_phdr; /* このオブジェクトの
- ELF プログラムヘッダの
- 配列へのポインタ */
+ ELF ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\81®
+ 配列へのポインター */
ElfW(Half) dlpi_phnum; /* \fIdlpi_phdr\fP のアイテム数 */
};
.fi
.in
-(\fIElfW\fP() マクロ定義は引き数をハードウェアアーキテクチャに適した ELF データ型の名前に変換する。 たとえば、32
-ビットプラットフォームでは ElfW(Addr) はデータ型名 Elf32_Addr を生成する。 これらの型についての更に詳細な情報は、ヘッダファイル
-\fI<elf.h>\fP と \fI<link.h>\fP にある。
+(\fIElfW\fP() ã\83\9eã\82¯ã\83å®\9a義ã\81¯å¼\95ã\81\8dæ\95°ã\82\92ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«é\81©ã\81\97ã\81\9f ELF ã\83\87ã\83¼ã\82¿å\9e\8bã\81®å\90\8då\89\8dã\81«å¤\89æ\8f\9bã\81\99ã\82\8bã\80\82 ã\81\9fã\81¨ã\81\88ã\81°ã\80\8132
+ビットプラットフォームでは ElfW(Addr) はデータ型名 Elf32_Addr を生成する。
+これらの型についての更に詳細な情報は、ヘッダーファイル \fI<elf.h>\fP と \fI<link.h>\fP にある。
-\fIdlpi_addr\fP フィールドは共有オブジェクトのベースアドレス (つまり、共有オブジェクトの仮想メモリアドレスと、 ファイル
+\fIdlpi_addr\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯å\85±æ\9c\89ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\83\99ã\83¼ã\82¹ã\82¢ã\83\89ã\83¬ã\82¹ (ã\81¤ã\81¾ã\82\8aã\80\81å\85±æ\9c\89ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\81¨ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«
(このファイルから共有オブジェクトがロードされる) における 共有オブジェクトのオフセットとの差分) を表す。 \fIdlpi_name\fP
はヌル文字で終端された文字列であり、 このパス名のファイルから共有オブジェクトがロードされる。
\fIdlpi_phdr\fP と \fIdlpi_phnum\fP フィールドの意味を理解するには、 ELF
-共有オブジェクトが幾つかのセグメントから構成されていることと、 各セグメントがそれに対応するプログラムヘッダ (そのセグメントを説明する)
-ã\82\92æ\8c\81ã\81£ã\81¦ã\81\84ã\82\8bã\81\93ã\81¨ã\82\92ç\9f¥ã\81£ã\81¦ã\81\84ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82 \fIdlpi_phdr\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\80\81ã\81\93ã\81®å\85±æ\9c\89ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\81®é\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿である。
+共有オブジェクトが幾つかのセグメントから構成されていることと、 各セグメントがそれに対応するプログラムヘッダー (そのセグメントを説明する)
+ã\82\92æ\8c\81ã\81£ã\81¦ã\81\84ã\82\8bã\81\93ã\81¨ã\82\92ç\9f¥ã\81£ã\81¦ã\81\84ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82 \fIdlpi_phdr\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\80\81ã\81\93ã\81®å\85±æ\9c\89ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\81®é\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼である。
\fIdlpi_phnum\fP は、この配列のサイズを表す。
-これらのプログラムヘッダは以下のような形式の構造体である:
+ã\81\93ã\82\8cã\82\89ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\81¯ä»¥ä¸\8bã\81®ã\82\88ã\81\86ã\81ªå½¢å¼\8fã\81®æ§\8bé\80 ä½\93ã\81§ã\81\82ã\82\8b:
.in +4n
.nf
Elf32_Addr p_vaddr; /* セグメントの仮想アドレス */
Elf32_Addr p_paddr; /* セグメントの物理アドレス */
Elf32_Word p_filesz; /* ファイルにおけるセグメントサイズ */
- Elf32_Word p_memsz; /* メモリにおけるセグメントサイズ */
+ Elf32_Word p_memsz; /* ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\81\8aã\81\91ã\82\8bã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82µã\82¤ã\82º */
Elf32_Word p_flags; /* セグメントフラグ */
Elf32_Word p_align; /* セグメントの配置 (alignment) */
} Elf32_Phdr;
.fi
.in
-特定のプログラムヘッダ \fIx\fP の仮想メモリにおける位置は、以下の式で計算できる点に注意すること:
+特定のプログラムヘッダー \fIx\fP の仮想メモリーにおける位置は、以下の式で計算できる点に注意すること:
.nf
addr == info\->dlpi_addr + info\->dlpi_phdr[x].p_vaddr;
.\"
.TH DLOPEN 3 2014\-10\-02 Linux "Linux Programmer's Manual"
.SH 名前
-dlclose, dlerror, dlopen, dlsym \- 動的リンクを行うローダへの プログラミングインターフェース
+dlclose, dlerror, dlopen, dlsym \- å\8b\95ç\9a\84ã\83ªã\83³ã\82¯ã\82\92è¡\8cã\81\86ã\83ã\83¼ã\83\80ã\83¼ã\81¸ã\81® ã\83\97ã\83ã\82°ã\83©ã\83\9fã\83³ã\82°ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹
.SH 書式
\fB#include <dlfcn.h>\fP
.sp
\fI\-ldl\fP でリンクする。
.SH 説明
\fBdlopen\fP(), \fBdlsym\fP(), \fBdlclose\fP(), \fBdlerror\fP() の 4つの関数は、動的リンク (dynamic
-linking) ã\82\92è¡\8cã\81\86ã\83ã\83¼ã\83\80ã\81¸ã\81® ã\82¤ã\83³ã\82¿フェースを実装したものである。
+linking) ã\82\92è¡\8cã\81\86ã\83ã\83¼ã\83\80ã\83¼ã\81¸ã\81® ã\82¤ã\83³ã\82¿ã\83¼フェースを実装したものである。
.SS dlerror()
関数 \fBdlerror\fP() は、前回 \fBdlerror\fP() が呼び出された後に、 \fBdlopen\fP(), \fBdlsym\fP(),
\fBdlclose\fP() のいずれかで最後に発生したエラーについての説明メッセージを返す。
.SS dlopen()
関数 \fBdlopen\fP() は、ヌル終端された文字列 \fIfilename\fP で指定されたファイル名の動的ライブラリ (dynamic
library) をロードし、 その動的ライブラリへの内部「ハンドル」を返す。 \fIfilename\fP が NULL
-ã\81®å ´å\90\88ã\80\81ã\83¡ã\82¤ã\83³ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¸ã\81®ã\83\8fã\83³ã\83\89ã\83«ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82 \fIfilename\fP ã\81\8cã\82¹ã\83©ã\83\83ã\82·ã\83¥ ("/")
-を含む場合、(相対か絶対かの)パス名として解釈される。 それ以外の場合、動的リンカは以下の手順でライブラリを検索する (詳細は \fBld.so\fP(8)
+の場合、メインプログラムへのハンドルが返される。 \fIfilename\fP がスラッシュ ("/")
+ã\82\92å\90«ã\82\80å ´å\90\88ã\80\81(ç\9b¸å¯¾ã\81\8b絶対ã\81\8bã\81®)ã\83\91ã\82¹å\90\8dã\81¨ã\81\97ã\81¦è§£é\87\88ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\9dã\82\8c以å¤\96ã\81®å ´å\90\88ã\80\81å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81¯ä»¥ä¸\8bã\81®æ\89\8bé \86ã\81§ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\82\92æ¤\9cç´¢ã\81\99ã\82\8b (詳細ã\81¯ \fBld.so\fP(8)
を参照):
.IP o 4
(ELF のみ) 呼び出し元プログラムの実行ファイルに DT_RPATH タグが含まれており、 DT_RUNPATH
-ã\82¿ã\82°ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\80\81DT_RPATH ã\82¿ã\82°ã\81«æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8b ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\83ªã\82¹ã\83\88ã\82\92æ¤\9cç´¢ã\81\99ã\82\8bã\80\82
+タグが含まれていない場合、DT_RPATH タグに書かれている ディレクトリリストを検索する。
.IP o
プログラムの開始時に環境変数 \fBLD_LIBRARY_PATH\fP にコロン区切りのディレクトリのリストが定義されていれば、
この環境変数に定義されたディレクトリが検索される (セキュリティ上の理由で、この変数は set\-UID や set\-GID された
プログラムの場合は無視される)。
.IP o
(ELF のみ) 呼び出し元プログラムの実行ファイルに DT_RUNPATH タグが含まれて
-ã\81\84ã\82\8bå ´å\90\88ã\80\81ã\81\9dã\81®ã\82¿ã\82°ã\81«æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\83ªã\82¹ã\83\88ã\82\92æ¤\9cç´¢ã\81\99ã\82\8bã\80\82
+いる場合、そのタグに書かれているディレクトリリストを検索する。
.IP o
-キャッシュファイル \fI/etc/ld.so.cache\fP の中に \fIfilename\fP のエントリが入っているかをチェックする
+ã\82ã\83£ã\83\83ã\82·ã\83¥ã\83\95ã\82¡ã\82¤ã\83« \fI/etc/ld.so.cache\fP ã\81®ä¸ã\81« \fIfilename\fP ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cå\85¥ã\81£ã\81¦ã\81\84ã\82\8bã\81\8bã\82\92ã\83\81ã\82§ã\83\83ã\82¯ã\81\99ã\82\8b
(\fB/etc/ld.so.cache\fP は \fBldconfig\fP(8) によって管理されている)。
.IP o
ディレクトリ \fI/lib\fP と \fI/usr/lib\fP をこの順番で検索する。
.PP
-そのライブラリが他の共有ライブラリに依存している場合は、 依存しているライブラリも動的リンカが同じ検索ルールに基づいて 自動的にロードする
+ã\81\9dã\81®ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81\8cä»\96ã\81®å\85±æ\9c\89ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\80\81 ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\83©ã\82¤ã\83\96ã\83©ã\83ªã\82\82å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81\8cå\90\8cã\81\98æ¤\9cç´¢ã\83«ã\83¼ã\83«ã\81«å\9fºã\81¥ã\81\84ã\81¦ è\87ªå\8b\95ç\9a\84ã\81«ã\83ã\83¼ã\83\89ã\81\99ã\82\8b
(それらのライブラリにさらに依存関係がある場合などは この処理は再帰的に行われる)。
.PP
\fIflag\fP には以下の 2 つの値のいずれかを含めなければならない:
このライブラリ内のシンボルの参照領域をグローバル領域よりも前に配置する。 つまり、内蔵型のライブラリでは、すでにロードされたライブラリに含まれる
同じ名前のグローバルなシンボルよりも自ライブラリ内のシンボルが優先して 使われる。 このフラグは POSIX.1\-2001 では規定されていない。
.PP
-\fIfilename\fP ã\81\8c NULL ã\81§ã\81\82ã\82\8bå ´å\90\88ã\81¯ã\80\81 è¿\94ã\81\95ã\82\8cã\82\8bã\83\8fã\83³ã\83\89ã\83«ã\81¯ã\83¡ã\82¤ã\83³ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®ã\82\82ã\81®ã\81«ã\81ªã\82\8bã\80\82 ã\81\93ã\81®ã\83\8fã\83³ã\83\89ã\83«ã\81\8c \fBdlsym\fP()
-ã\81«æ¸¡ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81ã\82·ã\83³ã\83\9cã\83«ã\81®æ¤\9cç´¢ã\81¯ã\80\81ã\83¡ã\82¤ã\83³ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 å\86\85ã\80\81 ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®èµ·å\8b\95æ\99\82ã\81«ã\83ã\83¼ã\83\89ã\81\95ã\82\8cã\82\8bå\85¨ã\81¦ã\81®å\85±æ\9c\89ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\80\81 \fBdlopen\fP() ã\81«ã\82\88ã\81£ã\81¦
+\fIfilename\fP が NULL である場合は、 返されるハンドルはメインプログラムのものになる。 このハンドルが \fBdlsym\fP()
+に渡されると、シンボルの検索は、メインプログラム内、 プログラムの起動時にロードされる全ての共有ライブラリ、 \fBdlopen\fP() によって
\fBRTLD_GLOBAL\fP フラグ付きでロードされた全ての共有ライブラリ、の順序で行われる。
.PP
オープンされたライブラリ中での外部参照は、 そのライブラリの依存リストにあるライブラリか、 \fBRTLD_GLOBAL\fP
\fBdlopen\fP() は、何らかの理由で失敗すると NULL を返す。
.SS dlsym()
関数 \fBdlsym\fP() は、 \fBdlopen\fP() が返した動的ライブラリの「ハンドル」と、 NULL
-終端されたシンボル名の文字列を引き数に取り、 そのシンボルがロードされたメモリのアドレスを返す。
+çµ\82端ã\81\95ã\82\8cã\81\9fã\82·ã\83³ã\83\9cã\83«å\90\8dã\81®æ\96\87å\97å\88\97ã\82\92å¼\95ã\81\8dæ\95°ã\81«å\8f\96ã\82\8aã\80\81 ã\81\9dã\81®ã\82·ã\83³ã\83\9cã\83«ã\81\8cã\83ã\83¼ã\83\89ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92è¿\94ã\81\99ã\80\82
シンボルが、指定されたライブラリと、指定されたライブラリがロードされる際に \fBdlopen\fP()
が自動的にロードしてライブラリのいずれにも見つからない場合には、 \fBdlsym\fP() は NULL を返す (\fBdlsym\fP()
による検索は、これらのライブラリの依存関係のツリーを先頭から 辿って行われる)。 実際にはシンボルの値自体が NULL になることもある (そのため、
.LP
関数 \fBdlclose\fP() は、成功した場合は 0 を返し、エラーの場合 0 以外を返す。
.SS "廃止されたシンボル _init() と _fini()"
-リンカは \fB_init\fP と \fB_fini\fP を特別なシンボルと解釈する。 ある動的ライブラリで \fB_init\fP()
+ã\83ªã\83³ã\82«ã\83¼ã\81¯ \fB_init\fP ã\81¨ \fB_fini\fP ã\82\92ç\89¹å\88¥ã\81ªã\82·ã\83³ã\83\9cã\83«ã\81¨è§£é\87\88ã\81\99ã\82\8bã\80\82 ã\81\82ã\82\8bå\8b\95ç\9a\84ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81§ \fB_init\fP()
という名前のルーチンがエクスポートされていれば、 そのコードは、ライブラリのロード後、かつ \fBdlopen\fP() が復帰する前に実行される。
その動的ライブラリで \fB_fini\fP() という名前のルーチンがエクスポートされていれば、
ライブラリがアンロードされる直前にそのルーチンが呼び出される。 システムの起動ファイルに対するリンクを避ける必要がある場合、 \fBgcc\fP(1)
\fBvoid *dlvsym(void *\fP\fIhandle\fP\fB, char *\fP\fIsymbol\fP\fB, char *\fP\fIversion\fP\fB);\fP
.fi
.PP
-é\96¢æ\95° \fBdladdr\fP() ã\81¯ã\80\81é\96¢æ\95°ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92å¼\95ã\81\8dæ\95°ã\81«ã\81¨ã\82\8aã\80\81é\96¢æ\95°ã\81®å\90\8då\89\8dã\81¨é\96¢æ\95°ã\81\8cå®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b ã\83\95ã\82¡ã\82¤ã\83«ã\81®è§£æ±ºã\82\92試ã\81¿ã\82\8bã\80\82æ\83\85å ±ã\81¯ \fIDl_info\fP
-構造体に格納される。
+é\96¢æ\95° \fBdladdr\fP() ã\81¯ã\80\81é\96¢æ\95°ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å¼\95ã\81\8dæ\95°ã\81«ã\81¨ã\82\8aã\80\81é\96¢æ\95°ã\81®å\90\8då\89\8dã\81¨é\96¢æ\95°ã\81\8cå®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b ã\83\95ã\82¡ã\82¤ã\83«ã\81®è§£æ±ºã\82\92試ã\81¿ã\82\8bã\80\82æ\83\85å ±ã\81¯
+\fIDl_info\fP 構造体に格納される。
.sp
.in +4n
.nf
シンボル \fBRTLD_DEFAULT\fP と \fBRTLD_NEXT\fP は \fI<dlfcn.h>\fP で定義されており、
\fI<dlfcn.h>\fP のインクルード前に \fB_GNU_SOURCE\fP が定義されている場合のみ有効となる。
-glibc 2.2.3 以降では、 \fBatexit\fP(3) を使って、ライブラリがアンロードされる際に自動的に呼び出される 終了ハンドラ (exit
-handler) を登録することができる。
+glibc 2.2.3 以降では、 \fBatexit\fP(3) を使って、ライブラリがアンロードされる際に自動的に呼び出される 終了ハンドラー
+(exit handler) を登録することができる。
.SS 歴史
dlopen インターフェースの標準は SunOS をもとにしている。 SunOS には \fBdladdr\fP() もあったが、 \fBdlvsym\fP()
はなかった。
.SH バグ
-æ\99\82ã\81¨ã\81\97ã\81¦ã\80\81 \fBdladdr\fP() ã\81«æ¸¡ã\81\97ã\81\9fé\96¢æ\95°ã\83\9dã\82¤ã\83³ã\82¿ã\81¯é©\9aã\81\8fã\82\88ã\81\86ã\81ªå\80¤ã\81«ã\81ªã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\80\82 ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ (特に i386 と
+æ\99\82ã\81¨ã\81\97ã\81¦ã\80\81 \fBdladdr\fP() ã\81«æ¸¡ã\81\97ã\81\9fé\96¢æ\95°ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯é©\9aã\81\8fã\82\88ã\81\86ã\81ªå\80¤ã\81«ã\81ªã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\80\82 ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ (特に i386 と
x86_64) では、 引き数として使用した関数が動的リンクライブラリで定義されるもので あったとしても、 \fIdli_fname\fP と
\fIdli_fbase\fP が \fBdladdr\fP() を呼び出したオブジェクトを参照した状態で終わっていることがある。
.PP
-å\95\8fé¡\8cã\81¯ã\80\81é\96¢æ\95°ã\83\9dã\82¤ã\83³ã\82¿ã\81®è§£æ±ºã\81¯ä»\8aã\81ªã\81\8aã\82³ã\83³ã\83\91ã\82¤ã\83«æ\99\82ã\81«è¡\8cã\82\8fã\82\8cã\82\8bã\81\8cã\80\81 ã\81\9dã\81®ã\83\9dã\82¤ã\83³ã\82¿は元のオブジェクトの \fIplt\fP (Procedure Linkage
-Table) セクションを指しているだけだという点にある (オブジェクト自体は、ダイナミックリンカによってシンボルの解決が行われた後に、
+å\95\8fé¡\8cã\81¯ã\80\81é\96¢æ\95°ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®è§£æ±ºã\81¯ä»\8aã\81ªã\81\8aã\82³ã\83³ã\83\91ã\82¤ã\83«æ\99\82ã\81«è¡\8cã\82\8fã\82\8cã\82\8bã\81\8cã\80\81 ã\81\9dã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼は元のオブジェクトの \fIplt\fP (Procedure Linkage
+Table) ã\82»ã\82¯ã\82·ã\83§ã\83³ã\82\92æ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\81 ã\81\91ã\81 ã\81¨ã\81\84ã\81\86ç\82¹ã\81«ã\81\82ã\82\8b (ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88è\87ªä½\93ã\81¯ã\80\81ã\83\80ã\82¤ã\83\8aã\83\9fã\83\83ã\82¯ã\83ªã\83³ã\82«ã\83¼ã\81«ã\82\88ã\81£ã\81¦ã\82·ã\83³ã\83\9cã\83«ã\81®è§£æ±ºã\81\8cè¡\8cã\82\8fã\82\8cã\81\9få¾\8cã\81«ã\80\81
関数の呼び出しを行う)。 これに対処する方法としては、 コードを position\-independent でコンパイルするという方法がある。
-そうすると、コンパイラはコンパイル時にポインタを用意することができず、 今日の \fBgcc\fP(1) では、実行時に \fBdladdr\fP()
-に関数ポインタを渡す前に、 \fIgot\fP (Global Offset Table) から最終的なシンボルのアドレスをロードするだけの
+ã\81\9dã\81\86ã\81\99ã\82\8bã\81¨ã\80\81ã\82³ã\83³ã\83\91ã\82¤ã\83©ã\81¯ã\82³ã\83³ã\83\91ã\82¤ã\83«æ\99\82ã\81«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92ç\94¨æ\84\8fã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81\9aã\80\81 ä»\8aæ\97¥ã\81® \fBgcc\fP(1) ã\81§ã\81¯ã\80\81å®\9fè¡\8cæ\99\82ã\81« \fBdladdr\fP()
+ã\81«é\96¢æ\95°ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92渡ã\81\99å\89\8dã\81«ã\80\81 \fIgot\fP (Global Offset Table) ã\81\8bã\82\89æ\9c\80çµ\82ç\9a\84ã\81ªã\82·ã\83³ã\83\9cã\83«ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92ã\83ã\83¼ã\83\89ã\81\99ã\82\8bã\81 ã\81\91ã\81®
コードが生成される。
.SH 例
math ライブラリをロードし、2.0 の余弦を表示する
cosine = (double (*)(double)) dlsym(handle, "cos");
- /* ISO の C 標準によれば、上のような、関数ポインタと 'void *' 間の
+ /* ISO ã\81® C æ¨\99æº\96ã\81«ã\82\88ã\82\8cã\81°ã\80\81ä¸\8aã\81®ã\82\88ã\81\86ã\81ªã\80\81é\96¢æ\95°ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ 'void *' é\96\93ã\81®
キャストを行った場合に得られる結果は不定である。
POSIX.1\-2003 と POSIX.1\-2008 では、この状況は認められており、
以下のようなワークアラウンドが提案されている。
.\" http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlsym.html#tag_16_96_07
.\" http://austingroupbugs.net/view.php?id=74
POSIX.1\-2008 の 2013 Technical Corrigendum (別名 POSIX.1\-2013)
- では、 POSIX に準拠する実装では 'void *' から関数ポインタへの
+ ã\81§ã\81¯ã\80\81 POSIX ã\81«æº\96æ\8b ã\81\99ã\82\8bå®\9fè£\85ã\81§ã\81¯ 'void *' ã\81\8bã\82\89é\96¢æ\95°ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¸ã\81®
キャストをサポートすることが要求されるようになり、状況が改善
された。にもかかわらず、('\-pedantic' オプションを指定した gcc
などの) いくつかのコンパイラは、このプログラムで使用されている
.\"
.TH DPRINTF 3 2010\-09\-15 GNU "Linux Programmer's Manual"
.SH 名前
-dprintf, vdprintf \- ファイルディスクリプタに文字出力する
+dprintf, vdprintf \- ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«æ\96\87å\97å\87ºå\8a\9bã\81\99ã\82\8b
.SH 書式
\fB#include <stdio.h>\fP
.sp
.PD
.SH 説明
(glibc2 ライブラリにおける) \fBdprintf\fP() 関数と \fBvdprintf\fP() 関数とは、それぞれ \fBfprintf\fP(3)
-関数と \fBvfprintf\fP(3) 関数とにちょうど対応するが、 これらは \fIstdio\fP ストリームではなくファイルディスクリプタ \fIfd\fP
+関数と \fBvfprintf\fP(3) 関数とにちょうど対応するが、 これらは \fIstdio\fP ストリームではなくファイルディスクリプター \fIfd\fP
に対して出力を行う。
.SH 準拠
.\" .SH NOTES
.RE
.fi
.sp
-ここで n >= 0 である。 パラメータが \fIm\fP = 2^48 であるため、48ビット整数演算が行われている。 \fBlcong48\fP()
+ã\81\93ã\81\93ã\81§ n >= 0 ã\81§ã\81\82ã\82\8bã\80\82 ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8c \fIm\fP = 2^48 ã\81§ã\81\82ã\82\8bã\81\9fã\82\81ã\80\8148ã\83\93ã\83\83ã\83\88æ\95´æ\95°æ¼\94ç®\97ã\81\8cè¡\8cã\82\8fã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 \fBlcong48\fP()
が呼ばれていない場合、\fIa\fP と \fIc\fP は以下の式で与えられる。
.sp
.nf
そして、返すべきデータの型に依存した適切な ビット数が \fIXi\fP の上位ビットからコピーされる。 最後に、この値を返り値に変換する。
.PP
関数 \fBdrand48\fP(), \fBlrand48\fP(), \fBmrand48\fP() は 最後に生成された48ビットの \fIXi\fP
-を内部バッファに格納する。 配列の形の引数 \fIxsubi\fP に個々の \fIXi\fP の値を 格納できるような領域を確保することを、 関数
+ã\82\92å\86\85é\83¨ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82 é\85\8då\88\97ã\81®å½¢ã\81®å¼\95æ\95° \fIxsubi\fP ã\81«å\80\8bã\80\85ã\81® \fIXi\fP ã\81®å\80¤ã\82\92 æ ¼ç´\8dã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81ªé \98å\9f\9fã\82\92確ä¿\9dã\81\99ã\82\8bã\81\93ã\81¨ã\82\92ã\80\81 é\96¢æ\95°
\fBerand48\fP(), \fBnrand48\fP(), \fBjrand48\fP() は、 呼び出し側のプログラムに要求する。
これらの関数は、はじめてそれらの関数を呼ぶ前に \fIXi\fP の初期値を配列に 代入することで初期化される。
.PP
下位の16ビットは、適当に決められた値である0x330Eに設定される。
.PP
初期化関数 \fBseed48\fP() は、\fIXi\fP の値を、 配列の形をした引数である \fIseed16v\fP の中で指定された
-48ビットの値に設定する。 \fIXi\fP の前の値は内部バッファにコピーされ、このバッファへのポインタが \fBseed48\fP() によって返される。
+48ビットの値に設定する。 \fIXi\fP の前の値は内部バッファーにコピーされ、このバッファーへのポインターが \fBseed48\fP()
+によって返される。
.PP
初期化関数 \fBlcong48\fP() は使用者が \fIXi\fP, \fIa\fP, \fIc\fP の 初期値を指定するための関数である。
配列の形をした引数の要素はそれぞれ、\fIparam[0\-2]\fP は \fIXi\fP を、 \fIparam[3\-5]\fP は \fIa\fP
.SH エラー
.TP
\fBENOMEM\fP
-ロケールオブジェクトの複製を作成するのに十分なメモリがない。
+ã\83ã\82±ã\83¼ã\83«ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®è¤\87製ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.SH バージョン
\fBduplocale\fP() 関数は GNU C ライブラリのバージョン 2.3 で初めて登場した。
.SH 準拠
.SH 注意
ロケールの複製は以下のことを行う際に役立つ。
.IP * 3
-ロケールオブジェクトのコピーを作成し、 (\fBnewlocale\fP(3) を使って) いくつかのカテゴリだけを変更する。
+ã\83ã\82±ã\83¼ã\83«ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\82³ã\83\94ã\83¼ã\82\92ä½\9cæ\88\90ã\81\97ã\80\81 (\fBnewlocale\fP(3) ã\82\92使ã\81£ã\81¦) ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81 ã\81\91ã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82
.IP *
現在のロケールに対するハンドルを取得する。 このハンドルはロケールハンドルを受け取る他の関数 (\fBtoupper_l\fP(3) など) で使用できる。
これを行うには、 以下の呼び出しが返した値を \fBduplocale\fP() に渡せばよい。
.RE
.ad b
.SH 説明
-関数 \fBecvt\fP() は \fInumber\fP をヌル文字で終端された \fIndigits\fP 文字の文字列へ変換し、その文字列へのポインタを返す
+é\96¢æ\95° \fBecvt\fP() ã\81¯ \fInumber\fP ã\82\92ã\83\8cã\83«æ\96\87å\97ã\81§çµ\82端ã\81\95ã\82\8cã\81\9f \fIndigits\fP æ\96\87å\97ã\81®æ\96\87å\97å\88\97ã\81¸å¤\89æ\8f\9bã\81\97ã\80\81ã\81\9dã\81®æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99
(\fIndigits\fP が \fIdouble\fP の精度によって決定されるシステム依存の上限値より大きい場合は、 その条件値が \fIndigits\fP
の値となる)。 \fInumber\fP が 0 でなければ、最上位の桁は 0 以外である。 最下位の桁は丸められる。
文字列には小数点は含まれない。そのかわりに、文字列の先頭からの小数点の 位置が \fI*decpt\fP に保持される。 \fI*decpt\fP
.PP
関数 \fBfcvt\fP() は \fBecvt\fP() と同じ機能を持つが、\fIndigits\fP は小数点以下の文字数を指定する。
.SH 返り値
-関数 \fBecvt\fP() と \fBfcvt\fP() は \fInumber\fP の ASCII 表現を含む 静的な領域内の文字列へのポインタを返す。
+é\96¢æ\95° \fBecvt\fP() ã\81¨ \fBfcvt\fP() ã\81¯ \fInumber\fP ã\81® ASCII 表ç\8f¾ã\82\92å\90«ã\82\80 é\9d\99ç\9a\84ã\81ªé \98å\9f\9få\86\85ã\81®æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
この文字列は \fBecvt\fP() や \fBfcvt\fP() の呼び出しのたびに上書きされる。
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
.ad b
.SH 説明
関数 \fBecvt_r\fP(), \fBfcvt_r\fP(), \fBqecvt_r\fP(), \fBqfcvt_r\fP() は、それぞれ \fBecvt\fP(3),
-\fBfcvt\fP(3), \fBqecvt\fP(3), \fBqfcvt\fP(3) と同じであるが、 静的バッファの代わりに、長さ \fIlen\fP の指定された
+\fBfcvt\fP(3), \fBqecvt\fP(3), \fBqfcvt\fP(3) ã\81¨å\90\8cã\81\98ã\81§ã\81\82ã\82\8bã\81\8cã\80\81 é\9d\99ç\9a\84ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ä»£ã\82\8fã\82\8aã\81«ã\80\81é\95·ã\81\95 \fIlen\fP ã\81®æ\8c\87å®\9aã\81\95ã\82\8cã\81\9f
\fIbuf\fP に結果を格納する点が異なる。 \fBecvt\fP(3), \fBqecvt\fP(3) を参照のこと。
.SH 返り値
これらの関数は成功すると 0 を、それ以外は \-1 を返す。
n=8*i\-1 に対するバイト key[n] は無視されるので、 有効な暗号鍵の長さは 56 ビットになる。
.PP
\fBencrypt\fP() 関数は、 \fIedflag\fP が 0 の場合は暗号化し、1 が渡された場合は復号化するというように、
-渡されたバッファを変更する。 引き数 \fIkey\fP と同様に、 \fIblock\fP はエンコードされた実際の値を表現するビットの配列である。
+渡ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82 å¼\95ã\81\8dæ\95° \fIkey\fP ã\81¨å\90\8cæ§\98ã\81«ã\80\81 \fIblock\fP ã\81¯ã\82¨ã\83³ã\82³ã\83¼ã\83\89ã\81\95ã\82\8cã\81\9få®\9fé\9a\9bã\81®å\80¤ã\82\92表ç\8f¾ã\81\99ã\82\8bã\83\93ã\83\83ã\83\88ã\81®é\85\8då\88\97ã\81§ã\81\82ã\82\8bã\80\82
結果はこの同じ配列を使って返される。
.PP
これら 2 つの関数はリエントラント (reentrant) ではない。 つまり暗号鍵データは静的な領域に保存される。 関数 \fBsetkey_r\fP()
.SH 準拠
これらのシンボルは長年ほとんどの UNIX システムで提供されているが、 標準化されてはいない。注意して使うこと。
.SH 注意
-プログラムではこれらのシンボルは明示的に宣言しなければならない。 これらはどのヘッダファイルでも定義されていない。
+ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\82·ã\83³ã\83\9cã\83«ã\81¯æ\98\8e示ç\9a\84ã\81«å®£è¨\80ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\81\93ã\82\8cã\82\89ã\81¯ã\81©ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81§ã\82\82å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
いくつかのシステムでは、これらのシンボルの名前は前にアンダースコアが 付いていて、 \fI_etext\fP, \fI_edata\fP, \fI_end\fP
となっている。 Linux でコンパイルされたプログラムでは、 これらのシンボルでも定義される。
-ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®å®\9fè¡\8cé\96\8bå§\8bæ\99\82ã\81«ã\80\81ã\83\97ã\83ã\82°ã\83©ã\83 ã\83»ã\83\96ã\83¬ã\83¼ã\82¯ã\81¯ \fI&end\fP ã\81®è¿\91ã\81\8fã\81®ã\81©ã\81\93ã\81\8b (ã\81\8aã\81\9dã\82\89ã\81\8f次ã\81®ã\83\9aã\83¼ã\82¸ã\81®å\85\88é ) ã\81«ã\81ªã\82\8bã\80\82 ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89ã\80\81
-\fBbrk\fP(2) ã\82\84 \fBmalloc\fP(3) ã\81§ã\83¡ã\83¢ã\83ªã\81\8cå\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\82\8bã\81«é\80£ã\82\8cã\81¦ã\80\81ã\83\97ã\83ã\82°ã\83©ã\83 ã\83»ブレークは変化していく。 引き数に 0 を指定して
-\fBsbrk\fP(2) ã\82\92å\91¼ã\81³å\87ºã\81\99ã\81\93ã\81¨ã\81§ã\80\81ã\83\97ã\83ã\82°ã\83©ã\83 ã\83»ã\83\96ã\83¬ã\83¼ã\82¯ã\81®ç\8f¾å\9c¨å\80¤ã\82\92ç\9f¥ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
+プログラムの実行開始時に、プログラムブレークは \fI&end\fP の近くのどこか (おそらく次のページの先頭) になる。 しかしながら、
+\fBbrk\fP(2) ã\82\84 \fBmalloc\fP(3) ã\81§ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\82\8bã\81«é\80£ã\82\8cã\81¦ã\80\81ã\83\97ã\83ã\82°ã\83©ã\83 ブレークは変化していく。 引き数に 0 を指定して
+\fBsbrk\fP(2) を呼び出すことで、プログラムブレークの現在値を知ることができる。
.SH 例
下記のプログラムを実行すると、次のような出力が得られる。
.in +4n
.SH 準拠
これらの関数は非標準である。
BSD には同様の関数が存在するが、 BSD では
-必要なヘッダファイルは \fI<endian.h>\fP ではなく
+å¿\85è¦\81ã\81ªã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ \fI<endian.h>\fP ã\81§ã\81¯ã\81ªã\81\8f
\fI<sys/endian.h>\fP である。
不幸なことに、 NetBSD, FreeBSD, glibc では、
これらの関数の元々の OpenBSD での、 \fInn\fP は常に関数名の末尾に置く
.SH 説明
これらの関数は glibc 固有である。
.LP
-argz vector ã\81¯é\95·ã\81\95æ\83\85å ±ä»\98ã\81\8dã\81®æ\96\87å\97ã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿である。 \fBargz_add\fP(3) を参照のこと。 envz vector
+argz vector ã\81¯é\95·ã\81\95æ\83\85å ±ä»\98ã\81\8dã\81®æ\96\87å\97ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼である。 \fBargz_add\fP(3) を参照のこと。 envz vector
は、文字列が "name=value (名前=値)" の形式になっている特別な argz vector である。 最初の \(aq=\(aq
以降はすべて値とみなされる。\(aq=\(aq がなければ、 値は NULL と解釈される。(文字列の一番最後の文字が \(aq=\(aq
の場合、値は空文字列 "" と解釈される。)
\fBenvz_add\fP() は、文字列 "\fIname\fP=\fIvalue\fP" (\fIvalue\fP が NULL でない場合) または
"\fIname\fP" (\fIvalue\fP が NULL の場合) を envz vector (\fI*envz\fP,\ \fI*envz_len\fP)
に追加し、 \fI*envz\fP と \fI*envz_len\fP を更新する。 \fIname\fP
-ã\81¨å\90\8cã\81\98å\90\8då\89\8dã\82\92æ\8c\81ã\81¤ã\82¨ã\83³ã\83\88ã\83ªã\81\8cã\81\82ã\81£ã\81\9få ´å\90\88ã\80\81å\85\83ã\81®ã\82¨ã\83³ã\83\88ã\83ªは削除される。
+ã\81¨å\90\8cã\81\98å\90\8då\89\8dã\82\92æ\8c\81ã\81¤ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\81\82ã\81£ã\81\9få ´å\90\88ã\80\81å\85\83ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼は削除される。
.LP
\fBenvz_entry\fP() は、envz vector (\fIenvz\fP,\ \fIenvz_len\fP) から名前が \fIname\fP
-ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92æ¤\9cç´¢ã\81\99ã\82\8bã\80\82 è¦\8bã\81¤ã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªを返し、見つからなかった場合は NULL を返す。
+ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92æ¤\9cç´¢ã\81\99ã\82\8bã\80\82 è¦\8bã\81¤ã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼を返し、見つからなかった場合は NULL を返す。
.LP
\fBenvz_get\fP() は、envz vector (\fIenvz\fP,\ \fIenvz_len\fP) から名前が \fIname\fP
-ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92æ¤\9cç´¢ã\81\99ã\82\8bã\80\82 è¦\8bã\81¤ã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ã\82¨ã\83³ã\83\88ã\83ªの値を返し、見つからなかった場合は NULL を返す。 (値は NULL
-の場合もあることに注意すること。名前が \fIname\fP のエントリに \(aq=\(aq 符号がない場合が該当する。)
+ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92æ¤\9cç´¢ã\81\99ã\82\8bã\80\82 è¦\8bã\81¤ã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ã\82¨ã\83³ã\83\88ã\83ªã\83¼の値を返し、見つからなかった場合は NULL を返す。 (値は NULL
+ã\81®å ´å\90\88ã\82\82ã\81\82ã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\99ã\82\8bã\81\93ã\81¨ã\80\82å\90\8då\89\8dã\81\8c \fIname\fP ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81« \(aq=\(aq 符å\8f·ã\81\8cã\81ªã\81\84å ´å\90\88ã\81\8c該å½\93ã\81\99ã\82\8bã\80\82)
.LP
-\fBenvz_merge\fP() は、 \fBenvz_add\fP() と同じように \fIenvz2\fP の各エントリを \fI*envz\fP に追加する。
+\fBenvz_merge\fP() ã\81¯ã\80\81 \fBenvz_add\fP() ã\81¨å\90\8cã\81\98ã\82\88ã\81\86ã\81« \fIenvz2\fP ã\81®å\90\84ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 \fI*envz\fP ã\81«è¿½å\8a ã\81\99ã\82\8bã\80\82
\fIoverride\fP が真の場合、 \fIenvz2\fP の値で \fI*envz\fP 内の同じ名前をもつ値は上書きされる。 偽の場合は上書きされない。
.LP
-\fBenvz_remove\fP() は、名前が \fIname\fP のエントリがあれば (\fI*envz\fP,\ \fI*envz_len\fP) から削除する。
+\fBenvz_remove\fP() は、名前が \fIname\fP のエントリーがあれば (\fI*envz\fP,\ \fI*envz_len\fP)
+から削除する。
.LP
-\fBenvz_strip\fP() は、値が NULL のエントリをすべて削除する。
+\fBenvz_strip\fP() ã\81¯ã\80\81å\80¤ã\81\8c NULL ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\81\99ã\81¹ã\81¦å\89\8aé\99¤ã\81\99ã\82\8bã\80\82
.SH 返り値
-メモリ割り当てを行う envz 関数群はすべて \fIerror_t\fP 型の返り値を持つ。 成功した場合は 0 を返し、割り当てエラーが発生した場合は
+メモリー割り当てを行う envz 関数群はすべて \fIerror_t\fP 型の返り値を持つ。 成功した場合は 0 を返し、割り当てエラーが発生した場合は
\fBENOMEM\fP を返す。
.SH 準拠
これらの関数は GNU による拡張である。注意して使用すること。
.\".BI "extern int " errno ;
\fB#include <errno.h>\fP
.SH 説明
-ヘッダファイル \fI<errno.h>\fP で整数型の変数 \fIerrno\fP が定義されており、
+ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83« \fI<errno.h>\fP ã\81§æ\95´æ\95°å\9e\8bã\81®å¤\89æ\95° \fIerrno\fP ã\81\8cå®\9a義ã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81
システムコールやいくつかのライブラリ関数は、エラーが発生した際に この変数にその原因を示す値を設定する。 この値は呼び出しの返り値がエラー
(ほとんどのシステムコールでは \-1 で、ほとんどのライブラリ関数では \-1 か NULL) を示したときに
のみ意味を持つが、ライブラリ関数は成功した場合も \fIerrno\fP を変更することが許されている。
アドレスが使用できない (POSIX.1)
.TP
\fBEAFNOSUPPORT\fP
-ã\82¢ã\83\89ã\83¬ã\82¹ã\83»ã\83\95ã\82¡ã\83\9fã\83ªã\83¼ã\81\8cã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84 (POSIX.1)
+アドレスファミリーがサポートされていない (POSIX.1)
.TP
\fBEAGAIN\fP
リソースが一時的に利用不可 (\fBEWOULDBLOCK\fP と同じ値でもよい) (POSIX.1)
不正なやり取り (exchange) である
.TP
\fBEBADF\fP
-ファイルディスクリプタが不正である (POSIX.1)
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cä¸\8dæ£ã\81§ã\81\82ã\82\8b (POSIX.1)
.TP
\fBEBADFD\fP
-ファイルディスクリプタが不正な状態である
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cä¸\8dæ£ã\81ªç\8a¶æ\85\8bã\81§ã\81\82ã\82\8b
.TP
\fBEBADMSG\fP
メッセージが不正である (POSIX.1)
.TP
\fBEBADR\fP
-不正なリクエストディスクリプタ
+不正なリクエストディスクリプター
.TP
\fBEBADRQC\fP
不正なリクエストコード
.TP
\fBEDQUOT\fP
.\" POSIX just says "Reserved"
-ã\83\87ã\82£ã\82¹ã\82¯ã\83»ã\82¯ã\82©ã\83¼ã\82¿ (quota) ã\82\92è¶\85é\81\8eã\81\97ã\81\9f (POSIX.1)
+ディスククォータ (quota) を超過した (POSIX.1)
.TP
\fBEEXIST\fP
ファイルが存在する (POSIX.1)
.TP
\fBELOOP\fP
.\" ELNRNG is defined but appears to be unused
-ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83»ã\83ªã\83³ã\82¯ã\81®å\9b\9eæ\95°ã\81\8cå¤\9aé\81\8eã\81\8eã\82\8b (POSIX.1)
+シンボリックリンクの回数が多過ぎる (POSIX.1)
.TP
\fBEMEDIUMTYPE\fP
間違ったメディア種別である
.TP
\fBENOBUFS\fP
.\" ENOCSI is defined but appears to be unused.
-使用可能なバッファ空間がない (POSIX.1 (XSI STREAMS option))
+使用可能なバッファー空間がない (POSIX.1 (XSI STREAMS option))
.TP
\fBENODATA\fP
ストリームの読み出しキューの先頭に読み出し可能なメッセージがない (POSIX.1)
メディアが見つからない
.TP
\fBENOMEM\fP
-十分な空きメモリ領域が無い (POSIX.1)
+十分な空きメモリー領域が無い (POSIX.1)
.TP
\fBENOMSG\fP
要求された型のメッセージが存在しない (POSIX.1)
デバイスに空き領域が無い (POSIX.1)
.TP
\fBENOSR\fP
-æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\83»ã\83ªã\82½ã\83¼ã\82¹ã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\84 (POSIX.1 (XSI STREAMS option))
+指定されたストリームリソースが存在しない (POSIX.1 (XSI STREAMS option))
.TP
\fBENOSTR\fP
ストリームではない (POSIX.1 (XSI STREAMS option))
パイプが壊れている (POSIX.1)
.TP
\fBEPROTO\fP
-ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83»ã\82¨ã\83©ã\83¼ (POSIX.1)
+プロトコルエラー (POSIX.1)
.TP
\fBEPROTONOSUPPORT\fP
プロトコルがサポートされていない (POSIX.1)
.TP
\fBEPROTOTYPE\fP
-ã\82½ã\82±ã\83\83ã\83\88ã\81«æ\8c\87å®\9aã\81§ã\81\8dã\81ªã\81\84ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83»ã\82¿ã\82¤ã\83\97ã\81§ã\81\82ã\82\8b (POSIX.1)
+ソケットに指定できないプロトコルタイプである (POSIX.1)
.TP
\fBERANGE\fP
結果が大き過ぎる (POSIX.1, C99)
NFS や他のファイルシステムで起こりうる。
.TP
\fBESTRPIPE\fP
-ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\83»ã\83\91ã\82¤ã\83\97ã\83»エラー
+ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\83\91ã\82¤ã\83\97エラー
.TP
\fBETIME\fP
時間が経過した (POSIX.1 (XSI STREAMS option))
プロトコルのドライバが付与 (attach) されていない
.TP
\fBEUSERS\fP
-ユーザ数が多過ぎる
+ユーザー数が多過ぎる
.TP
\fBEWOULDBLOCK\fP
操作がブロックされる見込みである (\fBEAGAIN\fP と同じ値でもよい) (POSIX.1)
.fi
.SH 説明
関数 \fBether_aton\fP() は、標準的な 16進数とコロンの形式で書かれた 48ビットの Ethernet ホストアドレス \fIasc\fP
-を、ネットワークでのバイト順 (byte order) のバイナリデータに変換し、静的に割り当てられたバッファに格納されたデータ
-ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡は、これ以降の関数呼び出しで上書きされる。 アドレスが不正な場合、 \fBether_aton\fP() は NULL
+ã\82\92ã\80\81ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\81§ã\81®ã\83\90ã\82¤ã\83\88é \86 (byte order) ã\81®ã\83\90ã\82¤ã\83\8aã\83ªã\83\87ã\83¼ã\82¿ã\81«å¤\89æ\8f\9bã\81\97ã\80\81é\9d\99ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\81\9fã\83\87ã\83¼ã\82¿
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼は、これ以降の関数呼び出しで上書きされる。 アドレスが不正な場合、 \fBether_aton\fP() は NULL
を返す。
.PP
関数 \fBether_ntoa\fP() は、ネットワークのバイト順で表された Ethernet ホストアドレス \fIaddr\fP を、標準的な
-16進数とコロンの形式の文字列に変換する。 但し、先頭の 0 は省略される。変換後の文字列は静的に割り当てられたバッファ
-に格納されて返される。このバッファは、これ以降の関数呼び出しで上書きされる。
+16進数とコロンの形式の文字列に変換する。 但し、先頭の 0 は省略される。変換後の文字列は静的に割り当てられたバッファー
+ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\81¦è¿\94ã\81\95ã\82\8cã\82\8bã\80\82ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯ã\80\81ã\81\93ã\82\8c以é\99\8dã\81®é\96¢æ\95°å\91¼ã\81³å\87ºã\81\97ã\81§ä¸\8aæ\9b¸ã\81\8dã\81\95ã\82\8cã\82\8bã\80\82
.PP
関数 \fBether_ntohost\fP() は、Ethernet アドレスに対応するホスト名を \fI/etc/ethers\fP
を検索して割り当てる。対応するホスト名が見つからなかった場合は、 非 0 を返す。
関数 \fBether_line\fP() は、 \fI/etc/ethers\fP 形式になった行を解析し、 アドレスとホスト名の組を返す
(\fI/etc/ethers\fP 形式は、Ethernet アドレス、ホスト名が空白文字 (whitespace)
で区切られた書式で、\(aq#\(aq 以降はコメントとみなされる)。 解析できなかった場合は、非 0 を返す。 \fIhostname\fP
-で指定されたバッファは十分な長さが必要である。つまり、 \fIline\fP と同じ長さでなければならない。
+ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯å\8d\81å\88\86ã\81ªé\95·ã\81\95ã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\82\8bã\80\82ã\81¤ã\81¾ã\82\8aã\80\81 \fIline\fP ã\81¨å\90\8cã\81\98é\95·ã\81\95ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.PP
関数 \fBether_ntoa_r\fP() と \fBether_aton_r\fP() は、 それぞれ \fBether_ntoa\fP() と
-\fBether_aton\fP() の リエントラントでスレッドセーフなバージョンであり、 静的なバッファを使用しない。
+\fBether_aton\fP() ã\81® ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ã\81§ã\82¹ã\83¬ã\83\83ã\83\89ã\82»ã\83¼ã\83\95ã\81ªã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81§ã\81\82ã\82\8aã\80\81 é\9d\99ç\9a\84ã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92使ç\94¨ã\81\97ã\81ªã\81\84ã\80\82
.PP
\fIether_addr\fP 構造体は \fI<net/ethernet.h>\fP で次のように定義されている:
.sp
.\"
.TH EUIDACCESS 3 2013\-09\-25 "" "Linux Programmer's Manual"
.SH 名前
-euidaccess, eaccess \- ファイルへのアクセス権を実効ユーザでチェックする
+euidaccess, eaccess \- ã\83\95ã\82¡ã\82¤ã\83«ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹æ¨©ã\82\92å®\9få\8a¹ã\83¦ã\83¼ã\82¶ã\83¼ã\81§ã\83\81ã\82§ã\83\83ã\82¯ã\81\99ã\82\8b
.SH 書式
.nf
\fB#define _GNU_SOURCE\fP /* feature_test_macros(7) 参照 */
.fi
.SH 説明
\fBaccess\fP(2) と同様、 \fBeuidaccess\fP() は引き数 \fIpathname\fP で指定されたファイルの許可
-(permission) と存在のチェックを行う。 \fBaccess\fP(2) はプロセスの実 (real) ユーザID / 実グループID
+(permission) と存在のチェックを行う。 \fBaccess\fP(2) はプロセスの実 (real) ユーザーID / 実グループID
を用いてチェックを行うのに対し、 \fBeuidaccess\fP() は実効 (effective) ID を用いる。
\fImode\fP は \fBR_OK\fP, \fBW_OK\fP, \fBX_OK\fP, \fBF_OK\fP の一つ以上から構成されるマスクである。 \fBR_OK\fP,
.PP
関数 \fBexecl\fP(), \fBexeclp\fP(), \fBexecle\fP() の \fIconst char\ *arg\fP とそれに続く省略部分は
\fIarg0\fP, \fIarg1\fP, \&..., \fIargn\fP とみなされる。 これらには、実行されるプログラムで利用可能な引き数のリストを指定する
-(引き数のリストは ヌルで終端された文字列へのポインタから構成される)。 慣習として、最初の引き数は、実行されるファイル名
-ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81«ã\81\99ã\82\8bã\80\82å¼\95ã\81\8dæ\95°ã\81®ã\83ªã\82¹ã\83\88ã\81¯å¿\85ã\81\9a NULL ã\81§çµ\82ã\82\8fã\82\89ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81\9aã\80\81ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯å\8f¯å¤\89é\95·å¼\95ã\81\8dæ\95°é\96¢æ\95°ã\81ªã\81®ã\81§ã\80\81 ã\81\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿は \fI(char\ *) NULL\fP とキャストしなければならない。
+(å¼\95ã\81\8dæ\95°ã\81®ã\83ªã\82¹ã\83\88ã\81¯ ã\83\8cã\83«ã\81§çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8bã\82\89æ§\8bæ\88\90ã\81\95ã\82\8cã\82\8b)ã\80\82 æ\85£ç¿\92ã\81¨ã\81\97ã\81¦ã\80\81æ\9c\80å\88\9dã\81®å¼\95ã\81\8dæ\95°ã\81¯ã\80\81å®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«å\90\8d
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81«ã\81\99ã\82\8bã\80\82å¼\95ã\81\8dæ\95°ã\81®ã\83ªã\82¹ã\83\88ã\81¯å¿\85ã\81\9a NULL ã\81§çµ\82ã\82\8fã\82\89ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81\9aã\80\81ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯å\8f¯å¤\89é\95·å¼\95ã\81\8dæ\95°é\96¢æ\95°ã\81ªã\81®ã\81§ã\80\81 ã\81\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼は \fI(char\ *) NULL\fP とキャストしなければならない。
.PP
関数 \fBexecv\fP(), \fBexecvp\fP(), \fBexecvpe\fP() は、利用可能な引き数リスト (ヌルで終端された文字列への
-ã\83\9dã\82¤ã\83³ã\82¿ã\81®é\85\8då\88\97) ã\82\92æ\96°ã\81\97ã\81\84ã\83\97ã\83ã\82°ã\83©ã\83 ã\81«æ¸¡ã\81\99ã\80\82 æ\85£ç¿\92ã\81¨ã\81\97ã\81¦ã\80\81æ\9c\80å\88\9dã\81®å¼\95ã\81\8dæ\95°ã\81¯å®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\81¸ ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81«ã\81\99ã\82\8bã\80\82ã\83\9dã\82¤ã\83³ã\82¿の配列は必ず NULL
+ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®é\85\8då\88\97) ã\82\92æ\96°ã\81\97ã\81\84ã\83\97ã\83ã\82°ã\83©ã\83 ã\81«æ¸¡ã\81\99ã\80\82 æ\85£ç¿\92ã\81¨ã\81\97ã\81¦ã\80\81æ\9c\80å\88\9dã\81®å¼\95ã\81\8dæ\95°ã\81¯å®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\81¸ ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81«ã\81\99ã\82\8bã\80\82ã\83\9dã\82¤ã\83³ã\82¿ã\83¼の配列は必ず NULL
で終わらなければならない。
.PP
関数 \fBexecle\fP(), \fBexecvpe\fP() では、呼び出し元が引き数 \fIenvp\fP
経由実行されるプログラムの環境を指定することができる。 \fIenvp\fP 引き数は、NULL
-ã\81§çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81®é\85\8då\88\97ã\81§ã\81\82ã\82\8aã\80\81ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\81§çµ\82ã\82\8fã\82\89ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ä»\96ã\81®é\96¢æ\95°ã\81§ã\81¯ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®å¤\96é\83¨å¤\89æ\95° \fBenviron\fP
-から新しいプロセス用の環境を与える。
+ã\81§çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®é\85\8då\88\97ã\81§ã\81\82ã\82\8aã\80\81ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§çµ\82ã\82\8fã\82\89ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ä»\96ã\81®é\96¢æ\95°ã\81§ã\81¯ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®å¤\96é\83¨å¤\89æ\95°
+\fBenviron\fP から新しいプロセス用の環境を与える。
.SS "execlp() と execvp() の特別な動作"
.PP
関数 \fBexeclp\fP(), \fBexecvp\fP(), \fBexecvpe\fP() は、指定されたファイル名がスラッシュ (/) を含んでいない場合、
で失敗する)、これらの関数は残りの検索パスの検索を続ける。 他にファイルが見つからなくなった場合 \fIerrno\fP に \fBEACCES\fP
を設定し復帰する。
-ファイルのヘッダが実行形式として認識できない場合 (このとき呼び出そうとした \fBexecve\fP(2) はエラー \fBENOEXEC\fP
+ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\81\8cå®\9fè¡\8cå½¢å¼\8fã\81¨ã\81\97ã\81¦èª\8dè\98ã\81§ã\81\8dã\81ªã\81\84å ´å\90\88 (ã\81\93ã\81®ã\81¨ã\81\8då\91¼ã\81³å\87ºã\81\9dã\81\86ã\81¨ã\81\97ã\81\9f \fBexecve\fP(2) ã\81¯ã\82¨ã\83©ã\83¼ \fBENOEXEC\fP
で失敗する)、これらの関数はそのファイルを最初の引き数としたシェル (\fI/bin/sh\fP) を実行する
(これにも失敗した場合、これ以上の検索は行われない)。
.SH 返り値
BSD は終了コードを標準化しようとしている; \fI<sysexits.h>\fP を参照すること。
.LP
\fBexit\fP() の後、親プロセスに終了ステータスが渡されなければならない。 終了ステータスの渡し方には 3 つの場合がある。 親プロセスが
-\fBSA_NOCLDWAIT\fP を設定した場合、 または \fBSIGCHLD\fP ハンドラを \fBSIG_IGN\fP に設定した場合、
+\fBSA_NOCLDWAIT\fP ã\82\92è¨å®\9aã\81\97ã\81\9få ´å\90\88ã\80\81 ã\81¾ã\81\9fã\81¯ \fBSIGCHLD\fP ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92 \fBSIG_IGN\fP ã\81«è¨å®\9aã\81\97ã\81\9få ´å\90\88ã\80\81
ステータスは破棄される。 親プロセスが子プロセスの終了を待っている場合、 親プロセスに終了ステータスが伝えられる。 どちらの場合でも exit
のプロセスは直ちに終了する。 「終了ステータスを関知せず終了も待たない」 ということを親プロセスが指示していない場合、 exit プロセスは
(終了ステータスを表す 1 バイトのみを保持する) 「ゾンビ」プロセスになる。 これにより、後から \fBwait\fP(2) 関数を呼び出すことで、
.sp
\fBint fclose(FILE *\fP\fIstream\fP\fB);\fP
.SH 説明
-\fBfclose\fP() 関数は、 \fIstream\fP が指すストリームを (バッファリングされて
+\fBfclose\fP() é\96¢æ\95°ã\81¯ã\80\81 \fIstream\fP ã\81\8cæ\8c\87ã\81\99ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\82\92 (ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\81¦
いた全ての出力データを \fBfflush\fP(3) を用いて書き込んで) フラッシュし、
-対応するファイルディスクリプタをクローズする。
+対å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\99ã\82\8bã\80\82
.SH 返り値
関数が正常に終了すると 0 が返される。 正常に終了しなかった場合には \fBEOF\fP が返され、 \fIerrno\fP がエラーを示すために設定される。
どちらの場合も、そのストリームに対する (\fBfclose\fP() へのさらなる呼び出しを含む) それ以上のアクセスは 未定義の動作を生じさせる。
.\" low-level file operations on the same stream. If you do get this error,
.\" you must have closed the stream's low-level file descriptor using
.\" something like close(fileno(stream)).
-\fIstream\fP の基となるファイルディスクリプタが不正である。
+\fIstream\fP ã\81®å\9fºã\81¨ã\81ªã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cä¸\8dæ£ã\81§ã\81\82ã\82\8bã\80\82
.PP
\fBfclose\fP() 関数はこれ以外にも \fBclose\fP(2), \fBwrite\fP(2), \fBfflush\fP(3)
のルーチンで失敗することがある。その場合は \fIerrno\fP が、失敗したルーチンで設定された値に設定される。
.SH 準拠
C89, C99.
.SH 注意
-\fBfclose\fP() は C ライブラリで提供されたユーザー空間バッファをフラッシュするだけで ある点に注意すること。
-データを確実に物理的にディスクに記録するためには カーネルバッファも (\fBsync\fP(2) や \fBfsync\fP(2) を用いて)
+\fBfclose\fP() ã\81¯ C ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81§æ\8f\90ä¾\9bã\81\95ã\82\8cã\81\9fã\83¦ã\83¼ã\82¶ã\83¼ç©ºé\96\93ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92ã\83\95ã\83©ã\83\83ã\82·ã\83¥ã\81\99ã\82\8bã\81 ã\81\91ã\81§ ã\81\82ã\82\8bç\82¹ã\81«æ³¨æ\84\8fã\81\99ã\82\8bã\81\93ã\81¨ã\80\82
+ã\83\87ã\83¼ã\82¿ã\82\92確å®\9fã\81«ç\89©ç\90\86ç\9a\84ã\81«ã\83\87ã\82£ã\82¹ã\82¯ã\81«è¨\98é\8c²ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\81¯ ã\82«ã\83¼ã\83\8dã\83«ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\82 (\fBsync\fP(2) ã\82\84 \fBfsync\fP(2) ã\82\92ç\94¨ã\81\84ã\81¦)
フラッシュしなければならない。
.SH 関連項目
\fBclose\fP(2), \fBfcloseall\fP(3), \fBfflush\fP(3), \fBfopen\fP(3), \fBsetbuf\fP(3)
.fi
.SH 説明
\fBfcloseall\fP() 関数は、呼び出し元プロセスが開いているすべてのストリームを閉じる。 ストリームを閉じる前に、 (\fBfflush\fP(3)
-ã\81¨å\90\8cã\81\98ã\82\88ã\81\86ã\81«) å\90\84ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\81«æº\9cã\81£ã\81¦ã\81\84ã\82\8bå\87ºå\8a\9bã\83\87ã\83¼ã\82¿ã\81¯æ\9b¸ã\81\8då\87ºã\81\95ã\82\8cã\82\8bã\80\82 å\85¥å\8a\9bã\83\90ã\83\83ã\83\95ã\82¡内のデータは破棄される。
+ã\81¨å\90\8cã\81\98ã\82\88ã\81\86ã\81«) å\90\84ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æº\9cã\81£ã\81¦ã\81\84ã\82\8bå\87ºå\8a\9bã\83\87ã\83¼ã\82¿ã\81¯æ\9b¸ã\81\8då\87ºã\81\95ã\82\8cã\82\8bã\80\82 å\85¥å\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼内のデータは破棄される。
標準入出力 \fIstdin\fP, \fIstdout\fP, \fIstderr\fP も閉じられる。
.SH 返り値
関数 \fBferror\fP() は \fIstream\fP で示されるストリームのエラー指示子をテストし、 セットされていれば 0 以外の数を返す。
エラー指示子は、関数 \fBclearerr\fP() によってのみリセットすることができる。
.PP
-関数 \fBfileno\fP() は、引数 \fIstream\fP を調べ、その整数のディスクリプタを返す。
+é\96¢æ\95° \fBfileno\fP() ã\81¯ã\80\81å¼\95æ\95° \fIstream\fP ã\82\92調ã\81¹ã\80\81ã\81\9dã\81®æ\95´æ\95°ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.PP
これらの処理を停止せずに行いたいときは、 \fBunlocked_stdio\fP(3) を参照のこと。
.SH エラー
.\"
.TH FEXECVE 3 2015\-01\-22 Linux "Linux Programmer's Manual"
.SH 名前
-fexecve \- ファイルディスクリプタで指定されたプログラムを実行する
+fexecve \- ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92å®\9fè¡\8cã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <unistd.h>\fP
.SH 説明
.\" POSIX.1-2008 specifies the O_EXEC flag for open as an alternative,
.\" but Linux doesn't support this flag yet.
-\fBfexecve\fP() は \fBexecve\fP(2) と同じ作業を行う。違うのは、 実行するファイルを、パス名ではなく、 ファイルディスクリプタ
-\fIfd\fP を用いて指定する点である。 ファイルディスクリプタ \fIfd\fP は、読み込み専用でオープンされていなければならず、
-呼び出し元はファイルディスクリプタが参照するファイルに対する 実行許可を持っていなければならない。
+\fBfexecve\fP() は \fBexecve\fP(2) と同じ作業を行う。違うのは、 実行するファイルを、パス名ではなく、 ファイルディスクリプター
+\fIfd\fP を用いて指定する点である。 ファイルディスクリプター \fIfd\fP は、読み込み専用でオープンされていなければならず、
+å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81«å¯¾ã\81\99ã\82\8b å®\9fè¡\8c許å\8f¯ã\82\92æ\8c\81ã\81£ã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.SH 返り値
\fBfexecve\fP() は呼び出しに成功した場合、戻ることはない。 エラーの場合、返り値 \-1 で関数が返り、 \fIerrno\fP
が適切に設定される。
エラーは \fBexecve\fP(2) と同じだが、以下のエラーが追加になっている:
.TP
\fBEINVAL\fP
-\fIfd\fP が有効なファイルディスクリプタでない。または \fIargv\fP が NULL である。または \fIenvp\fP が NULL である。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82ã\81¾ã\81\9fã\81¯ \fIargv\fP ã\81\8c NULL ã\81§ã\81\82ã\82\8bã\80\82ã\81¾ã\81\9fã\81¯ \fIenvp\fP ã\81\8c NULL ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBENOSYS\fP
\fI/proc\fP ファイルシステムにアクセスできなかった。
.sp
\fBint fflush(FILE *\fP\fIstream\fP\fB);\fP
.SH 説明
-出力ストリームに関しては、 \fBfflush\fP() は、ユーザー空間でバッファリングされているすべてのデータを 指定された出力に書き出す
+å\87ºå\8a\9bã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81«é\96¢ã\81\97ã\81¦ã\81¯ã\80\81 \fBfflush\fP() ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ç©ºé\96\93ã\81§ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\99ã\81¹ã\81¦ã\81®ã\83\87ã\83¼ã\82¿ã\82\92 æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\87ºå\8a\9bã\81«æ\9b¸ã\81\8då\87ºã\81\99
(フラッシュする)、 もしくはストリーム \fIstream\fP の下位にある書き込み関数を用いてこのストリームを更新する。 入力ストリームに関しては、
-\fBfflush\fP() は、対応するファイルから取得されたが、アプリケーションからは 読み出されていないバッファデータを全て破棄する。
+\fBfflush\fP() ã\81¯ã\80\81対å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89å\8f\96å¾\97ã\81\95ã\82\8cã\81\9fã\81\8cã\80\81ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81\8bã\82\89ã\81¯ èªã\81¿å\87ºã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83\87ã\83¼ã\82¿ã\82\92å\85¨ã\81¦ç ´æ£\84ã\81\99ã\82\8bã\80\82
ストリームは開いた状態のままであり、 この関数によって何の影響も受けない。
.PP
\fIstream\fP 引数が NULL ならば、 \fBfflush\fP() は開いている\fIすべての\fP出力ストリームをフラッシュする。
.\" Verified on: Solaris 8.
標準では、入力ストリームに対する動作は規定されていない。 他のほとんどの実装は Linux と同じ動作をする。
.SH 注意
-\fBfflush\fP() は、 C ライブラリが与えているユーザー空間のバッファしかフラッシュしない。
-ã\83\87ã\83¼ã\82¿ã\81\8cç\89©ç\90\86ç\9a\84ã\81«ã\83\87ã\82£ã\82¹ã\82¯ã\81«ä¿\9då\98ã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\82\92ä¿\9d証ã\81\97ã\81\9fã\81\91ã\82\8cã\81°ã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\83\90ã\83\83ã\83\95ã\82¡ã\82\82ã\83\95ã\83©ã\83\83ã\82·ã\83¥ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\81\93ã\82\8cã\81«ã\81¯ä¾\8bã\81\88ã\81° \fBsync\fP(2) ã\82\84
-\fBfsync\fP(2) を用いる。
+\fBfflush\fP() ã\81¯ã\80\81 C ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81\8cä¸\8eã\81\88ã\81¦ã\81\84ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼ç©ºé\96\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\97ã\81\8bã\83\95ã\83©ã\83\83ã\82·ã\83¥ã\81\97ã\81ªã\81\84ã\80\82
+ã\83\87ã\83¼ã\82¿ã\81\8cç\89©ç\90\86ç\9a\84ã\81«ã\83\87ã\82£ã\82¹ã\82¯ã\81«ä¿\9då\98ã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\82\92ä¿\9d証ã\81\97ã\81\9fã\81\91ã\82\8cã\81°ã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\82ã\83\95ã\83©ã\83\83ã\82·ã\83¥ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\81\93ã\82\8cã\81«ã\81¯ä¾\8bã\81\88ã\81° \fBsync\fP(2)
+や \fBfsync\fP(2) を用いる。
.SH 関連項目
\fBfsync\fP(2), \fBsync\fP(2), \fBwrite\fP(2), \fBfclose\fP(3), \fBfopen\fP(3),
\fBsetbuf\fP(3), \fBunlocked_stdio\fP(3)
.PP
\fBgetchar\fP() は \fBgetc(\fP\fIstdin\fP\fB)\fP と同じである。
.PP
-\fBfgets\fP() は \fIstream\fP から最大で \fIsize\fP \- 1 個の文字を読み込み、 \fIs\fP が指すバッファに格納する。読み込みは
-\fBEOF\fP または改行文字を読み込んだ後で停止する。 読み込まれた改行文字はバッファに格納される。 終端のヌルバイト (\(aq\e0\(aq)
-が一つバッファの中の最後の文字の後に書き込まれる。
+\fBfgets\fP() は \fIstream\fP から最大で \fIsize\fP \- 1 個の文字を読み込み、 \fIs\fP
+が指すバッファーに格納する。読み込みは \fBEOF\fP または改行文字を読み込んだ後で停止する。 読み込まれた改行文字はバッファーに格納される。
+終端のヌルバイト (\(aq\e0\(aq) が一つバッファーの中の最後の文字の後に書き込まれる。
.PP
\fBungetc\fP() は、後の read 操作で読めるように、 \fIc\fP を \fIunsigned char\fP にキャストして \fIstream\fP
に書き戻す。 書き戻された文字は逆順に戻される; 書き戻しとして保証されているのは、一文字だけである。
.SH 準拠
C89, C99, POSIX.1\-2001.
-入力ストリームのファイルディスクリプタに対して、 \fIstdio\fP ライブラリの入力関数と、低レベル呼び出しの \fBread\fP(2)
+å\85¥å\8a\9bã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ã\80\81 \fIstdio\fP ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81®å\85¥å\8a\9bé\96¢æ\95°ã\81¨ã\80\81ä½\8eã\83¬ã\83\99ã\83«å\91¼ã\81³å\87ºã\81\97ã\81® \fBread\fP(2)
を混ぜて呼び出す事は勧められない。 結果がどうなるかは分からず、おそらくあなたの 望んでいる結果にはならないだろう。
.SH 関連項目
\fBread\fP(2), \fBwrite\fP(2), \fBferror\fP(3), \fBfgetwc\fP(3), \fBfgetws\fP(3),
.\"
.TH FGETGRENT 3 2014\-08\-19 GNU "Linux Programmer's Manual"
.SH 名前
-fgetgrent \- グループファイルエントリの取り出し
+fgetgrent \- ã\82°ã\83«ã\83¼ã\83\97ã\83\95ã\82¡ã\82¤ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å\8f\96ã\82\8aå\87ºã\81\97
.SH 書式
.nf
\fB#include <stdio.h>\fP
\fBfgetgrent\fP(): _SVID_SOURCE
.SH 説明
\fBfgetgrent\fP() 関数は、 \fIstream\fP で参照されるファイルから取り出したグループ情報
-ã\82\92å\90«ã\82\80æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82æ\9c\80å\88\9dã\81«å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9fæ\99\82ã\81¯ æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92è¿\94ã\81\97ã\80\81ã\81\9dã\82\8c以é\99\8dã\81¯ã\80\81次ã\81®ã\82¨ã\83³ã\83\88ã\83ªを返す。 \fIstream\fP
+ã\82\92å\90«ã\82\80æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82æ\9c\80å\88\9dã\81«å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9fæ\99\82ã\81¯ æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¿\94ã\81\97ã\80\81ã\81\9dã\82\8c以é\99\8dã\81¯ã\80\81次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼を返す。 \fIstream\fP
で参照されるファイルは、 \fI/etc/group\fP と同じ形式でなければならない (\fBgroup\fP(5) 参照)。
.PP
\fIgroup\fP 構造体は \fI<grp.h>\fP で以下のように定義されている:
.fi
.in
.SH 返り値
-\fBfgetgrent\fP() é\96¢æ\95°ã\81¯ \fIgroup\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\82\8c以ä¸\8aã\82¨ã\83³ã\83\88ã\83ªが無いか、エラーが発生した場合は NULL
+\fBfgetgrent\fP() é\96¢æ\95°ã\81¯ \fIgroup\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\82\8c以ä¸\8aã\82¨ã\83³ã\83\88ã\83ªã\83¼が無いか、エラーが発生した場合は NULL
を返す。 エラーの場合、 \fIerrno\fP に原因を示す値が設定される。
.SH エラー
.TP
\fBENOMEM\fP
-\fIgroup\fP 構造体を割り当てるためのメモリが不十分。
+\fIgroup\fP æ§\8bé\80 ä½\93ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81\9fã\82\81ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cä¸\8då\8d\81å\88\86ã\80\82
.SH 準拠
SVr4.
.SH 関連項目
.\"
.TH FGETPWENT 3 2013\-04\-19 GNU "Linux Programmer's Manual"
.SH 名前
-fgetpwent \- パスワードファイルエントリの取り出し
+fgetpwent \- ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\95ã\82¡ã\82¤ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å\8f\96ã\82\8aå\87ºã\81\97
.SH 書式
.nf
\fB#include <stdio.h>\fP
.sp
\fBfgetpwent\fP(): _SVID_SOURCE
.SH 説明
-\fBfgetpwent\fP() 関数は、\fIstream\fP から得られた行を分解したフィールド を含む構造体へのポインタを返す。
-æ\9c\80å\88\9dã\81«å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9fæ\99\82ã\81«ã\81¯æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92è¿\94ã\81\97ã\80\81ã\81\9dã\82\8c以é\99\8dã\81¯ 次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92è¿\94ã\81\99ã\80\82 \fIstream\fP ã\81§å\8f\82ç\85§ã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81¯ \fI/etc/passwd\fP
-と同じ形式でなければならない (\fBpasswd\fP(5) 参照)。
+\fBfgetpwent\fP() é\96¢æ\95°ã\81¯ã\80\81\fIstream\fP ã\81\8bã\82\89å¾\97ã\82\89ã\82\8cã\81\9fè¡\8cã\82\92å\88\86解ã\81\97ã\81\9fã\83\95ã\82£ã\83¼ã\83«ã\83\89 ã\82\92å\90«ã\82\80æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
+æ\9c\80å\88\9dã\81«å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9fæ\99\82ã\81«ã\81¯æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¿\94ã\81\97ã\80\81ã\81\9dã\82\8c以é\99\8dã\81¯ 次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¿\94ã\81\99ã\80\82 \fIstream\fP ã\81§å\8f\82ç\85§ã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81¯
+\fI/etc/passwd\fP と同じ形式でなければならない (\fBpasswd\fP(5) 参照)。
.PP
\fIpasswd\fP 構造体は、\fI<pwd.h>\fP で以下のように定義されている:
.sp
.in +4n
.nf
struct passwd {
- char *pw_name; /* ユーザ名 */
- char *pw_passwd; /* ユーザのパスワード */
- uid_t pw_uid; /* ユーザ ID */
+ char *pw_name; /* ユーザー名 */
+ char *pw_passwd; /* ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89 */
+ uid_t pw_uid; /* ユーザー ID */
gid_t pw_gid; /* グループ ID */
char *pw_gecos; /* 実名 */
char *pw_dir; /* ホームディレクトリ */
.fi
.in
.SH 返り値
-\fBfgetpwent\fP() é\96¢æ\95°ã\81¯ã\80\81 \fIpasswd\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\82\8c以ä¸\8aã\82¨ã\83³ã\83\88ã\83ªが無いか、エラーが発生した場合は NULL
+\fBfgetpwent\fP() é\96¢æ\95°ã\81¯ã\80\81 \fIpasswd\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\82\8c以ä¸\8aã\82¨ã\83³ã\83\88ã\83ªã\83¼が無いか、エラーが発生した場合は NULL
を返す。 エラーの場合、 \fIerrno\fP に原因を示す値が設定される。
.SH エラー
.TP
\fBENOMEM\fP
-\fIpasswd\fP 構造体に割り当てるメモリが十分なかった。
+\fIpasswd\fP æ§\8bé\80 ä½\93ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå\8d\81å\88\86ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.SH ファイル
.TP
\fI/etc/passwd\fP
.SH 準拠
C99, POSIX.1\-2001.
.SH 注意
-\fBfgetwc\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBfgetwc\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.PP
\fBfopen\fP(3) システムコールに渡す追加情報がない場合には、 \fBfgetwc\fP() が実際
にはマルチバイトシーケンスをストリームから読み込み、これをワイド文字に 変換すると期待することは適切である。
.SH 準拠
C99, POSIX.1\-2001.
.SH 注意
-\fBfgetws\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBfgetws\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.PP
\fBfopen\fP(3) システムコールに渡す追加の情報がない場合には、 \fBfgetws\fP()
が実際にはマルチバイトシーケンスをストリームから読み込み、 これをワイド文字に変換すると期待することは適切である。
.\"
.TH FMEMOPEN 3 2015\-01\-22 GNU "Linux Programmer's Manual"
.SH 名前
-fmemopen, open_memstream, open_wmemstream \- メモリをストリームとしてオープンする
+fmemopen, open_memstream, open_wmemstream \- ã\83¡ã\83¢ã\83ªã\83¼ã\82\92ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81¨ã\81\97ã\81¦ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <stdio.h>\fP
.PD
.SH 説明
\fBfmemopen\fP() 関数は、ストリームをオープンし、そのストリームに \fImode\fP で指定されたアクセス許可を設定する。
-ã\81\9dã\81®ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\82\92é\80\9aã\81\98ã\81¦ã\80\81 \fIbuf\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\82\84ã\83¡ã\83¢ã\83ªã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®èªã\81¿æ\9b¸ã\81\8dã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡は少なくとも \fIsize\fP
+ã\81\9dã\81®ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\82\92é\80\9aã\81\98ã\81¦ã\80\81 \fIbuf\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\82\84ã\83¡ã\83¢ã\83ªã\83¼ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®èªã\81¿æ\9b¸ã\81\8dã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼は少なくとも \fIsize\fP
バイトの長さでなければならない。
.PP
引き数 \fImode\fP は \fBfopen\fP(3) の場合と同じである。 \fImode\fP で追記モード
-(append mode) が指定された場合、ファイル位置の初期値は バッファ中の
+(append mode) が指定された場合、ファイル位置の初期値は バッファー中の
最初のヌルバイト (\(aq\e0\(aq) の位置に設定される。
-それ以外の場合は、ファイル位置の初期値はバッファの先頭になる。
+ã\81\9dã\82\8c以å¤\96ã\81®å ´å\90\88ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ä½\8dç½®ã\81®å\88\9dæ\9c\9få\80¤ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å\85\88é ã\81«ã\81ªã\82\8bã\80\82
glibc 2.9 以降では、文字 \(aqb\(aq を \fImode\fP の二番目の文字として指定
することができる。 この文字は「バイナリ」モードを指定するものである。
このモードでは、書き込み時に文字列終端のヌルバイトが黙って追加 される
ことはない。また、 \fBfseek\fP(3) \fBSEEK_END\fP は、文字列の長さからの相対値
-ではなく、バッファの末尾 (\fIsize\fP で指定した値) からの相対値となる。
+ã\81§ã\81¯ã\81ªã\81\8fã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\9c«å°¾ (\fIsize\fP ã\81§æ\8c\87å®\9aã\81\97ã\81\9få\80¤) ã\81\8bã\82\89ã\81®ç\9b¸å¯¾å\80¤ã\81¨ã\81ªã\82\8bã\80\82
.PP
書き込み用にオープンされたストリームをフラッシュ (\fBfflush\fP(3)) やクローズ (\fBfclose\fP(3)) した時に、
-(ã\83\90ã\83\83ã\83\95ã\82¡ã\81«ç©ºã\81\8dã\81\8cã\81\82ã\82\8cã\81°) ã\83\8cã\83«ã\83\90ã\82¤ã\83\88ã\81\8cã\83\90ã\83\83ã\83\95ã\82¡ã\81®æ\9c«å°¾ã\81«æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\81¯ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯ ã\83\90ã\83\83ã\83\95ã\82¡に 1バイト余裕を作る
+(ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ç©ºã\81\8dã\81\8cã\81\82ã\82\8cã\81°) ã\83\8cã\83«ã\83\90ã\82¤ã\83\88ã\81\8cã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\9c«å°¾ã\81«æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\81¯ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯ ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼に 1バイト余裕を作る
(\fIsize\fP にこの 1バイトを含めた値を指定する) 必要がある。
-バッファに \fIsize\fP バイトよりたくさん書き込もうとした場合には、エラーとなる。 (デフォルトでは、このようなエラーが見えるのは \fIstdio\fP
-バッファがフラッシュされた時だけである。 以下の呼び出しを使ってバッファリングを無効にする方法は、 出力操作を行った時点でエラーを検出するのに役立つ。
+バッファーに \fIsize\fP バイトよりたくさん書き込もうとした場合には、エラーとなる。 (デフォルトでは、このようなエラーが見えるのは
+\fIstdio\fP バッファーがフラッシュされた時だけである。 以下の呼び出しを使ってバッファーリングを無効にする方法は、
+出力操作を行った時点でエラーを検出するのに役立つ。
setbuf(stdream, NULL);
-別の方法としては、 以下のように、 呼び出し側が明示的に stdio ストリームバッファとして \fIbuf\fP
-ã\82\92æ\8c\87å®\9aã\81\97ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\81®æ\8c\87å®\9aæ\99\82ã\81«ã\83\90ã\83\83ã\83\95ã\82¡のサイズを stdio に教える方法がある。
+å\88¥ã\81®æ\96¹æ³\95ã\81¨ã\81\97ã\81¦ã\81¯ã\80\81 以ä¸\8bã\81®ã\82\88ã\81\86ã\81«ã\80\81 å\91¼ã\81³å\87ºã\81\97å\81´ã\81\8cæ\98\8e示ç\9a\84ã\81« stdio ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¨ã\81\97ã\81¦ \fIbuf\fP
+ã\82\92æ\8c\87å®\9aã\81\97ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\8c\87å®\9aæ\99\82ã\81«ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼のサイズを stdio に教える方法がある。
setbuffer(stream, buf, size);
.\" and
.\" http://sources.redhat.com/ml/libc-alpha/2006-04/msg00064.html
.PP
-読み出し用にオープンされたストリームでは、 バッファ内にヌルバイト (\(aq\e0\(aq) があっても 読み出し操作がファイル末尾
-(end\-of\-file) ã\82\92è¿\94ã\81\99ã\81\93ã\81¨ã\81¯ã\81ªã\81\84ã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\81\8bã\82\89ã\81®èªã\81¿å\87ºã\81\97ã\81§ã\83\95ã\82¡ã\82¤ã\83«æ\9c«å°¾ã\81\8cè¿\94ã\82\8bã\81®ã\81¯ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\81\8cã\83\90ã\83\83ã\83\95ã\82¡ã\81®å\85\88é ã\81\8bã\82\89 \fIsize\fP
-バイトを越えて先に進もうとした場合だけである。
+読み出し用にオープンされたストリームでは、 バッファー内にヌルバイト (\(aq\e0\(aq) があっても 読み出し操作がファイル末尾
+(end\-of\-file) ã\82\92è¿\94ã\81\99ã\81\93ã\81¨ã\81¯ã\81ªã\81\84ã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8bã\82\89ã\81®èªã\81¿å\87ºã\81\97ã\81§ã\83\95ã\82¡ã\82¤ã\83«æ\9c«å°¾ã\81\8cè¿\94ã\82\8bã\81®ã\81¯ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å\85\88é ã\81\8bã\82\89
+\fIsize\fP バイトを越えて先に進もうとした場合だけである。
.PP
-\fIbuf\fP に NULL が指定された場合、 \fBfmemopen\fP() は動的に \fIsize\fP バイトの長さのバッファを確保する。
-この方法は、一時バッファにデータの書き込みを行ってから、 その内容を再度読み出すようなアプリケーションで有用である。
-ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\81¯ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81\8cã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\82\8bã\81¨ã\81\8dã\81«è\87ªå\8b\95ç\9a\84ã\81«è§£æ\94¾ã\81\95ã\82\8cã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8bã\82\89ã\81¯ã\81\93ã\81®é\96¢æ\95°ã\81\8cå\89²ã\82\8aå½\93ã\81¦ã\81\9fä¸\80æ\99\82ã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿値を
+\fIbuf\fP ã\81« NULL ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9få ´å\90\88ã\80\81 \fBfmemopen\fP() ã\81¯å\8b\95ç\9a\84ã\81« \fIsize\fP ã\83\90ã\82¤ã\83\88ã\81®é\95·ã\81\95ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92確ä¿\9dã\81\99ã\82\8bã\80\82
+ã\81\93ã\81®æ\96¹æ³\95ã\81¯ã\80\81ä¸\80æ\99\82ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\83\87ã\83¼ã\82¿ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿ã\82\92è¡\8cã\81£ã\81¦ã\81\8bã\82\89ã\80\81 ã\81\9dã\81®å\86\85容ã\82\92å\86\8d度èªã\81¿å\87ºã\81\99ã\82\88ã\81\86ã\81ªã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81§æ\9c\89ç\94¨ã\81§ã\81\82ã\82\8bã\80\82
+ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81\8cã\82¯ã\83ã\83¼ã\82ºã\81\95ã\82\8cã\82\8bã\81¨ã\81\8dã\81«è\87ªå\8b\95ç\9a\84ã\81«è§£æ\94¾ã\81\95ã\82\8cã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8bã\82\89ã\81¯ã\81\93ã\81®é\96¢æ\95°ã\81\8cå\89²ã\82\8aå½\93ã\81¦ã\81\9fä¸\80æ\99\82ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼値を
知る方法は存在しない点に注意 (下記の \fBopen_memstream\fP() も参照)。
-\fBopen_memstream\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿ç\94¨ã\81«ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8bã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡は (\fBmalloc\fP(3)
-を使って) 動的に割り当てられ、必要に応じて自動的に伸長する。 ストリームをクローズした後で、呼び出し元はこのバッファを \fBfree\fP(3)
+\fBopen_memstream\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿ç\94¨ã\81«ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8bã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼は (\fBmalloc\fP(3)
+ã\82\92使ã\81£ã\81¦) å\8b\95ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\80\81å¿\85è¦\81ã\81«å¿\9cã\81\98ã\81¦è\87ªå\8b\95ç\9a\84ã\81«ä¼¸é\95·ã\81\99ã\82\8bã\80\82 ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\81\9få¾\8cã\81§ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92 \fBfree\fP(3)
すべきである。
このストリームが クローズ (\fBfclose\fP(3)) されたりフラッシュ (\fBfflush\fP(3)) された時に、 \fIptr\fP と
-\fIsizeloc\fP ã\81®å\80¤ã\81¯ã\81\9dã\82\8cã\81\9eã\82\8cã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿とそのサイズに更新される。 これらの値は、呼び出し元がそのストリームに新たな書き込みを
+\fIsizeloc\fP ã\81®å\80¤ã\81¯ã\81\9dã\82\8cã\81\9eã\82\8cã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼とそのサイズに更新される。 これらの値は、呼び出し元がそのストリームに新たな書き込みを
行わない場合に限り有効である。 ストリームに書き込みを行った際には、これらの変数を参照する前に ストリームを再度フラッシュしなければならない。
-バッファ末尾のヌルバイトは保持される。 このヌルバイトは \fIsizeloc\fP に格納されるサイズには「含まれない」。
+バッファー末尾のヌルバイトは保持される。 このヌルバイトは \fIsizeloc\fP に格納されるサイズには「含まれない」。
ストリームのファイル位置は \fBfseek\fP(3) や \fBfseeko\fP(3) で変更できる。
すでにデータが書き込まれた領域の末尾より先にファイル位置を動かすと、 その間の領域は 0 で埋められる。
と同様だが、バイトではなくワイド文字に対して操作を行う点が異なる。
.SH 返り値
成功して終了した場合には、 \fBfmemopen\fP(), \fBopen_memstream\fP(), \fBopen_wmemstream\fP() は
-\fIFILE\fP ポインタを返す。 失敗した場合は、 NULL を返し、 \fIerrno\fP にエラーを示す値をセットする。
+\fIFILE\fP ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 失æ\95\97ã\81\97ã\81\9få ´å\90\88ã\81¯ã\80\81 NULL ã\82\92è¿\94ã\81\97ã\80\81 \fIerrno\fP ã\81«ã\82¨ã\83©ã\83¼ã\82\92示ã\81\99å\80¤ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\80\82
.SH バージョン
\fBfmemopen\fP() と \fBopen_memstream\fP() は glibc 1.0.x ですでに利用可能であった。
\fBopen_wmemstream\fP() は glibc 2.4 以降で利用可能である。
\(aqb\(aq が指定された場合の扱いは実装依存であることを許容するように
標準規格が修正されており、glibc の \(aqb\(aq の扱いは許されている。
.SH 注意
-これらの関数が返すファイルストリームに対応するファイル ディスクリプタはない (つまり、返されたストリームに対して \fBfileno\fP(3)
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81\8cè¿\94ã\81\99ã\83\95ã\82¡ã\82¤ã\83«ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83« ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\81ªã\81\84 (ã\81¤ã\81¾ã\82\8aã\80\81è¿\94ã\81\95ã\82\8cã\81\9fã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81«å¯¾ã\81\97ã\81¦ \fBfileno\fP(3)
を呼び出すとエラーが返ることになる)。
.SH バグ
.\" http://sourceware.org/bugzilla/show_bug.cgi?id=1996
バージョン 2.7 より前の glibc では、 \fBopen_memstream\fP()
-で作成されたストリームの末尾より先にファイル位置を動かしても、 バッファが伸長されず、 \fBfseek\fP(3) が失敗し \-1 が返る。
+ã\81§ä½\9cæ\88\90ã\81\95ã\82\8cã\81\9fã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®æ\9c«å°¾ã\82\88ã\82\8aå\85\88ã\81«ã\83\95ã\82¡ã\82¤ã\83«ä½\8dç½®ã\82\92å\8b\95ã\81\8bã\81\97ã\81¦ã\82\82ã\80\81 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8c伸é\95·ã\81\95ã\82\8cã\81\9aã\80\81 \fBfseek\fP(3) ã\81\8c失æ\95\97ã\81\97 \-1 ã\81\8cè¿\94ã\82\8bã\80\82
.\" FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=11216
\fIsize\fP に 0 が指定された場合、 \fBfmemopen\fP() はエラー \fBEINVAL\fP で失敗
.\" FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=13151
\fBfmemopen\fP() の \fImode\fP 引き数に追記モード ("a" や "a+") を指定し、
\fIsize\fP 引き数で指定した範囲の \fIbuf\fP 内にヌルバイトがない場合、
-POSIX.1\-2008 では、ファイル位置の初期値はバッファの末尾の直後の
+POSIX.1\-2008 ã\81§ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ä½\8dç½®ã\81®å\88\9dæ\9c\9få\80¤ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\9c«å°¾ã\81®ç\9b´å¾\8cã\81®
バイトに設定すべきとされている。しかし、glibc の \fBfmemopen\fP() では
この場合ファイル位置は \-1 に設定される。
ABI (Application Binary Interface) が黙って変更された。
それ以前の \fBfmemopen\fP() では \fImode\fP 内の \(aqb\(aq は無視されていた。
.SH 例
-このプログラムは \fBfmemopen\fP() を使って出力バッファをオープンし、 \fBopen_memstream\fP()
-を使って動的にサイズが変化する出力バッファをオープンしている。 (プログラムの第一コマンドライン引き数から取った) 入力文字列を
-スキャンして整数を読み込み、これらの整数の二乗を出力バッファに書き出す。 このプログラムの実行例は以下のようになる。
+ã\81\93ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ \fBfmemopen\fP() ã\82\92使ã\81£ã\81¦å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81 \fBopen_memstream\fP()
+ã\82\92使ã\81£ã\81¦å\8b\95ç\9a\84ã\81«ã\82µã\82¤ã\82ºã\81\8cå¤\89å\8c\96ã\81\99ã\82\8bå\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 (ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®ç¬¬ä¸\80ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³å¼\95ã\81\8dæ\95°ã\81\8bã\82\89å\8f\96ã\81£ã\81\9f) å\85¥å\8a\9bæ\96\87å\97å\88\97ã\82\92
+ã\82¹ã\82ã\83£ã\83³ã\81\97ã\81¦æ\95´æ\95°ã\82\92èªã\81¿è¾¼ã\81¿ã\80\81ã\81\93ã\82\8cã\82\89ã\81®æ\95´æ\95°ã\81®äº\8cä¹\97ã\82\92å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ\9b¸ã\81\8då\87ºã\81\99ã\80\82 ã\81\93ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®å®\9fè¡\8cä¾\8bã\81¯ä»¥ä¸\8bã\81®ã\82\88ã\81\86ã\81«ã\81ªã\82\8bã\80\82
.in +4n
.nf
"tag" である。
.PP
環境変数 \fBSEV_LEVEL\fP は新しい重大度レベルを導入するのに使用できる。 デフォルトでは、上記の 5 つの重大度レベルのみが利用可能である。
-他の数値の場合、 \fBfmtmsg\fP() は何も表示しない。 \fBfmtmsg\fP() を初めて呼び出す前に、ユーザが \fBSEV_LEVEL\fP を
+ä»\96ã\81®æ\95°å\80¤ã\81®å ´å\90\88ã\80\81 \fBfmtmsg\fP() ã\81¯ä½\95ã\82\82表示ã\81\97ã\81ªã\81\84ã\80\82 \fBfmtmsg\fP() ã\82\92å\88\9dã\82\81ã\81¦å\91¼ã\81³å\87ºã\81\99å\89\8dã\81«ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8c \fBSEV_LEVEL\fP ã\82\92
.sp
.RS
SEV_LEVEL=[description[:description[:...]]]
.TP
\fBFNM_PATHNAME\fP
このフラグがセットされていると、 \fIstring\fP 中のスラッシュ (/) を \fIpattern\fP にあるスラッシュそのものにだけマッチさせ、
-アスタリスク (*) や疑問符 (?) のメタキャラクタや、 スラッシュを含むブラケット表現 ([]) にはマッチさせない。
+ã\82¢ã\82¹ã\82¿ã\83ªã\82¹ã\82¯ (*) ã\82\84ç\96\91å\95\8f符 (?) ã\81®ã\83¡ã\82¿ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\82\84ã\80\81 ã\82¹ã\83©ã\83\83ã\82·ã\83¥ã\82\92å\90«ã\82\80ã\83\96ã\83©ã\82±ã\83\83ã\83\88表ç\8f¾ ([]) ã\81«ã\81¯ã\83\9eã\83\83ã\83\81ã\81\95ã\81\9bã\81ªã\81\84ã\80\82
.TP
\fBFNM_PERIOD\fP
このフラグがセットされていると、 \fIstring\fP の先頭ピリオド (leading period) は \fIpattern\fP
.SH 説明
\fBfopen\fP() 関数は、 \fIpath\fP で指定された名前のファイルを開き、ストリームと結びつける。
.PP
-引数 \fImode\fP は、以下に続く文字のひとつから始まる文字列へのポインタであ
+å¼\95æ\95° \fImode\fP ã\81¯ã\80\81以ä¸\8bã\81«ç¶\9aã\81\8fæ\96\87å\97ã\81®ã\81²ã\81¨ã\81¤ã\81\8bã\82\89å§\8bã\81¾ã\82\8bæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82
る (以下の述べる、追加の文字が後に続くこともある):
.TP
\fBr\fP
fseek(stream, 0, SEEK_END);
.fi
.PP
-\fBfdopen\fP() 関数は、既存のファイル記述子 \fIfd\fP にストリームを結びつける。 ストリームの \fImode\fP ("r", "r+",
-"w", "w+", "a", "a+" のいずれか) は ファイル記述子のモードと互換のものでなければならない。
+\fBfdopen\fP() 関数は、既存のファイルディスクリプター \fIfd\fP にストリームを結びつける。 ストリームの \fImode\fP ("r",
+"r+", "w", "w+", "a", "a+" のいずれか) は ファイルディスクリプターのモードと互換のものでなければならない。
新しいストリームのファイル位置指示子は \fIfd\fP に属している値に設定される。 error と end\-of\-file の各指示子はクリアされる。
-"w" および "w+" モードでのファイルの切り詰めは行われない。 ファイル記述子の複製は行なわれない。 \fBfdopen\fP()
-で作成されたストリームが閉じられたときにファイル記述子も 閉じられる。 共有メモリのオブジェクトへ \fBfdopen\fP()
+"w" および "w+" モードでのファイルの切り詰めは行われない。 ファイルディスクリプターの複製は行なわれない。 \fBfdopen\fP()
+で作成されたストリームが閉じられたときにファイルディスクリプターも 閉じられる。 共有メモリーのオブジェクトへ \fBfdopen\fP()
を行ったときの結果は定義されていない。
.PP
\fBfreopen\fP() 関数は \fIpath\fP で名前が指定されたファイルを開き、 \fIstream\fP
\fBfopen\fP() 関数と同じ形で使われる。 \fBfreopen\fP() 関数の主な用途は、標準テキストストリーム (\fIstderr\fP,
\fIstdin\fP, \fIstdout\fP) と対応付けられているファイルを変更することである。
.SH 返り値
-\fBfopen\fP(), \fBfdopen\fP(), \fBfreopen\fP() は成功すると \fIFILE\fP 型のポインタを返す。 失敗すると NULL
+\fBfopen\fP(), \fBfdopen\fP(), \fBfreopen\fP() ã\81¯æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ \fIFILE\fP å\9e\8bã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 失æ\95\97ã\81\99ã\82\8bã\81¨ NULL
が返され、 \fIerrno\fP がエラーを示す値にセットされる。
.SH エラー
.TP
\fI*seek\fP がヌルポインターの場合、 このストリームに対して seek 操作を行うことができない。
.TP
\fIcookie_close_function_t *close\fP
-ã\81\93ã\81®é\96¢æ\95°ã\81¯ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83\83ã\82¯é\96¢æ\95°ã\81§ã\81¯ã\80\81 ã\81\93ã\81®ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\82\92解æ\94¾ã\81\99ã\82\8bã\81¨ã\81\84ã\81£ã\81\9fã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bé\9a\9bã\80\81 1
-つの引き数を受け取る。
+ã\81\93ã\81®é\96¢æ\95°ã\81¯ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83\83ã\82¯é\96¢æ\95°ã\81§ã\81¯ã\80\81 ã\81\93ã\81®ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92解æ\94¾ã\81\99ã\82\8bã\81¨ã\81\84ã\81£ã\81\9fã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bé\9a\9bã\80\81
+1 つの引き数を受け取る。
int close(void *cookie);
\fBlong pathconf(const char *\fP\fIpath\fP\fB, int \fP\fIname\fP\fB);\fP
.fi
.SH 説明
-\fBfpathconf\fP() はオープンされているファイルデスクリプター \fIfd\fP に対して設定されているオプション \fIname\fP
+\fBfpathconf\fP() ã\81¯ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ \fIfd\fP ã\81«å¯¾ã\81\97ã\81¦è¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82ªã\83\97ã\82·ã\83§ã\83³ \fIname\fP
の値を取得する。
.PP
\fBpathconf\fP() はファイル名 \fIpath\fP に対して設定されているオプション \fIname\fP の値を取得する。
である。
.TP
\fB_PC_PIPE_BUF\fP
-パイプ (pipe) バッファのサイズを返す。このとき \fIfd\fP はパイプか FIFO を参照していなければならず、 \fIpath\fP は FIFO
+ã\83\91ã\82¤ã\83\97 (pipe) ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82µã\82¤ã\82ºã\82\92è¿\94ã\81\99ã\80\82ã\81\93ã\81®ã\81¨ã\81\8d \fIfd\fP ã\81¯ã\83\91ã\82¤ã\83\97ã\81\8b FIFO ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81\9aã\80\81 \fIpath\fP ã\81¯ FIFO
を参照していなければならない。 対応するマクロは \fB_POSIX_PIPE_BUF\fP である。
.TP
\fB_PC_CHOWN_RESTRICTED\fP
\fIname\fP に \fB_PC_NAME_MAX\fP を入れて返された値よりも長いファイル名を持つファイルが、与えられたディ
レクトリに存在するかもしれない。
.PP
-いくつかの返り値はとても大きくなることがある。これらを使って メモリの割り当てを行うのは適当ではない。
+ã\81\84ã\81\8fã\81¤ã\81\8bã\81®è¿\94ã\82\8aå\80¤ã\81¯ã\81¨ã\81¦ã\82\82大ã\81\8dã\81\8fã\81ªã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\80\82ã\81\93ã\82\8cã\82\89ã\82\92使ã\81£ã\81¦ ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\89²ã\82\8aå½\93ã\81¦ã\82\92è¡\8cã\81\86ã\81®ã\81¯é\81©å½\93ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.SH 関連項目
\fBgetconf\fP(1), \fBopen\fP(2), \fBstatfs\fP(2), \fBconfstr\fP(3), \fBsysconf\fP(3)
.SH この文書について
\fBvoid __fpurge(FILE *\fP\fIstream\fP\fB);\fP
.fi
.SH 説明
-\fBfpurge\fP() 関数は、与えられたストリームのバッファをクリアする。 出力ストリームでこれを行うと、書き出されていない出力は捨てられる。
+\fBfpurge\fP() é\96¢æ\95°ã\81¯ã\80\81ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92ã\82¯ã\83ªã\82¢ã\81\99ã\82\8bã\80\82 å\87ºå\8a\9bã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81§ã\81\93ã\82\8cã\82\92è¡\8cã\81\86ã\81¨ã\80\81æ\9b¸ã\81\8då\87ºã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å\87ºå\8a\9bã\81¯æ\8d¨ã\81¦ã\82\89ã\82\8cã\82\8bã\80\82
入力ストリームでこれを行うと、 下層にあるオブジェクトから読み込まれ \fBgetc\fP(3) による取得を待っている入力が、すべて捨てられる。 これには
\fBungetc\fP(3) によって戻されたテキストも含まれる。 \fBfflush\fP(3) も参照のこと。
.LP
これらの関数は標準ではなく、よって移植性もない。 \fBfpurge\fP() 関数は 4.4BSD で導入されたが、Linux では利用できない。
\fB__fpurge\fP() 関数は Solaris で導入され、glibc 2.1.95 以降には存在している。
.SH 注意
-通常は入力バッファを捨てようとするのは間違っている。
+é\80\9a常ã\81¯å\85¥å\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92æ\8d¨ã\81¦ã\82\88ã\81\86ã\81¨ã\81\99ã\82\8bã\81®ã\81¯é\96\93é\81\95ã\81£ã\81¦ã\81\84ã\82\8bã\80\82
.SH 関連項目
.\" .BR fclean (3),
\fBfflush\fP(3), \fBsetbuf\fP(3), \fBstdio_ext\fP(3)
.SH 準拠
C99, POSIX.1\-2001.
.SH 注意
-\fBfputwc\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBfputwc\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.PP
\fBfopen\fP(3) システムコールに渡す追加情報がない場合には、 \fBfputwc\fP() は 実際にはワイド文字 \fIwc\fP
に対応するマルチバイトシーケンスを書き込むと 期待してよい。
.SH 準拠
C99, POSIX.1\-2001.
.SH 注意
-\fBfputws\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBfputws\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.PP
\fBfopen\fP(3) システムコールに渡す追加情報がない場合には、 \fBfputws\fP() が実際 にはワイド文字の文字列である \fIws\fP
に対応するマルチバイトシーケンス を書き込むと期待することは適切である。
\fB FILE *\fP\fIstream\fP\fB);\fP
.fi
.SH 説明
-\fBfread\fP() 関数は \fIstream\fP ポインタで指定されたストリームから \fInmemb\fP 個のデータを読み込み、 \fIptr\fP
+\fBfread\fP() é\96¢æ\95°ã\81¯ \fIstream\fP ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81\8bã\82\89 \fInmemb\fP å\80\8bã\81®ã\83\87ã\83¼ã\82¿ã\82\92èªã\81¿è¾¼ã\81¿ã\80\81 \fIptr\fP
で与えられた場所に格納する。 個々のデータは \fIsize\fP バイトの長さを持つ。
.PP
\fBfwrite\fP() 関数は \fIptr\fP で指定された場所から得た \fInmemb\fP 個のデータを、 \fIstream\fP
-ポインタで指定されたストリームに書き込む。 個々のデータは \fIsize\fP バイトの長さを持つ。
+ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81«æ\9b¸ã\81\8dè¾¼ã\82\80ã\80\82 å\80\8bã\80\85ã\81®ã\83\87ã\83¼ã\82¿ã\81¯ \fIsize\fP ã\83\90ã\82¤ã\83\88ã\81®é\95·ã\81\95ã\82\92æ\8c\81ã\81¤ã\80\82
.PP
これらの処理を停止せずに行いたいときは、 \fBunlocked_stdio\fP(3) を参照のこと。
.SH 返り値
\fBkey_t ftok(char *\fP\fIpathname\fP\fB, char \fP\fIproj_id\fP\fB);\fP
.RE
.PP
-ç\8f¾å\9c¨ã\81§ã\81¯ \fIproj_id\fP ã\81¯ \fIint\fP ã\81 ã\81\8cã\80\81ä¾\9dç\84¶ã\81¨ã\81\97ã\81¦ 8 ã\83\93ã\83\83ã\83\88ã\81\97ã\81\8bç\94¨ã\81\84ã\82\89ã\82\8cã\81ªã\81\84ã\80\82 é\80\9a常ã\81¯ ASCII ã\82ã\83£ã\83©ã\82¯ã\82¿ã\81\8c \fIproj_id\fP
-に用いられる。 \fIproj_id\fP が 0 のときの振る舞いが未定義になっているのは、これが理由である。
+ç\8f¾å\9c¨ã\81§ã\81¯ \fIproj_id\fP ã\81¯ \fIint\fP ã\81 ã\81\8cã\80\81ä¾\9dç\84¶ã\81¨ã\81\97ã\81¦ 8 ã\83\93ã\83\83ã\83\88ã\81\97ã\81\8bç\94¨ã\81\84ã\82\89ã\82\8cã\81ªã\81\84ã\80\82 é\80\9a常ã\81¯ ASCII ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\81\8c
+\fIproj_id\fP に用いられる。 \fIproj_id\fP が 0 のときの振る舞いが未定義になっているのは、これが理由である。
.LP
もちろん \fIkey_t\fP が他と重ならないものであるかどうかは保証されない。 最善の場合の組み合わせを考えても、 \fIproj_id\fP の 1
バイト、i ノード番号の低位 16 ビット、および デバイス番号の低位 8 ビットなので、結果は 32 ビットに過ぎない。 例えば
.SH 説明
fts 関数群は、ファイル階層をたどるために提供されている。 簡単に概略すると次のようになる。 \fBfts_open\fP() 関数は、他の fts
関数群に渡すための、ファイル階層の「ハンドル」を返す。 \fBfts_read\fP() 関数は、ファイル階層中にある 1
-つのファイルを記述する構造体へのポインタを返す。 \fBfts_children\fP() 関数は、階層中のディレクトリにあるファイルを記述する構造体の
-リンクリストへのポインタを返す。 一般にディレクトリは、 preorder (正方向:下の階層のディレクトリをたどる前) と postorder
+ã\81¤ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92è¨\98è¿°ã\81\99ã\82\8bæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 \fBfts_children\fP() é\96¢æ\95°ã\81¯ã\80\81é\9a\8e層ä¸ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81«ã\81\82ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\82\92è¨\98è¿°ã\81\99ã\82\8bæ§\8bé\80 ä½\93ã\81®
+ã\83ªã\83³ã\82¯ã\83ªã\82¹ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ä¸\80è\88¬ã\81«ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81¯ã\80\81 preorder (æ£æ\96¹å\90\91ï¼\9aä¸\8bã\81®é\9a\8e層ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82\92ã\81\9fã\81©ã\82\8bå\89\8d) ã\81¨ postorder
(逆方向:下の階層のディレクトリをすべてたどった後) という、 異なる方向で 2 回たどられる。ファイルは 1 回たどられる。
ディレクトリ階層を「論理的に」(シンボリックリングが指すファイルを見て) 辿ることも、 物理的に (シンボリックリンク自身を見て)
辿ることも可能である。 また、階層中の移動の道筋を指示すること・ 余分なものを取り除くこと・階層の一部を再びたどることが可能である。
\fIfts_info\fP
.\" .Bl -tag -width FTS_DEFAULT
このフィールドは、返された \fIFTSENT\fP 構造体とファイルを説明する以下のフラグのいずれかを表している。 エラーのないディレクトリ
-(\fBFTS_D\fP), ã\81®å ´å\90\88ã\81¯ä¾\8bå¤\96ã\81¨ã\81\97ã\81¦ã\80\81ã\81\9dã\82\8c以å¤\96ã\81®ã\81\99ã\81¹ã\81¦ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\81¯çµ\82端ã\81§ã\81\82ã\82\8bã\80\82 ã\81¤ã\81¾ã\82\8aã\80\81ã\82¨ã\83³ã\83\88ã\83ªは再びたどられることもなく、
+(\fBFTS_D\fP), ã\81®å ´å\90\88ã\81¯ä¾\8bå¤\96ã\81¨ã\81\97ã\81¦ã\80\81ã\81\9dã\82\8c以å¤\96ã\81®ã\81\99ã\81¹ã\81¦ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯çµ\82端ã\81§ã\81\82ã\82\8bã\80\82 ã\81¤ã\81¾ã\82\8aã\80\81ã\82¨ã\83³ã\83\88ã\83ªã\83¼は再びたどられることもなく、
それより下の階層がたどられることもない。
.RS 12
.TP 12
.TP
\fIfts_parent\fP
現在のファイルのすぐ上の階層にあるファイル (つまり、現在のファイルがメンバーになっているディレクトリ) を参照する \fIFTSENT\fP
-構造体へのポインタ。 最初の出発点に対しても、親となる構造体は与えられる。 しかし、 \fIfts_level\fP, \fIfts_number\fP,
+æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82 æ\9c\80å\88\9dã\81®å\87ºç\99ºç\82¹ã\81«å¯¾ã\81\97ã\81¦ã\82\82ã\80\81親ã\81¨ã\81ªã\82\8bæ§\8bé\80 ä½\93ã\81¯ä¸\8eã\81\88ã\82\89ã\82\8cã\82\8bã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81 \fIfts_level\fP, \fIfts_number\fP,
\fIfts_pointer\fP フィールドのみの初期化しか保証されない。
.TP
\fIfts_link\fP
.TP
\fIfts_statp\fP
.\" .El
-このファイルの \fBstat\fP(2) 情報へのポインタ。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81® \fBstat\fP(2) æ\83\85å ±ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82
.PP
ファイル階層中のすべてのファイルのパスに対して、 ただ 1 つのバッファーが使われる。 したがって、 \fIfts_path\fP と
\fIfts_accpath\fP フィールドは、 \fBfts_read\fP()
フィールドにある情報を使ってパスのバッファーを修正する必要がある。 これらの修正は、さらに \fBfts_read\fP()
を呼び出そうとする場合には、元に戻しておかなければならない。 \fIfts_name\fP フィールドは、常に \fBNUL\fP 終端される。
.SS fts_open()
-\fBfts_open\fP() é\96¢æ\95°ã\81¯ã\80\81æ\96\87å\97å\88\97ã\83\9dã\82¤ã\83³ã\82¿ã\81®é\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92å¼\95ã\81\8dæ\95°ã\81«å\8f\96ã\82\8bã\80\82 ã\81\93ã\81®æ\96\87å\97å\88\97ã\83\9dã\82¤ã\83³ã\82¿は、論理ファイル階層をつくる 1
-つ以上のパスの名前になる。 配列は、 null ポインタで終端されなければならない。
+\fBfts_open\fP() é\96¢æ\95°ã\81¯ã\80\81æ\96\87å\97å\88\97ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®é\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å¼\95ã\81\8dæ\95°ã\81«å\8f\96ã\82\8bã\80\82 ã\81\93ã\81®æ\96\87å\97å\88\97ã\83\9dã\82¤ã\83³ã\82¿ã\83¼は、論理ファイル階層をつくる 1
+ã\81¤ä»¥ä¸\8aã\81®ã\83\91ã\82¹ã\81®å\90\8då\89\8dã\81«ã\81ªã\82\8bã\80\82 é\85\8då\88\97ã\81¯ã\80\81 null ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§çµ\82端ã\81\95ã\82\8cã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.PP
.\" .Bl -tag -width "FTS_PHYSICAL"
多くのオプションがあり、少なくとも 1 つ (\fBFTS_LOGICAL\fP または \fBFTS_PHYSICAL\fP) が指定されなければならない。
このオプションは、 fts が下り始めのファイルとは異なるデバイス番号を持っている ディレクトリに下りるのを阻止する。
.PP
引き数 \fBcompar\fP() は、階層をたどる順番を決めるのに使われるユーザー定義関数を指定する。 この関数は、引き数として \fIFTSENT\fP
-æ§\8bé\80 ä½\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81®ã\83\9dã\82¤ã\83³ã\82¿を 2 つとり、 1 番目の引き数で参照されているファイルが 2 番目の引き数で参照されているファイルより
+æ§\8bé\80 ä½\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を 2 つとり、 1 番目の引き数で参照されているファイルが 2 番目の引き数で参照されているファイルより
前にある場合は負の値・同じ場合はゼロ・後にある場合は正の値を 返さなければならない。 \fIFTSENT\fP 構造体の \fIfts_accpath\fP,
\fIfts_path\fP, \fIfts_pathlen\fP フィールドは、この比較に「絶対」使ってはいけない。 \fIfts_info\fP フィールドが
\fBFTS_NS\fP または \fBFTS_NSOK\fP に設定される場合、 \fIfts_statp\fP フィールドはこれらのどちらでもない。
\fBcompar\fP() 引き数が \fBNULL\fP の場合、ディレクトリをたどる順番は、ルートパスについては \fIpath_argv\fP
のなかでリストされた順番で、 その他のファイルについてはディレクトリ内でリストされた順番となる。
.SS fts_read()
-\fBfts_read\fP() 関数は、階層中のファイルを記述する \fIFTSENT\fP 構造体へのポインタを返す。 (読み込み可能で、循環していない)
+\fBfts_read\fP() é\96¢æ\95°ã\81¯ã\80\81é\9a\8e層ä¸ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92è¨\98è¿°ã\81\99ã\82\8b \fIFTSENT\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 (èªã\81¿è¾¼ã\81¿å\8f¯è\83½ã\81§ã\80\81循ç\92°ã\81\97ã\81¦ã\81\84ã\81ªã\81\84)
ディレクトリは、 1 回は preorder で、もう 1 回は postorder で、少なくとも 2 回たどられる。 他のファイルは、少なくとも 1
回たどられる。 (ディレクトリ間のハードリンクによって 循環やシンボリックリンクへのシンボリックリンクが起こらない場合、 ファイルは 2
回以上、ディレクトリは 3 回以上たどられる。)
.PP
階層中のすべてのメンバーが返された場合、 \fBfts_read\fP() は \fBNULL\fP を返し、外部変数 \fIerrno\fP を 0 にする。
階層中のファイルに関係しないエラーが起こった場合、 \fBfts_read\fP() は \fBNULL\fP を返し、 \fIerrno\fP
-をエラーに対応した値にする。 階層中のファイルに関係したエラーが起こった場合、 \fIFTSENT\fP 構造体へのポインタが返され、 \fIerrno\fP
+ã\82\92ã\82¨ã\83©ã\83¼ã\81«å¯¾å¿\9cã\81\97ã\81\9få\80¤ã\81«ã\81\99ã\82\8bã\80\82 é\9a\8e層ä¸ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«é\96¢ä¿\82ã\81\97ã\81\9fã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9få ´å\90\88ã\80\81 \fIFTSENT\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cè¿\94ã\81\95ã\82\8cã\80\81 \fIerrno\fP
は設定される場合と設定されない場合がある (\fIfts_info\fP を参照すること)。
.PP
\fBfts_read\fP() によって返される \fIFTSENT\fP 構造体は、同じファイル階層ストリームへの \fBfts_close\fP()
の呼出しの後でも、構造体がディレクトリを表現していない限り上書きされる。 この場合、 \fBfts_read\fP() 関数によって postorder で
\fIFTSENT\fP 構造体が返された後、 \fBfts_read\fP() の呼出しがあるまで、 これらの構造体は上書きされない。
.SS fts_children()
-\fBfts_children\fP() 関数は、 \fIFTSENT\fP 構造体へのポインタを返す。 この構造体は、( \fBfts_read\fP()
-で最も新しく返された \fIFTSENT\fP 構造体で表現されるディレクトリにあるファイルの) ヌル終端されたリンクリストの最初のエントリを記述する。
+\fBfts_children\fP() é\96¢æ\95°ã\81¯ã\80\81 \fIFTSENT\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¯ã\80\81( \fBfts_read\fP()
+ã\81§æ\9c\80ã\82\82æ\96°ã\81\97ã\81\8fè¿\94ã\81\95ã\82\8cã\81\9f \fIFTSENT\fP æ§\8bé\80 ä½\93ã\81§è¡¨ç\8f¾ã\81\95ã\82\8cã\82\8bã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81«ã\81\82ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81®) ã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\81\9fã\83ªã\83³ã\82¯ã\83ªã\82¹ã\83\88ã\81®æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¨\98è¿°ã\81\99ã\82\8bã\80\82
このリストは、 \fIFTSENT\fP 構造体の \fIfts_link\fP フィールドを使ってリンクされ、
ユーザー指定の比較関数がある場合は、それで順序づけられる。 \fBfts_children\fP() の呼出しを繰り返すことで、
このリンクリストは再生成される。
.PP
特別な場合として、 \fBfts_read\fP() がファイル階層について呼ばれていない場合、 \fBfts_children\fP() は
\fBfts_open\fP() に指定された論理ディレクトリ (つまり、 \fBfts_open\fP() に指定された引き数)
-の中にあるファイルへのポインタを返す。 それ以外の場合で、 \fBfts_read\fP() によって最も新しく返された \fIFTSENT\fP 構造体が
+ã\81®ä¸ã\81«ã\81\82ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\9dã\82\8c以å¤\96ã\81®å ´å\90\88ã\81§ã\80\81 \fBfts_read\fP() ã\81«ã\82\88ã\81£ã\81¦æ\9c\80ã\82\82æ\96°ã\81\97ã\81\8fè¿\94ã\81\95ã\82\8cã\81\9f \fIFTSENT\fP æ§\8bé\80 ä½\93ã\81\8c
preorder でたどられたディレクトリでない場合や 何も含んでいないディレクトリの場合は、 \fBfts_children\fP() は \fBNULL\fP
を返し、 \fIerrno\fP を 0 にする。 エラーが起こった場合、 \fBfts_children\fP() は \fBNULL\fP を返し、
\fIerrno\fP をエラーに対応した値にする。
\fB int \fP\fInopenfd\fP\fB, int \fP\fIflags\fP\fB);\fP
.fi
.SH 説明
-\fBftw\fP() は、 \fIdirpath\fP で指定されたディレクトリ以下のディレクトリツリー全体を歩きまわり、 ツリー中でエントリが見付かるごとに、
-\fIfn\fP() を呼び出す。 デフォルトでは、ディレクトリそのものが、そのディレクトリにあるファイルや サブディレクトリよりも先に処理される
-(行きがけ順探索; preorder traversal)。
+\fBftw\fP() は、 \fIdirpath\fP で指定されたディレクトリ以下のディレクトリツリー全体を歩きまわり、
+ツリー中でエントリーが見付かるごとに、 \fIfn\fP() を呼び出す。 デフォルトでは、ディレクトリそのものが、そのディレクトリにあるファイルや
+サブディレクトリよりも先に処理される (行きがけ順探索; preorder traversal)。
-呼び出し元プロセスが利用可能なファイルディスクリプタを使い切って しまわないようにするため、 \fBftw\fP()
+å\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83ã\82»ã\82¹ã\81\8cå\88©ç\94¨å\8f¯è\83½ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92使ã\81\84å\88\87ã\81£ã\81¦ ã\81\97ã\81¾ã\82\8fã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\9fã\82\81ã\80\81 \fBftw\fP()
が同時にオープンするディレクトリの最大数を \fInopenfd\fP で指定することができる。 探索の深さがこの値を越えると、
一つのディレクトリを閉じてから他のディレクトリをオープンし直すこと になるので、 \fBftw\fP() の動作は遅くなる。 \fBftw\fP()
-は、ディレクトリツリーの階層 1 レベルにつき、 最大でも一つのファイルディスクリプタしか使用しない。
+ã\81¯ã\80\81ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83\84ã\83ªã\83¼ã\81®é\9a\8e層 1 ã\83¬ã\83\99ã\83«ã\81«ã\81¤ã\81\8dã\80\81 æ\9c\80大ã\81§ã\82\82ä¸\80ã\81¤ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\97ã\81\8b使ç\94¨ã\81\97ã\81ªã\81\84ã\80\82
-ディレクトリツリーで見つかったエントリ毎に、 \fBftw\fP() は \fIfpath\fP, \fIsb\fP, \fItypeflag\fP の 3つを引き数として
-\fIfn\fP() を呼び出す。 \fIfpath\fP はエントリのパス名である。 \fIdirpath\fP が相対パス名で指定された場合には、 \fIfpath\fP
-は \fBftw\fP() が呼び出された時点の呼び出し元プロセスのカレントワーキングディレクトリ からの相対パス名となる。 \fIdirpath\fP
-が絶対パス名で指定された場合には、 \fIfpath\fP は絶対パス名となる。 \fIsb\fP は \fIfpath\fP に対する \fBstat\fP(2)
-の呼び出しで返される \fIstat\fP 構造体へのポインタである。 \fItypeflag\fP は整数で、以下の値のいずれか一つである:
+ディレクトリツリーで見つかったエントリー毎に、 \fBftw\fP() は \fIfpath\fP, \fIsb\fP, \fItypeflag\fP の 3つを引き数として
+\fIfn\fP() を呼び出す。 \fIfpath\fP はエントリーのパス名である。 \fIdirpath\fP が相対パス名で指定された場合には、
+\fIfpath\fP は \fBftw\fP() が呼び出された時点の呼び出し元プロセスのカレントワーキングディレクトリ からの相対パス名となる。
+\fIdirpath\fP が絶対パス名で指定された場合には、 \fIfpath\fP は絶対パス名となる。 \fIsb\fP は \fIfpath\fP に対する
+\fBstat\fP(2) の呼び出しで返される \fIstat\fP 構造体へのポインターである。 \fItypeflag\fP
+は整数で、以下の値のいずれか一つである:
.TP
\fBFTW_F\fP
\fIfpath\fP が通常のファイルである
.PP
\fBftw\fP() は動的なデータ構造を用いるので、ツリー探索を安全に中断する唯一の方法は 0 以外の値を \fIfn\fP()
の返り値とすることである。割り込みを扱うには、 例えば発生した割り込みをマークしておいて、 0 以外の値を返すようにする
-ã\82·ã\82°ã\83\8aã\83«ã\81«ã\82\88ã\82\8aã\83¡ã\83¢ã\83ªã\83ªã\83¼ã\82¯ã\82\92èµ·ã\81\93ã\81\95ã\81\9aã\81«æ\8e¢ç´¢ã\82\92çµ\82äº\86ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81«ã\81¯ã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©で \fIfn\fP()
+ã\82·ã\82°ã\83\8aã\83«ã\81«ã\82\88ã\82\8aã\83¡ã\83¢ã\83ªã\83¼ã\83ªã\83¼ã\82¯ã\82\92èµ·ã\81\93ã\81\95ã\81\9aã\81«æ\8e¢ç´¢ã\82\92çµ\82äº\86ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81«ã\81¯ã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼で \fIfn\fP()
がチェックするグローバルなフラグをセットするようにすればよい。 プログラムを終了させる場合以外は、 \fBlongjmp\fP(3) を使用しないこと。
.SS nftw()
関数 \fBnftw\fP() は \fBftw\fP() と同じだが、引き数 \fIflags\fP が追加される点と、 \fIfn\fP() の引き数に
.\" If \fBFTW_DEPTH\fP
.\" is set, the entry's parent directory is processed next (with
.\" \fIflag\fP set to \fBFTW_DP\fP).
-\fIfn\fP() がこの値を返した場合、処理中のエントリの兄弟 (同じ階層のエントリ) の処理はスキップされ、親ディレクトリで続きの処理が行われる。
+\fIfn\fP() がこの値を返した場合、処理中のエントリーの兄弟 (同じ階層のエントリー)
+の処理はスキップされ、親ディレクトリで続きの処理が行われる。
.TP
\fBFTW_SKIP_SUBTREE\fP
-\fIfn\fP() が呼び出されたエントリがディレクトリ (\fItypeflag\fP が \fBFTW_D\fP) の場合に、この値を返すと \fIfn\fP()
-ã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦æ¸¡ã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªå\86\85ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\81®å\87¦ç\90\86ã\81\8cè¡\8cã\82\8fã\82\8cã\81ªã\81\8fã\81ªã\82\8bã\80\82 \fBnftw\fP() ã\81¯å\87¦ç\90\86ä¸ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®å\85\84å¼\9f (å\90\8cã\81\98é\9a\8e層ã\81®ã\82¨ã\83³ã\83\88ã\83ª)
+\fIfn\fP() ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9fã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ª (\fItypeflag\fP ã\81\8c \fBFTW_D\fP) ã\81®å ´å\90\88ã\81«ã\80\81ã\81\93ã\81®å\80¤ã\82\92è¿\94ã\81\99ã\81¨ \fIfn\fP()
+ã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦æ¸¡ã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªå\86\85ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å\87¦ç\90\86ã\81\8cè¡\8cã\82\8fã\82\8cã\81ªã\81\8fã\81ªã\82\8bã\80\82 \fBnftw\fP() ã\81¯å\87¦ç\90\86ä¸ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®å\85\84å¼\9f (å\90\8cã\81\98é\9a\8e層ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼)
から処理を続ける。
.TP
\fBFTW_STOP\fP
他の返り値は将来新しい動作に対応付けられる可能性がある。 \fIfn\fP() は上記のリストにある値以外を返さないようにすべきである。
\fI<ftw.h>\fP で \fBFTW_ACTIONRETVAL\fP の定義が有効にするためには、
-(「どの」ヘッダファイルをインクルードするよりも前に) 機能検査マクロ \fB_GNU_SOURCE\fP を定義しなければならない。
+(ã\80\8cã\81©ã\81®ã\80\8dã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\99ã\82\8bã\82\88ã\82\8aã\82\82å\89\8dã\81«) æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83 \fB_GNU_SOURCE\fP ã\82\92å®\9a義ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.RE
.TP
\fBFTW_CHDIR\fP
\fBFTW_DEPTH\fP
セットされると、帰りがけ順探索 (post\-order traversal) を行う。 つまり、ディレクトリそのものを引き数とした \fIfn\fP()
呼出しは、そのディレクトリに含まれるファイルとサブディレクトリに 対する処理の「後で」行われる
-(デフォルトでは、ディレクトリ自身の処理はディレクトリ内のエントリ より「前に」行なわれる)。
+(デフォルトでは、ディレクトリ自身の処理はディレクトリ内のエントリー より「前に」行なわれる)。
.TP
\fBFTW_MOUNT\fP
セットされると、同じファイルシステムの中だけを探索対象とする (つまり、マウントポイントをまたぐことはない)。
\fBFTW_PHYS\fP がセットされずに \fBFTW_DEPTH\fP がセットされると、自分自身に対するシンボリックリンクを配下に持つ
ディレクトリに対して \fIfn\fP() が呼び出されることは決してない。
.LP
-ディレクトリツリーのエントリ毎に、 \fBnftw\fP() は 4つの引き数で \fIfn\fP() を呼び出す。 \fIfpath\fP と \fIsb\fP は
+ディレクトリツリーのエントリー毎に、 \fBnftw\fP() は 4つの引き数で \fIfn\fP() を呼び出す。 \fIfpath\fP と \fIsb\fP は
\fBftw\fP() と同じである。 \fItypeflag\fP には、 \fBftw\fP() で取り得る値のいずれか、または以下の値のいずれかが渡される:
.TP
\fBFTW_DP\fP
\fBfutimes\fP(), \fBlutimes\fP(): _BSD_SOURCE
.SH 説明
\fBfutimes\fP() は \fButimes\fP(2) と同じ方法でファイルのアクセス時刻と修正時刻を変更する。
-違いは、タイムスタンプを変更するファイルを、 パス名ではなく、ファイルディスクリプタ \fIfd\fP を用いて指定する点である。
+違いは、タイムスタンプを変更するファイルを、 パス名ではなく、ファイルディスクリプター \fIfd\fP を用いて指定する点である。
\fBlutimes\fP() は \fButimes\fP(2) と同じ方法でファイルのアクセス時刻と修正時刻を変更する。違いは、 \fIfilename\fP
-ã\81\8cã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83»ã\83ªã\83³ã\82¯ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«ã\80\81ã\83ªã\83³ã\82¯ã\81®å±\95é\96\8bã\82\92è¡\8cã\82\8fã\81\9aã\80\81代ã\82\8fã\82\8aã\81«ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83»リンクのタイムスタンプを変更する点である。
+ã\81\8cã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«ã\80\81ã\83ªã\83³ã\82¯ã\81®å±\95é\96\8bã\82\92è¡\8cã\82\8fã\81\9aã\80\81代ã\82\8fã\82\8aã\81«ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯リンクのタイムスタンプを変更する点である。
.SH 返り値
成功した場合は 0 が返される。エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
.SH エラー
エラーは \fButimes\fP(2) と同じだが、 \fBfutimes\fP() では以下のエラーが追加になっている:
.TP
\fBEBADF\fP
-\fIfd\fP が有効なファイルディスクリプタでない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBENOSYS\fP
\fI/proc\fP ファイルシステムにアクセスできなかった。
関数 \fBgcvt\fP() は、 \fInumber\fP を、最短の長さのヌル終端された ASCII 文字列へ変換し、変換後の文字列を \fIbuf\fP
に格納する。 \fBprintf\fP(3) の F フォーマットや E フォーマットのように \fIndigit\fP 桁の 有効数字を生成する。
.SH 返り値
-関数 \fBgcvt\fP() は文字列 \fIbuf\fP へのポインタを返す。
+é\96¢æ\95° \fBgcvt\fP() ã\81¯æ\96\87å\97å\88\97 \fIbuf\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.SH 準拠
POSIX.1\-2001 では、 この関数は「過去の名残 (LEGACY)」と位置付けられている。 POSIX.1\-2008 では、 \fBgcvt\fP()
の仕様は削除され、 代わりに \fBsprintf\fP(3) を使用することが推奨されている (\fBsnprintf\fP(3)
\fIai_flags\fP
このフィールドは、追加のオプション (下記) を指定する。 複数のフラグを指定する際には、それらのビット単位の OR をとって指定する。
.PP
-\fIhints\fP が指し示す構造体の他のすべてのフィールドには 0 かヌルポインタを適切に入れなければならない。
+\fIhints\fP ã\81\8cæ\8c\87ã\81\97示ã\81\99æ§\8bé\80 ä½\93ã\81®ä»\96ã\81®ã\81\99ã\81¹ã\81¦ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ã\81¯ 0 ã\81\8bã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92é\81©å\88\87ã\81«å\85¥ã\82\8cã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.PP
\fIhints\fP に NULL を指定するのは、 \fIai_socktype\fP と \fIai_protocol\fP に 0 を、 \fIai_family\fP
に \fBAF_UNSPEC\fP を、 \fIai_flags\fP に \fB(AI_V4MAPPED\ |\ AI_ADDRCONFIG)\fP
.PP
\fInode\fP と \fIservice\fP のどちらかは NULL にしてよいが、両方同時に NULL にしてはならない。
.PP
-\fBgetaddrinfo\fP() 関数は、 \fIaddrinfo\fP 構造体のメモリ確保を行い、 \fIaddrinfo\fP
-æ§\8bé\80 ä½\93ã\81®ã\83ªã\83³ã\82¯ã\83ªã\82¹ã\83\88ã\82\92å\88\9dæ\9c\9få\8c\96ã\81\97ã\80\81 \fIres\fP ã\81«ã\83ªã\82¹ã\83\88ã\81®å\85\88é ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82 ã\81\93ã\81®ã\81¨ã\81\8dã\80\81å\90\84æ§\8bé\80 ä½\93ã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¢ã\83\89ã\83¬ã\82¹ã\81¯ \fInode\fP ã\81¨
-\fIservice\fP に一致し、 \fIhints\fP で課されたすべての制限を満たすものとなる。 リンクリストの要素は \fIai_next\fP
+\fBgetaddrinfo\fP() 関数は、 \fIaddrinfo\fP 構造体のメモリー確保を行い、 \fIaddrinfo\fP
+æ§\8bé\80 ä½\93ã\81®ã\83ªã\83³ã\82¯ã\83ªã\82¹ã\83\88ã\82\92å\88\9dæ\9c\9få\8c\96ã\81\97ã\80\81 \fIres\fP ã\81«ã\83ªã\82¹ã\83\88ã\81®å\85\88é ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82 ã\81\93ã\81®ã\81¨ã\81\8dã\80\81å\90\84æ§\8bé\80 ä½\93ã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¢ã\83\89ã\83¬ã\82¹ã\81¯ \fInode\fP
+と \fIservice\fP に一致し、 \fIhints\fP で課されたすべての制限を満たすものとなる。 リンクリストの要素は \fIai_next\fP
フィールドにより連結される。
リンクリストの \fIaddrinfo\fP 構造体は複数個になることもあり、その理由はいくつかある。 ネットワークホストがマルチホームである、
返される各々の \fIaddrinfo\fP 構造体の残りのフィールドは以下のように初期化される。
.IP * 2
-\fIai_family\fP, \fIai_socktype\fP, \fIai_protocol\fP フィールドはソケット生成パラメータを返す
+\fIai_family\fP, \fIai_socktype\fP, \fIai_protocol\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\82½ã\82±ã\83\83ã\83\88ç\94\9fæ\88\90ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92è¿\94ã\81\99
(これらのフィールドの意味は \fBsocket\fP(2) の同じ名前の引き数と同じである)。 例えば、 \fIai_family\fP は
\fBAF_INET\fP や \fBAF_INET6\fP を返し、 \fIai_socktype\fP は \fBSOCK_DGRAM\fP や
\fBSOCK_STREAM\fP を返し、 \fIai_protocol\fP はそのソケットのプロトコルを返す。
.IP *
-\fIai_addr\fP フィールドにはソケットアドレスへのポインタが書き込まれ、 \fIai_addrlen\fP
+\fIai_addr\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ã\81¯ã\82½ã\82±ã\83\83ã\83\88ã\82¢ã\83\89ã\83¬ã\82¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cæ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\80\81 \fIai_addrlen\fP
フィールドにはソケットアドレスの長さがバイト単位で書き込まれる。
.PP
\fIhints.ai_flags\fP が \fBAI_ADDRCONFIG\fP を含む場合、 \fIres\fP が指すリストには、ローカルシステムに最低一つの
の両方が指定されている場合、 \fIres\fP が指すリストには IPv6 アドレスと IPv4\-mapped IPv6 アドレスの 両方が返される。
\fBAI_V4MAPPED\fP が指定されていない場合、 \fBAI_ALL\fP は無視される。
.PP
-\fBfreeaddrinfo\fP() 関数は、 リンクリスト \fIres\fP に対して動的に割り当てられたメモリを解放する。
+\fBfreeaddrinfo\fP() é\96¢æ\95°ã\81¯ã\80\81 ã\83ªã\83³ã\82¯ã\83ªã\82¹ã\83\88 \fIres\fP ã\81«å¯¾ã\81\97ã\81¦å\8b\95ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\92解æ\94¾ã\81\99ã\82\8bã\80\82
.SS "国際化ドメイン名のための getaddrinfo() の拡張"
.PP
glibc 2.3.4 から、 \fBgetaddrinfo\fP() は入出力するホスト名を透過的に国際化ドメイン名 (IDN) 形式 (RFC 3490
要求されたアドレスファミリーがサポートされていない。
.TP
\fBEAI_MEMORY\fP
-メモリが足りない。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\80\82
.TP
\fBEAI_NODATA\fP
.\" Not in SUSv3
どの要求が失敗したかを判定することができる。
.TP
\fBEAI_MEMORY\fP
-メモリが足りない。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\80\82
.TP
\fBEAI_SYSTEM\fP
\fImode\fP が無効である。
.\"
.TH GETCONTEXT 3 2014\-04\-08 Linux "Linux Programmer's Manual"
.SH 名前
-getcontext, setcontext \- ユーザコンテキストを取得/設定する
+getcontext, setcontext \- ã\83¦ã\83¼ã\82¶ã\83¼ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\82\92å\8f\96å¾\97/è¨å®\9aã\81\99ã\82\8b
.SH 書式
\fB#include <ucontext.h>\fP
.sp
System V 的な環境では、 \fImcontext_t\fP および \fIucontext_t\fP という 2 つの型と、
\fBgetcontext\fP(), \fBsetcontext\fP(), \fBmakecontext\fP(3), \fBswapcontext\fP(3) という
4 つの関数が \fI<ucontext.h>\fP で定義されており、あるプロセス内部で制御下にある複数のスレッド間で、
-ユーザレベルのコンテキスト切替えができるようになっている。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\83¬ã\83\99ã\83«ã\81®ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88å\88\87æ\9b¿ã\81\88ã\81\8cã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\80\82
.LP
\fImcontext_t\fP 型はマシン依存で、外部からは隠蔽されている。 \fIucontext_t\fP 型は構造体で、少なくとも以下の 4
つのフィールドを持つ。
.fi
.in
\fIsigset_t\fP と \fIstack_t\fP は \fI<signal.h>\fP で定義されている。 ここで \fIuc_link\fP は、
-現在のコンテキストが終了したとき、 続いて切り替わるコンテキストへのポインタである (現在のコンテキストが \fBmakecontext\fP(3)
+ç\8f¾å\9c¨ã\81®ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81\8cçµ\82äº\86ã\81\97ã\81\9fã\81¨ã\81\8dã\80\81 ç¶\9aã\81\84ã\81¦å\88\87ã\82\8aæ\9b¿ã\82\8fã\82\8bã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8b (ç\8f¾å\9c¨ã\81®ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81\8c \fBmakecontext\fP(3)
で生成されたものの場合)。 \fIuc_sigmask\fP はこのコンテキストでブロックされている シグナル群である (\fBsigprocmask\fP(2)
を見よ)。 \fIuc_stack\fP はこのコンテキストが用いているスタックである (\fBsignalstack\fP(2) を見よ)。
-\fIuc_mcontext\fP は保存されているコンテキストの マシン特有の表現形式であり、 ここには呼び出したスレッドのマシンレジスタが格納される。
+\fIuc_mcontext\fP ã\81¯ä¿\9då\98ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81® ã\83\9eã\82·ã\83³ç\89¹æ\9c\89ã\81®è¡¨ç\8f¾å½¢å¼\8fã\81§ã\81\82ã\82\8aã\80\81 ã\81\93ã\81\93ã\81«ã\81¯å\91¼ã\81³å\87ºã\81\97ã\81\9fã\82¹ã\83¬ã\83\83ã\83\89ã\81®ã\83\9eã\82·ã\83³ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82
.LP
-\fBgetcontext\fP() 関数は、 ポインタ \fIucp\fP が指す構造体を、 現在アクティブなコンテキストに初期化する。
+\fBgetcontext\fP() 関数は、 ポインター \fIucp\fP が指す構造体を、 現在アクティブなコンテキストに初期化する。
.LP
-\fBsetcontext\fP() 関数は、ポインタ \fIucp\fP が指すユーザコンテキストをリストアする。 呼び出しに成功すると返らない。
+\fBsetcontext\fP() 関数は、ポインター \fIucp\fP が指すユーザーコンテキストをリストアする。 呼び出しに成功すると返らない。
このコンテキストは、以前に \fBgetcontext\fP() または \fBmakecontext\fP(3) で得られたものか、
あるいはシグナルの第三引数として与えられたものになる。
.LP
\fBmakecontext\fP(3) 呼び出しの第一引数で指定されていた \fIucp\fP 構造体の \fIuc_link\fP メンバで継続する。 このメンバが
NULL だった場合は、そのスレッドは終了する。
.LP
-コンテキストがシグナルハンドラの呼び出しによって得られていたものの場合は、 古い標準によれば
+ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®å\91¼ã\81³å\87ºã\81\97ã\81«ã\82\88ã\81£ã\81¦å¾\97ã\82\89ã\82\8cã\81¦ã\81\84ã\81\9fã\82\82ã\81®ã\81®å ´å\90\88ã\81¯ã\80\81 å\8f¤ã\81\84æ¨\99æº\96ã\81«ã\82\88ã\82\8cã\81°
「プログラムの実行はシグナルによって割り込まれた命令の次の命令から継続される」。 しかしこの文は SUSv2 で削除されたので、
現在の判断は「結果は定義されていない」である。
.SH 返り値
これらにはシグナルコンテキストの取り扱いが定義されていなかったので、 次の段階では \fBsigsetjmp\fP(3)/\fBsiglongjmp\fP(3)
のペアが現われた。 現在の機構ではずっと細かな制御ができる。 一方 \fBgetcontext\fP() から返ったとき、 これが最初の呼び出しであったか、
それとも \fBsetcontext\fP() 呼び出しからのものであるかを 区別する容易な方法がなくなってしまった。
-ã\83¦ã\83¼ã\82¶ã\81¯ã\80\8cã\81\97ã\81\8aã\82\8aã\80\8dæ©\9fæ§\8bã\82\92è\87ªå\88\86ã\81§ä½\9cã\82\89ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\83¬ã\82¸ã\82¹ã\82¿å¤\89æ\95°ã\81¯ (ã\83¬ã\82¸ã\82¹ã\82¿はリストアされてしまうので) これをやってくれない。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ã\80\8cã\81\97ã\81\8aã\82\8aã\80\8dæ©\9fæ§\8bã\82\92è\87ªå\88\86ã\81§ä½\9cã\82\89ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼å¤\89æ\95°ã\81¯ (ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼はリストアされてしまうので) これをやってくれない。
.LP
-ã\82·ã\82°ã\83\8aã\83«ã\81\8cç\99ºç\94\9fã\81\99ã\82\8bã\81¨ã\80\81 ç\8f¾å\9c¨ã\81®ã\83¦ã\83¼ã\82¶ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81¯ä¿\9då\98ã\81\95ã\82\8cã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ç\94¨ã\81®ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81\8cã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82\88ã\81£ã\81¦ç\94\9fæ\88\90ã\81\95ã\82\8cã\82\8bã\80\82 ä»\8aå¾\8cã\81¯ã\83\8fã\83³ã\83\89ã\83©に
+ã\82·ã\82°ã\83\8aã\83«ã\81\8cç\99ºç\94\9fã\81\99ã\82\8bã\81¨ã\80\81 ç\8f¾å\9c¨ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81¯ä¿\9då\98ã\81\95ã\82\8cã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ç\94¨ã\81®ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81\8cã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82\88ã\81£ã\81¦ç\94\9fæ\88\90ã\81\95ã\82\8cã\82\8bã\80\82 ä»\8aå¾\8cã\81¯ã\83\8fã\83³ã\83\89ã\83©ã\83¼に
\fBlongjmp\fP(3) を使わせないこと: この関数のコンテキスト下での動作は定義されていない。 代わりに \fBsiglongjmp\fP(3) か
\fBsetcontext\fP() を使うこと。
.SH 関連項目
\fBgetcwd\fP() 関数はカレントワーキングディレクトリの絶対パス名を \fIbuf\fP で示された \fIsize\fP 長の配列にコピーする。
.PP
終端のヌルバイトも含めた、カレントワーキングディレクトリの 絶対パス名の長さが \fIsize\fP バイトを超えている場合は、返り値として NULL が返り
-\fIerrno\fP に \fBERANGE\fP がセットされる。 アプリケーションはこのエラーをチェックし、 必要に応じてより長いバッファを用意すべきである。
+\fIerrno\fP に \fBERANGE\fP がセットされる。 アプリケーションはこのエラーをチェックし、
+必要に応じてより長いバッファーを用意すべきである。
.PP
-POSIX.1\-2001 標準の拡張として、 glibc では \fIbuf\fP が NULL の場合、 \fBgetcwd\fP() は必要なバッファを
-\fBmalloc\fP(3) を用いて動的に割り当てる。 この場合、 \fIsize\fP が 0 の場合を除き、バッファの長さは \fIsize\fP となる。
-\fIsize\fP が 0 の場合には必要な大きさが確保される。 呼び出し側で、返されたバッファを \fBfree\fP(3) すべきである。
+POSIX.1\-2001 æ¨\99æº\96ã\81®æ\8b¡å¼µã\81¨ã\81\97ã\81¦ã\80\81 glibc ã\81§ã\81¯ \fIbuf\fP ã\81\8c NULL ã\81®å ´å\90\88ã\80\81 \fBgetcwd\fP() ã\81¯å¿\85è¦\81ã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92
+\fBmalloc\fP(3) ã\82\92ç\94¨ã\81\84ã\81¦å\8b\95ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\80\82 ã\81\93ã\81®å ´å\90\88ã\80\81 \fIsize\fP ã\81\8c 0 ã\81®å ´å\90\88ã\82\92é\99¤ã\81\8dã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®é\95·ã\81\95ã\81¯ \fIsize\fP ã\81¨ã\81ªã\82\8bã\80\82
+\fIsize\fP ã\81\8c 0 ã\81®å ´å\90\88ã\81«ã\81¯å¿\85è¦\81ã\81ªå¤§ã\81\8dã\81\95ã\81\8c確ä¿\9dã\81\95ã\82\8cã\82\8bã\80\82 å\91¼ã\81³å\87ºã\81\97å\81´ã\81§ã\80\81è¿\94ã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92 \fBfree\fP(3) ã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82
\fBget_current_dir_name\fP() はカレントワーキングディレクトリの絶対パス名を収めるのに 十分な大きさの配列を
-\fBmalloc\fP(3) で獲得する。環境変数 \fBPWD\fP が設定されておりその値が正しければ、その値が返される。 呼び出し側で、返されたバッファを
-\fBfree\fP(3) すべきである。
+\fBmalloc\fP(3) で獲得する。環境変数 \fBPWD\fP が設定されておりその値が正しければ、その値が返される。
+呼び出し側で、返されたバッファーを \fBfree\fP(3) すべきである。
-\fBgetwd\fP() は \fBmalloc\fP(3) によるメモリ獲得を一切行なわない。 \fIbuf\fP 引数は少なくとも \fBPATH_MAX\fP
-バイトの長さを持つ配列へのポインタである必要がある。 終端のヌルバイトも含めた、カレントワーキングディレクトリの 絶対パス名の長さが
+\fBgetwd\fP() は \fBmalloc\fP(3) によるメモリー獲得を一切行なわない。 \fIbuf\fP 引数は少なくとも \fBPATH_MAX\fP
+ã\83\90ã\82¤ã\83\88ã\81®é\95·ã\81\95ã\82\92æ\8c\81ã\81¤é\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82 çµ\82端ã\81®ã\83\8cã\83«ã\83\90ã\82¤ã\83\88ã\82\82å\90«ã\82\81ã\81\9fã\80\81ã\82«ã\83¬ã\83³ã\83\88ã\83¯ã\83¼ã\82ã\83³ã\82°ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81® 絶対ã\83\91ã\82¹å\90\8dã\81®é\95·ã\81\95ã\81\8c
\fBPATH_MAX\fP バイトを超えている場合、 NULL が返され、 \fIerrno\fP に \fBENAMETOOLONG\fP が設定される。
(システムによっては、 \fBPATH_MAX\fP は必ずしもコンパイル時に決まる定数ではない点に注意すること。
また、ファイルシステムに依存する場合もある。 \fBpathconf\fP(3) を参照。) 移植性とセキュリティ上の理由から、 \fBgetwd\fP()
の利用は推奨されない。
.SH 返り値
-成功すると、これらの関数はカレントワーキングディレクトリの絶対パス名 が入った文字列へのポインタを返す。 \fBgetcwd\fP() と
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\82«ã\83¬ã\83³ã\83\88ã\83¯ã\83¼ã\82ã\83³ã\82°ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®çµ¶å¯¾ã\83\91ã\82¹å\90\8d ã\81\8cå\85¥ã\81£ã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 \fBgetcwd\fP() ã\81¨
\fBgetwd\fP() の場合、返り値は \fIbuf\fP と同じ値になる。
失敗した場合、これらの関数は NULL を返し、 \fIerrno\fP にエラーを示す値を設定する。 \fIbuf\fP が指す配列の内容は未定義である。
\fIbuf\fP が不正なアドレスを指している。
.TP
\fBEINVAL\fP
-\fIsize\fP 引数が 0 かつ、 \fIbuf\fP 引数がヌルポインタでない。
+\fIsize\fP å¼\95æ\95°ã\81\8c 0 ã\81\8bã\81¤ã\80\81 \fIbuf\fP å¼\95æ\95°ã\81\8cã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fBgetwd\fP(): \fIbuf\fP が NULL である。
を参照する。 システムコールも proc ファイルシステムもない場合、 一般的な実装が呼び出される。 この場合においてのみ、(Linux では)
この関数は \fBEACCES\fP で失敗する可能性がある。
.LP
-これらの関数はしばしばカレントワーキングディレクトリの位置を保存し、 後で戻ってくるために利用される。 未使用のファイルディスクリプタが十分ある場合は、
-現在のディレクトリ (".") を開いて \fBfchdir\fP(2) を呼び出すほうが普通は高速で信頼性がある。 特に Linux
-以外のプラットフォームの場合はそうである。
+これらの関数はしばしばカレントワーキングディレクトリの位置を保存し、 後で戻ってくるために利用される。
+未使用のファイルディスクリプターが十分ある場合は、 現在のディレクトリ (".") を開いて \fBfchdir\fP(2)
+を呼び出すほうが普通は高速で信頼性がある。 特に Linux 以外のプラットフォームの場合はそうである。
.SH 関連項目
\fBchdir\fP(2), \fBfchdir\fP(2), \fBopen\fP(2), \fBunlink\fP(2), \fBfree\fP(3),
\fBmalloc\fP(3)
.RE
.ad
.SH 説明
-\fBgetdate\fP() 関数は、 \fIstring\fP が指すバッファに格納された文字列表現の日付と時刻を、 要素別の時刻 (broken\-down
-time) に変換する。 要素別の時刻は \fItm\fP 構造体に格納され、この構造体へのポインタが関数の結果として返される。 この \fItm\fP
-構造体は静的なメモリ領域にあり、 \fBgetdate\fP() のそれ以降の呼び出しで上書きされるかもされない。
+\fBgetdate\fP() é\96¢æ\95°ã\81¯ã\80\81 \fIstring\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97表ç\8f¾ã\81®æ\97¥ä»\98ã\81¨æ\99\82å\88»ã\82\92ã\80\81 è¦\81ç´ å\88¥ã\81®æ\99\82å\88» (broken\-down
+time) ã\81«å¤\89æ\8f\9bã\81\99ã\82\8bã\80\82 è¦\81ç´ å\88¥ã\81®æ\99\82å\88»ã\81¯ \fItm\fP æ§\8bé\80 ä½\93ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\80\81ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cé\96¢æ\95°ã\81®çµ\90æ\9e\9cã\81¨ã\81\97ã\81¦è¿\94ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81® \fItm\fP
+構造体は静的なメモリー領域にあり、 \fBgetdate\fP() のそれ以降の呼び出しで上書きされるかもされない。
(\fIformat\fP 引き数でフォーマットを指定する) \fBstrptime\fP(3) とは違い、 \fBgetdate\fP() は環境変数
\fBDATEMSK\fP で指定されたフルパス名のファイルに書いてあるフォーマットを用いる。
日付の指定がなかったが、時間 (hour) だけ指定された場合は、 現在の時間またはそれ以降で、その指定に合致する最初の時間が採用される。
\fBgetdate_r\fP() は GNU 拡張で \fBgetdate\fP() のリエントラント版を提供している。 \fBgetdate_r\fP()
-では、エラーを報告するのにグローバル変数を使用したり、 要素別の時刻を返すのに静的なバッファを使用したりせず、
-エラーを関数の返り値経由で報告し、要素別の時刻を 引き数 \fIres\fP が指し示す呼び出し側で割り当てたバッファに格納して返す。
+ã\81§ã\81¯ã\80\81ã\82¨ã\83©ã\83¼ã\82\92å ±å\91\8aã\81\99ã\82\8bã\81®ã\81«ã\82°ã\83ã\83¼ã\83\90ã\83«å¤\89æ\95°ã\82\92使ç\94¨ã\81\97ã\81\9fã\82\8aã\80\81 è¦\81ç´ å\88¥ã\81®æ\99\82å\88»ã\82\92è¿\94ã\81\99ã\81®ã\81«é\9d\99ç\9a\84ã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92使ç\94¨ã\81\97ã\81\9fã\82\8aã\81\9bã\81\9aã\80\81
+ã\82¨ã\83©ã\83¼ã\82\92é\96¢æ\95°ã\81®è¿\94ã\82\8aå\80¤çµ\8cç\94±ã\81§å ±å\91\8aã\81\97ã\80\81è¦\81ç´ å\88¥ã\81®æ\99\82å\88»ã\82\92 å¼\95ã\81\8dæ\95° \fIres\fP ã\81\8cæ\8c\87ã\81\97示ã\81\99å\91¼ã\81³å\87ºã\81\97å\81´ã\81§å\89²ã\82\8aå½\93ã\81¦ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\97ã\81¦è¿\94ã\81\99ã\80\82
.SH 返り値
-成功すると、 \fBgetdate\fP() は \fIstruct tm\fP へのポインタを返す。 失敗すると NULL を返し、グローバル変数
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 \fBgetdate\fP() ã\81¯ \fIstruct tm\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 失æ\95\97ã\81\99ã\82\8bã\81¨ NULL ã\82\92è¿\94ã\81\97ã\80\81ã\82°ã\83ã\83¼ã\83\90ã\83«å¤\89æ\95°
\fIgetdate_err\fP に以下に示すエラー番号のいずれか一つを設定する。 \fIerrno\fP の変更については規定されていない。
成功すると、 \fBgetdate_r\fP() は 0 を返す。 失敗すると、以下に示すエラー番号のいずれか一つを返す。
.TP
\fB6\fP
.\" Error 6 doesn't seem to occur in glibc
-ã\83¡ã\83¢ã\83ªã\81®å\89²ã\82\8aå½\93ã\81¦ã\81«å¤±æ\95\97ã\81\97ã\81\9f (ã\83¡ã\83¢ã\83ªが足りない)。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\89²ã\82\8aå½\93ã\81¦ã\81«å¤±æ\95\97ã\81\97ã\81\9f (ã\83¡ã\83¢ã\83ªã\83¼が足りない)。
.TP
\fB7\fP
入力にマッチしたファイルに、行が含まれていない。
\fBgetdate\fP() は \fBstrptime\fP(3) を用いて実装されており、 両者では全く同じ変換が両者でサポートされている。
.SH 例
以下のプログラムは、コマンドライン引き数のそれぞれについて \fBgetdate\fP() を呼び出し、それぞれについて返された \fItm\fP
-æ§\8bé\80 ä½\93ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89å\80¤ã\82\92表示ã\81\99ã\82\8bã\80\82 次ã\81®ã\82·ã\82§ã\83«ã\83»ã\82»ã\83\83ã\82·ã\83§ã\83³ã\81¯ã\80\81ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®å\8b\95ä½\9cä¾\8bã\81§ã\81\82ã\82\8bã\80\82
+構造体のフィールド値を表示する。 次のシェルセッションは、プログラムの動作例である。
.in +4n
.nf
.\"
.TH GETDIRENTRIES 3 2014\-06\-13 GNU "Linux Programmer's Manual"
.SH 名前
-getdirentries \- ディレクトリのエントリをファイルシステムに依存しない形式で取得する
+getdirentries \- ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81«ä¾\9då\98ã\81\97ã\81ªã\81\84å½¢å¼\8fã\81§å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
\fB#include <dirent.h>\fP
.sp
.sp
\fBgetdirentries\fP(): _BSD_SOURCE || _SVID_SOURCE
.SH 説明
-\fIfd\fP で指定されたディレクトリからエントリを読み、 \fIbuf\fP に格納する。最大で \fInbytes\fP が読み込まれる。読み込みはオフセット
+\fIfd\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81\8bã\82\89ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92èªã\81¿ã\80\81 \fIbuf\fP ã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82æ\9c\80大ã\81§ \fInbytes\fP ã\81\8cèªã\81¿è¾¼ã\81¾ã\82\8cã\82\8bã\80\82èªã\81¿è¾¼ã\81¿ã\81¯ã\82ªã\83\95ã\82»ã\83\83ã\83\88
\fI*basep\fP から開始され、読み込み終了時には \fI*basep\fP は新しい位置に更新される。
.SH 返り値
\fBgetdirentries\fP() は読み込んだバイト数を返すか、ディレクトリの最後にきた場合は 0 を返す。 エラーが起こったら \-1 を返し、
.\"
.TH GETDTABLESIZE 3 2014\-08\-19 Linux "Linux Programmer's Manual"
.SH 名前
-getdtablesize \- ディスクリプタテーブルのサイズを取得する
+getdtablesize \- ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\82µã\82¤ã\82ºã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
\fB#include <unistd.h>\fP
.sp
.ad b
.SH 説明
\fBgetdtablesize\fP() は 1 つのプロセスのオープンできるファイル数の最大値を返す。
-返り値はファイルディスクリプタの取り得る最大値より 1 大きい値である。
+è¿\94ã\82\8aå\80¤ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®å\8f\96ã\82\8aå¾\97ã\82\8bæ\9c\80大å\80¤ã\82\88ã\82\8a 1 大ã\81\8dã\81\84å\80¤ã\81§ã\81\82ã\82\8bã\80\82
.SH 返り値
プロセス毎にオープンできるファイル数の現在の制限値。
.SH エラー
.sp
\fBsecure_getenv\fP(): _GNU_SOURCE
.SH 説明
-関数 \fBgetenv\fP() は、環境リストから名前が \fIname\fP の環境変数を検索し、対応する \fIvalue\fP 文字列へのポインタを返す。
+é\96¢æ\95° \fBgetenv\fP() ã\81¯ã\80\81ç\92°å¢\83ã\83ªã\82¹ã\83\88ã\81\8bã\82\89å\90\8då\89\8dã\81\8c \fIname\fP ã\81®ç\92°å¢\83å¤\89æ\95°ã\82\92æ¤\9cç´¢ã\81\97ã\80\81対å¿\9cã\81\99ã\82\8b \fIvalue\fP æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
GNU 固有の \fBsecure_getenv\fP() 関数は \fBgetenv\fP() と同様だが、 "secure execution"
(「安全な実行」) が必要な場合には NULL を返す点が異なる。 "secure execution" が必要となるのは、
呼び出し元プロセスにより実行されるプログラムがロードされる際に、 以下の条件のいずれか一つが成立する場合である。
.IP * 3
-プロセスの実効ユーザ ID がプロセスの実ユーザ ID と一致しない場合、またはプロセスの実効グループ ID がプロセスの実グループ ID
+プロセスの実効ユーザー ID がプロセスの実ユーザー ID と一致しない場合、またはプロセスの実効グループ ID がプロセスの実グループ ID
と一致しない場合 (通常、この状況になるのは、 set\-user\-ID プログラムか set\-group\-ID プログラムを実行した場合である)。
.IP *
実行ファイルで実効ケーパビリティビットがセットされている場合。
\fBsecure_getenv\fP() 関数は、 set\-user\-ID プログラムや set\-group\-ID
プログラムが実行環境を偶然信用してしまった場合に起こり得る脆弱性を、 汎用ライブラリで回避するために使うことを意図して作られた。
.SH 返り値
-é\96¢æ\95° \fBgetenv\fP() ã\81¯ã\80\81ç\92°å¢\83ã\81«ã\81\8aã\81\91ã\82\8bå\80¤ value ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 \fIname\fP ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bç\92°å¢\83å¤\89æ\95°ã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\84ã\81¨ã\81\8dã\81«ã\81¯ NULL
-を返す。
+é\96¢æ\95° \fBgetenv\fP() ã\81¯ã\80\81ç\92°å¢\83ã\81«ã\81\8aã\81\91ã\82\8bå\80¤ value ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 \fIname\fP ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bç\92°å¢\83å¤\89æ\95°ã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\84ã\81¨ã\81\8dã\81«ã\81¯
+NULL を返す。
.SH バージョン
\fBsecure_getenv\fP() は glibc 2.17 で初めて登場した。
.SH 準拠
.SH 注意
環境リストの文字列は \fIname=value\fP という形式をしている。
-é\80\9a常ã\81®å®\9fè£\85ã\81§ã\81¯ã\80\81 \fBgetenv\fP() ã\81¯ç\92°å¢\83ã\83ªã\82¹ã\83\88å\86\85ã\81®æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯ã\81\93ã\81®æ\96\87å\97å\88\97ã\82\92å¤\89æ\9b´ã\81\97ã\81ªã\81\84ã\82\88ã\81\86ã\81«æ³¨æ\84\8fã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84。
-この文字列を変更すると、そのプロセスの環境を変化させることになるからである。
+é\80\9a常ã\81®å®\9fè£\85ã\81§ã\81¯ã\80\81 \fBgetenv\fP() ã\81¯ç\92°å¢\83ã\83ªã\82¹ã\83\88å\86\85ã\81®æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99。
+呼び出し元はこの文字列を変更しないように注意しなければならない。 この文字列を変更すると、そのプロセスの環境を変化させることになるからである。
\fBgetenv\fP() の実装はリエントラント (再入可能) であることを要求されていない。 \fBgetenv\fP()
の返り値により参照される文字列は静的に割り当てられてもよく、 文字列の内容は後続の \fBgetenv\fP(), \fBputenv\fP(3),
\fBsetenv\fP(3), \fBunsetenv\fP(3) の呼び出しにより変更されることがある。
-\fBsecure_getenv\fP() の "secure execution" モードは、 カーネルからユーザ空間に渡される補助ベクトル
+\fBsecure_getenv\fP() の "secure execution" モードは、 カーネルからユーザー空間に渡される補助ベクトル
(auxiliary vector) の \fBAT_SECURE\fP フラグにより制御される。
.SH 関連項目
\fBclearenv\fP(3), \fBgetauxval\fP(3), \fBputenv\fP(3), \fBsetenv\fP(3), \fBunsetenv\fP(3),
.\"
.TH GETFSENT 3 2002\-02\-28 Linux "Linux Programmer's Manual"
.SH 名前
-getfsent, getfsspec, getfsfile, setfsent, endfsent \- fstab エントリの処理
+getfsent, getfsspec, getfsfile, setfsent, endfsent \- fstab ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å\87¦ç\90\86
.SH 書式
\fB#include <fstab.h>\fP
.sp
関数 \fBendfsent\fP() は呼び出されると fstab ファイルをクローズする。
.LP
関数 \fBgetfsspec\fP() は fstab ファイルを先頭から検索し、 \fIfs_spec\fP フィールドが \fIspecial_file\fP
-引数にマッチするエントリが見つかったら、その最初のものを返す。
+å¼\95æ\95°ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\81£ã\81\9fã\82\89ã\80\81ã\81\9dã\81®æ\9c\80å\88\9dã\81®ã\82\82ã\81®ã\82\92è¿\94ã\81\99ã\80\82
.LP
関数 \fBgetfsfile\fP() は fstab ファイルを先頭から検索し、 \fIfs_file\fP フィールドが \fImount_point\fP
-引数にマッチするエントリが見つかったら、その最初のものを返す。
+å¼\95æ\95°ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\81£ã\81\9fã\82\89ã\80\81ã\81\9dã\81®æ\9c\80å\88\9dã\81®ã\82\82ã\81®ã\82\92è¿\94ã\81\99ã\80\82
.SH 返り値
.\" .SH HISTORY
.\" The
.\" .BR getfsent ()
.\" function appeared in 4.0BSD; the other four functions appeared in 4.3BSD.
成功すると、 \fBgetfsent\fP(), \fBgetfsfile\fP(), \fBgetfsspec\fP() の各関数は \fIfstab\fP
-構造体へのポインタを返し、 \fBsetfsent\fP() 関数は 1 を返す。 失敗するとこれらの関数は NULL を返し、 end\-of\-file
+æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\97ã\80\81 \fBsetfsent\fP() é\96¢æ\95°ã\81¯ 1 ã\82\92è¿\94ã\81\99ã\80\82 失æ\95\97ã\81\99ã\82\8bã\81¨ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ NULL ã\82\92è¿\94ã\81\97ã\80\81 end\-of\-file
になったら 0 を返す。
.SH 準拠
POSIX.1\-2001 にはこれらの関数は存在しない。 これらの関数をもつ OS はいくつかあり、 例えば *BSD, SunOS, Digital
.LP
Linux ではブロックスペシャルデバイスを複数の場所にマウントでき、 また複数のデバイスが同じマウントポイントを共有できる
(この場合はそのマウントポイントに最後にマウントされたデバイスが意味を持つ) が、 \fBgetfsfile\fP() と \fBgetfsspec\fP()
-はマッチした最初のエントリしか返さないので、 これらの 2 つの関数は Linux での利用には適していない。
+ã\81¯ã\83\9eã\83\83ã\83\81ã\81\97ã\81\9fæ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\97ã\81\8bè¿\94ã\81\95ã\81ªã\81\84ã\81®ã\81§ã\80\81 ã\81\93ã\82\8cã\82\89ã\81® 2 ã\81¤ã\81®é\96¢æ\95°ã\81¯ Linux ã\81§ã\81®å\88©ç\94¨ã\81«ã\81¯é\81©ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.SH 関連項目
\fBgetmntent\fP(3), \fBfstab\fP(5)
.SH この文書について
.\"
.TH GETGRENT 3 2014\-10\-02 "" "Linux Programmer's Manual"
.SH 名前
-getgrent, setgrent, endgrent \- グループファイルエントリの取得
+getgrent, setgrent, endgrent \- ã\82°ã\83«ã\83¼ã\83\97ã\83\95ã\82¡ã\82¤ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å\8f\96å¾\97
.SH 書式
.nf
\fB#include <sys/types.h>\fP
.PD
.ad b
.SH 説明
-\fBgetgrent\fP() é\96¢æ\95°ã\81¯ã\80\81ã\82°ã\83«ã\83¼ã\83\97ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89å\8f\96å¾\97ã\81\97ã\81\9fã\82¨ã\83³ã\83\88ã\83ªã\82\92 è¦\81ç´ æ¯\8eã\81«å\88\86解ã\81\97ã\80\81å\90\84è¦\81ç´ ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す
-(ã\82°ã\83«ã\83¼ã\83\97ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ä¾\8b: ã\83ã\83¼ã\82«ã\83«ã\81®ã\82°ã\83«ã\83¼ã\83\97ã\83\95ã\82¡ã\82¤ã\83« \fI/etc/group\fP, NIS, LDAP)ã\80\82 \fBgetgrent\fP()
-ã\81¯ã\80\81æ\9c\80å\88\9dã\81«å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9fæ\99\82ã\81¯æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92è¿\94ã\81\97ã\80\81 ã\81\9dã\82\8c以é\99\8dã\81¯å\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bæ¯\8eã\81«æ¬¡ã\81®ã\82¨ã\83³ã\83\88ã\83ªを返す。
+\fBgetgrent\fP() é\96¢æ\95°ã\81¯ã\80\81ã\82°ã\83«ã\83¼ã\83\97ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89å\8f\96å¾\97ã\81\97ã\81\9fã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 è¦\81ç´ æ¯\8eã\81«å\88\86解ã\81\97ã\80\81å\90\84è¦\81ç´ ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す
+(グループデータベースの例: ローカルのグループファイル \fI/etc/group\fP, NIS, LDAP)。 \fBgetgrent\fP()
+ã\81¯ã\80\81æ\9c\80å\88\9dã\81«å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9fæ\99\82ã\81¯æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¿\94ã\81\97ã\80\81 ã\81\9dã\82\8c以é\99\8dã\81¯å\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bæ¯\8eã\81«æ¬¡ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼を返す。
.PP
-\fBsetgrent\fP() é\96¢æ\95°ã\82\92使ã\81\86ã\81¨ã\80\81ã\82\82ã\81\86ä¸\80度èªã\81¿è¾¼ã\82\81ã\82\8bã\82\88ã\81\86ã\81«ã\80\81 ã\82°ã\83«ã\83¼ã\83\97ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®å\85\88é ã\81«æ\88»ã\82\8bã\80\82
+\fBsetgrent\fP() 関数を使うと、もう一度読み込めるように、 グループデータベースの先頭に戻る。
.PP
-\fBendgrent\fP() 関数は、全ての処理が終わった後にグループ・ データベースをクローズする。
+\fBendgrent\fP() 関数は、全ての処理が終わった後にグループ データベースをクローズする。
.PP
\fIgroup\fP 構造体は \fI<grp.h>\fP で以下のように定義されている:
.sp
.PP
この構造体のフィールドの詳細は \fBgroup\fP(5) を参照のこと。
.SH 返り値
-\fBgetgrent\fP() 関数は \fIgroup\fP 構造体へのポインタを返す。 これ以上エントリが無いか、エラーが発生した場合は NULL を返す。
+\fBgetgrent\fP() 関数は \fIgroup\fP 構造体へのポインターを返す。 これ以上エントリーが無いか、エラーが発生した場合は NULL
+を返す。
.LP
エラーが発生すると、 \fIerrno\fP が適切に設定される。 この関数の呼び出し後に \fIerrno\fP をチェックしたい場合は、呼び出し前に
\fIerrno\fP を 0 に設定しておかないといけない。
返り値は静的な領域を指しており、その後の \fBgetgrent\fP(), \fBgetgrgid\fP(3), \fBgetgrnam\fP(3)
-の呼び出しで上書きされるかもしれない。 (返されたポインタを \fBfree\fP(3) に渡さないこと。)
+ã\81®å\91¼ã\81³å\87ºã\81\97ã\81§ä¸\8aæ\9b¸ã\81\8dã\81\95ã\82\8cã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82 (è¿\94ã\81\95ã\82\8cã\81\9fã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92 \fBfree\fP(3) ã\81«æ¸¡ã\81\95ã\81ªã\81\84ã\81\93ã\81¨ã\80\82)
.SH エラー
.TP
\fBEAGAIN\fP
.TP
\fBENOMEM\fP
.\" not in POSIX
-\fIgroup\fP 構造体を割り当てるためのメモリが不十分。
+\fIgroup\fP æ§\8bé\80 ä½\93ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81\9fã\82\81ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cä¸\8då\8d\81å\88\86ã\80\82
.TP
\fBERANGE\fP
-与えられたバッファ空間が不十分である。
+与えられたバッファー空間が不十分である。
.SH ファイル
.TP
\fI/etc/group\fP
-ã\83ã\83¼ã\82«ã\83«ã\81®ã\82°ã\83«ã\83¼ã\83\97ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\83\95ã\82¡ã\82¤ã\83«
+ローカルのグループデータベースファイル
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBgetgrent\fP() 関数はスレッドセーフではない。
.\"
.TH GETGRENT_R 3 2015\-01\-22 GNU "Linux Programmer's Manual"
.SH 名前
-getgrent_r, fgetgrent_r \- グループファイルエントリをリエントラント (reentrant) に取り出す
+getgrent_r, fgetgrent_r \- ã\82°ã\83«ã\83¼ã\83\97ã\83\95ã\82¡ã\82¤ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88 (reentrant) ã\81«å\8f\96ã\82\8aå\87ºã\81\99
.SH 書式
.nf
\fB#include <grp.h>\fP
\fBfgetgrent_r\fP(): _SVID_SOURCE
.SH 説明
関数 \fBgetgrent_r\fP() と \fBfgetgrent_r\fP() は \fBgetgrent\fP(3) と \fBfgetgrent\fP(3)
-のリエントラント版である。 前者は、 \fBsetgrent\fP(3) によって初期化されたストリームから、次のグループファイルのエントリを読み込む。
-後者は、 \fIstream\fP から次のグループファイルのエントリを読み込む。
+ã\81®ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ç\89\88ã\81§ã\81\82ã\82\8bã\80\82 å\89\8dè\80\85ã\81¯ã\80\81 \fBsetgrent\fP(3) ã\81«ã\82\88ã\81£ã\81¦å\88\9dæ\9c\9få\8c\96ã\81\95ã\82\8cã\81\9fã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81\8bã\82\89ã\80\81次ã\81®ã\82°ã\83«ã\83¼ã\83\97ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92èªã\81¿è¾¼ã\82\80ã\80\82
+å¾\8cè\80\85ã\81¯ã\80\81 \fIstream\fP ã\81\8bã\82\89次ã\81®ã\82°ã\83«ã\83¼ã\83\97ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92èªã\81¿è¾¼ã\82\80ã\80\82
.PP
\fIgroup\fP 構造体は \fI<grp.h>\fP で以下のように定義されている:
.sp
.PP
この構造体のフィールドの詳細は \fBgroup\fP(5) を参照のこと。
.PP
-ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ã\81§ã\81ªã\81\84é\96¢æ\95°ã\81¯é\9d\99ç\9a\84ã\81ªæ ¼ç´\8dé \98å\9f\9fã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®é\9d\99ç\9a\84ã\81ªæ ¼ç´\8dé \98å\9f\9fã\81«ã\81¯ã\80\81æ\9b´ã\81«ã\82°ã\83«ã\83¼ã\83\97å\90\8dã\83»ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83» ã\83¡ã\83³ã\83\90ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿が含まれる。
-ここで説明されているリエントラントな関数は、 呼び出し側から提供されるバッファにグループ名など全てを返す。 最初の引き数として \fIstruct
-group\fP を保持できるバッファ \fIgbuf\fP がある。 次にその他の文字列を保持できるサイズ \fIbuflen\fP のバッファ \fIbuf\fP
-がある。 これらの関数の結果 (ストリームから読み込まれた \fIstruct group\fP) は、 提供されたバッファ \fI*gbuf\fP
-に格納され、この \fIstruct group\fP へのポインタは \fI*gbufp\fP に返される。
+ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ã\81§ã\81ªã\81\84é\96¢æ\95°ã\81¯é\9d\99ç\9a\84ã\81ªæ ¼ç´\8dé \98å\9f\9fã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®é\9d\99ç\9a\84ã\81ªæ ¼ç´\8dé \98å\9f\9fã\81«ã\81¯ã\80\81æ\9b´ã\81«ã\82°ã\83«ã\83¼ã\83\97å\90\8dã\83»ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83» ã\83¡ã\83³ã\83\90ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼が含まれる。
+ã\81\93ã\81\93ã\81§èª¬æ\98\8eã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ã\81ªé\96¢æ\95°ã\81¯ã\80\81 å\91¼ã\81³å\87ºã\81\97å\81´ã\81\8bã\82\89æ\8f\90ä¾\9bã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\82°ã\83«ã\83¼ã\83\97å\90\8dã\81ªã\81©å\85¨ã\81¦ã\82\92è¿\94ã\81\99ã\80\82 æ\9c\80å\88\9dã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦ \fIstruct
+group\fP を保持できるバッファー \fIgbuf\fP がある。 次にその他の文字列を保持できるサイズ \fIbuflen\fP のバッファー \fIbuf\fP
+がある。 これらの関数の結果 (ストリームから読み込まれた \fIstruct group\fP) は、 提供されたバッファー \fI*gbuf\fP
+ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\80\81ã\81\93ã\81® \fIstruct group\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ \fI*gbufp\fP ã\81«è¿\94ã\81\95ã\82\8cã\82\8bã\80\82
.SH 返り値
-成功した場合、これらの関数は 0 を返し、 *\fIgbufp\fP は \fIstruct group\fP へのポインタとなる。
+æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ 0 ã\82\92è¿\94ã\81\97ã\80\81 *\fIgbufp\fP ã\81¯ \fIstruct group\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\81ªã\82\8bã\80\82
エラーの場合、これらの関数はエラー値を返し、 *\fIgbufp\fP は NULL になる。
.SH エラー
.TP
\fBENOENT\fP
-次のエントリがない。
+次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBERANGE\fP
-十分なバッファ空間が与えられていない。 もっと大きなバッファで再度実行すること。
+十分なバッファー空間が与えられていない。 もっと大きなバッファーで再度実行すること。
.SH 準拠
これらの関数は GNU 拡張であり、POSIX 版の関数 \fBgetpwnam_r\fP(3) の形式に似せてある。
他のシステムでは以下のプロトタイプが使われている。
.\"
.TH GETGRNAM 3 2014\-08\-19 "" "Linux Programmer's Manual"
.SH 名前
-getgrnam, getgrnam_r, getgrgid, getgrgid_r \- グループファイルエントリの取り出し
+getgrnam, getgrnam_r, getgrgid, getgrgid_r \- ã\82°ã\83«ã\83¼ã\83\97ã\83\95ã\82¡ã\82¤ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å\8f\96ã\82\8aå\87ºã\81\97
.SH 書式
.nf
\fB#include <sys/types.h>\fP
.RE
.ad b
.SH 説明
-\fBgetgrnam\fP() é\96¢æ\95°ã\81¯ã\80\81ã\82°ã\83«ã\83¼ã\83\97å\90\8d \fIname\fP ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82°ã\83«ã\83¼ã\83\97ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ã\82¨ã\83³ã\83\88ã\83ªを
-è¦\81ç´ æ¯\8eã\81«å\88\86解ã\81\97ã\80\81å\90\84è¦\81ç´ ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99 (ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»データベースの例: ローカルのグループファイル \fI/etc/group\fP,
+\fBgetgrnam\fP() é\96¢æ\95°ã\81¯ã\80\81ã\82°ã\83«ã\83¼ã\83\97å\90\8d \fIname\fP ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82°ã\83«ã\83¼ã\83\97ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼を
+è¦\81ç´ æ¯\8eã\81«å\88\86解ã\81\97ã\80\81å\90\84è¦\81ç´ ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99 (ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89データベースの例: ローカルのグループファイル \fI/etc/group\fP,
NIS, LDAP)。
.PP
-\fBgetgrgid\fP() é\96¢æ\95°ã\81¯ã\80\81ã\82°ã\83«ã\83¼ã\83\97 ID \fIuid\fP ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82°ã\83«ã\83¼ã\83\97ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ã\82¨ã\83³ã\83\88ã\83ªを
-要素毎に分解し、各要素を格納した構造体へのポインタを返す。
+\fBgetgrgid\fP() é\96¢æ\95°ã\81¯ã\80\81ã\82°ã\83«ã\83¼ã\83\97 ID \fIuid\fP ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82°ã\83«ã\83¼ã\83\97ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼を
+è¦\81ç´ æ¯\8eã\81«å\88\86解ã\81\97ã\80\81å\90\84è¦\81ç´ ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.PP
\fIgroup\fP 構造体は \fI<grp.h>\fP で以下のように定義されている:
.sp
\fBgetgrnam_r\fP() と \fBgetgrgid_r\fP() 関数は、それぞれ \fBgetgrnam\fP() と
\fBgetgrgid\fP() と同じ情報を取得するが、取得した \fIgroup\fP 構造体を
\fIgrp\fP が指す領域に格納する。\fIgroup\fP 構造体のメンバーが指す文字列は、
-サイズ \fIbuflen\fP のバッファ \fIbuf\fP に格納される。成功した場合
-\fI*gbufp\fP ã\81«ã\81¯çµ\90æ\9e\9cã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82ã\82¨ã\83³ã\83\88ã\83ªが見つからなかった
+サイズ \fIbuflen\fP のバッファー \fIbuf\fP に格納される。成功した場合
+\fI*gbufp\fP ã\81«ã\81¯çµ\90æ\9e\9cã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82ã\82¨ã\83³ã\83\88ã\83ªã\83¼が見つからなかった
場合やエラーが発生した場合には \fI*result\fP には NULL が入る。
.PP
呼び出し
は、 \fIerrno\fP を変更せずに \-1 を返すか、 \fIbuf\fP の初期サイズの推奨値を
返す。(このサイズが小さすぎる場合、呼び出しは \fBERANGE\fP で失敗し、この
-場合には呼び出し側はバッファを大きくしてから再度呼び出すことができる。)
+å ´å\90\88ã\81«ã\81¯å\91¼ã\81³å\87ºã\81\97å\81´ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92大ã\81\8dã\81\8fã\81\97ã\81¦ã\81\8bã\82\89å\86\8d度å\91¼ã\81³å\87ºã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82)
.SH 返り値
-\fBgetgrnam\fP() と \fBgetgrgid\fP() 関数は、 \fIgroup\fP 構造体へのポインタを返す。
-ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\82\84ã\80\81 ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81\9få ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9få ´å\90\88ã\80\81 \fIerrno\fP ã\81\8cé\81©å\88\87ã\81«è¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82
-呼び出しの後で \fIerrno\fP をチェックしたい場合は、 呼び出しの前に (この値を) 0 に設定しておくべきである。
+\fBgetgrnam\fP() ã\81¨ \fBgetgrgid\fP() é\96¢æ\95°ã\81¯ã\80\81 \fIgroup\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
+ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\82\84ã\80\81 ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81\9få ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9få ´å\90\88ã\80\81 \fIerrno\fP
+が適切に設定される。 呼び出しの後で \fIerrno\fP をチェックしたい場合は、 呼び出しの前に (この値を) 0 に設定しておくべきである。
.LP
返り値は静的な領域を指しており、その後の \fBgetgrent\fP(3), \fBgetgrgid\fP(), \fBgetgrnam\fP()
-の呼び出しで上書きされるかもしれない。 (返されたポインタを \fBfree\fP(3) に渡さないこと。)
+ã\81®å\91¼ã\81³å\87ºã\81\97ã\81§ä¸\8aæ\9b¸ã\81\8dã\81\95ã\82\8cã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82 (è¿\94ã\81\95ã\82\8cã\81\9fã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92 \fBfree\fP(3) ã\81«æ¸¡ã\81\95ã\81ªã\81\84ã\81\93ã\81¨ã\80\82)
.LP
成功すると、 \fBgetgrnam_r\fP() と \fBgetgrgid_r\fP() は 0 を返し、 \fI*result\fP に \fIgrp\fP
-ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82 ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82°ã\83«ã\83¼ã\83\97ã\83»ã\82¨ã\83³ã\83\88ã\83ªが見つからなかった場合には、 0 を返し、 \fI*result\fP に NULL を設定する。
+ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82 ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82°ã\83«ã\83¼ã\83\97ã\82¨ã\83³ã\83\88ã\83ªã\83¼が見つからなかった場合には、 0 を返し、 \fI*result\fP に NULL を設定する。
エラーの場合、エラー番号を返し、 \fI*result\fP に NULL を設定する。
.SH エラー
.TP
\fBENOMEM\fP
.\" not in POSIX
.\" to allocate the group structure, or to allocate buffers
-\fIgroup\fP 構造体を割り当てるためのメモリが不十分。
+\fIgroup\fP æ§\8bé\80 ä½\93ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81\9fã\82\81ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cä¸\8då\8d\81å\88\86ã\80\82
.TP
\fBERANGE\fP
-与えられたバッファ空間が不十分である。
+与えられたバッファー空間が不十分である。
.SH ファイル
.TP
\fI/etc/group\fP
-ã\83ã\83¼ã\82«ã\83«ã\81®ã\82°ã\83«ã\83¼ã\83\97ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\83\95ã\82¡ã\82¤ã\83«
+ローカルのグループデータベースファイル
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
関数 \fBgetgrnam\fP() と \fBgetgrgid\fP() はスレッドセーフではない。
.\" FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 - give EPERM
.\" SunOS 5.8 - gives EBADF
.\" Tru64 5.1b, HP-UX-11i, SunOS 5.7 - give 0
-上記の「返り値」以下の記述は POSIX.1\-2001 に拠る。 この標準は「(エントリが) 見つからないこと」をエラーとしていないので、
+ä¸\8aè¨\98ã\81®ã\80\8cè¿\94ã\82\8aå\80¤ã\80\8d以ä¸\8bã\81®è¨\98è¿°ã\81¯ POSIX.1\-2001 ã\81«æ\8b ã\82\8bã\80\82 ã\81\93ã\81®æ¨\99æº\96ã\81¯ã\80\8c(ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8c) è¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\84ã\81\93ã\81¨ã\80\8dã\82\92ã\82¨ã\83©ã\83¼ã\81¨ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\81®ã\81§ã\80\81
そのような場合に \fIerrno\fP がどのような値になるかを定めていない。 そのため、エラーを認識することは不可能である。 POSIX
-に準拠して、エントリが見つからない場合は \fIerrno\fP を変更しないようにすべきである、と主張する人もいるかもしれない。 様々な UNIX
+ã\81«æº\96æ\8b ã\81\97ã\81¦ã\80\81ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\84å ´å\90\88ã\81¯ \fIerrno\fP ã\82\92å¤\89æ\9b´ã\81\97ã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\81ã\81¨ä¸»å¼µã\81\99ã\82\8b人ã\82\82ã\81\84ã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82 æ§\98ã\80\85ã\81ª UNIX
系のシステムで試してみると、そのような場合には 0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM
といった様々な値が返される。 他の値が返されるかもしれない。
.SH 関連項目
.\"
.TH GETGROUPLIST 3 2014\-08\-19 GNU "Linux Programmer's Manual"
.SH 名前
-getgrouplist \- ユーザが所属するグループのリストを取得する
+getgrouplist \- ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cæ\89\80å±\9eã\81\99ã\82\8bã\82°ã\83«ã\83¼ã\83\97ã\81®ã\83ªã\82¹ã\83\88ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
\fB#include <grp.h>\fP
.sp
に格納されて返される。
引き数 \fIgroup\fP がグループデータベースに \fIuser\fP が所属するグループがなかった場合、 \fBgetgrouplist\fP()
-が返すグループのリストに引き数 \fIgroup\fP も追加される。 通常は、この引き数にはユーザ \fIuser\fP
+が返すグループのリストに引き数 \fIgroup\fP も追加される。 通常は、この引き数にはユーザー \fIuser\fP
のパスワードレコードに書かれているグループ ID を指定する。
引き数 \fIngroups\fP は、値渡しと結果の両方に使用される引き数 (value\-result argument) であり、 リターン時には、常に
.SH 返り値
\fIuser\fP が所属しているグループ数が \fI*ngroups\fP 以下の場合、 \fI*ngroups\fP の値が返される。
-指定されたユーザが \fI*ngroups\fP より多くのグループに所属している場合、 \fBgetgrouplist\fP() は \-1 を返す。 この場合、
-\fI*ngroups\fP で返される値を使って、バッファのサイズを変更してから、 \fBgetgrouplist\fP() をもう一度呼び出すことができる。
+指定されたユーザーが \fI*ngroups\fP より多くのグループに所属している場合、 \fBgetgrouplist\fP() は \-1 を返す。
+この場合、 \fI*ngroups\fP で返される値を使って、バッファーのサイズを変更してから、 \fBgetgrouplist\fP()
+をもう一度呼び出すことができる。
.SH バージョン
この関数は glibc 2.2.4 から存在する。
.SH 準拠
この関数は非標準である。ほとんどの BSD に存在する。
.SH バグ
-バージョン 2.3.3 より前の glibc では、 この関数の実装にはバッファオーバーフローのバグがあり、 \fIuser\fP が所属するグループ数が
+ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.3.3 ã\82\88ã\82\8aå\89\8dã\81® glibc ã\81§ã\81¯ã\80\81 ã\81\93ã\81®é\96¢æ\95°ã\81®å®\9fè£\85ã\81«ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82ªã\83¼ã\83\90ã\83¼ã\83\95ã\83ã\83¼ã\81®ã\83\90ã\82°ã\81\8cã\81\82ã\82\8aã\80\81 \fIuser\fP ã\81\8cæ\89\80å±\9eã\81\99ã\82\8bã\82°ã\83«ã\83¼ã\83\97æ\95°ã\81\8c
\fI*ngroups\fP より多い場合であっても、 \fIuser\fP が所属するグループの全リストを配列 \fIgroups\fP に格納してしまう。
.SH 例
.PP
-以下のプログラムは、一つ目のコマンドライン引き数で指定された名前のユーザ が所属するグループのリストを表示する。 二番目のコマンドライン引き数には、
+以下のプログラムは、一つ目のコマンドライン引き数で指定された名前のユーザー が所属するグループのリストを表示する。 二番目のコマンドライン引き数には、
\fBgetgrouplist\fP() に渡す \fIngroups\fP の値を指定する。
以下のシェルのセッションはこのプログラムの使用例を示したものである。
.in +4n
.SH 名前
gethostbyname, gethostbyaddr, sethostent, gethostent, endhostent, h_errno,
herror, hstrerror, gethostbyaddr_r, gethostbyname2, gethostbyname2_r,
-gethostbyname_r, gethostent_r \- ネットワーク上のホストのエントリを取得する
+gethostbyname_r, gethostent_r \- ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ä¸\8aã\81®ã\83\9bã\82¹ã\83\88ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <netdb.h>\fP
\fBgethostbyname\fP() は \fIname\fP をそのまま \fIhostent\fP 構造体の \fIh_name\fP フィールドにコピーし、
さらに \fIname\fP を \fIstruct in_addr\fP 形式で表したデータを \fIhostent\fP 構造体の \fIh_addr_list[0]\fP
フィールドに入れて、その \fIhostent\fP 構造体を返す。 \fIname\fP がドットで終了していて、かつ環境変数 \fBHOSTALIASES\fP
-が設定されている場合、まず \fBHOSTALIASES\fP で指定されているエイリアスファイルから \fIname\fP のエントリが検索される
+ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81ã\81¾ã\81\9a \fBHOSTALIASES\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82¨ã\82¤ã\83ªã\82¢ã\82¹ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89 \fIname\fP ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cæ¤\9cç´¢ã\81\95ã\82\8cã\82\8b
(ファイルのフォーマットについては \fBhostname\fP(7) を参照のこと)。 \fIname\fP
がドットで終了していなければ、現在のドメインとその親ドメインが検索される。
.PP
\fBgethostbyaddr\fP() 関数は与えられたホストアドレス \fIaddr\fP (長さ \fIlen\fP、 タイプ \fItype\fP)
に対応する構造体 \fIhostent\fP を返す。 用いることのできるタイプは \fBAF_INET\fP と \fBAF_INET6\fP である。
-ホストアドレス引き数はアドレスタイプに依存した 構造体へのポインタである。 例えば、アドレスタイプ \fBAF_INET\fP に対しては
+ã\83\9bã\82¹ã\83\88ã\82¢ã\83\89ã\83¬ã\82¹å¼\95ã\81\8dæ\95°ã\81¯ã\82¢ã\83\89ã\83¬ã\82¹ã\82¿ã\82¤ã\83\97ã\81«ä¾\9då\98ã\81\97ã\81\9f æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ä¾\8bã\81\88ã\81°ã\80\81ã\82¢ã\83\89ã\83¬ã\82¹ã\82¿ã\82¤ã\83\97 \fBAF_INET\fP ã\81«å¯¾ã\81\97ã\81¦ã\81¯
(\fBinet_addr\fP(3) の呼び出しで得られる) \fIstruct in_addr *\fP である。
.PP
\fBsethostent\fP() 関数は、ネームサーバへの接続形態を指定する。 \fIstayopen\fP が真 (1)
ホストの正式名 (official name)。
.TP
\fIh_aliases\fP
-ホストの別名の配列。配列はヌルポインタで終端される。
+ã\83\9bã\82¹ã\83\88ã\81®å\88¥å\90\8dã\81®é\85\8då\88\97ã\80\82é\85\8då\88\97ã\81¯ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§çµ\82端ã\81\95ã\82\8cã\82\8bã\80\82
.TP
\fIh_addrtype\fP
アドレスのタイプ。現在はすべて \fBAF_INET\fP または \fBAF_INET6\fP である。
バイト単位で表したアドレスの長さ。
.TP
\fIh_addr_list\fP
-ã\83\9bã\82¹ã\83\88ã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¢ã\83\89ã\83¬ã\82¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81®é\85\8då\88\97ã\80\82 é\85\8då\88\97ã\81¯ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿で終端される。 ネットワークアドレスはネットワークバイトオーダ形式である。
+ã\83\9bã\82¹ã\83\88ã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¢ã\83\89ã\83¬ã\82¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®é\85\8då\88\97ã\80\82 é\85\8då\88\97ã\81¯ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼で終端される。 ネットワークアドレスはネットワークバイトオーダ形式である。
.TP
\fIh_addr\fP
\fIh_addr_list\fP の最初のアドレス。過去との互換性を保つためのものである。
.SH 返り値
\fBgethostbyname\fP() および \fBgethostbyaddr\fP() 関数は \fIhostent\fP
-構造体を返す。エラーが起こったらヌルポインタを返す。エラーの際には \fIh_errno\fP 変数がエラーの番号を保持する。 返り値が NULL
-でない場合、静的データをポインタで指していることもある。 以下の「注意」を参照すること。
+æ§\8bé\80 ä½\93ã\82\92è¿\94ã\81\99ã\80\82ã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9fã\82\89ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82ã\82¨ã\83©ã\83¼ã\81®é\9a\9bã\81«ã\81¯ \fIh_errno\fP å¤\89æ\95°ã\81\8cã\82¨ã\83©ã\83¼ã\81®ç\95ªå\8f·ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 è¿\94ã\82\8aå\80¤ã\81\8c NULL
+ã\81§ã\81ªã\81\84å ´å\90\88ã\80\81é\9d\99ç\9a\84ã\83\87ã\83¼ã\82¿ã\82\92ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§æ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\81\93ã\81¨ã\82\82ã\81\82ã\82\8bã\80\82 以ä¸\8bã\81®ã\80\8c注æ\84\8fã\80\8dã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82
.SH エラー
\fIh_errno\fP 変数は以下の値を取りうる。
.TP
\fBgethostbyaddr\fP(), \fIh_errno\fP の仕様が削除されている。 代わりに、 \fBgetaddrinfo\fP(3) と
\fBgetnameinfo\fP(3) の使用が推奨されている。
.SH 注意
-\fBgethostbyname\fP() および \fBgethostbyaddr\fP() 関数は静的データへのポインタを返す。
-このポインタは、その後の呼び出しで上書きされるかもしれない。 \fIhostent\fP
-構造体はポインタを含んでいるので、構造体のコピーだけでは不十分である; より深いコピーが必要である。
+\fBgethostbyname\fP() ã\81\8aã\82\88ã\81³ \fBgethostbyaddr\fP() é\96¢æ\95°ã\81¯é\9d\99ç\9a\84ã\83\87ã\83¼ã\82¿ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
+ã\81\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ã\80\81ã\81\9dã\81®å¾\8cã\81®å\91¼ã\81³å\87ºã\81\97ã\81§ä¸\8aæ\9b¸ã\81\8dã\81\95ã\82\8cã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82 \fIhostent\fP
+æ§\8bé\80 ä½\93ã\81¯ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å\90«ã\82\93ã\81§ã\81\84ã\82\8bã\81®ã\81§ã\80\81æ§\8bé\80 ä½\93ã\81®ã\82³ã\83\94ã\83¼ã\81 ã\81\91ã\81§ã\81¯ä¸\8då\8d\81å\88\86ã\81§ã\81\82ã\82\8b; ã\82\88ã\82\8aæ·±ã\81\84ã\82³ã\83\94ã\83¼ã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\82\8bã\80\82
.LP
オリジナルの BSD の実装では、 \fBgethostbyname\fP() の \fIlen\fP 引き数は \fIint\fP であった。 SUSv2
-æ¨\99æº\96ã\81¯ã\83\90ã\82°ã\81\8cå¤\9aã\81\8fã\80\81 \fBgethostbyaddr\fP() ã\81® \fIlen\fP ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\82\92 \fIsize_t\fP å\9e\8bã\81¨ã\81\97ã\81¦å®£è¨\80ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 (ã\81\93ã\82\8cã\81¯èª¤ã\82\8aã\81§ã\80\81
-\fIsize_t\fP 型ではなく \fIint\fP 型でなければならない。 POSIX.1\-2001 ではこれを \fIsocklen_t\fP
+æ¨\99æº\96ã\81¯ã\83\90ã\82°ã\81\8cå¤\9aã\81\8fã\80\81 \fBgethostbyaddr\fP() ã\81® \fIlen\fP ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92 \fIsize_t\fP å\9e\8bã\81¨ã\81\97ã\81¦å®£è¨\80ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
+(これは誤りで、 \fIsize_t\fP 型ではなく \fIint\fP 型でなければならない。 POSIX.1\-2001 ではこれを \fIsocklen_t\fP
としているが、これは OK。) \fBaccept\fP(2) も参照。
.LP
\fBgethostbyaddr\fP() の BSD のプロトタイプは、最初の引き数として \fIconst char\ *\fP を使う。
.SS "System V/POSIX 拡張"
.\" e.g., Linux, FreeBSD, UnixWare, HP-UX
.\" e.g., FreeBSD, AIX
-POSIX では、 \fBgethostent\fP() が必須とされている。 この関数はホストデータベースの次のエントリを返す。 DNS/BIND
+POSIX ã\81§ã\81¯ã\80\81 \fBgethostent\fP() ã\81\8cå¿\85é \88ã\81¨ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\81®é\96¢æ\95°ã\81¯ã\83\9bã\82¹ã\83\88ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®æ¬¡ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¿\94ã\81\99ã\80\82 DNS/BIND
を使う場合はあまり意味を持たないが、 ホストデータベースが 1 行ずつ読み込まれるファイルである場合は意味がある。
多くのシステムでは、この名前のルーチンはファイル \fI/etc/hosts\fP を読み込む。 DNS
-サポートなしでライブラリがビルドされた場合にのみ利用可能である。 glibc 版は ipv6 エントリを無視する。 この関数はリエントラント
+ã\82µã\83\9dã\83¼ã\83\88ã\81ªã\81\97ã\81§ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81\8cã\83\93ã\83«ã\83\89ã\81\95ã\82\8cã\81\9få ´å\90\88ã\81«ã\81®ã\81¿å\88©ç\94¨å\8f¯è\83½ã\81§ã\81\82ã\82\8bã\80\82 glibc ç\89\88ã\81¯ ipv6 ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ç\84¡è¦\96ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®é\96¢æ\95°ã\81¯ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88
(reentrant) ではなく、 glibc にはリエントラント版の \fBgethostent_r\fP() が追加された。
.SS "GNU 拡張"
glibc2 には \fBgethostbyname2\fP() もあり、 \fBgethostbyname\fP() と同じように動作するが、
.LP
glibc2 にはリエントラントな \fBgethostent_r\fP(), \fBgethostbyaddr_r\fP(),
\fBgethostbyname_r\fP() と \fBgethostbyname2_r\fP() もある。 呼び出し側は、成功時に結果が格納される
-\fIhostent\fP 構造体 \fIret\fP と、大きさ \fIbuflen\fP の一時的な作業バッファ \fIbuf\fP を提供する。
-コール終了後、成功した場合 \fIresult\fP は結果を指している。 エラーの場合、またはエントリが見つからなかった場合、 \fIresult\fP は
+\fIhostent\fP 構造体 \fIret\fP と、大きさ \fIbuflen\fP の一時的な作業バッファー \fIbuf\fP を提供する。
+ã\82³ã\83¼ã\83«çµ\82äº\86å¾\8cã\80\81æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88 \fIresult\fP ã\81¯çµ\90æ\9e\9cã\82\92æ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81ã\81¾ã\81\9fã\81¯ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\80\81 \fIresult\fP ã\81¯
NULL になる。 これらの関数は、成功した場合 0 を返し、失敗の場合は 0 以外のエラー番号を返す。
これらの関数のリエントラントでないバージョンが返すエラーに加えて、 これらの関数は、 \fIbuf\fP が小さすぎた場合に \fBERANGE\fP
-を返す。この場合はもっと大きなバッファを用意して 関数呼び出しを再度行うべきである。 大域変数 \fIh_errno\fP
+ã\82\92è¿\94ã\81\99ã\80\82ã\81\93ã\81®å ´å\90\88ã\81¯ã\82\82ã\81£ã\81¨å¤§ã\81\8dã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92ç\94¨æ\84\8fã\81\97ã\81¦ é\96¢æ\95°å\91¼ã\81³å\87ºã\81\97ã\82\92å\86\8d度è¡\8cã\81\86ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 大å\9f\9få¤\89æ\95° \fIh_errno\fP
は変更されないが、エラー番号を格納する変数のアドレスが \fIh_errnop\fP に渡される。
.SH バグ
.\" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482973
\fBgethostbyname\fP(3) により返されるローカルマシンの Internet アドレスが代わりに使用され、
普通は識別子をあえて設定する必要はない。
-\fBsethostid\fP() はスーパーユーザしか使用できない。
+\fBsethostid\fP() ã\81¯ã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\83¼ã\81\97ã\81\8b使ç\94¨ã\81§ã\81\8dã\81ªã\81\84ã\80\82
.SH 返り値
\fBgethostid\fP() は、 \fBsethostid\fP() によって設定された、現在使用しているホストの 32 ビットの識別子の値を返す。
.fi
.in
.PP
-\fIifa_next\fP フィールドにはリストの次の構造体へのポインタが格納される。 この要素がリストの最後の場合には NULL が入る。
+\fIifa_next\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ã\81¯ã\83ªã\82¹ã\83\88ã\81®æ¬¡ã\81®æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®è¦\81ç´ ã\81\8cã\83ªã\82¹ã\83\88ã\81®æ\9c\80å¾\8cã\81®å ´å\90\88ã\81«ã\81¯ NULL ã\81\8cå\85¥ã\82\8bã\80\82
.PP
.\" The constant
.\" .B IF NAMESIZE
\fIifa_flags\fP フィールドには、 \fBSIOCGIFFLAGS\fP \fBioctl\fP(2) 操作で返されるインターフェースのフラグが格納される
(これらのフラグのリストについては \fBnetdevice\fP(7) を参照)。
.PP
-\fIifa_addr\fP フィールドは、インターフェースのアドレスを格納した構造体へのポインタである (\fIsa_family\fP
-サブフィールドを参照して、アドレス構造体の形式を判別すべきである)。 このフィールドはヌルポインタとなる場合がある。
+\fIifa_addr\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\80\81ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8b (\fIsa_family\fP
+ã\82µã\83\96ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\80\81ã\82¢ã\83\89ã\83¬ã\82¹æ§\8bé\80 ä½\93ã\81®å½¢å¼\8fã\82\92å\88¤å\88¥ã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8b)ã\80\82 ã\81\93ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\81ªã\82\8bå ´å\90\88ã\81\8cã\81\82ã\82\8bã\80\82
.PP
\fIifa_netmask\fP フィールドには、 ネットマスクがあるアドレスファミリーであれば、 \fIifa_addr\fP
-ã\81«é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83\8dã\83\83ã\83\88ã\83\9eã\82¹ã\82¯ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8cå\85¥ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿となる場合がある。
+ã\81«é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83\8dã\83\83ã\83\88ã\83\9eã\82¹ã\82¯ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cå\85¥ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼となる場合がある。
.PP
\fIifa_flags\fP にビット \fBIFF_BROADCAST\fP か \fBIFF_POINTOPOINT\fP のどちらが設定されているかにより
(同時にはこれらのどちらか一方だけが設定される)、 \fIifa_broadaddr\fP に \fIifa_addr\fP に対応するブロードキャストが入るか
(そのアドレスファミリーでブロードキャストがある場合)、 \fIifa_dstaddr\fP に point\-to\-point
インターフェースの宛先アドレスが入るかが決まる。
.PP
-\fIifa_data\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\80\81 ã\82¢ã\83\89ã\83¬ã\82¹ã\83\95ã\82¡ã\83\9fã\83ªã\83¼å\9bºæ\9c\89ã\81®ã\83\87ã\83¼ã\82¿ã\81\8cå\85¥ã\81£ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿である。
+\fIifa_data\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\80\81 ã\82¢ã\83\89ã\83¬ã\82¹ã\83\95ã\82¡ã\83\9fã\83ªã\83¼å\9bºæ\9c\89ã\81®ã\83\87ã\83¼ã\82¿ã\81\8cå\85¥ã\81£ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼である。
そのインターフェースでこのようなデータがない場合には、 このフィールドは NULL となる。
.PP
\fBgetifaddrs\fP() が返すデータは動的に確保される。 必要なくなった際には \fBfreeifaddrs\fP() を使って解放すべきである。
.\" i.e., commonly it still says one of them will be NULL, even if
.\" the ifa_ifu union is already present
POSIX.1\-2001 にはない。 この関数は BSDi で初めて登場し、 BSD 系のシステムに存在するが、
-ドキュメント上はかなり動作が異なり、アドレス毎ではなくインターフェース毎に 1 エントリを返す。 このことは、
+ã\83\89ã\82ã\83¥ã\83¡ã\83³ã\83\88ä¸\8aã\81¯ã\81\8bã\81ªã\82\8aå\8b\95ä½\9cã\81\8cç\95°ã\81ªã\82\8aã\80\81ã\82¢ã\83\89ã\83¬ã\82¹æ¯\8eã\81§ã\81¯ã\81ªã\81\8fã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹æ¯\8eã\81« 1 ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®ã\81\93ã\81¨ã\81¯ã\80\81
インターフェースがアドレスを持たない場合には \fIifa_addr\fP や他のフィールドは実際に NULL になり、 インターフェースに IP
アドレスが割り当てられている場合には リンクレベルのアドレスは返されない、ということを意味する。 また、 \fIifa_broadaddr\fP と
\fIifa_dstaddr\fP のどちらを選択するかを決める方法は、 システムにより異なる。
インターフェースとその物理層に関する低レベルの詳細が格納される。 この場合、 \fIifa_data\fP フィールドには、
\fI<linux/if_link.h>\fP で定義される \fIstruct rtnl_link_stats\fP (Linux 2.4
以前では \fI<linux/netdevice.h>\fP で定義される \fIstruct net_device_stats\fP)
-へのポインタが格納される。 この構造体には、インターフェースの様々な属性や統計情報が入る。
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81«ã\81¯ã\80\81ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®æ§\98ã\80\85ã\81ªå±\9eæ\80§ã\82\84çµ±è¨\88æ\83\85å ±ã\81\8cå\85¥ã\82\8bã\80\82
.SH 例
以下のプログラムは \fBgetifaddrs\fP(), \fBfreeifaddrs\fP(), \fBgetnameinfo\fP(3) の使用例である。
以下はこのプログラムをあるシステムで実行した際の出力である。
を使うこと。
.LP
\fBgetipnodebyname\fP() と \fBgetipnodebyaddr\fP() は、ネットワークホストの名前とアドレスを返す。
-これらの関数は、以下の構造体へのポインタを返す。
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\80\81以ä¸\8bã\81®æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.sp
.in +4n
.nf
.in
.fi
.PP
-これらの関数は、 IPv4 ネットワークアドレスファミリにしかアクセスできない \fBgethostbyname\fP(3) や
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\80\81 IPv4 ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¢ã\83\89ã\83¬ã\82¹ã\83\95ã\82¡ã\83\9fã\83ªã\83¼ã\81«ã\81\97ã\81\8bã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8dã\81ªã\81\84 \fBgethostbyname\fP(3) ã\82\84
\fBgethostbyaddr\fP(3) を置き換えるものである。 \fBgetipnodebyname\fP() 関数と
\fBgetipnodebyaddr\fP() 関数は複数のネットワークアドレスファミリーにアクセス可能になっている。
.PP
-ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\80\81 \fBgethostby\fP ã\81®é\96¢æ\95°ç¾¤ã\81¨ç\95°ã\81ªã\82\8aã\80\81å\8b\95ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8cã\81\93ã\82\8cã\82\89ã\81® \fIhostent\fP
-構造体を必要としなくなった後は、 \fBfreehostent\fP() 関数を用いれば動的な割り当てメモリを解放できる。
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\80\81 \fBgethostby\fP ã\81®é\96¢æ\95°ç¾¤ã\81¨ç\95°ã\81ªã\82\8aã\80\81å\8b\95ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8cã\81\93ã\82\8cã\82\89ã\81®
+\fIhostent\fP 構造体を必要としなくなった後は、 \fBfreehostent\fP() 関数を用いれば動的な割り当てメモリーを解放できる。
.SS "getipnodebyname() の引き数"
\fBgetipnodebyname\fP() 関数は \fIname\fP 引き数で指定されたホストのネットワークアドレスを引く。 \fIaf\fP
引き数には以下の値のいずれかを指定する。
.TP
\fBAF_INET\fP
-\fIname\fP 引き数は、ドットで 4 つに区切られた IPv4 アドレスか、 IPv4 ネットワークホストの名前へのポインタである。
+\fIname\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\83\89ã\83\83ã\83\88ã\81§ 4 ã\81¤ã\81«å\8cºå\88\87ã\82\89ã\82\8cã\81\9f IPv4 ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8bã\80\81 IPv4 ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\83\9bã\82¹ã\83\88ã\81®å\90\8då\89\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBAF_INET6\fP
-\fIname\fP 引き数は、16 進の IPv6 アドレスか、 IPv6 ネットワークホストの名前へのポインタである。
+\fIname\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\8116 é\80²ã\81® IPv6 ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8bã\80\81 IPv6 ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\83\9bã\82¹ã\83\88ã\81®å\90\8då\89\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.PP
-\fIflags\fP パラメータには追加のオプションを指定する。 複数のフラグを指定するには、それらのビット単位の OR をとって指定すればよい。
+\fIflags\fP ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81«ã\81¯è¿½å\8a ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 è¤\87æ\95°ã\81®ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81«ã\81¯ã\80\81ã\81\9dã\82\8cã\82\89ã\81®ã\83\93ã\83\83ã\83\88å\8d\98ä½\8dã\81® OR ã\82\92ã\81¨ã\81£ã\81¦æ\8c\87å®\9aã\81\99ã\82\8cã\81°ã\82\88ã\81\84ã\80\82
オプションをひとつも指定したくないときには、 \fIflags\fP に 0 を設定する必要がある。
.TP
\fBAI_V4MAPPED\fP
\fBTRY_AGAIN\fP
ネームサーバーから一時的な失敗 (temporary failure) を意味する返事が返された。次にはもうちょっと運が必要かも。
.PP
-問い合わせに成功すると、 \fIhostent\fP 構造体へのポインタが返される。 この構造体は以下のフィールドからなる。
+å\95\8fã\81\84å\90\88ã\82\8fã\81\9bã\81«æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 \fIhostent\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¯ä»¥ä¸\8bã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81\8bã\82\89ã\81ªã\82\8bã\80\82
.TP
\fIh_name\fP
これはこのネットワークホストのオフィシャルな名前である。
.PD
.ad
.SH 説明
-\fBgetline\fP() は \fIstream\fP から 1 行全てを読み込み、テキストが含まれているバッファのアドレスを \fI*lineptr\fP
-ã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\81¯ã\83\8cã\83«æ\96\87å\97 (\e0) ã\81§çµ\82端ã\81\95ã\82\8cã\82\8bã\80\82 æ\94¹è¡\8cæ\96\87å\97ã\81\8cè¦\8bã\81¤ã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ã\80\81æ\94¹è¡\8cæ\96\87å\97ã\82\82ã\83\90ã\83\83ã\83\95ã\82¡に格納される。
+\fBgetline\fP() ã\81¯ \fIstream\fP ã\81\8bã\82\89 1 è¡\8cå\85¨ã\81¦ã\82\92èªã\81¿è¾¼ã\81¿ã\80\81ã\83\86ã\82ã\82¹ã\83\88ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92 \fI*lineptr\fP
+ã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯ã\83\8cã\83«æ\96\87å\97 (\e0) ã\81§çµ\82端ã\81\95ã\82\8cã\82\8bã\80\82 æ\94¹è¡\8cæ\96\87å\97ã\81\8cè¦\8bã\81¤ã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ã\80\81æ\94¹è¡\8cæ\96\87å\97ã\82\82ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼に格納される。
\fI*lineptr\fP が NULL にセットされ、 \fI*n\fP が呼び出し前に 0 にセットされた場合、 \fBgetline\fP()
-ã\81¯è¡\8cã\81®å\86\85容ã\82\92æ ¼ç´\8dã\81\99ã\82\8bã\81\9fã\82\81ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92確ä¿\9dã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡は、 \fBgetline\fP()
+ã\81¯è¡\8cã\81®å\86\85容ã\82\92æ ¼ç´\8dã\81\99ã\82\8bã\81\9fã\82\81ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92確ä¿\9dã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼は、 \fBgetline\fP()
が失敗した場合であっても、ユーザーのプログラムで解放すべきである。
別の方法として、 \fBgetline\fP() を呼び出す際に、 \fI*lineptr\fP に \fBmalloc\fP(3) で確保した大きさ \fI*n\fP
-ã\83\90ã\82¤ã\83\88ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92å\85¥ã\82\8cã\81¦æ¸¡ã\81\99ã\81\93ã\81¨ã\82\82ã\81§ã\81\8dã\82\8bã\80\82 èªã\81¿è¾¼ã\82\93ã\81 è¡\8cã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83\90ã\83\83ã\83\95ã\82¡がない場合、 \fBgetline\fP() は
-\fBrealloc\fP(3) を使ってバッファのサイズを変更し、必要に応じて \fI*lineptr\fP と \fI*n\fP を更新する。
+ã\83\90ã\82¤ã\83\88ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å\85¥ã\82\8cã\81¦æ¸¡ã\81\99ã\81\93ã\81¨ã\82\82ã\81§ã\81\8dã\82\8bã\80\82 èªã\81¿è¾¼ã\82\93ã\81 è¡\8cã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼がない場合、 \fBgetline\fP() は
+\fBrealloc\fP(3) ã\82\92使ã\81£ã\81¦ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82µã\82¤ã\82ºã\82\92å¤\89æ\9b´ã\81\97ã\80\81å¿\85è¦\81ã\81«å¿\9cã\81\98ã\81¦ \fI*lineptr\fP ã\81¨ \fI*n\fP ã\82\92æ\9b´æ\96°ã\81\99ã\82\8bã\80\82
-どちらの場合でも、呼び出しに成功したときには、 \fI*lineptr\fP と \fI*n\fP がバッファのアドレスと割り当てたサイズを反映した値に更新される。
+どちらの場合でも、呼び出しに成功したときには、 \fI*lineptr\fP と \fI*n\fP
+がバッファーのアドレスと割り当てたサイズを反映した値に更新される。
\fBgetdelim\fP() は \fBgetline\fP() と同じように動作するが、改行文字以外の区切り文字を引き数 \fIdelim\fP
に指定することができる。 \fBgetline\fP() と同様に、ファイル終端に達するまでに入力行に区切り文字が見付からない場合は、
-区切り文字をバッファに追加しない。
+å\8cºå\88\87ã\82\8aæ\96\87å\97ã\82\92ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«è¿½å\8a ã\81\97ã\81ªã\81\84ã\80\82
.SH 返り値
成功した場合、 \fBgetline\fP() と \fBgetdelim\fP() は読み込んだ文字数を返す。
文字数には区切り文字は含まれるが、終端に使うヌルバイト (\(aq\e0\(aq) は含まれない。
\fBcuserid\fP(): _XOPEN_SOURCE
.SH 説明
\fBgetlogin\fP() は、現在のプロセスの制御端末にログインしているユーザー名の文字列への
-ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82ã\83¦ã\83¼ã\82¶ã\83¼å\90\8dã\81\8c決å®\9aã\81§ã\81\8dã\81ªã\81\84å ´å\90\88ã\81¯ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 æ\96\87å\97å\88\97ã\81¯é\9d\99ç\9a\84é \98å\9f\9fã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81ã\81\93ã\81®å¾\8cã\81§ã\81\93ã\81®é\96¢æ\95°ã\82\84 \fBcuserid\fP()
-が呼び出された際に上書きされることがある。
+ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82ã\83¦ã\83¼ã\82¶ã\83¼å\90\8dã\81\8c決å®\9aã\81§ã\81\8dã\81ªã\81\84å ´å\90\88ã\81¯ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 æ\96\87å\97å\88\97ã\81¯é\9d\99ç\9a\84é \98å\9f\9fã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81ã\81\93ã\81®å¾\8cã\81§ã\81\93ã\81®é\96¢æ\95°ã\82\84
+\fBcuserid\fP() が呼び出された際に上書きされることがある。
.PP
-\fBgetlogin_r\fP() は、上記の同じユーザ名を、大きさ \fIbufsize\fP の配列 \fIbuf\fP に入れて返す。
+\fBgetlogin_r\fP() は、上記の同じユーザー名を、大きさ \fIbufsize\fP の配列 \fIbuf\fP に入れて返す。
.PP
-\fBcuserid\fP() は、現在のプロセスの実効ユーザーID に対応するユーザー名の 文字列へのポインタを返す。 \fIstring\fP
-がヌルポインタ以外の場合、\fIstring\fP は少なくとも \fBL_cuserid\fP 文字を保持できる配列でなければならない。 \fIstring\fP が
-ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\81®å ´å\90\88ã\81«ã\81¯ã\80\81é\9d\99ç\9a\84é \98å\9f\9fã\81«ç½®ã\81\8bã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81® ã\83\9dã\82¤ã\83³ã\82¿が返される。この文字列は静的領域に割り当てられており、後で この関数や
+\fBcuserid\fP() ã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®å®\9få\8a¹ã\83¦ã\83¼ã\82¶ã\83¼ID ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼å\90\8dã\81® æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 \fIstring\fP
+がヌルポインター以外の場合、\fIstring\fP は少なくとも \fBL_cuserid\fP 文字を保持できる配列でなければならない。 \fIstring\fP が
+ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®å ´å\90\88ã\81«ã\81¯ã\80\81é\9d\99ç\9a\84é \98å\9f\9fã\81«ç½®ã\81\8bã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81® ã\83\9dã\82¤ã\83³ã\82¿ã\83¼が返される。この文字列は静的領域に割り当てられており、後で この関数や
\fBgetlogin\fP() が呼び出された際に上書きされることがある。
.PP
マクロ \fBL_cuserid\fP は integer の定数で、ユーザー名を保持するために 必要な配列の長さを示す。 \fBL_cuserid\fP は
たいていの目的では、ユーザーの特定には環境変数 \fBLOGNAME\fP を調べ るほうが便利である。LOGNAME 変数はユーザーが自由に設定できるので
より柔軟な対応が可能になる。
.SH 返り値
-\fBgetlogin\fP() は成功した場合はユーザ名へのポインタを返す。 失敗した場合は NULL を返し、 \fIerrno\fP
+\fBgetlogin\fP() は成功した場合はユーザー名へのポインターを返す。 失敗した場合は NULL を返し、 \fIerrno\fP
にエラーの原因を示す値を設定する。 \fBgetlogin_r\fP() は成功すると 0 を返し、失敗すると 0 以外を返す。
.SH エラー
POSIX では以下のエラーが規定されている:
呼び出し元プロセスには制御端末がない。
.TP
\fBERANGE\fP
-(getlogin_r) (終端のヌルバイト (\(aq\e0\(aq) も含めた) ユーザ名の長さが \fIbufsize\fP よりも長い。
+(getlogin_r) (終端のヌルバイト (\(aq\e0\(aq) も含めた) ユーザー名の長さが \fIbufsize\fP よりも長い。
.LP
Linux/glibc には以下のエラーもある。
.TP
\fBENOENT\fP
-utmp ファイルに対応するエントリがなかった。
+utmp ã\83\95ã\82¡ã\82¤ã\83«ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBENOMEM\fP
-passwd 構造体を割り当てるのに十分なメモリがない。
+passwd æ§\8bé\80 ä½\93ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOTTY\fP
標準入力が端末を参照していない (「バグ」の節を参照)。
.LP
\fBgetlogin_r\fP() 関数はスレッドセーフである。
.LP
-\fBcuserid\fP() 関数は、例外付きのスレッドセーフである。 パラメータ NULL で呼び出した場合はスレッドセーフではない。
+\fBcuserid\fP() 関数は、例外付きのスレッドセーフである。 パラメーター NULL で呼び出した場合はスレッドセーフではない。
.SH 準拠
\fBgetlogin\fP() と \fBgetlogin_r\fP() は POSIX.1\-2001 で規定されている。
\fBcuserid\fP() 関数は 1988 年版の POSIX には含まれていたが、 1990 年版では削除された。 SUSv2
に存在したが、POSIX.1\-2001 で削除された。
.LP
-OpenBSD には \fBgetlogin\fP() と \fBsetlogin\fP() があり、 セッションに対応したユーザ名がある。制御端末がない
-セッションの場合であっても、対応するユーザ名がある。
+OpenBSD には \fBgetlogin\fP() と \fBsetlogin\fP() があり、 セッションに対応したユーザー名がある。制御端末がない
+セッションの場合であっても、対応するユーザー名がある。
.SH バグ
残念ながら、 \fBgetlogin\fP() をだますのはそれほど難しいことではない。別のプログラムが utmp ファイルを
壊してしまうと、全く動作しないこともある。またログイン名の最初の 8 文字
.TH GETMNTENT 3 2015\-01\-22 "" "Linux Programmer's Manual"
.SH 名前
getmntent, setmntent, addmntent, endmntent, hasmntopt, getmntent_r \-
-ファイルシステム記述ファイルのエントリを取得する
+ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 è¨\98è¿°ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <stdio.h>\fP
\fI/etc/mtab\fP にアクセスするために用いられる。
.PP
\fBsetmntent\fP() 関数は、ファイルシステムの記述ファイル \fIfilename\fP をオープンして、
-ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\9dã\82¤ã\83³ã\82¿は \fBgetmntent\fP() によって用いられる。引き数 \fItype\fP
+ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼は \fBgetmntent\fP() によって用いられる。引き数 \fItype\fP
は要求するアクセス形式で、 \fBfopen\fP(3) の \fImode\fP 引き数と同じ値を取ることができる。
.PP
\fBgetmntent\fP() 関数は \fIstream\fP からファイルシステムの記述ファイルの次の行を読み込み、
-èªã\81¿è¾¼ã\82\93ã\81 è¡\8cã\82\92ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«å\88\86å\89²ã\81\97ã\81\9få\86\85容ã\82\92å\8f\8eã\82\81ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\83\9dã\82¤ã\83³ã\82¿ã\81¯ã\83¡ã\83¢ã\83ªの静的な領域を指しており、この領域は
+èªã\81¿è¾¼ã\82\93ã\81 è¡\8cã\82\92ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«å\88\86å\89²ã\81\97ã\81\9få\86\85容ã\82\92å\8f\8eã\82\81ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ã\83¡ã\83¢ã\83ªã\83¼の静的な領域を指しており、この領域は
\fBgetmntent\fP() を次に呼び出したときに上書きされてしまう。
.PP
\fBaddmntent\fP() 関数は \fImntent\fP 構造体 \fImnt\fP の内容を、オープンされている \fIstream\fP の最後に追加する。
\fIopt\fP に一致する部分文字列があるかを調べる。 有効なマウントオプションについては \fI<mntent.h>\fP と
\fBmount\fP(8) を参照のこと。
.PP
-リエントラントな関数 \fBgetmntent_r\fP() は \fBgetmntent\fP() と同じだが、 ユーザが用意した \fI*mntbuf\fP に
-\fIstruct mount\fP ã\82\92æ ¼ç´\8dã\81\97ã\80\81ã\81\9dã\81®æ§\8bé\80 ä½\93ã\81®å\90\84ã\82¨ã\83³ã\83\88ã\83ªã\81\8cæ\8c\87ã\81\97示ã\81\99æ\96\87å\97å\88\97ã\82\92 ã\83¦ã\83¼ã\82¶が用意した大きさ \fIbuflen\fP の配列 \fIbuf\fP
+ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ã\81ªé\96¢æ\95° \fBgetmntent_r\fP() ã\81¯ \fBgetmntent\fP() ã\81¨å\90\8cã\81\98ã\81 ã\81\8cã\80\81 ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cç\94¨æ\84\8fã\81\97ã\81\9f \fI*mntbuf\fP ã\81«
+\fIstruct mount\fP ã\82\92æ ¼ç´\8dã\81\97ã\80\81ã\81\9dã\81®æ§\8bé\80 ä½\93ã\81®å\90\84ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cæ\8c\87ã\81\97示ã\81\99æ\96\87å\97å\88\97ã\82\92 ã\83¦ã\83¼ã\82¶ã\83¼が用意した大きさ \fIbuflen\fP の配列 \fIbuf\fP
に書き込む。
.PP
\fImntent\fP 構造体は \fI<mntent.h>\fP で以下のように定義されている。
使いたい場合には、8進のエスケープ表記を使って表現する: スペース (\e040), タブ (\e011), 改行 (\e012), バックスラッシュ
(\e134)。 \fBaddmntent\fP() と \fBgetmntent\fP() は、文字列表現から エスケープ表現への変換、およびその逆を行う。
.SH 返り値
-\fBgetmntent\fP() と \fBgetmntent_r\fP() は \fImntent\fP 構造体へのポインタを返す。 失敗した場合は NULL
+\fBgetmntent\fP() ã\81¨ \fBgetmntent_r\fP() ã\81¯ \fImntent\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 失æ\95\97ã\81\97ã\81\9få ´å\90\88ã\81¯ NULL
を返す。
.PP
\fBaddmntent\fP() 関数は成功したら 0 を返し、失敗したら 1 を返す。
はリエントラントであり、IPv4 と IPv6 の差分に依存しないかたちで プログラムを書くことができる。
\fIsa\fP 引き数は、 IP アドレスとポート番号の情報を保持している 汎用的なソケットアドレス構造体 (\fIsockaddr_in\fP 型または
-\fIsockaddr_in6\fP 型) へのポインタである。 \fIsalen\fP は \fIsa\fP のサイズである。 \fIhost\fP と \fIserv\fP
-å¼\95ã\81\8dæ\95°ã\81¯ã\80\81(ã\81\9dã\82\8cã\81\9eã\82\8cã\82µã\82¤ã\82ºã\81\8c \fIhostlen\fP ã\81¨ \fIservlen\fP ã\81®) å\91¼ã\81³å\87ºã\81\97å\81´ã\81§ç¢ºä¿\9dã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿であり、
-ホスト名とサービス名を含むヌル終端された文字列が それぞれのバッファに格納される。
+\fIsockaddr_in6\fP å\9e\8b) ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 \fIsalen\fP ã\81¯ \fIsa\fP ã\81®ã\82µã\82¤ã\82ºã\81§ã\81\82ã\82\8bã\80\82 \fIhost\fP ã\81¨ \fIserv\fP
+å¼\95ã\81\8dæ\95°ã\81¯ã\80\81(ã\81\9dã\82\8cã\81\9eã\82\8cã\82µã\82¤ã\82ºã\81\8c \fIhostlen\fP ã\81¨ \fIservlen\fP ã\81®) å\91¼ã\81³å\87ºã\81\97å\81´ã\81§ç¢ºä¿\9dã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼であり、
+ã\83\9bã\82¹ã\83\88å\90\8dã\81¨ã\82µã\83¼ã\83\93ã\82¹å\90\8dã\82\92å\90«ã\82\80ã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81\8c ã\81\9dã\82\8cã\81\9eã\82\8cã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82
ホスト名が不要であることをこの関数に伝えるには、 \fIhost\fP に NULL を指定するか、 \fIhostlen\fP に 0
を指定する。同様に、サービス名が不要な場合は、 \fIserv\fP に NULL を指定するか、 \fIservlen\fP に 0 を指定する。
.\" #define EAI_INTR -104 /* Interrupted by a signal. */
.\" #define EAI_IDN_ENCODE -105 /* IDN encoding failed. */
.\" #endif
-成功すると 0 が返り、(要求されていれば) ノードとサービスの名前がヌル終端された文字列の形式でそれぞれの指定バッファに返される
-(バッファの長さにあうように縮められるかもしれない)。 エラーの場合は、以下の 0 以外のエラーコードが返される:
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ 0 ã\81\8cè¿\94ã\82\8aã\80\81(è¦\81æ±\82ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8cã\81°) ã\83\8eã\83¼ã\83\89ã\81¨ã\82µã\83¼ã\83\93ã\82¹ã\81®å\90\8då\89\8dã\81\8cã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81®å½¢å¼\8fã\81§ã\81\9dã\82\8cã\81\9eã\82\8cã\81®æ\8c\87å®\9aã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«è¿\94ã\81\95ã\82\8cã\82\8b
+(ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®é\95·ã\81\95ã\81«ã\81\82ã\81\86ã\82\88ã\81\86ã\81«ç¸®ã\82\81ã\82\89ã\82\8cã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84)ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\81¯ã\80\81以ä¸\8bã\81® 0 以å¤\96ã\81®ã\82¨ã\83©ã\83¼ã\82³ã\83¼ã\83\89ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8b:
.TP
\fBEAI_AGAIN\fP
指定された名前が現時点では解決できなかった。 後で再試行してみること。
指定したアドレスファミリーが認識できなかった。 あるいはアドレスの長さが指定されたファミリーに合うものでなかった。
.TP
\fBEAI_MEMORY\fP
-メモリが足りない。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\80\82
.TP
\fBEAI_NONAME\fP
-与えられたパラメータでは名前が解決できない。 \fBNI_NAMEREQD\fP が設定されていたがホスト名が決定できなかったか、
+ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81§ã\81¯å\90\8då\89\8dã\81\8c解決ã\81§ã\81\8dã\81ªã\81\84ã\80\82 \fBNI_NAMEREQD\fP ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81\9fã\81\8cã\83\9bã\82¹ã\83\88å\90\8dã\81\8c決å®\9aã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9fã\81\8bã\80\81
ホスト名もサービス名も要求されなかった。
.TP
\fBEAI_OVERFLOW\fP
-\fIhost\fP または \fIserv\fP が指しているバッファが小さすぎた。
+\fIhost\fP ã\81¾ã\81\9fã\81¯ \fIserv\fP ã\81\8cæ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cå°\8fã\81\95ã\81\99ã\81\8eã\81\9fã\80\82
.TP
\fBEAI_SYSTEM\fP
システムエラーが起った。 エラーコードは \fIerrno\fP に設定される。
.SH 準拠
RFC\ 2553, POSIX.1\-2001.
.SH 注意
-適切なバッファサイズを選択できるように、 \fI<netdb.h>\fP に以下の定数が定義されている。
+é\81©å\88\87ã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\82\92é\81¸æ\8a\9eã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\80\81 \fI<netdb.h>\fP ã\81«ä»¥ä¸\8bã\81®å®\9aæ\95°ã\81\8cå®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
.in +4n
.nf
glibc 2.8 以降では、機能検査マクロ \fB_BSD_SOURCE\fP, \fB_SVID_SOURCE\fP, \fB_GNU_SOURCE\fP
のいずれかが定義された場合にのみ、これらの定義が公開される。
.PP
-前者は、最近のバージョンの BIND のヘッダファイル \fI<arpa/nameser.h>\fP 中の定数 \fBMAXDNAME\fP
+å\89\8dè\80\85ã\81¯ã\80\81æ\9c\80è¿\91ã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81® BIND ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83« \fI<arpa/nameser.h>\fP ä¸ã\81®å®\9aæ\95° \fBMAXDNAME\fP
と同じ値である。 後者は、割り当て済の数値について記した現在の RFC に 列挙されてサービスから推量した値である。
glibc バージョン 2.2 より前では、 引き数 \fIhostlen\fP, \fIservlen\fP の型は \fIsize_t\fP であった。
.TH GETNETENT 3 2008\-08\-19 GNU "Linux Programmer's Manual"
.SH 名前
getnetent, getnetbyname, getnetbyaddr, setnetent, endnetent \-
-ネットワークエントリを取得する
+ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <netdb.h>\fP
\fBvoid endnetent(void);\fP
.fi
.SH 説明
-\fBgetnetent\fP() é\96¢æ\95°ã\81¯ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92èªã\81¿è¾¼ã\81¿ã\80\81 ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªを \fInetent\fP
+\fBgetnetent\fP() é\96¢æ\95°ã\81¯ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92èªã\81¿è¾¼ã\81¿ã\80\81 ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼を \fInetent\fP
構造体の要素別のフィールドに格納し、 その構造体を返す。 必要であれば、データベースへの接続がオープンされる。
.PP
-\fBgetnetbyname\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯å\90\8d \fIname\fP ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\82\92 ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89æ\8e¢ã\81\97ã\80\81ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªを収めた
+\fBgetnetbyname\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯å\90\8d \fIname\fP ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89æ\8e¢ã\81\97ã\80\81ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼を収めた
\fInetent\fP 構造体を返す。
.PP
-\fBgetnetbyaddr\fP() 関数は、\fItype\fP 型のネットワーク番号 \fInet\fP にマッチするエントリを
-データベースから探し、そのエントリを収めた \fInetent\fP 構造体を返す。 \fInet\fP 引き数はホストバイトオーダでなければならない。
+\fBgetnetbyaddr\fP() é\96¢æ\95°ã\81¯ã\80\81\fItype\fP å\9e\8bã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ç\95ªå\8f· \fInet\fP ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92
+ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89æ\8e¢ã\81\97ã\80\81ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\8eã\82\81ã\81\9f \fInetent\fP æ§\8bé\80 ä½\93ã\82\92è¿\94ã\81\99ã\80\82 \fInet\fP å¼\95ã\81\8dæ\95°ã\81¯ã\83\9bã\82¹ã\83\88ã\83\90ã\82¤ã\83\88ã\82ªã\83¼ã\83\80ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.PP
-\fBsetnetent\fP() é\96¢æ\95°ã\81¯ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¸ã\81®æ\8e¥ç¶\9aã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81 次ã\81®èªã\81¿è¾¼ã\81¿ã\82¨ã\83³ã\83\88ã\83ªã\82\92å\85\88é ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 \fIstayopen\fP ã\81\8c
-0 でない場合、 一つ一つの \fBgetnet*\fP() 関数の呼び出し間でデータベースへの接続をクローズしない。
+\fBsetnetent\fP() é\96¢æ\95°ã\81¯ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¸ã\81®æ\8e¥ç¶\9aã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81 次ã\81®èªã\81¿è¾¼ã\81¿ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\85\88é ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 \fIstayopen\fP
+が 0 でない場合、 一つ一つの \fBgetnet*\fP() 関数の呼び出し間でデータベースへの接続をクローズしない。
.PP
\fBendnetent\fP() 関数はデータベースへの接続をクローズする。
.PP
ホストバイトオーダ形式のネットワーク番号。
.SH 返り値
\fBgetnetent\fP(), \fBgetnetbyname\fP(), \fBgetnetbyaddr\fP() 関数は、静的に割り当てられた
-\fInetent\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9fã\82\8aã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ\9c«å°¾ã\81«é\81\94ã\81\97ã\81\9få ´å\90\88ã\81¯ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿を返す。
+\fInetent\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9fã\82\8aã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ\9c«å°¾ã\81«é\81\94ã\81\97ã\81\9få ´å\90\88ã\81¯ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す。
.SH ファイル
.TP
\fI/etc/networks\fP
.\"
.TH GETNETENT_R 3 2010\-09\-10 GNU "Linux Programmer's Manual"
.SH 名前
-getnetent_r, getnetbyname_r, getnetbyaddr_r \- ネットワークエントリを
+getnetent_r, getnetbyname_r, getnetbyaddr_r \- ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92
取得する (リエントラント版)
.SH 書式
.nf
説明する。
これらの関数は、関数の結果として静的に割り当てられた \fInetent\fP 構造体
-へのポインタを返すのではなく、 \fInetent\fP 構造体を \fIresult_buf\fP が
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\81®ã\81§ã\81¯ã\81ªã\81\8fã\80\81 \fInetent\fP æ§\8bé\80 ä½\93ã\82\92 \fIresult_buf\fP ã\81\8c
指す場所にコピーする。
.\" I can find no information on the required/recommended buffer size;
これらの文字列は静的な領域に格納される)。
この配列の大きさは \fIbuflen\fP で指定される。
\fIbuf\fP が小さすぎる場合、関数呼び出しはエラー \fBERANGE\fP で失敗し、
-呼び出し側ではもっと大きなバッファで再度呼び出す必要がある (ほとんどの
-アプリケーションでは、長さ 1024 バイトのバッファで十分なはずである)。
+å\91¼ã\81³å\87ºã\81\97å\81´ã\81§ã\81¯ã\82\82ã\81£ã\81¨å¤§ã\81\8dã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§å\86\8d度å\91¼ã\81³å\87ºã\81\99å¿\85è¦\81ã\81\8cã\81\82ã\82\8b (ã\81»ã\81¨ã\82\93ã\81©ã\81®
+ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81§ã\81¯ã\80\81é\95·ã\81\95 1024 ã\83\90ã\82¤ã\83\88ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§å\8d\81å\88\86ã\81ªã\81¯ã\81\9aã\81§ã\81\82ã\82\8b)ã\80\82
関数呼び出しでネットワークレコードの取得に成功すると、
\fI*result\fP は \fIresult_buf\fP を指すように設定される。
.\" getnetent.3 doesn't document any use of h_errno, but nevertheless
.\" the nonreentrant functions no seem to set h_errno.
-\fIh_errnop\fP が指すバッファは、リエントラントでない関数では
+\fIh_errnop\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯ã\80\81ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ã\81§ã\81ªã\81\84é\96¢æ\95°ã\81§ã\81¯
グローバル変数 \fIh_errno\fP に格納されていた値を返すのに使用される。
.SH 返り値
成功すると、これらの関数は 0 を返す。エラーの場合、「エラー」の節の
(\fBgetnetent_r\fP()) データベースにこれ以上レコードがない。
.TP
\fBERANGE\fP
-\fIbuf\fP が小さすぎる。もっと大きなバッファにして
+\fIbuf\fP ã\81\8cå°\8fã\81\95ã\81\99ã\81\8eã\82\8bã\80\82ã\82\82ã\81£ã\81¨å¤§ã\81\8dã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81\97ã\81¦
(または \fIbuflen\fP を増やして) 再度呼び出すこと。
.SH 準拠
これらの関数は GNU による拡張である。
.PP
\fIoptstring\fP は受け付けるオプション文字からなる文字列である。 文字のあとにコロン (:) が置かれている場合は、
オプションには引き数が必要であることを示す。 このとき \fBgetopt\fP() は、現在注目している \fIargv\fP
-è¦\81ç´ ã\81§ã\80\81ã\82ªã\83\97ã\82·ã\83§ã\83³æ\96\87å\97ã\81«å¼\95ã\81\8dç¶\9aã\81\8fã\83\86ã\82ã\82¹ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8bã\80\81 ã\81\82ã\82\8bã\81\84ã\81¯æ¬¡ã\81® \fIargv\fP è¦\81ç´ ã\81®ã\83\86ã\82ã\82¹ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92 \fIoptarg\fP ã\81«ä»£å\85¥ã\81\99ã\82\8bã\80\82
-2 個連続してコロンが置かれている場合は、 そのオプションは引き数をとってもとらなくてもよい。 現在の \fIargv\fP 要素にテキストがあれば
-(つまり、"\-oarg" のように、オプション名自身と同じワード内に テキストがある場合)、それが \fIoptarg\fP に返される。 なければ
-\fIoptarg\fP は 0 に設定される。 これは GNU による拡張である。 \fIoptstring\fP に \fBW\fP
+è¦\81ç´ ã\81§ã\80\81ã\82ªã\83\97ã\82·ã\83§ã\83³æ\96\87å\97ã\81«å¼\95ã\81\8dç¶\9aã\81\8fã\83\86ã\82ã\82¹ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8bã\80\81 ã\81\82ã\82\8bã\81\84ã\81¯æ¬¡ã\81® \fIargv\fP è¦\81ç´ ã\81®ã\83\86ã\82ã\82¹ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92 \fIoptarg\fP
+に代入する。 2 個連続してコロンが置かれている場合は、 そのオプションは引き数をとってもとらなくてもよい。 現在の \fIargv\fP
+要素にテキストがあれば (つまり、"\-oarg" のように、オプション名自身と同じワード内に テキストがある場合)、それが \fIoptarg\fP
+に返される。 なければ \fIoptarg\fP は 0 に設定される。 これは GNU による拡張である。 \fIoptstring\fP に \fBW\fP
とそれに続くセミコロンが入っていると、 \fB\-W foo\fP は長いオプション \fB\-\-foo\fP と同じように扱われる (POSIX.2 は \fB\-W\fP
オプションを実装依存の拡張として予約している)。 この動作は GNU による拡張であり、glibc 2 以前のライブラリでは 利用できない。
.PP
あるいは定義されたオプションに正確にマッチするものでも (当然) かまわない。 長いオプションは引き数を取ることができ、 \fB\-\-arg=param\fP
または \fB\-\-arg param\fP と言う形式で指定する。
.PP
-\fIlongopts\fP は \fIstruct option\fP の要素からなる配列の、先頭要素へのポインタである。 \fIstruct option\fP は
+\fIlongopts\fP ã\81¯ \fIstruct option\fP ã\81®è¦\81ç´ ã\81\8bã\82\89ã\81ªã\82\8bé\85\8då\88\97ã\81®ã\80\81å\85\88é è¦\81ç´ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 \fIstruct option\fP ã\81¯
\fI<getopt.h>\fP で以下のように定義されている。
.in +4n
.nf
配列の最後の要素は、全て 0 で埋められていなければならない。
.PP
\fIlongindex\fP は、NULL でなければ、 長いオプションのインデックスを \fIlongopts\fP
-からの相対位置として保持している変数へのポインタとなる。
+ã\81\8bã\82\89ã\81®ç\9b¸å¯¾ä½\8dç½®ã\81¨ã\81\97ã\81¦ä¿\9dæ\8c\81ã\81\97ã\81¦ã\81\84ã\82\8bå¤\89æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\81ªã\82\8bã\80\82
.PP
\fBgetopt_long_only\fP() は \fBgetopt_long\fP() と同様の動作をするが、 \(aq\-\(aq も "\-\-"
と同様に、 長いオプションとして扱われる。\(aq\-\(aq で始まる ("\-\-" 以外の) オプションが、長いものにはマッチしないが短いものに
.TH GETPROTOENT 3 2008\-08\-19 GNU "Linux Programmer's Manual"
.SH 名前
getprotoent, getprotobyname, getprotobynumber, setprotoent, endprotoent \-
-プロトコルのエントリを取得する
+ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <netdb.h>\fP
\fBvoid endprotoent(void);\fP
.fi
.SH 説明
-\fBgetprotoent\fP() 関数は、プロトコルのデータベース (\fBprotocols\fP(5) 参照) から次のエントリを読み込み、
-そのエントリを \fIprotoent\fP 構造体の要素別のフィールドに格納し、 その構造体を返す。 必要であれば、データベースへの接続がオープンされる。
+\fBgetprotoent\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81®ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ (\fBprotocols\fP(5) å\8f\82ç\85§) ã\81\8bã\82\89次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92èªã\81¿è¾¼ã\81¿ã\80\81
+ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 \fIprotoent\fP æ§\8bé\80 ä½\93ã\81®è¦\81ç´ å\88¥ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«æ ¼ç´\8dã\81\97ã\80\81 ã\81\9dã\81®æ§\8bé\80 ä½\93ã\82\92è¿\94ã\81\99ã\80\82 å¿\85è¦\81ã\81§ã\81\82ã\82\8cã\81°ã\80\81ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¸ã\81®æ\8e¥ç¶\9aã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\82\8bã\80\82
.PP
-\fBgetprotobyname\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\97ã\83ã\83\88ã\82³ã\83«å\90\8d \fIname\fP ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\82\92 ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89æ\8e¢ã\81\97ã\80\81ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªを収めた
+\fBgetprotobyname\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\97ã\83ã\83\88ã\82³ã\83«å\90\8d \fIname\fP ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89æ\8e¢ã\81\97ã\80\81ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼を収めた
\fIprotoent\fP 構造体を返す。 必要であれば、データベースへの接続がオープンされる。
.PP
-\fBgetprotobynumber\fP() 関数は、プロトコル番号 \fInumber\fP にマッチするエントリを
-データベースから探し、そのエントリを収めた \fIprotoent\fP 構造体を返す。 必要であれば、データベースへの接続がオープンされる。
+\fBgetprotobynumber\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\97ã\83ã\83\88ã\82³ã\83«ç\95ªå\8f· \fInumber\fP ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92
+ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89æ\8e¢ã\81\97ã\80\81ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\8eã\82\81ã\81\9f \fIprotoent\fP æ§\8bé\80 ä½\93ã\82\92è¿\94ã\81\99ã\80\82 å¿\85è¦\81ã\81§ã\81\82ã\82\8cã\81°ã\80\81ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¸ã\81®æ\8e¥ç¶\9aã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\82\8bã\80\82
.PP
-\fBsetprotoent\fP() é\96¢æ\95°ã\81¯ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¸ã\81®æ\8e¥ç¶\9aã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81 次ã\81®èªã\81¿è¾¼ã\81¿ã\82¨ã\83³ã\83\88ã\83ªã\82\92å\85\88é ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 \fIstayopen\fP
-が 0 でない場合、 一つ一つの \fBgetproto*\fP() 関数の呼び出し間でデータベースへの接続をクローズしない。
+\fBsetprotoent\fP() é\96¢æ\95°ã\81¯ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¸ã\81®æ\8e¥ç¶\9aã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81 次ã\81®èªã\81¿è¾¼ã\81¿ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\85\88é ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82
+\fIstayopen\fP が 0 でない場合、 一つ一つの \fBgetproto*\fP() 関数の呼び出し間でデータベースへの接続をクローズしない。
.PP
\fBendprotoent\fP() 関数はデータベースへの接続をクローズする。
.PP
プロトコルの番号
.SH 返り値
\fBgetprotoent\fP(), \fBgetprotobyname\fP(), \fBgetprotobynumber\fP() 関数は、静的に割り当てられた
-\fIprotoent\fP 構造体へのポインタを返す。 エラーが起こったり、ファイルの最後に達した場合は NULL を返す。
+\fIprotoent\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9fã\82\8aã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ\9c\80å¾\8cã\81«é\81\94ã\81\97ã\81\9få ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82
.SH ファイル
.PD 0
.TP
.TH GETPROTOENT_R 3 2010\-09\-10 GNU "Linux Programmer's Manual"
.SH 名前
getprotoent_r, getprotobyname_r, getprotobynumber_r \- プロトコル
-エントリを取得する (リエントラント版)
+ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b (ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ç\89\88)
.SH 書式
.nf
\fB#include <netdb.h>\fP
説明する。
これらの関数は、関数の結果として静的に割り当てられた \fIprotoent\fP 構造体
-へのポインタを返すのではなく、 \fIprotoent\fP 構造体を \fIresult_buf\fP が
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\81®ã\81§ã\81¯ã\81ªã\81\8fã\80\81 \fIprotoent\fP æ§\8bé\80 ä½\93ã\82\92 \fIresult_buf\fP ã\81\8c
指す場所にコピーする。
.\" I can find no information on the required/recommended buffer size;
これらの文字列は静的な領域に格納される)。
この配列の大きさは \fIbuflen\fP で指定される。
\fIbuf\fP が小さすぎる場合、関数呼び出しはエラー \fBERANGE\fP で失敗し、
-呼び出し側ではもっと大きなバッファで再度呼び出す必要がある (ほとんどの
-アプリケーションでは、長さ 1024 バイトのバッファで十分なはずである)。
+å\91¼ã\81³å\87ºã\81\97å\81´ã\81§ã\81¯ã\82\82ã\81£ã\81¨å¤§ã\81\8dã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§å\86\8d度å\91¼ã\81³å\87ºã\81\99å¿\85è¦\81ã\81\8cã\81\82ã\82\8b (ã\81»ã\81¨ã\82\93ã\81©ã\81®
+ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81§ã\81¯ã\80\81é\95·ã\81\95 1024 ã\83\90ã\82¤ã\83\88ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§å\8d\81å\88\86ã\81ªã\81¯ã\81\9aã\81§ã\81\82ã\82\8b)ã\80\82
関数呼び出しでプロトコルレコードの取得に成功すると、
\fI*result\fP は \fIresult_buf\fP を指すように設定される。
(\fBgetprotoent_r\fP()) データベースにこれ以上レコードがない。
.TP
\fBERANGE\fP
-\fIbuf\fP が小さすぎる。もっと大きなバッファにして
+\fIbuf\fP ã\81\8cå°\8fã\81\95ã\81\99ã\81\8eã\82\8bã\80\82ã\82\82ã\81£ã\81¨å¤§ã\81\8dã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81\97ã\81¦
(または \fIbuflen\fP を増やして) 再度呼び出すこと。
.SH 準拠
これらの関数は GNU による拡張である。
二番目のコマンドライン引き数 (整数値) が指定された場合は、
その値が \fIbuflen\fP の初期値として使用される。
\fBgetprotobyname_r\fP() がエラー \fBERANGE\fP で失敗すると、プログラムは
-より大きなバッファサイズで再度 \fBgetprotobyname_r\fP を呼び出す。
+ã\82\88ã\82\8a大ã\81\8dã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\81§å\86\8d度 \fBgetprotobyname_r\fP ã\82\92å\91¼ã\81³å\87ºã\81\99ã\80\82
下記のシェルのセッションは、実行例を示している。
.in +4n
.nf
\fBint getpt(void);\fP
.fi
.SH 説明
-\fBgetpt\fP() ã\81¯ã\80\81æ\93¬ä¼¼ç«¯æ\9c«ã\83\9eã\82¹ã\82¿ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を返す。 これは、 Linux システムにおいては
+\fBgetpt\fP() ã\81¯ã\80\81æ\93¬ä¼¼ç«¯æ\9c«ã\83\9eã\82¹ã\82¿ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を返す。 これは、 Linux システムにおいては
.nf
open(/dev/ptmx, O_RDWR | O_NOCTTY);
.fi
と等価である。但し、 GNU Libc を使用していても、 擬似端末マスタがどこか他の場所にあるシステムもある。
.SH 返り値
-成功した場合、 \fBgetpt\fP() はオープンしたファイルのディスクリプタを返す。 そうでない場合、\-1 を返し、 \fIerrno\fP
+æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 \fBgetpt\fP() ã\81¯ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\9dã\81\86ã\81§ã\81ªã\81\84å ´å\90\88ã\80\81\-1 ã\82\92è¿\94ã\81\97ã\80\81 \fIerrno\fP
にエラーを示す値がセットされる。
.SH エラー
\fBgetpt\fP() は \fBopen\fP(2) で説明されている種々のエラーで失敗する可能性がある。
.\"
.TH GETPW 3 2015\-01\-22 GNU "Linux Programmer's Manual"
.SH 名前
-getpw \- パスワード行エントリを取得する
+getpw \- ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89è¡\8cã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
.nf
\fB#define _GNU_SOURCE\fP /* feature_test_macros(7) 参照 */
\fBint getpw(uid_t \fP\fIuid\fP\fB, char *\fP\fIbuf\fP\fB);\fP
.fi
.SH 説明
-\fBgetpw\fP() 関数は、バッファ \fIbuf\fP に指定ユーザ ID \fIuid\fP の パスワード行エントリを取得する。
-返されるバッファは、以下の形式の行を含む。
+\fBgetpw\fP() 関数は、バッファー \fIbuf\fP に指定ユーザー ID \fIuid\fP の パスワード行エントリーを取得する。
+è¿\94ã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯ã\80\81以ä¸\8bã\81®å½¢å¼\8fã\81®è¡\8cã\82\92å\90«ã\82\80ã\80\82
.sp
.RS
\fBname:passwd:uid:gid:gecos:dir:shell\fP
.in +4n
.nf
struct passwd {
- char *pw_name; /* ユーザ名 */
- char *pw_passwd; /* ユーザのパスワード */
- uid_t pw_uid; /* ユーザ ID */
+ char *pw_name; /* ユーザー名 */
+ char *pw_passwd; /* ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89 */
+ uid_t pw_uid; /* ユーザー ID */
gid_t pw_gid; /* グループ ID */
- char *pw_gecos; /* ユーザ情報 */
+ char *pw_gecos; /* ユーザー情報 */
char *pw_dir; /* ホームディレクトリ */
char *pw_shell; /* シェルプログラム */
};
.SH エラー
.TP
\fB0\fP または \fBENOENT\fP
-\fIuid\fP に対応するユーザがいない。
+\fIuid\fP ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\81\84ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fIbuf\fP が NULL。
.TP
\fBENOMEM\fP
-\fIpasswd\fP 構造体に割り当てるメモリが十分なかった。
+\fIpasswd\fP æ§\8bé\80 ä½\93ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå\8d\81å\88\86ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.SH ファイル
.TP
\fI/etc/passwd\fP
.SH 準拠
SVr2
.SH バグ
-\fBgetpw\fP() 関数は、与えられたバッファ \fIbuf\fP がオーバーフローするかもしれないので危険である。 この関数は
+\fBgetpw\fP() 関数は、与えられたバッファー \fIbuf\fP がオーバーフローするかもしれないので危険である。 この関数は
\fBgetpwuid\fP(3) によって古いものとなった。
.SH 関連項目
\fBendpwent\fP(3), \fBfgetpwent\fP(3), \fBgetpwent\fP(3), \fBgetpwnam\fP(3),
.\"
.TH GETPWENT 3 2013\-06\-21 GNU "Linux Programmer's Manual"
.SH 名前
-getpwent, setpwent, endpwent \- パスワードファイルのエントリの取得
+getpwent, setpwent, endpwent \- ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å\8f\96å¾\97
.SH 書式
.nf
\fB#include <sys/types.h>\fP
.RE
.ad b
.SH 説明
-\fBgetpwent\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89å\8f\96å¾\97ã\81\97ã\81\9fã\82¨ã\83³ã\83\88ã\83ªã\82\92 è¦\81ç´ æ¯\8eã\81«å\88\86解ã\81\97ã\80\81å\90\84è¦\81ç´ ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す
-(ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ä¾\8b: ã\83ã\83¼ã\82«ã\83«ã\81®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\95ã\82¡ã\82¤ã\83« \fI/etc/passwd\fP, NIS, LDAP)ã\80\82 \fBgetpwent\fP()
-ã\81¯ã\80\81æ\9c\80å\88\9dã\81«å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9fæ\99\82ã\81¯æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92è¿\94ã\81\97ã\80\81ã\81\9dã\82\8c以é\99\8dã\81¯ å\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bæ¯\8eã\81«æ¬¡ã\81®ã\82¨ã\83³ã\83\88ã\83ªを返す。
+\fBgetpwent\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89å\8f\96å¾\97ã\81\97ã\81\9fã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 è¦\81ç´ æ¯\8eã\81«å\88\86解ã\81\97ã\80\81å\90\84è¦\81ç´ ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す
+(パスワードデータベースの例: ローカルのパスワードファイル \fI/etc/passwd\fP, NIS, LDAP)。 \fBgetpwent\fP()
+ã\81¯ã\80\81æ\9c\80å\88\9dã\81«å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9fæ\99\82ã\81¯æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¿\94ã\81\97ã\80\81ã\81\9dã\82\8c以é\99\8dã\81¯ å\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bæ¯\8eã\81«æ¬¡ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼を返す。
.PP
-\fBsetpwent\fP() é\96¢æ\95°ã\82\92使ã\81\86ã\81¨ã\80\81ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®å\85\88é ã\81«æ\88»ã\82\8bã\80\82
+\fBsetpwent\fP() 関数を使うと、パスワードデータベースの先頭に戻る。
.PP
-\fBendpwent\fP() 関数は、全ての処理が終わった後にパスワード・ データベースをクローズする。
+\fBendpwent\fP() 関数は、全ての処理が終わった後にパスワード データベースをクローズする。
.PP
\fIpasswd\fP 構造体は、\fI<pwd.h>\fP で以下のように定義されている:
.sp
.in +4n
.nf
struct passwd {
- char *pw_name; /* ユーザ名 */
- char *pw_passwd; /* ユーザのパスワード */
- uid_t pw_uid; /* ユーザ ID */
+ char *pw_name; /* ユーザー名 */
+ char *pw_passwd; /* ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89 */
+ uid_t pw_uid; /* ユーザー ID */
gid_t pw_gid; /* グループ ID */
- char *pw_gecos; /* ユーザ情報 */
+ char *pw_gecos; /* ユーザー情報 */
char *pw_dir; /* ホームディレクトリ */
char *pw_shell; /* シェルプログラム */
};
.PP
この構造体のフィールドの詳細は \fBpasswd\fP(5) を参照のこと。
.SH 返り値
-\fBgetpwent\fP() é\96¢æ\95°ã\81¯ \fIpasswd\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\82\8c以ä¸\8aã\82¨ã\83³ã\83\88ã\83ªが無いか、エラーが発生した場合は NULL
+\fBgetpwent\fP() é\96¢æ\95°ã\81¯ \fIpasswd\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\82\8c以ä¸\8aã\82¨ã\83³ã\83\88ã\83ªã\83¼が無いか、エラーが発生した場合は NULL
を返す。 エラーが発生すると、 \fIerrno\fP が適切に設定される。 この関数の呼び出し後に \fIerrno\fP をチェックしたい場合は、呼び出し前に
\fIerrno\fP を 0 に設定しておかないといけない。
返り値は静的な領域を指しており、その後の \fBgetpwent\fP(), \fBgetpwnam\fP(3), \fBgetpwuid\fP(3)
-の呼び出しで上書きされるかもしれない。 (返されたポインタを \fBfree\fP(3) に渡さないこと。)
+ã\81®å\91¼ã\81³å\87ºã\81\97ã\81§ä¸\8aæ\9b¸ã\81\8dã\81\95ã\82\8cã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82 (è¿\94ã\81\95ã\82\8cã\81\9fã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92 \fBfree\fP(3) ã\81«æ¸¡ã\81\95ã\81ªã\81\84ã\81\93ã\81¨ã\80\82)
.SH エラー
.TP
\fBEINTR\fP
\fBENOMEM\fP
.\" not in POSIX
.\" to allocate the passwd structure, or to allocate buffers
-\fIpasswd\fP 構造体に割り当てるメモリが十分なかった。
+\fIpasswd\fP æ§\8bé\80 ä½\93ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå\8d\81å\88\86ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBERANGE\fP
-与えられたバッファ空間が不十分である。
+与えられたバッファー空間が不十分である。
.SH ファイル
.TP
\fI/etc/passwd\fP
-ã\83ã\83¼ã\82«ã\83«ã\81®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\83\95ã\82¡ã\82¤ã\83«
+ローカルのパスワードデータベースファイル
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBgetpwent\fP() 関数はスレッドセーフではない。
.\"
.TH GETPWENT_R 3 2015\-01\-22 GNU "Linux Programmer's Manual"
.SH 名前
-getpwent_r, fgetpwent_r \- パスワードファイルのエントリを リエントラントで取り出す
+getpwent_r, fgetpwent_r \- ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ã\81§å\8f\96ã\82\8aå\87ºã\81\99
.SH 書式
.nf
\fB#include <pwd.h>\fP
.SH 説明
関数 \fBgetpwent_r\fP() と \fBfgetpwent_r\fP() は \fBgetpwent\fP(3) と \fBfgetpwent\fP(3)
のリエントラント (reentrant) 版である。 前者は、 \fBsetpwent\fP(3)
-ã\81«ã\82\88ã\81£ã\81¦å\88\9dæ\9c\9få\8c\96ã\81\95ã\82\8cã\81\9fã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81\8bã\82\89ã\80\81次ã\81®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82¨ã\83³ã\83\88ã\83ªã\82\92èªã\81¿è¾¼ã\82\80ã\80\82 å¾\8cè\80\85ã\81¯ã\80\81 \fIstream\fP ã\81\8bã\82\89次ã\81®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82¨ã\83³ã\83\88ã\83ªを読み込む。
+ã\81«ã\82\88ã\81£ã\81¦å\88\9dæ\9c\9få\8c\96ã\81\95ã\82\8cã\81\9fã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81\8bã\82\89ã\80\81次ã\81®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92èªã\81¿è¾¼ã\82\80ã\80\82 å¾\8cè\80\85ã\81¯ã\80\81 \fIstream\fP ã\81\8bã\82\89次ã\81®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82¨ã\83³ã\83\88ã\83ªã\83¼を読み込む。
.PP
\fIpasswd\fP 構造体は、\fI<pwd.h>\fP で以下のように定義されている:
.sp
.in +4n
.nf
struct passwd {
- char *pw_name; /* ユーザ名 */
- char *pw_passwd; /* ユーザのパスワード */
- uid_t pw_uid; /* ユーザ ID */
+ char *pw_name; /* ユーザー名 */
+ char *pw_passwd; /* ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89 */
+ uid_t pw_uid; /* ユーザー ID */
gid_t pw_gid; /* グループ ID */
- char *pw_gecos; /* ユーザ情報 */
+ char *pw_gecos; /* ユーザー情報 */
char *pw_dir; /* ホームディレクトリ */
char *pw_shell; /* シェルプログラム */
};
.PP
この構造体のフィールドの詳細は \fBpasswd\fP(5) を参照のこと。
-ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ã\81§ã\81ªã\81\84é\96¢æ\95°ã\81¯é\9d\99ç\9a\84ã\81ªæ ¼ç´\8dé \98å\9f\9fã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®é\9d\99ç\9a\84ã\81ªæ ¼ç´\8dé \98å\9f\9fã\81«ã\81¯ã\80\81æ\9b´ã\81«ã\83¦ã\83¼ã\82¶名・パスワード・gecos フィールド・
-ホームディレクトリ・シェルへのポインタが含まれる。 ここで説明されているリエントラント版の関数は、
-å\91¼ã\81³å\87ºã\81\97å\81´ã\81\8bã\82\89æ\8f\90ä¾\9bã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\81«ã\83¦ã\83¼ã\82¶å\90\8dã\81ªã\81©å\85¨ã\81¦ã\82\92è¿\94ã\81\99ã\80\82 æ\9c\80å\88\9dã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦ \fIstruct passwd\fP ã\82\92ä¿\9dæ\8c\81ã\81§ã\81\8dã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ \fIpwbuf\fP
-がある。 次にその他の文字列を保持できるサイズ \fIbuflen\fP のバッファ \fIbuf\fP がある。 これらの関数の結果 (ストリームから読み込まれた
-\fIstruct passwd\fP) は、 提供されたバッファ \fI*pwbuf\fP に格納され、この \fIstruct passwd\fP へのポインタは
-\fI*pwbufp\fP に返される。
+ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ã\81§ã\81ªã\81\84é\96¢æ\95°ã\81¯é\9d\99ç\9a\84ã\81ªæ ¼ç´\8dé \98å\9f\9fã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®é\9d\99ç\9a\84ã\81ªæ ¼ç´\8dé \98å\9f\9fã\81«ã\81¯ã\80\81æ\9b´ã\81«ã\83¦ã\83¼ã\82¶ã\83¼名・パスワード・gecos フィールド・
+ã\83\9bã\83¼ã\83 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\82·ã\82§ã\83«ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cå\90«ã\81¾ã\82\8cã\82\8bã\80\82 ã\81\93ã\81\93ã\81§èª¬æ\98\8eã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ç\89\88ã\81®é\96¢æ\95°ã\81¯ã\80\81
+å\91¼ã\81³å\87ºã\81\97å\81´ã\81\8bã\82\89æ\8f\90ä¾\9bã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\83¦ã\83¼ã\82¶ã\83¼å\90\8dã\81ªã\81©å\85¨ã\81¦ã\82\92è¿\94ã\81\99ã\80\82 æ\9c\80å\88\9dã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦ \fIstruct passwd\fP ã\82\92ä¿\9dæ\8c\81ã\81§ã\81\8dã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼
+\fIpwbuf\fP がある。 次にその他の文字列を保持できるサイズ \fIbuflen\fP のバッファー \fIbuf\fP がある。 これらの関数の結果
+(ストリームから読み込まれた \fIstruct passwd\fP) は、 提供されたバッファー \fI*pwbuf\fP に格納され、この \fIstruct
+passwd\fP へのポインターは \fI*pwbufp\fP に返される。
.SH 返り値
-成功した場合、これらの関数は 0 を返し、 \fI*pwbufp\fP は \fIstruct passwd\fP へのポインタとなる。
+æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ 0 ã\82\92è¿\94ã\81\97ã\80\81 \fI*pwbufp\fP ã\81¯ \fIstruct passwd\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\81ªã\82\8bã\80\82
エラーの場合、これらの関数はエラー値を返し、 \fI*pwbufp\fP は NULL になる。
.SH エラー
.TP
\fBENOENT\fP
-次のエントリがない。
+次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBERANGE\fP
-十分なバッファ空間が与えられていない。 もっと大きなバッファで再度実行すること。
+十分なバッファー空間が与えられていない。 もっと大きなバッファーで再度実行すること。
.SH 準拠
これらの関数は GNU 拡張であり、POSIX 版の関数 \fBgetpwnam_r\fP(3) の形式に似せてある。
他のシステムでは以下のプロトタイプが使われている。
.\"
.TH GETPWNAM 3 2013\-07\-22 GNU "Linux Programmer's Manual"
.SH 名前
-getpwnam, getpwnam_r, getpwuid, getpwuid_r \- パスワードファイルのエントリの取得
+getpwnam, getpwnam_r, getpwuid, getpwuid_r \- ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å\8f\96å¾\97
.SH 書式
.nf
\fB#include <sys/types.h>\fP
.RE
.ad b
.SH 説明
-\fBgetpwnam\fP() 関数は、ユーザ名 \fIname\fP にマッチするパスワード・データベースのエントリを
-è¦\81ç´ æ¯\8eã\81«å\88\86解ã\81\97ã\80\81å\90\84è¦\81ç´ ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99 (ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»データベースの例: ローカルのパスワードファイル \fI/etc/passwd\fP,
+\fBgetpwnam\fP() 関数は、ユーザー名 \fIname\fP にマッチするパスワードデータベースのエントリーを
+è¦\81ç´ æ¯\8eã\81«å\88\86解ã\81\97ã\80\81å\90\84è¦\81ç´ ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99 (ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89データベースの例: ローカルのパスワードファイル \fI/etc/passwd\fP,
NIS, LDAP)。
.PP
-\fBgetpwuid\fP() 関数は、ユーザ ID \fIuid\fP にマッチするパスワード・データベースのエントリを
-要素毎に分解し、各要素を格納した構造体へのポインタを返す。
+\fBgetpwuid\fP() 関数は、ユーザー ID \fIuid\fP にマッチするパスワードデータベースのエントリーを
+è¦\81ç´ æ¯\8eã\81«å\88\86解ã\81\97ã\80\81å\90\84è¦\81ç´ ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.PP
\fIpasswd\fP 構造体は、\fI<pwd.h>\fP で以下のように定義されている:
.sp
.in +4n
.nf
struct passwd {
- char *pw_name; /* ユーザ名 */
- char *pw_passwd; /* ユーザのパスワード */
- uid_t pw_uid; /* ユーザ ID */
+ char *pw_name; /* ユーザー名 */
+ char *pw_passwd; /* ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89 */
+ uid_t pw_uid; /* ユーザー ID */
gid_t pw_gid; /* グループ ID */
- char *pw_gecos; /* ユーザ情報 */
+ char *pw_gecos; /* ユーザー情報 */
char *pw_dir; /* ホームディレクトリ */
char *pw_shell; /* シェルプログラム */
};
\fBgetpwnam_r\fP() と \fBgetpwuid_r\fP() 関数は、それぞれ\fBgetpwnam\fP() と
\fBgetpwuid\fP() と同じ情報を取得するが、取得した \fIpasswd\fP 構造体を
\fIpwd\fP が指す領域に格納する。\fIpasswd\fP 構造体のメンバーが指す文字列は、
-サイズ \fIbuflen\fP のバッファ \fIbuf\fP に格納される。成功した場合
-\fI*result\fP ã\81«ã\81¯çµ\90æ\9e\9cã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82ã\82¨ã\83³ã\83\88ã\83ªが見つからなかった
+サイズ \fIbuflen\fP のバッファー \fIbuf\fP に格納される。成功した場合
+\fI*result\fP ã\81«ã\81¯çµ\90æ\9e\9cã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82ã\82¨ã\83³ã\83\88ã\83ªã\83¼が見つからなかった
場合やエラーが発生した場合には \fI*result\fP には NULL が入る。
.PP
呼び出し
は、 \fIerrno\fP を変更せずに \-1 を返すか、 \fIbuf\fP の初期サイズの推奨値を
返す。(このサイズが小さすぎる場合、呼び出しは \fBERANGE\fP で失敗し、この
-場合には呼び出し側はバッファを大きくしてから再度呼び出すことができる。)
+å ´å\90\88ã\81«ã\81¯å\91¼ã\81³å\87ºã\81\97å\81´ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92大ã\81\8dã\81\8fã\81\97ã\81¦ã\81\8bã\82\89å\86\8d度å\91¼ã\81³å\87ºã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82)
.SH 返り値
-\fBgetpwnam\fP() と \fBgetpwuid\fP() 関数は、 \fIpasswd\fP 構造体へのポインタを返す。
-一致するエントリが見つからなかった場合や、エラーが発生した場合は NULL を返す。 エラーが起こった場合、 \fIerrno\fP が適切に設定される。
+\fBgetpwnam\fP() ã\81¨ \fBgetpwuid\fP() é\96¢æ\95°ã\81¯ã\80\81 \fIpasswd\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
+ä¸\80è\87´ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\82\84ã\80\81ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81\9få ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9få ´å\90\88ã\80\81 \fIerrno\fP ã\81\8cé\81©å\88\87ã\81«è¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82
呼び出しの後で \fIerrno\fP をチェックしたい場合は、 呼び出しの前に (この値を) 0 に設定しておくべきである。
.LP
返り値は静的な領域を指しており、その後の \fBgetpwent\fP(3), \fBgetpwnam\fP(), \fBgetpwuid\fP()
-の呼び出しで上書きされるかもしれない。 (返されたポインタを \fBfree\fP(3) に渡さないこと。)
+ã\81®å\91¼ã\81³å\87ºã\81\97ã\81§ä¸\8aæ\9b¸ã\81\8dã\81\95ã\82\8cã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82 (è¿\94ã\81\95ã\82\8cã\81\9fã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92 \fBfree\fP(3) ã\81«æ¸¡ã\81\95ã\81ªã\81\84ã\81\93ã\81¨ã\80\82)
.LP
成功すると、 \fBgetpwnam_r\fP() と \fBgetpwuid_r\fP() は 0 を返し、 \fI*result\fP に \fIpwd\fP
-ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82 ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\82¨ã\83³ã\83\88ã\83ªが見つからなかった場合には、 0 を返し、 \fI*result\fP に NULL を設定する。
+ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82 ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82¨ã\83³ã\83\88ã\83ªã\83¼が見つからなかった場合には、 0 を返し、 \fI*result\fP に NULL を設定する。
エラーの場合、エラー番号を返し、 \fI*result\fP に NULL を設定する。
.SH エラー
.TP
\fBENOMEM\fP
.\" not in POSIX
.\" This structure is static, allocated 0 or 1 times. No memory leak. (libc45)
-\fIpasswd\fP 構造体に割り当てるメモリが十分なかった。
+\fIpasswd\fP æ§\8bé\80 ä½\93ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå\8d\81å\88\86ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBERANGE\fP
-与えられたバッファ空間が不十分である。
+与えられたバッファー空間が不十分である。
.SH ファイル
.TP
\fI/etc/passwd\fP
-ã\83ã\83¼ã\82«ã\83«ã\81®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\83\95ã\82¡ã\82¤ã\83«
+ローカルのパスワードデータベースファイル
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
関数 \fBgetpwnam\fP() と \fBgetpwuid\fP() はスレッドセーフではない。
.\" FreeBSD 4.8, OpenBSD 3.2, NetBSD 1.6 - give EPERM
.\" SunOS 5.8 - gives EBADF
.\" Tru64 5.1b, HP-UX-11i, SunOS 5.7 - give 0
-上記の「返り値」以下の記述は POSIX.1\-2001 に拠る。 この標準は「(エントリが) 見つからないこと」をエラーとしていないので、
+ä¸\8aè¨\98ã\81®ã\80\8cè¿\94ã\82\8aå\80¤ã\80\8d以ä¸\8bã\81®è¨\98è¿°ã\81¯ POSIX.1\-2001 ã\81«æ\8b ã\82\8bã\80\82 ã\81\93ã\81®æ¨\99æº\96ã\81¯ã\80\8c(ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8c) è¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\84ã\81\93ã\81¨ã\80\8dã\82\92ã\82¨ã\83©ã\83¼ã\81¨ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\81®ã\81§ã\80\81
そのような場合に \fIerrno\fP がどのような値になるかを定めていない。 そのため、エラーを認識することは不可能である。 POSIX
-に準拠して、エントリが見つからない場合は \fIerrno\fP を変更しないようにすべきである、と主張する人もいるかもしれない。 様々な UNIX
+ã\81«æº\96æ\8b ã\81\97ã\81¦ã\80\81ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\84å ´å\90\88ã\81¯ \fIerrno\fP ã\82\92å¤\89æ\9b´ã\81\97ã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\81ã\81¨ä¸»å¼µã\81\99ã\82\8b人ã\82\82ã\81\84ã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82 æ§\98ã\80\85ã\81ª UNIX
系のシステムで試してみると、そのような場合には 0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM
といった様々な値が返される。 他の値が返されるかもしれない。
-フィールド \fIpw_dir\fP には、ユーザの作業ディレクトリ名の初期値が格納される。 ログインプロセスは、このフィールドの値を使って、
-ã\83ã\82°ã\82¤ã\83³ã\82·ã\82§ã\83«ã\81® \fBHOME\fP ç\92°å¢\83å¤\89æ\95°ã\82\92å\88\9dæ\9c\9få\8c\96ã\81\99ã\82\8bã\80\82 ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81\8cã\80\81ã\83¦ã\83¼ã\82¶ã\81®ã\83\9bã\83¼ã\83 ã\83»ディレクトリを決定する場合には、
+ã\83\95ã\82£ã\83¼ã\83«ã\83\89 \fIpw_dir\fP ã\81«ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ä½\9cæ¥ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªå\90\8dã\81®å\88\9dæ\9c\9få\80¤ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82 ã\83ã\82°ã\82¤ã\83³ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\80\81ã\81\93ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81®å\80¤ã\82\92使ã\81£ã\81¦ã\80\81
+ã\83ã\82°ã\82¤ã\83³ã\82·ã\82§ã\83«ã\81® \fBHOME\fP ç\92°å¢\83å¤\89æ\95°ã\82\92å\88\9dæ\9c\9få\8c\96ã\81\99ã\82\8bã\80\82 ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81\8cã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\9bã\83¼ã\83 ディレクトリを決定する場合には、
(\fIgetpwuid(getuid())\->pw_dir\fP の値ではなく) \fBHOME\fP の値を検査するようにすべきである。
-ã\81ªã\81\9cã\81ªã\82\89ã\80\81ã\81\93ã\81®ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81ã\83¦ã\83¼ã\82¶ã\81\8cã\83ã\82°ã\82¤ã\83³ã\83»ã\82»ã\83\83ã\82·ã\83§ã\83³ä¸ã\81§ ã\80\8cã\83\9bã\83¼ã\83 ã\83»ディレクトリ」の意味を変更できるようになるからである。
-å\88¥ã\81®ã\83¦ã\83¼ã\82¶ã\81®ã\83\9bã\83¼ã\83 ã\83»ディレクトリ (の初期値) を知るには \fIgetpwnam("username")\->pw_dir\fP
+ã\81ªã\81\9cã\81ªã\82\89ã\80\81ã\81\93ã\81®ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\83ã\82°ã\82¤ã\83³ã\82»ã\83\83ã\82·ã\83§ã\83³ä¸ã\81§ ã\80\8cã\83\9bã\83¼ã\83 ディレクトリ」の意味を変更できるようになるからである。
+å\88¥ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\9bã\83¼ã\83 ディレクトリ (の初期値) を知るには \fIgetpwnam("username")\->pw_dir\fP
か同様の方法を使う必要がある。
.SH 例
-以下のプログラムは \fBgetpwnam_r\fP() の使用例を示したもので、コマンドライン引き数で渡されたユーザ名に対する 完全なユーザ名とユーザ
-ID を探すものである。
+以下のプログラムは \fBgetpwnam_r\fP() の使用例を示したもので、コマンドライン引き数で渡されたユーザー名に対する
+完全なユーザー名とユーザー ID を探すものである。
.nf
#include <pwd.h>
.TH GETRPCENT 3 2014\-05\-28 "" "Linux Programmer's Manual"
.SH 名前
getrpcent, getrpcbyname, getrpcbynumber, setrpcent, endrpcent \- RPC
-エントリを取得する
+ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <netdb.h>\fP
.fi
.SH 説明
.LP
-\fBgetrpcent\fP(), \fBgetrpcbyname\fP(), \fBgetrpcbynumber\fP() はそれぞれ以下の構造体へのポインタを返す。
-この構造体は RPC プログラム番号データベース の各行のフィールドを含んでいる。
+\fBgetrpcent\fP(), \fBgetrpcbyname\fP(), \fBgetrpcbynumber\fP()
+ã\81¯ã\81\9dã\82\8cã\81\9eã\82\8c以ä¸\8bã\81®æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¯ RPC ã\83\97ã\83ã\82°ã\83©ã\83 ç\95ªå\8f·ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ ã\81®å\90\84è¡\8cã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\82\92å\90«ã\82\93ã\81§ã\81\84ã\82\8bã\80\82
.in +4n
.nf
このサービスの RPC プログラム番号。
.RE
.LP
-\fBgetrpcent\fP() はファイルの次のエントリを読み込む。必要ならばデータベースへの接続がオープンされる。
+\fBgetrpcent\fP() ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ¬¡ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92èªã\81¿è¾¼ã\82\80ã\80\82å¿\85è¦\81ã\81ªã\82\89ã\81°ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¸ã\81®æ\8e¥ç¶\9aã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\82\8bã\80\82
.LP
-\fBsetrpcent\fP() ã\81¯ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¸ã\81®æ\8e¥ç¶\9aã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81 次ã\81®èªã\81¿è¾¼ã\81¿ã\82¨ã\83³ã\83\88ã\83ªã\82\92å\85\88é ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 \fIstayopen\fP ã\81\8c 0
-でない場合、 一つ一つの \fBgetrpc*\fP() 関数の呼び出し間でデータベースへの接続をクローズしない。
+\fBsetrpcent\fP() ã\81¯ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¸ã\81®æ\8e¥ç¶\9aã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81 次ã\81®èªã\81¿è¾¼ã\81¿ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\85\88é ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 \fIstayopen\fP ã\81\8c
+0 でない場合、 一つ一つの \fBgetrpc*\fP() 関数の呼び出し間でデータベースへの接続をクローズしない。
.LP
\fBendrpcent\fP() はデータベースへの接続をクローズする。
.LP
見つかるか、ファイルの最後 (end\-of\-file) に到達するまで、順番に 探していく。
.SH 返り値
成功すると、 \fBgetrpcent\fP(), \fBgetrpcbyname\fP(), \fBgetrpcbynumber\fP() は、静的に割り当てられた
-\fIrpcent\fP 構造体へのポインタを返す。 EOF か エラーに遭遇した場合には NULL を返す。
+\fIrpcent\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 EOF ã\81\8b ã\82¨ã\83©ã\83¼ã\81«é\81é\81\87ã\81\97ã\81\9få ´å\90\88ã\81«ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82
.SH ファイル
.TP
\fI/etc/rpc\fP
.\"
.TH GETRPCENT_R 3 2010\-09\-10 GNU "Linux Programmer's Manual"
.SH 名前
-getrpcent_r, getrpcbyname_r, getrpcbynumber_r \- RPC エントリを
+getrpcent_r, getrpcbyname_r, getrpcbynumber_r \- RPC ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92
取得する (リエントラント版)
.SH 書式
.nf
説明する。
これらの関数は、関数の結果として静的に割り当てられた \fIrpcent\fP 構造体
-へのポインタを返すのではなく、 \fIrpcent\fP 構造体を \fIresult_buf\fP が
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\81®ã\81§ã\81¯ã\81ªã\81\8fã\80\81 \fIrpcent\fP æ§\8bé\80 ä½\93ã\82\92 \fIresult_buf\fP ã\81\8c
指す場所にコピーする。
.\" I can find no information on the required/recommended buffer size;
これらの文字列は静的な領域に格納される)。
この配列の大きさは \fIbuflen\fP で指定される。
\fIbuf\fP が小さすぎる場合、関数呼び出しはエラー \fBERANGE\fP で失敗し、
-呼び出し側ではもっと大きなバッファで再度呼び出す必要がある (ほとんどの
-アプリケーションでは、長さ 1024 バイトのバッファで十分なはずである)。
+å\91¼ã\81³å\87ºã\81\97å\81´ã\81§ã\81¯ã\82\82ã\81£ã\81¨å¤§ã\81\8dã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§å\86\8d度å\91¼ã\81³å\87ºã\81\99å¿\85è¦\81ã\81\8cã\81\82ã\82\8b (ã\81»ã\81¨ã\82\93ã\81©ã\81®
+ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81§ã\81¯ã\80\81é\95·ã\81\95 1024 ã\83\90ã\82¤ã\83\88ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§å\8d\81å\88\86ã\81ªã\81¯ã\81\9aã\81§ã\81\82ã\82\8b)ã\80\82
関数呼び出しで RPC レコードの取得に成功すると、
\fI*result\fP は \fIresult_buf\fP を指すように設定される。
(\fBgetrpcent_r\fP()) データベースにこれ以上レコードがない。
.TP
\fBERANGE\fP
-\fIbuf\fP が小さすぎる。もっと大きなバッファにして
+\fIbuf\fP ã\81\8cå°\8fã\81\95ã\81\99ã\81\8eã\82\8bã\80\82ã\82\82ã\81£ã\81¨å¤§ã\81\8dã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81\97ã\81¦
(または \fIbuflen\fP を増やして) 再度呼び出すこと。
.SH 準拠
これらの関数は GNU による拡張である。
.SH 説明
\fIこの関数は使用しないこと\fP。
-\fBgets\fP() は、改行文字か \fBEOF\fP までの 1行を \fIstdin\fP から読み込み \fIs\fP が指すバッファに格納する
-(末尾の改行文字や \fBEOF\fP はヌルバイト (\(aq\e0\(aq) に置き換えられる)。 バッファオーバーランのチェックは行われない
+\fBgets\fP() ã\81¯ã\80\81æ\94¹è¡\8cæ\96\87å\97ã\81\8b \fBEOF\fP ã\81¾ã\81§ã\81® 1è¡\8cã\82\92 \fIstdin\fP ã\81\8bã\82\89èªã\81¿è¾¼ã\81¿ \fIs\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\99ã\82\8b
+(æ\9c«å°¾ã\81®æ\94¹è¡\8cæ\96\87å\97ã\82\84 \fBEOF\fP ã\81¯ã\83\8cã\83«ã\83\90ã\82¤ã\83\88 (\(aq\e0\(aq) ã\81«ç½®ã\81\8dæ\8f\9bã\81\88ã\82\89ã\82\8cã\82\8b)ã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82ªã\83¼ã\83\90ã\83¼ã\83©ã\83³ã\81®ã\83\81ã\82§ã\83\83ã\82¯ã\81¯è¡\8cã\82\8fã\82\8cã\81ªã\81\84
(下記の「バグ」を参照)。
.SH 返り値
\fBgets\fP() は、成功すると \fIs\fP を返し、エラーや 1 文字も読み込んでいないのにファイルの終わりになった 場合に NULL を返す。
-しかし、バッファの行き過ぎのチェックが行われないため、この関数が返るという保証はない。
+ã\81\97ã\81\8bã\81\97ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®è¡\8cã\81\8dé\81\8eã\81\8eã\81®ã\83\81ã\82§ã\83\83ã\82¯ã\81\8cè¡\8cã\82\8fã\82\8cã\81ªã\81\84ã\81\9fã\82\81ã\80\81ã\81\93ã\81®é\96¢æ\95°ã\81\8cè¿\94ã\82\8bã\81¨ã\81\84ã\81\86ä¿\9d証ã\81¯ã\81ªã\81\84ã\80\82
.SH 準拠
C89, C99, POSIX.1\-2001.
POSIX.1\-2008 では \fBgets\fP() に廃止予定の印が付けられている。
ISO C11 では \fBgets\fP)() の規定が C 言語から削除されている。
glibc バージョン 2.16 以降では、機能検査マクロ \fB_ISOC11_SOURCE\fP が定義された
-場合、glibc ヘッダファイルでは \fBgets\fP)() の宣言が公開されない。
+å ´å\90\88ã\80\81glibc ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81§ã\81¯ \fBgets\fP)() ã\81®å®£è¨\80ã\81\8cå\85¬é\96\8bã\81\95ã\82\8cã\81ªã\81\84ã\80\82
.SH バグ
\fBgets\fP() は絶対に使用してはならない。 前もってデータを知ることなしに \fBgets\fP() が何文字読むかを知ることはできず、
-\fBgets\fP() がバッファの終わりを越えて書き込み続けるため、 \fBgets\fP() を使うのは極めて危険である。
+\fBgets\fP() ã\81\8cã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®çµ\82ã\82\8fã\82\8aã\82\92è¶\8aã\81\88ã\81¦æ\9b¸ã\81\8dè¾¼ã\81¿ç¶\9aã\81\91ã\82\8bã\81\9fã\82\81ã\80\81 \fBgets\fP() ã\82\92使ã\81\86ã\81®ã\81¯æ¥µã\82\81ã\81¦å\8d±é\99ºã\81§ã\81\82ã\82\8bã\80\82
これを利用してコンピュータのセキュリティが破られてきた。 代わりに \fBfgets\fP() を使うこと。
詳しい情報については、CWE\-242 (別名 "Use of Inherently Dangerous Function"
.TH GETSERVENT 3 2008\-08\-19 GNU "Linux Programmer's Manual"
.SH 名前
getservent, getservbyname, getservbyport, setservent, endservent \-
-サービスのエントリを取得する
+ã\82µã\83¼ã\83\93ã\82¹ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <netdb.h>\fP
\fBvoid endservent(void);\fP
.fi
.SH 説明
-\fBgetservent\fP() é\96¢æ\95°ã\81¯ã\82µã\83¼ã\83\93ã\82¹ã\81®ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ (\fBservices\fP(5) å\8f\82ç\85§) ã\81\8bã\82\89次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92èªã\81¿è¾¼ã\81¿ã\80\81 ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92
-\fIservent\fP 構造体の要素別のフィールドに格納し、 その構造体を返す。 必要であれば、データベースへの接続がオープンされる。
+\fBgetservent\fP() é\96¢æ\95°ã\81¯ã\82µã\83¼ã\83\93ã\82¹ã\81®ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ (\fBservices\fP(5) å\8f\82ç\85§) ã\81\8bã\82\89次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92èªã\81¿è¾¼ã\81¿ã\80\81
+そのエントリーを \fIservent\fP 構造体の要素別のフィールドに格納し、 その構造体を返す。 必要であれば、データベースへの接続がオープンされる。
.PP
\fBgetservbyname\fP() 関数は、 プロトコル \fIproto\fP を用いるサービスの名前 \fIname\fP
-ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\82\92ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89æ\8e¢ã\81\97ã\80\81 ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªを収めた \fIservent\fP 構造体を返す。 \fIproto\fP が NULL
+ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89æ\8e¢ã\81\97ã\80\81 ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼を収めた \fIservent\fP 構造体を返す。 \fIproto\fP が NULL
の場合は、任意のプロトコルにマッチする。 必要であれば、データベースへの接続がオープンされる。
.PP
\fBgetservbyport\fP() 関数は、 プロトコル \fIproto\fP を用いるサービスのポート番号 \fIport\fP
-ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\82\92ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89æ\8e¢ã\81\97ã\80\81 ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªの内容を収めた \fIservent\fP 構造体を返す (ポート番号 \fIport\fP
+ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89æ\8e¢ã\81\97ã\80\81 ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼の内容を収めた \fIservent\fP 構造体を返す (ポート番号 \fIport\fP
はネットワークバイトオーダで指定する)。 \fIproto\fP が NULL の場合は任意のプロトコルにマッチする。
必要であれば、データベースへの接続がオープンされる。
.PP
-\fBsetservent\fP() é\96¢æ\95°ã\81¯ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¸ã\81®æ\8e¥ç¶\9aã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81 次ã\81®èªã\81¿è¾¼ã\81¿ã\82¨ã\83³ã\83\88ã\83ªã\82\92å\85\88é ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 \fIstayopen\fP ã\81\8c
-0 でない場合、 一つ一つの \fBgetserv*\fP() 関数の呼び出し間でデータベースへの接続をクローズしない。
+\fBsetservent\fP() é\96¢æ\95°ã\81¯ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¸ã\81®æ\8e¥ç¶\9aã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81 次ã\81®èªã\81¿è¾¼ã\81¿ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\85\88é ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 \fIstayopen\fP
+が 0 でない場合、 一つ一つの \fBgetserv*\fP() 関数の呼び出し間でデータベースへの接続をクローズしない。
.PP
\fBendservent\fP() 関数はデータベースへの接続をクローズする。
.PP
このサービスと共に用いるプロトコルの名前。
.SH 返り値
\fBgetservent\fP(), \fBgetservbyname\fP(), \fBgetservbyport\fP() 関数は、 静的に割り当てられた
-\fIservent\fP 構造体へのポインタを返す。 エラーが起こったり、ファイルの末尾に達した場合は NULL を返す。
+\fIservent\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9fã\82\8aã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ\9c«å°¾ã\81«é\81\94ã\81\97ã\81\9få ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82
.SH ファイル
.TP
\fI/etc/services\fP
.\"
.TH GETSERVENT_R 3 2010\-09\-10 GNU "Linux Programmer's Manual"
.SH 名前
-getservent_r, getservbyname_r, getservbyport_r \- サービスエントリを
+getservent_r, getservbyname_r, getservbyport_r \- ã\82µã\83¼ã\83\93ã\82¹ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92
取得する (リエントラント版)
.SH 書式
.nf
説明する。
これらの関数は、関数の結果として静的に割り当てられた \fIservent\fP 構造体
-へのポインタを返すのではなく、 \fIservent\fP 構造体を \fIresult_buf\fP が
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\81®ã\81§ã\81¯ã\81ªã\81\8fã\80\81 \fIservent\fP æ§\8bé\80 ä½\93ã\82\92 \fIresult_buf\fP ã\81\8c
指す場所にコピーする。
.\" I can find no information on the required/recommended buffer size;
これらの文字列は静的な領域に格納される)。
この配列の大きさは \fIbuflen\fP で指定される。
\fIbuf\fP が小さすぎる場合、関数呼び出しはエラー \fBERANGE\fP で失敗し、
-呼び出し側ではもっと大きなバッファで再度呼び出す必要がある (ほとんどの
-アプリケーションでは、長さ 1024 バイトのバッファで十分なはずである)。
+å\91¼ã\81³å\87ºã\81\97å\81´ã\81§ã\81¯ã\82\82ã\81£ã\81¨å¤§ã\81\8dã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§å\86\8d度å\91¼ã\81³å\87ºã\81\99å¿\85è¦\81ã\81\8cã\81\82ã\82\8b (ã\81»ã\81¨ã\82\93ã\81©ã\81®
+ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81§ã\81¯ã\80\81é\95·ã\81\95 1024 ã\83\90ã\82¤ã\83\88ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§å\8d\81å\88\86ã\81ªã\81¯ã\81\9aã\81§ã\81\82ã\82\8b)ã\80\82
関数呼び出しでサービスレコードの取得に成功すると、
\fI*result\fP は \fIresult_buf\fP を指すように設定される。
(\fBgetservent_r\fP()) データベースにこれ以上レコードがない。
.TP
\fBERANGE\fP
-\fIbuf\fP が小さすぎる。もっと大きなバッファにして
+\fIbuf\fP ã\81\8cå°\8fã\81\95ã\81\99ã\81\8eã\82\8bã\80\82ã\82\82ã\81£ã\81¨å¤§ã\81\8dã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81\97ã\81¦
(または \fIbuflen\fP を増やして) 再度呼び出すこと。
.SH 準拠
これらの関数は GNU による拡張である。
三番目のコマンドライン引き数 (整数値) が指定された場合は、
その値が \fIbuflen\fP の初期値として使用される。
\fBgetservbyport_r\fP() がエラー \fBERANGE\fP で失敗すると、プログラムは
-より大きなバッファサイズで再度 \fBgetservbyport_r\fP を呼び出す。
+ã\82\88ã\82\8a大ã\81\8dã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\81§å\86\8d度 \fBgetservbyport_r\fP ã\82\92å\91¼ã\81³å\87ºã\81\99ã\80\82
下記のシェルのセッションは実行例を示している。
.in +4n
.nf
.SH 名前
getspnam, getspnam_r, getspent, getspent_r, setspent, endspent,fgetspent,
fgetspent_r, sgetspent, sgetspent_r, putspent, lckpwdf, ulckpwdf \- shadow
-パスワードファイルのエントリを取得する
+ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
.nf
/* 一般的な shadow パスワードファイル API */
.ad b
.SH 説明
昔は暗号化されたパスワードをパスワードファイルに 見えるように公開しておいても安全だと考えられていた。 Julianne Frances Haugh は
-shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\82¹ã\82¤ã\83¼ã\83\88ã\82\92å®\9fè£\85ã\81\97ã\81\9fã\80\82 ã\81\93ã\82\8cã\81¯æ\9a\97å\8f·å\8c\96ã\81\95ã\82\8cã\81\9fã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82\92ã\80\81root ã\81®ã\81¿ã\81\8cèªã\82\80ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8b shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»データベース
+shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82¹ã\82¤ã\83¼ã\83\88ã\82\92å®\9fè£\85ã\81\97ã\81\9fã\80\82 ã\81\93ã\82\8cã\81¯æ\9a\97å\8f·å\8c\96ã\81\95ã\82\8cã\81\9fã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82\92ã\80\81root ã\81®ã\81¿ã\81\8cèªã\82\80ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8b shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89データベース
(例えば、 ローカルの shadow パスワードファイル \fI/etc/shadow\fP, NIS, LDAP) に保持する。
.LP
.\" FIXME . I've commented out the following for the
.\" (pluggable authentication modules), and the file
.\" .I /etc/nsswitch.conf
.\" now describes the sources to be used.
-以ä¸\8bã\81§èª¬æ\98\8eã\81\99ã\82\8bé\96¢æ\95°ã\81¯ã\80\81ä¼\9dçµ±ç\9a\84ã\81ªã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«å¯¾ã\81\99ã\82\8b é\96¢æ\95°ã\81«ä¼¼ã\81¦ã\81\84ã\82\8b (ä¾\8bã\81\88ã\81° \fBgetpwnam\fP(3) ã\82\84
-\fBgetpwent\fP(3) を参照)。
+以ä¸\8bã\81§èª¬æ\98\8eã\81\99ã\82\8bé\96¢æ\95°ã\81¯ã\80\81ä¼\9dçµ±ç\9a\84ã\81ªã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«å¯¾ã\81\99ã\82\8b é\96¢æ\95°ã\81«ä¼¼ã\81¦ã\81\84ã\82\8b (ä¾\8bã\81\88ã\81° \fBgetpwnam\fP(3) ã\82\84 \fBgetpwent\fP(3)
+を参照)。
.LP
-\fBgetspnam\fP() 関数は、ユーザ名 \fIname\fP にマッチする shadow パスワード・データベースのエントリを
-要素毎に分解し、各要素を格納した構造体へのポインタを返す。
+\fBgetspnam\fP() 関数は、ユーザー名 \fIname\fP にマッチする shadow パスワードデータベースのエントリーを
+è¦\81ç´ æ¯\8eã\81«å\88\86解ã\81\97ã\80\81å\90\84è¦\81ç´ ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.LP
.\" some systems require a call of setspent() before the first getspent()
.\" glibc does not
-\fBgetspent\fP() é\96¢æ\95°ã\81¯ shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«ã\81\8aã\81\91ã\82\8b次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す。 入力ストリームにおける位置は、
+\fBgetspent\fP() é\96¢æ\95°ã\81¯ shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«ã\81\8aã\81\91ã\82\8b次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す。 入力ストリームにおける位置は、
\fBsetspent\fP() で初期化される。 読み込みが終わった後に、 \fBendspent\fP() を呼び出すと、リソースを解放できる。
.LP
\fBfgetspent\fP() 関数は \fBgetspent\fP() に似ているが、 \fBsetspent\fP()
\fBsgetspent\fP() 関数は与えられた文字列 \fIs\fP を解析し struct \fIspwd\fP に格納する。
.LP
\fBputspent\fP() 関数は与えられた struct \fIspwd\fP \fI*p\fP の内容を shadow パスワードファイル形式のテキスト行で
-\fIstream\fP ã\81«æ\9b¸ã\81\8då\87ºã\81\99ã\80\82 空æ\96\87å\97å\88\97ã\81¨ã\81\97ã\81¦ã\80\81 å\80¤ã\81\8c NULL ã\81®æ\96\87å\97å\88\97ã\82¨ã\83³ã\83\88ã\83ªã\81¨å\80¤ã\81\8c \-1 ã\81®æ\95°å\80¤ã\82¨ã\83³ã\83\88ã\83ªが 書き出される。
+\fIstream\fP ã\81«æ\9b¸ã\81\8då\87ºã\81\99ã\80\82 空æ\96\87å\97å\88\97ã\81¨ã\81\97ã\81¦ã\80\81 å\80¤ã\81\8c NULL ã\81®æ\96\87å\97å\88\97ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¨å\80¤ã\81\8c \-1 ã\81®æ\95°å\80¤ã\82¨ã\83³ã\83\88ã\83ªã\83¼が 書き出される。
.LP
-\fBlckpwdf\fP() é\96¢æ\95°ã\81¯ã\80\81 shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\82\92 å¤\9aé\87\8då\90\8cæ\99\82ã\82¢ã\82¯ã\82»ã\82¹ã\81\8bã\82\89å®\88ã\82\8bã\81\9fã\82\81ã\81®ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82
-この関数はロックの獲得を試み、 成功した場合は 0 を返す。 失敗した場合 (15 秒以内にロックが取得できなかった場合) は \-1 を返す。
-\fBulckpwdf\fP() 関数はロックを再び解放する。 shadow パスワードファイルへの直接アクセスから 保護する手段がない点に注意すること。
-\fBlckpwdf\fP() を使うプログラムだけがロックを通知できる。
+\fBlckpwdf\fP() é\96¢æ\95°ã\81¯ã\80\81 shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\82\92 å¤\9aé\87\8då\90\8cæ\99\82ã\82¢ã\82¯ã\82»ã\82¹ã\81\8bã\82\89å®\88ã\82\8bã\81\9fã\82\81ã\81®ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®é\96¢æ\95°ã\81¯ã\83ã\83\83ã\82¯ã\81®ç\8d²å¾\97ã\82\92試ã\81¿ã\80\81
+成功した場合は 0 を返す。 失敗した場合 (15 秒以内にロックが取得できなかった場合) は \-1 を返す。 \fBulckpwdf\fP()
+関数はロックを再び解放する。 shadow パスワードファイルへの直接アクセスから 保護する手段がない点に注意すること。 \fBlckpwdf\fP()
+を使うプログラムだけがロックを通知できる。
.LP
.\" Also in libc5
.\" SUN doesn't have sgetspent()
これらの関数はオリジナルの shadow API を構成していた関数であり、 いろいろなシステムで広く利用可能である。
.SS リエントラント版
-ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«å¯¾ã\81\99ã\82\8bã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ç\89\88ã\81¨å\90\8cã\81\98ã\82\88ã\81\86ã\81«ã\80\81 glibc ã\81«ã\81¯ shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\95ã\82¡ã\82¤ã\83«ã\81«å¯¾ã\81\97ã\81¦ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ç\89\88ã\81\8cã\81\82ã\82\8bã\80\82
+パスワードデータベースに対するリエントラント版と同じように、 glibc には shadow パスワードファイルに対してリエントラント版がある。
\fBgetspnam_r\fP() 関数は \fBgetspnam\fP() と似ているが、取得した shadow パスワード構造体を \fIspbuf\fP
-ã\81\8cæ\8c\87ã\81\99é \98å\9f\9fã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82 shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89æ§\8bé\80 ä½\93ã\81¯æ\96\87å\97å\88\97群ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92å\90«ã\81¿ã\80\81 ã\81\93ã\82\8cã\82\89ã\81®æ\96\87å\97å\88\97群ã\81¯ã\82µã\82¤ã\82º \fIbuflen\fP ã\81®ã\83\90ã\83\83ã\83\95ã\82¡
-\fIbuf\fP に格納される。 \fI*spbufp\fP には (成功した場合は) 結果へのポインタが格納され、
-(エントリが見つからなかった場合またはエラーが起こった場合は) NULL が格納される。
+ã\81\8cæ\8c\87ã\81\99é \98å\9f\9fã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82 shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89æ§\8bé\80 ä½\93ã\81¯æ\96\87å\97å\88\97群ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å\90«ã\81¿ã\80\81 ã\81\93ã\82\8cã\82\89ã\81®æ\96\87å\97å\88\97群ã\81¯ã\82µã\82¤ã\82º \fIbuflen\fP ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼
+\fIbuf\fP ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82 \fI*spbufp\fP ã\81«ã\81¯ (æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\81¯) çµ\90æ\9e\9cã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\80\81
+(ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\81¾ã\81\9fã\81¯ã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9få ´å\90\88ã\81¯) NULL ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82
.LP
関数 \fBgetspent_r\fP(), \fBfgetspent_r\fP(), \fBsgetspent_r\fP()
はそれぞれリエントラントでないバージョンと同様の機能を持つ。
long sp_min; /* 変更が出来るようになるまでの最短日数 */
long sp_max; /* 変更をしなくてもよい最長日数 */
long sp_warn; /* パスワードが期限切れになる前に
- ユーザに変更の警告を出す日数 */
+ ã\83¦ã\83¼ã\82¶ã\83¼ã\81«å¤\89æ\9b´ã\81®è¦å\91\8aã\82\92å\87ºã\81\99æ\97¥æ\95° */
long sp_inact; /* パスワードが期限切れになってから
アカウントが無効になるまでの日数 */
long sp_expire; /* アカウントが無効になる日付
.fi
.in
.SH 返り値
-ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99é\96¢æ\95°ã\81¯ã\80\81ã\81\93ã\82\8c以ä¸\8aã\82¨ã\83³ã\83\88ã\83ªがない場合や 処理中にエラーが発生した場合 NULL を返す。 \fIint\fP を返り値として持つ関数は、
+ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99é\96¢æ\95°ã\81¯ã\80\81ã\81\93ã\82\8c以ä¸\8aã\82¨ã\83³ã\83\88ã\83ªã\83¼がない場合や 処理中にエラーが発生した場合 NULL を返す。 \fIint\fP を返り値として持つ関数は、
成功した場合 0 を返し、失敗した場合、 \-1 を返し、 \fIerrno\fP にエラーの原因を示す値を設定する。
.LP
リエントラント版でない関数では、返り値が静的な領域を指しており、 引き続いてこれらの関数を呼び出した場合に上書きされる可能性がある。
呼び出し元が shadow パスワードファイルにアクセスする許可を持っていない。
.TP
\fBERANGE\fP
-与えられたバッファが小さすぎる。
+ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cå°\8fã\81\95ã\81\99ã\81\8eã\82\8bã\80\82
.SH ファイル
.TP
\fI/etc/shadow\fP
-ã\83ã\83¼ã\82«ã\83«ã\81® shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\83\95ã\82¡ã\82¤ã\83«
+ローカルの shadow パスワードデータベースファイル
.TP
\fI/etc/.pwd.lock\fP
ロックファイル
インクルードファイル \fI<paths.h>\fP は定数 \fB_PATH_SHADOW\fP を定義している。 これは shadow
パスワードファイルのパス名である。
.SH 準拠
-shadow ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¨é\96¢é\80£ API ã\81¯ POSIX.1\-2001 ã\81«ã\81¯è¨\98è¼\89ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89ã\80\81å¤\9aã\81\8fã\81®ä»\96ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\82\82 å\90\8cæ§\98ã\81®
+shadow パスワードデータベースと関連 API は POSIX.1\-2001 には記載されていない。しかしながら、多くの他のシステムでも 同様の
API が提供されている。
.SH 関連項目
\fBgetgrnam\fP(3), \fBgetpwnam\fP(3), \fBgetpwnam_r\fP(3), \fBshadow\fP(5)
.RE
.ad
.SH 説明
-\fBgetsubopt\fP() ã\81¯ã\80\81 \fIoptionp\fP ã\81§ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fã\82«ã\83³ã\83\9eå\8cºå\88\87ã\82\8aã\81®ã\82µã\83\96ã\82ªã\83\97ã\82·ã\83§ã\83³ã\83»ã\83ªã\82¹ã\83\88ã\82\92解æ\9e\90ã\81\99ã\82\8bã\80\82
-(ã\81\93ã\81®ã\82\88ã\81\86ã\81ªã\82µã\83\96ã\82ªã\83\97ã\82·ã\83§ã\83³ã\83»ã\83ªã\82¹ã\83\88ã\81¯ \fBgetopt\fP(3) ã\82\92使ã\81£ã\81¦ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³ã\82\92解é\87\88ã\81\97ã\81\9få ´å\90\88ã\81«ç\8f¾ã\82\8cã\82\8bã\81\93ã\81¨ã\81\8cå¤\9aã\81\84ã\80\82 ä¾\8bã\81\88ã\81°ã\80\81
+\fBgetsubopt\fP() は、 \fIoptionp\fP で与えられたカンマ区切りのサブオプションリストを解析する。
+(このようなサブオプションリストは \fBgetopt\fP(3) を使ってコマンドラインを解釈した場合に現れることが多い。 例えば、
\fBmount\fP(8) の \fI\-o\fP オプションを見るとよい。) それぞれのサブオプションには対応する値を指定することができる。
サブオプションの名前と対応する値は等号 (\(aq=\(aq) で区切られる。 例えば、以下のような文字列を \fIoptionp\fP に渡すことができる。
.sp
\fBro,name=xyz\fP
.in
-\fItokens\fP å¼\95ã\81\8dæ\95°ã\81¯ã\83\88ã\83¼ã\82¯ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81®é\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿で、 配列は NULL で終端される。 \fBgetsubopt\fP()
+\fItokens\fP å¼\95ã\81\8dæ\95°ã\81¯ã\83\88ã\83¼ã\82¯ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®é\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼で、 配列は NULL で終端される。 \fBgetsubopt\fP()
はこのトークンを \fIoptionp\fP 内で探す。 それぞれのトークンは、NULL 終端された 1文字以上の文字列で、
他のトークンと区別できる必要がある。 また、等号とカンマを含んではならない。
.\"
.TH GETTTYENT 3 2013\-07\-22 GNU "Linux Programmer's Manual"
.SH 名前
-getttyent, getttynam, setttyent, endttyent \- ttys ファイルのエントリを取得する
+getttyent, getttynam, setttyent, endttyent \- ttys ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
\fB#include <ttyent.h>\fP
.sp
.sp
\fBint endttyent(void);\fP
.SH 説明
-これらの関数はファイル \fB_PATH_TTYS\fP (例えば \fI/etc/ttys\fP) へのインタフェースを提供する。
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\83\95ã\82¡ã\82¤ã\83« \fB_PATH_TTYS\fP (ä¾\8bã\81\88ã\81° \fI/etc/ttys\fP) ã\81¸ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\80\82
関数 \fBsetttyent\fP() はファイルをオープンする。 また既にオープンされている場合は、巻き戻す。
関数 \fBendttyent\fP() はファイルをクローズする。
関数 \fBgetttynam\fP() は指定された端末名についてファイルを検索する。 この関数は (以下で説明されている) \fIttyent\fP
-構造体へのポインタを返す。
+æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
-関数 \fBgetttyent\fP() は (もし必要であれば) ファイル \fB_PATH_TTYS\fP をオープンし、最初のエントリを返す。
-ファイルが既にオープンされている場合は、次のエントリを返す。 \fIttyent\fP 構造体は以下の通りである。
+é\96¢æ\95° \fBgetttyent\fP() ã\81¯ (ã\82\82ã\81\97å¿\85è¦\81ã\81§ã\81\82ã\82\8cã\81°) ã\83\95ã\82¡ã\82¤ã\83« \fB_PATH_TTYS\fP ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¿\94ã\81\99ã\80\82
+ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cæ\97¢ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\80\81次ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¿\94ã\81\99ã\80\82 \fIttyent\fP æ§\8bé\80 ä½\93ã\81¯ä»¥ä¸\8bã\81®é\80\9aã\82\8aã\81§ã\81\82ã\82\8bã\80\82
.in +4n
.nf
.nf
#define TTY_ON 0x01 /* ログインを有効にする (ty_getty プログラムを開始する) */
-#define TTY_SECURE 0x02 /* ユーザ ID 0 でのログインを許可する */
+#define TTY_SECURE 0x02 /* ユーザー ID 0 でのログインを許可する */
.fi
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
-関数 \fBgetttyent\fP() は静的変数へのポインタを返す。そのため、スレッドセーフではない。
+é\96¢æ\95° \fBgetttyent\fP() ã\81¯é\9d\99ç\9a\84å¤\89æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82ã\81\9dã\81®ã\81\9fã\82\81ã\80\81ã\82¹ã\83¬ã\83\83ã\83\89ã\82»ã\83¼ã\83\95ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.LP
関数 \fBsetttyent\fP() と \fBendttyent\fP() は静的変数を使用する。そのため、スレッドセーフではない。
.LP
.\"
.TH GETUSERSHELL 3 2013\-06\-21 GNU "Linux Programmer's Manual"
.SH 名前
-getusershell, setusershell, endusershell \- 許可されたユーザシェルを得る
+getusershell, setusershell, endusershell \- 許å\8f¯ã\81\95ã\82\8cã\81\9fã\83¦ã\83¼ã\82¶ã\83¼ã\82·ã\82§ã\83«ã\82\92å¾\97ã\82\8b
.SH 書式
.nf
\fB#include <unistd.h>\fP
.ad b
.SH 説明
\fBgetusershell\fP() 関数は \fI/etc/shells\fP ファイルから (開く必要があればこのファイルを開いてから)
-現在行の次の一行を返す。 返された行の中身は有効なユーザシェルのうちの一つのパス名である。 (訳注. 一行に付き一つのシェルのパス名が書かれている。)
+ç\8f¾å\9c¨è¡\8cã\81®æ¬¡ã\81®ä¸\80è¡\8cã\82\92è¿\94ã\81\99ã\80\82 è¿\94ã\81\95ã\82\8cã\81\9fè¡\8cã\81®ä¸èº«ã\81¯æ\9c\89å\8a¹ã\81ªã\83¦ã\83¼ã\82¶ã\83¼ã\82·ã\82§ã\83«ã\81®ã\81\86ã\81¡ã\81®ä¸\80ã\81¤ã\81®ã\83\91ã\82¹å\90\8dã\81§ã\81\82ã\82\8bã\80\82 (訳注. ä¸\80è¡\8cã\81«ä»\98ã\81\8dä¸\80ã\81¤ã\81®ã\82·ã\82§ã\83«ã\81®ã\83\91ã\82¹å\90\8dã\81\8cæ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\80\82)
もし \fI/etc/shells\fP が存在しないか、読み込み不可の場合には、 \fBgetusershell\fP() は \fI/bin/sh\fP と
\fI/bin/csh\fP がファイルに記されているかのようにふるまう。
.PP
-\fBsetusershell\fP() 関数は \fI/etc/shells\fP ファイルの ファイルポインタを先頭に戻す。
+\fBsetusershell\fP() é\96¢æ\95°ã\81¯ \fI/etc/shells\fP ã\83\95ã\82¡ã\82¤ã\83«ã\81® ã\83\95ã\82¡ã\82¤ã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å\85\88é ã\81«æ\88»ã\81\99ã\80\82
.PP
\fBendusershell\fP() 関数は \fI/etc/shells\fP ファイルを閉じる。
.SH 返り値
.TH GETUTENT 3 2014\-08\-19 "" "Linux Programmer's Manual"
.SH 名前
getutent, getutid, getutline, pututline, setutent, endutent, utmpname \- utmp
-ファイルのエントリにアクセスする
+ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8b
.SH 書式
\fB#include <utmp.h>\fP
.sp
\fButmpname\fP() を使って ファイル名の指定を行わなかった場合は、 \fI<path.h>\fP で 定義されている
\fB_PATH_UTMP\fP がファイル名とみなされる。
.PP
-\fBsetutent\fP() は、ファイルポインタを utmp ファイルの先頭に移動する。
+\fBsetutent\fP() ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92 utmp ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\85\88é ã\81«ç§»å\8b\95ã\81\99ã\82\8bã\80\82
一般的には、他の関数を使う前にこの関数を呼び出しておくと良いだろう。
.PP
\fBendutent\fP() は utmp ファイルをクローズする。ユーザーコードで
他の関数を使ってこのファイルにアクセスを行った時は、最後にこの関数を 呼び出すべきである。
.PP
-\fBgetutent\fP() は utmp ファイルの現在のファイル位置から一行読み込み、 行の各フィールドの内容を収めた構造体へのポインタを返す。
+\fBgetutent\fP() ã\81¯ utmp ã\83\95ã\82¡ã\82¤ã\83«ã\81®ç\8f¾å\9c¨ã\81®ã\83\95ã\82¡ã\82¤ã\83«ä½\8dç½®ã\81\8bã\82\89ä¸\80è¡\8cèªã\81¿è¾¼ã\81¿ã\80\81 è¡\8cã\81®å\90\84ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81®å\86\85容ã\82\92å\8f\8eã\82\81ã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
この構造体の定義は \fButmp\fP(5) に書かれている。
.PP
\fBgetutid\fP() は、 utmp ファイル中の現在の位置から順方向 (末尾に向かう方向) へ \fIut\fP に基く検索を行う。
\fIut\fP\->ut_type が \fBRUN_LVL\fP, \fBBOOT_TIME\fP, \fBNEW_TIME\fP, \fBOLD_TIME\fP の
いずれかなら、 \fBgetutid\fP() は \fBut_type\fP フィールドが \fIut\fP\->ut_type
-に一致する最初のエントリを探す。 \fIut\fP\->ut_type が \fBINIT_PROCESS\fP, \fBLOGIN_PROCESS\fP,
+ã\81«ä¸\80è\87´ã\81\99ã\82\8bæ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92æ\8e¢ã\81\99ã\80\82 \fIut\fP\->ut_type ã\81\8c \fBINIT_PROCESS\fP, \fBLOGIN_PROCESS\fP,
\fBUSER_PROCESS\fP, \fBDEAD_PROCESS\fP のいずれかなら、 \fBgetutid\fP() は \fIut_id\fP フィールドが
-\fIut\fP\->ut_id に 一致する最初のエントリを探す。
+\fIut\fP\->ut_id ã\81« ä¸\80è\87´ã\81\99ã\82\8bæ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92æ\8e¢ã\81\99ã\80\82
.PP
\fBgetutline\fP() は、 utmp ファイルの現在の位置から末尾に向かって検索を行う。 \fIut_type\fP が
\fBUSER_PROCESS\fP または \fBLOGIN_PROCESS\fP で、 \fIut_line\fP フィールドが \fIut\fP\->ut_line
にマッチする最初の行を返す。
.PP
\fBpututline\fP() は \fIutmp\fP 構造体 \fIut\fP の内容を utmp ファイルに書き出す。 \fBpututline\fP() は
-\fBgetutid\fP() を用いて、新たなエントリを 挿入するのにふさわしい場所を探す。 \fIut\fP を挿入するふさわしい場所が
-見つからない場合は、新たなエントリをファイルの末尾に追加する。
+\fBgetutid\fP() ã\82\92ç\94¨ã\81\84ã\81¦ã\80\81æ\96°ã\81\9fã\81ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 æ\8c¿å\85¥ã\81\99ã\82\8bã\81®ã\81«ã\81µã\81\95ã\82\8fã\81\97ã\81\84å ´æ\89\80ã\82\92æ\8e¢ã\81\99ã\80\82 \fIut\fP ã\82\92æ\8c¿å\85¥ã\81\99ã\82\8bã\81µã\81\95ã\82\8fã\81\97ã\81\84å ´æ\89\80ã\81\8c
+è¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81æ\96°ã\81\9fã\81ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ\9c«å°¾ã\81«è¿½å\8a ã\81\99ã\82\8bã\80\82
.SH 返り値
\fBgetutent\fP(), \fBgetutid\fP(), \fBgetutline\fP() は、成功すると \fIstruct utmp\fP
-へのポインタを返す。 失敗すると NULL を返す (レコードが見つからなかった場合も失敗となる)。 この \fIstruct utmp\fP
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 失æ\95\97ã\81\99ã\82\8bã\81¨ NULL ã\82\92è¿\94ã\81\99 (ã\83¬ã\82³ã\83¼ã\83\89ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\82\82失æ\95\97ã\81¨ã\81ªã\82\8b)ã\80\82 ã\81\93ã\81® \fIstruct utmp\fP
は静的な記憶領域に確保され、次にこれらの関数を 呼び出した際に上書きされるかもしれない。
\fBpututline\fP() は成功すると \fIut\fP を返す。失敗すると NULL を返す。
.SH エラー
.TP
\fBENOMEM\fP
-メモリ不足。
+メモリー不足。
.TP
\fBESRCH\fP
レコードが見つからなかった。
なっている (例えば \fIgetutxent\fP() は \fIgetutent\fP() の別名である)。
.SH 注意
.SS "glibc での注意"
-ä¸\8aè¨\98ã\81®é\96¢æ\95°ç¾¤ã\81¯ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82»ã\83¼ã\83\95ã\81§ã\81¯ã\81ªã\81\84ã\80\82 glibc ã\81«ã\81¯ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88ç\89\88 (reentrant) ã\81\8c追å\8a ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
+上記の関数群はスレッドセーフではない。 glibc にはリエントラント版 (reentrant) が追加されている。
.sp
.nf
\fB#define _GNU_SOURCE\fP /* or _SVID_SOURCE or _BSD_SOURCE;
.fi
.sp
これらの関数は GNU での拡張であり、末尾の _r をとった名前の関数と 同様の機能を持つ。 \fIubuf\fP
-ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81¯çµ\90æ\9e\9cã\82\92æ ¼ç´\8dã\81\99ã\82\8bå ´æ\89\80ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ 0 ã\82\92è¿\94ã\81\97ã\80\81çµ\90æ\9e\9cã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を \fI*ubufp\fP に書き込む。エラーの場合 \-1 を返す。
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯çµ\90æ\9e\9cã\82\92æ ¼ç´\8dã\81\99ã\82\8bå ´æ\89\80ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ 0 ã\82\92è¿\94ã\81\97ã\80\81çµ\90æ\9e\9cã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を \fI*ubufp\fP に書き込む。エラーの場合 \-1 を返す。
上記の関数に対応する utmpx 版は存在しない (POSIX.1 ではこれらの関数を規定されていない)。
.SH 例
以下の例では、 utmp のレコードの追加・削除を行っている。このコードは、 擬似端末 (pseudo terminal)
.SH 準拠
C99.
.SH 注意
-\fBgetwchar\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
+\fBgetwchar\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.PP
\fBgetwchar\fP() が実際には標準入力からマルチバイト列を読み込んで ワイド文字に変換することを期待しても良い。
.SH 関連項目
.\"
.TH GLOB 3 2014\-08\-19 GNU "Linux Programmer's Manual"
.SH 名前
-glob, globfree \- パターンにマッチするパス名を見付ける。glob() によっ て確保されたメモリ領域を解放する。
+glob, globfree \- パターンにマッチするパス名を見付ける。glob() によっ て確保されたメモリー領域を解放する。
.SH 書式
.nf
\fB#include <glob.h>\fP
.fi
.SH 説明
\fBglob\fP() 関数はシェルが用いているルール (\fBglob\fP(7) 参照) に基づいてパターン \fIpattern\fP
-にマッチするすべてのパス名を検索する。 チルダ (~) の展開やパラメータ置換は行われない。それらを行いたい場合は \fBwordexp\fP(3)
+にマッチするすべてのパス名を検索する。 チルダ (~) の展開やパラメーター置換は行われない。それらを行いたい場合は \fBwordexp\fP(3)
を使うとよい。
.PP
\fBglobfree\fP() 関数は前に呼ばれた \fBglob\fP() により動的に確保された記憶領域を解放する。
.PP
結果は動的に確保された記憶領域に入れられる。
.PP
-パラメータ \fIflags\fP には以下の示す定数のうち、指定したいものをビットごとの OR で与える (一つも 指定しなくてもよい)。これによって
+パラメーター \fIflags\fP には以下の示す定数のうち、指定したいものをビットごとの OR で与える (一つも 指定しなくてもよい)。これによって
\fBglob\fP() の動作を変更できる。
.TP
\fBGLOB_ERR\fP
.TP
\fBGLOB_DOOFFS\fP
\fIpglob\->pathv\fP の文字列リストの先頭に \fIpglob\->gl_offs\fP スロット分の領域を予約する。
-予約されたスロットにはヌルポインタが入る。
+äº\88ç´\84ã\81\95ã\82\8cã\81\9fã\82¹ã\83ã\83\83ã\83\88ã\81«ã\81¯ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cå\85¥ã\82\8bã\80\82
.TP
\fBGLOB_NOCHECK\fP
マッチするパターンがなければ、元のパターンを返す。 デフォルトでは、 \fBglob\fP() はマッチするパターンがなければ
.TP
\fBGLOB_NOESCAPE\fP
バックスラッシュ (\(aq\e\(aq) をエスケープ用文字として使用できない。 通常は、バックスラッシュを使って、次に続く文字をクォートすることで、
-特別な意味を持つメタキャラクタを無効することができる。
+ç\89¹å\88¥ã\81ªæ\84\8få\91³ã\82\92æ\8c\81ã\81¤ã\83¡ã\82¿ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\82\92ç\84¡å\8a¹ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
.PP
\fIflags\fP には以下に示すものも指定できる。 これらは GNU で拡張されたもので、POSIX.2 では定義されていない。
.TP
\fBGLOB_PERIOD\fP
-å\85\88é ã\81®ã\83\94ã\83ªã\82ªã\83\89ã\81\8cã\83¡ã\82¿ã\82ã\83£ã\83©ã\82¯ã\82¿ã\81«ã\83\9eã\83\83ã\83\81ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\80\81ã\83¡ã\82¿ã\82ã\83£ã\83©ã\82¯ã\82¿は先頭のピリオドにはマッチできない。
+å\85\88é ã\81®ã\83\94ã\83ªã\82ªã\83\89ã\81\8cã\83¡ã\82¿ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\81«ã\83\9eã\83\83ã\83\81ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\80\81ã\83¡ã\82¿ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼は先頭のピリオドにはマッチできない。
.TP
\fBGLOB_ALTDIRFUNC\fP
ファイルシステムにアクセスする際に、通常のライブラリ関数の代わりに 代替関数 \fIpglob\->gl_closedir\fP,
"foo/cat", "foo/dog", "bar" のそれぞれについて \fBglob\fP() を呼び出した場合と同じになる。
.TP
\fBGLOB_NOMAGIC\fP
-パターンにメタキャラクタが含まれていない場合、 マッチ結果として指定されたパターンだけを返す。
+ã\83\91ã\82¿ã\83¼ã\83³ã\81«ã\83¡ã\82¿ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\80\81 ã\83\9eã\83\83ã\83\81çµ\90æ\9e\9cã\81¨ã\81\97ã\81¦æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\91ã\82¿ã\83¼ã\83³ã\81 ã\81\91ã\82\92è¿\94ã\81\99ã\80\82
パターンで指定された名前のファイルが存在しない場合であっても、 そのパターンが返される。
.TP
\fBGLOB_TILDE\fP
チルダの展開を行う。 チルダ (\(aq~\(aq) がパターン内の唯一の文字の場合か、先頭のチルダの直後の文字が スラッシュ (\(aq/\(aq)
-の場合、チルダを呼び出し者のホームディレクトリで置換する。 先頭のチルダにユーザ名が続く場合 (例えば "~andrea/bin")、
-チルダとユーザ名をそのユーザのホームディレクトリで置換する。 ユーザ名が無効な場合やホームディレクトリが決定できない場合は、 置換は実行されない。
+の場合、チルダを呼び出し者のホームディレクトリで置換する。 先頭のチルダにユーザー名が続く場合 (例えば "~andrea/bin")、
+チルダとユーザー名をそのユーザーのホームディレクトリで置換する。 ユーザー名が無効な場合やホームディレクトリが決定できない場合は、 置換は実行されない。
.TP
\fBGLOB_TILDE_CHECK\fP
-このフラグを指定すると \fBGLOB_TILDE\fP と同様の振舞いをする。 \fBGLOB_TILDE\fP との違いは、ユーザ名が無効だった場合や
+このフラグを指定すると \fBGLOB_TILDE\fP と同様の振舞いをする。 \fBGLOB_TILDE\fP との違いは、ユーザー名が無効だった場合や
ホームディレクトリが決定できなかった場合に、 パターン自身を使用するのではなく、 \fBglob\fP() がエラーを示す \fBGLOB_NOMATCH\fP
を返すことである。
.TP
\fBglob\fP() は \fIerrfunc\fP の呼び出し後に終了する。
.PP
呼び出しが成功して戻った場合 \fIpglob\->gl_pathc\fP にはマッチしたパス名が含まれ、 \fIpglob\->gl_pathv\fP
-ã\81¯ã\83\9eã\83\83ã\83\81ã\81\97ã\81\9fã\83\91ã\82¹å\90\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81®ã\83ªã\82¹ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¨ã\81ªã\82\8bã\80\82 ã\83\9dã\82¤ã\83³ã\82¿ã\81®ã\83ªã\82¹ã\83\88ã\81¯ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿で終端される。
+ã\81¯ã\83\9eã\83\83ã\83\81ã\81\97ã\81\9fã\83\91ã\82¹å\90\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®ã\83ªã\82¹ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\81ªã\82\8bã\80\82 ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®ã\83ªã\82¹ã\83\88ã\81¯ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼で終端される。
.PP
\fBglob\fP() を何度か続けて呼び出すことができる。その際2回目以降の呼び出しでは \fBGLOB_APPEND\fP フラグが \fIflags\fP
に設定されていなければならない。
.PP
-GNU の拡張として、 \fIpglob\->gl_flags\fP には指定したフラグがセットされる。もし一つでもメタキャラクタが見付かれば
+GNU ã\81®æ\8b¡å¼µã\81¨ã\81\97ã\81¦ã\80\81 \fIpglob\->gl_flags\fP ã\81«ã\81¯æ\8c\87å®\9aã\81\97ã\81\9fã\83\95ã\83©ã\82°ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82ã\82\82ã\81\97ä¸\80ã\81¤ã\81§ã\82\82ã\83¡ã\82¿ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\81\8cè¦\8bä»\98ã\81\8bã\82\8cã\81°
このフラグと \fBGLOB_MAGCHAR\fP との \fBOR\fP を取った結果がセットされる。
.SH 返り値
呼び出しが成功して完了すると \fBglob\fP() は 0 を返す。 それ以外の返り値は以下の通り:
.TP
\fBGLOB_NOSPACE\fP
-メモリを使い果たした
+ã\83¡ã\83¢ã\83ªã\83¼ã\82\92使ã\81\84æ\9e\9cã\81\9fã\81\97ã\81\9f
.TP
\fBGLOB_ABORTED\fP
読み取りエラー
.fi
.SH 説明
\fBgrantpt\fP() 関数は、 \fIfd\fP で参照されたマスタ擬似端末に対応するスレーブ擬似端末デバイス のモードと所有者を変更する。
-スレーブのユーザID は呼び出したプロセスの実 UID に設定される。 グループID として設定される値は規定されていない (例えば \fItty\fP
+スレーブのユーザーID は呼び出したプロセスの実 UID に設定される。 グループID として設定される値は規定されていない (例えば \fItty\fP
になる)。 スレーブのモードは 0620 (crw\-\-w\-\-\-\-) に設定される。
.PP
-\fBSIGCHLD\fP ã\82·ã\82°ã\83\8aã\83«ã\82\92æ\8d\95æ\8d\89ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©が設定されている場合の \fBgrantpt\fP() の動作は規定されていない。
+\fBSIGCHLD\fP ã\82·ã\82°ã\83\8aã\83«ã\82\92æ\8d\95æ\8d\89ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼が設定されている場合の \fBgrantpt\fP() の動作は規定されていない。
.SH 返り値
成功した場合、 \fBgrantpt\fP() は 0 を返す。そうでない場合、\-1 を返し、 \fIerrno\fP に適切な値がセットされる。
.SH エラー
対応するスレーブ擬似端末にアクセスできなかった。
.TP
\fBEBADF\fP
-å¼\95ã\81\8dæ\95° \fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿でない。
+å¼\95ã\81\8dæ\95° \fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼でない。
.TP
\fBEINVAL\fP
引き数 \fIfd\fP は有効だが、マスタ擬似端末に対応するものではない。
.\"
.TH GSIGNAL 3 2007\-07\-26 "" "Linux Programmer's Manual"
.SH 名前
-gsignal, ssignal \- ã\82½ã\83\95ã\83\88ã\82¦ã\82§ã\82¢ã\83»ã\82·ã\82°ã\83\8aã\83«æ©\9fè\83½
+gsignal, ssignal \- ソフトウェアシグナル機能
.SH 書式
.nf
\fB#include <signal.h>\fP
はそれぞれ \fBraise\fP(3) と \fBsignal\fP(2) の別名になっている。
.LP
一方、System V 風のシステムでは、これらの関数で、 従来の \fBsignal\fP(2) や \fBkill\fP(2) の関数群とは完全に独立な、
-ã\82½ã\83\95ã\83\88ã\82¦ã\82§ã\82¢ã\83»ã\82·ã\82°ã\83\8aã\83ªã\83³ã\82°ã\82\92å®\9fç\8f¾ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 \fBssignal\fP() é\96¢æ\95°ã\81¯ã\80\81ç\95ªå\8f· \fIsignum\fP ã\81®ã\82½ã\83\95ã\83\88ã\82¦ã\82§ã\82¢ã\83»シグナルが
+ã\82½ã\83\95ã\83\88ã\82¦ã\82§ã\82¢ã\82·ã\82°ã\83\8aã\83ªã\83³ã\82°ã\82\92å®\9fç\8f¾ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 \fBssignal\fP() é\96¢æ\95°ã\81¯ã\80\81ç\95ªå\8f· \fIsignum\fP ã\81®ã\82½ã\83\95ã\83\88ã\82¦ã\82§ã\82¢シグナルが
\fBgsignal\fP() 関数を使って発生された時にとるべきアクションを定義する。 \fBgsignal\fP()
の返り値は、一つ前に指定されていたアクション、もしくは \fBSIG_DFL\fP である。 \fBgsignal\fP() は以下のような動作を行う:
\fIsignum\fP に対してアクションが指定されていないか、アクション \fBSIG_DFL\fP が指定されていた場合、何もせずに 0 を返す。
ディスクに置かれるテーブルやデータアイテムが大きいテーブルでは ページサイズを大きくするほうが良いだろう。
.TP
\fIffactor\fP
-ユーザが望む hash テーブル中の密度である。 これはそれぞれのバケットに格納できるキーの概数であり、 hash テーブルを拡大・縮小を作用する。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cæ\9c\9bã\82\80 hash ã\83\86ã\83¼ã\83\96ã\83«ä¸ã\81®å¯\86度ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ã\81\9dã\82\8cã\81\9eã\82\8cã\81®ã\83\90ã\82±ã\83\83ã\83\88ã\81«æ ¼ç´\8dã\81§ã\81\8dã\82\8bã\82ã\83¼ã\81®æ¦\82æ\95°ã\81§ã\81\82ã\82\8aã\80\81 hash ã\83\86ã\83¼ã\83\96ã\83«ã\82\92æ\8b¡å¤§ã\83»ç¸®å°\8fã\82\92ä½\9cç\94¨ã\81\99ã\82\8bã\80\82
デフォルトは 8 である。
.TP
\fInelem\fP
テーブルはキーが入ってくるに応じて拡張される。 しかし少しパフォーマンスが (おそらく気付く程度に) 落ちる。 デフォルト値は 1 である。
.TP
\fIcachesize\fP
-メモリキャッシュの最大値 (バイト単位) の参考値。 この値は \fBあくまで参考であり\fP、
-アクセスメソッドはこの値を越えたメモリの割り当てに成功することもある。
+ã\83¡ã\83¢ã\83ªã\83¼ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81®æ\9c\80大å\80¤ (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d) ã\81®å\8f\82è\80\83å\80¤ã\80\82 ã\81\93ã\81®å\80¤ã\81¯ \fBã\81\82ã\81\8fã\81¾ã\81§å\8f\82è\80\83ã\81§ã\81\82ã\82\8a\fPã\80\81
+ã\82¢ã\82¯ã\82»ã\82¹ã\83¡ã\82½ã\83\83ã\83\89ã\81¯ã\81\93ã\81®å\80¤ã\82\92è¶\8aã\81\88ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81®å\89²ã\82\8aå½\93ã\81¦ã\81«æ\88\90å\8a\9fã\81\99ã\82\8bã\81\93ã\81¨ã\82\82ã\81\82ã\82\8bã\80\82
.TP
\fIhash\fP
はユーザー定義の hash 関数である。 全てのデータに対してうまく作用する hash 関数と言うのはないから、 特定のデータセットに対しては組み込みの
hash 関数では パフォーマンスが低いこともあるかもしれない。 ユーザー定義の hash 関数は二つの引数をとらなくてはならない (バイト文字
-列へのポインタと、長さ)。 そして hash 値として使われる 32ビットの値を返さなくてはならない。
+å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\80\81é\95·ã\81\95)ã\80\82 ã\81\9dã\81\97ã\81¦ hash å\80¤ã\81¨ã\81\97ã\81¦ä½¿ã\82\8fã\82\8cã\82\8b 32ã\83\93ã\83\83ã\83\88ã\81®å\80¤ã\82\92è¿\94ã\81\95ã\81ªã\81\8fã\81¦ã\81¯ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.TP
\fIlorder\fP
データベースに格納されているメタデータの整数値のバイトオーダー。 この数字は、順序を整数で表したものである。 例えばビッグエンディアンなら、この数値は
.fi
.SH 説明
\fBhcreate\fP(), \fBhsearch\fP(), \fBhdestroy\fP() の 3 つの関数を利用すると、キー (文字列)
-と対応するデータから構成される エントリを格納できるハッシュ検索テーブルを作成、管理することができる。
+ã\81¨å¯¾å¿\9cã\81\99ã\82\8bã\83\87ã\83¼ã\82¿ã\81\8bã\82\89æ§\8bæ\88\90ã\81\95ã\82\8cã\82\8b ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92æ ¼ç´\8dã\81§ã\81\8dã\82\8bã\83\8fã\83\83ã\82·ã\83¥æ¤\9cç´¢ã\83\86ã\83¼ã\83\96ã\83«ã\82\92ä½\9cæ\88\90ã\80\81管ç\90\86ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
これらの関数を使って、一度に使用できるのは一つのハッシュテーブルだけである。
\fBhcreate_r\fP(), \fBhsearch_r\fP(), \fBhdestroy_r\fP() の 3
つの関数はリエントラント版で、これらを利用すると、 一つのプログラムで同時に複数のハッシュテーブルを使うことができる。 最後の引き数 \fIhtab\fP
-は関数の操作対象となるテーブルを示す構造体へのポインタである。 プログラマはこの構造体をブラックボックスとして扱うべきである
+ã\81¯é\96¢æ\95°ã\81®æ\93\8dä½\9c対象ã\81¨ã\81ªã\82\8bã\83\86ã\83¼ã\83\96ã\83«ã\82\92示ã\81\99æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\83\97ã\83ã\82°ã\83©ã\83\9eã\81¯ã\81\93ã\81®æ§\8bé\80 ä½\93ã\82\92ã\83\96ã\83©ã\83\83ã\82¯ã\83\9cã\83\83ã\82¯ã\82¹ã\81¨ã\81\97ã\81¦æ\89±ã\81\86ã\81¹ã\81\8dã\81§ã\81\82ã\82\8b
(つまり、この構造体のフィールドに直接アクセスしたり変更したり しないこと)。
.\" e.g., in glibc it is raised to the next higher prime number
-最初に、 \fBhcreate\fP() 関数によってハッシュテーブルを作成しなければならない。 引き数 \fInel\fP でテーブルの最大エントリ数を指定する
-(この最大値は後で変更することはできないので、よく考えて選択すること)。 作成されるハッシュテーブルの性能を向上させるために、
-関数内部の実装によりこの値は増やされる場合もある。
+最初に、 \fBhcreate\fP() 関数によってハッシュテーブルを作成しなければならない。 引き数 \fInel\fP
+でテーブルの最大エントリー数を指定する (この最大値は後で変更することはできないので、よく考えて選択すること)。
+作成されるハッシュテーブルの性能を向上させるために、 関数内部の実装によりこの値は増やされる場合もある。
\fBhcreate_r\fP() 関数は \fBhcreate\fP() と同じ動作をするが、構造体 \fI*htab\fP
で示されるテーブルを対象として動作する。 \fIhtab\fP が指し示す構造体は、 \fBhcreate_r\fP() を初めて呼び出す前に 0
で埋めておかなければならない。
-\fBhdestroy\fP() 関数は、 \fBhcreate\fP() で作成されたハッシュテーブルが占有していたメモリを解放する。
-ハッシュテーブルによって占有されていたメモリを解放し、 新しいテーブルを作成できるようにする。 \fBhdestroy\fP() を呼び出すと、その後は
+\fBhdestroy\fP() é\96¢æ\95°ã\81¯ã\80\81 \fBhcreate\fP() ã\81§ä½\9cæ\88\90ã\81\95ã\82\8cã\81\9fã\83\8fã\83\83ã\82·ã\83¥ã\83\86ã\83¼ã\83\96ã\83«ã\81\8cå\8d æ\9c\89ã\81\97ã\81¦ã\81\84ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\92解æ\94¾ã\81\99ã\82\8bã\80\82
+ã\83\8fã\83\83ã\82·ã\83¥ã\83\86ã\83¼ã\83\96ã\83«ã\81«ã\82\88ã\81£ã\81¦å\8d æ\9c\89ã\81\95ã\82\8cã\81¦ã\81\84ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\92解æ\94¾ã\81\97ã\80\81 æ\96°ã\81\97ã\81\84ã\83\86ã\83¼ã\83\96ã\83«ã\82\92ä½\9cæ\88\90ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\80\82 \fBhdestroy\fP() ã\82\92å\91¼ã\81³å\87ºã\81\99ã\81¨ã\80\81ã\81\9dã\81®å¾\8cã\81¯
\fBhcreate\fP() を使って新しいハッシュテーブルを作成することができる。 \fBhdestroy_r\fP() 関数は、同様の処理を、それ以前に
\fBhcreate_r\fP() を使って作成した \fI*htab\fP で示されるハッシュテーブルに対して実行する。
\fBhsearch\fP() 関数は、\fIitem\fP と同じキーを持つ項目をハッシュテーブルから
-検索し、項目が見つかった場合にはその項目へのポインタを返す (「同じ」かどうかは \fBstrcmp\fP(3) を使って判定する)。
+æ¤\9cç´¢ã\81\97ã\80\81é \85ç\9b®ã\81\8cè¦\8bã\81¤ã\81\8bã\81£ã\81\9få ´å\90\88ã\81«ã\81¯ã\81\9dã\81®é \85ç\9b®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99 (ã\80\8cå\90\8cã\81\98ã\80\8dã\81\8bã\81©ã\81\86ã\81\8bã\81¯ \fBstrcmp\fP(3) ã\82\92使ã\81£ã\81¦å\88¤å®\9aã\81\99ã\82\8b)ã\80\82
引き数 \fIitem\fP は \fBENTRY\fP 型であり、\fI<search.h>\fP の中で 以下のように定義されている。
.in +4n
検索が失敗した後の動作は、引き数 \fIaction\fP により決まる。 この引き数には \fBENTER\fP か \fBFIND\fP
のいずれかの値を指定しなければならない。 \fBENTER\fP は \fIitem\fP のコピーを挿入することを
-(é\96¢æ\95°ã\81®çµ\90æ\9e\9cã\81¨ã\81\97ã\81¦æ\96°ã\81\97ã\81\84ã\83\8fã\83\83ã\82·ã\83¥ã\83\86ã\83¼ã\83\96ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す)、 \fBFIND\fP は NULL を返すことを意味する (\fIaction\fP が
+(é\96¢æ\95°ã\81®çµ\90æ\9e\9cã\81¨ã\81\97ã\81¦æ\96°ã\81\97ã\81\84ã\83\8fã\83\83ã\82·ã\83¥ã\83\86ã\83¼ã\83\96ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す)、 \fBFIND\fP は NULL を返すことを意味する (\fIaction\fP が
\fBFIND\fP の場合、 \fIdata\fP は無視される)。
\fBhsearch_r\fP() 関数は \fBhsearch\fP() と同様だが、 \fI*htab\fP で示されるハッシュテーブルに対して処理を行う。
-\fBhsearch_r\fP() 関数が \fBhsearch\fP() と異なるのは、見つかった項目へのポインタを、 関数の結果としてではなく、
+\fBhsearch_r\fP() é\96¢æ\95°ã\81\8c \fBhsearch\fP() ã\81¨ç\95°ã\81ªã\82\8bã\81®ã\81¯ã\80\81è¦\8bã\81¤ã\81\8bã\81£ã\81\9fé \85ç\9b®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92ã\80\81 é\96¢æ\95°ã\81®çµ\90æ\9e\9cã\81¨ã\81\97ã\81¦ã\81§ã\81¯ã\81ªã\81\8fã\80\81
\fI*retval\fP に格納して返す点である。
.SH 返り値
\fBhcreate\fP() と \fBhcreate_r\fP() は、成功した場合 0 以外の値を返す。 エラーの場合 0 を返し、 \fIerrno\fP
にエラーの原因を示す値を設定する。
-æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 \fBhsearch\fP() ã\81¯ã\80\81ã\83\8fã\83\83ã\82·ã\83¥ã\83\86ã\83¼ã\83\96ã\83«å\86\85ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81 \fBhsearch\fP() ã\81¯ NULL
-を返す。 エラーとなるのは、 \fIaction\fP が \fBENTER\fP でハッシュテーブルがいっぱいの場合か、 \fIaction\fP が \fBFIND\fP
-で \fIitem\fP がハッシュテーブル内に 見つからない場合である。 \fBhsearch_r\fP() は、成功すると 0 以外を返し、エラーの場合 0
-を返す。 エラーの場合、 これら二つの関数は \fIerrno\fP にエラーの原因を示す値を設定する。
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 \fBhsearch\fP() ã\81¯ã\80\81ã\83\8fã\83\83ã\82·ã\83¥ã\83\86ã\83¼ã\83\96ã\83«å\86\85ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81 \fBhsearch\fP() ã\81¯
+NULL を返す。 エラーとなるのは、 \fIaction\fP が \fBENTER\fP でハッシュテーブルがいっぱいの場合か、 \fIaction\fP が
+\fBFIND\fP で \fIitem\fP がハッシュテーブル内に 見つからない場合である。 \fBhsearch_r\fP() は、成功すると 0
+以外を返し、エラーの場合 0 を返す。 エラーの場合、 これら二つの関数は \fIerrno\fP にエラーの原因を示す値を設定する。
.SH エラー
.LP
\fBhcreate_r\fP() と \fBhdestroy_r\fP() は以下の理由で失敗する可能性がある。
\fBhsearch\fP() と \fBhsearch_r\fP() は以下の理由で失敗する可能性がある。
.TP
\fBENOMEM\fP
-\fIaction\fP が \fBENTER\fP で、 \fIkey\fP がテーブル内に見つからず、 テーブルに新しいエントリを追加する余地がなかった。
+\fIaction\fP ã\81\8c \fBENTER\fP ã\81§ã\80\81 \fIkey\fP ã\81\8cã\83\86ã\83¼ã\83\96ã\83«å\86\85ã\81«è¦\8bã\81¤ã\81\8bã\82\89ã\81\9aã\80\81 ã\83\86ã\83¼ã\83\96ã\83«ã\81«æ\96°ã\81\97ã\81\84ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92追å\8a ã\81\99ã\82\8bä½\99å\9c°ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBESRCH\fP
\fIaction\fP が \fBFIND\fP で、 \fIkey\fP がテーブル内に見つからなかった。
に記述されている。 関数 \fBhcreate_r\fP, \fBhsearch_r\fP, \fBhdestroy_r\fP は GNU の拡張である。
.SH 注意
通常、ハッシュテーブルの実装は、衝突を最小限にするために テーブルに十分な空き領域がある場合に効率がよくなる。 このため、普通は、 \fInel\fP
-を、呼び出し側がテーブルに格納しようと思っている エントリの最大数より少なくとも 25% は大きな値にすべきである。
+ã\82\92ã\80\81å\91¼ã\81³å\87ºã\81\97å\81´ã\81\8cã\83\86ã\83¼ã\83\96ã\83«ã\81«æ ¼ç´\8dã\81\97ã\82\88ã\81\86ã\81¨æ\80\9dã\81£ã\81¦ã\81\84ã\82\8b ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®æ\9c\80大æ\95°ã\82\88ã\82\8aå°\91ã\81ªã\81\8fã\81¨ã\82\82 25% ã\81¯å¤§ã\81\8dã\81ªå\80¤ã\81«ã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82
-\fBhdestroy\fP() と \fBhdestroy_r\fP() は、ハッシュテーブルのエントリの要素である \fIkey\fP と \fIdata\fP
-ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92解æ\94¾ã\81\97ã\81ªã\81\84 (ã\81\93ã\82\8cã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\81®ã\81¯ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\90ã\83\83ã\83\95ã\82¡が動的に割り当てられたのかを 知ることができないからである)。
-ã\81\93ã\82\8cã\82\89ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92解æ\94¾ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\80\81 ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\81¯ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92解æ\94¾ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ç®¡ç\90\86ç\94¨ã\81®ã\83\87ã\83¼ã\82¿æ§\8bé\80 ã\82\92 è¨ã\81\91ã\81¦ã\80\81ã\81\93ã\82\8cã\82\92管ç\90\86ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84
-(解放が必要となる理由は、たいていは、プログラム自身と生存期間が同じ ハッシュテーブルを一つだけ作成するのではなく、そのプログラムでは複数の
-ハッシュテーブルを繰り返して作成したり破棄したりするからであろう)。
+\fBhdestroy\fP() ã\81¨ \fBhdestroy_r\fP() ã\81¯ã\80\81ã\83\8fã\83\83ã\82·ã\83¥ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®è¦\81ç´ ã\81§ã\81\82ã\82\8b \fIkey\fP ã\81¨ \fIdata\fP
+ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92解æ\94¾ã\81\97ã\81ªã\81\84 (ã\81\93ã\82\8cã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\81®ã\81¯ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼が動的に割り当てられたのかを 知ることができないからである)。
+ã\81\93ã\82\8cã\82\89ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92解æ\94¾ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\80\81 ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\81¯ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92解æ\94¾ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ç®¡ç\90\86ç\94¨ã\81®ã\83\87ã\83¼ã\82¿æ§\8bé\80 ã\82\92
+設けて、これを管理しなければならない (解放が必要となる理由は、たいていは、プログラム自身と生存期間が同じ
+ハッシュテーブルを一つだけ作成するのではなく、そのプログラムでは複数の ハッシュテーブルを繰り返して作成したり破棄したりするからであろう)。
.SH バグ
SVr4 と POSIX.1\-2001 の規定では、 \fIaction\fP は検索が失敗したときにだけ意味を持つとなっている。
よって、検索が成功した場合、\fIaction\fP の値が \fBENTER\fP でも 何もすべきではない。 (バージョン 2.3 より前の) libc と
for (i = 0; i < 24; i++) {
e.key = data[i];
- /* データは、ポインタではなく、単なる整数値である。 */
+ /* ã\83\87ã\83¼ã\82¿ã\81¯ã\80\81ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\8fã\80\81å\8d\98ã\81ªã\82\8bæ\95´æ\95°å\80¤ã\81§ã\81\82ã\82\8bã\80\82 */
e.data = (void *) i;
ep = hsearch(e, ENTER);
/* エラーは起こらないはずである。 */
}
for (i = 22; i < 26; i++) {
- /* テーブルにある 2 つのエントリを表示し、
+ /* ã\83\86ã\83¼ã\83\96ã\83«ã\81«ã\81\82ã\82\8b 2 ã\81¤ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92表示ã\81\97ã\80\81
あとの 2 つがテーブルにないことを示す。 */
e.key = data[i];
ep = hsearch(e, FIND);
\fBiconv\fP() 関数は、ある文字エンコーディングの文字シーケンス列を別の文字
エンコーディングの文字シーケンスに変換する。\fIcd\fP 引き数は変換ディスク
リプタ (conversion descriptor) であり、以前は \fBiconv_open\fP(3) を呼び出
-すことで生成されていた。変換ディスクリプタは \fBiconv\fP() が変換に使用す
+ã\81\99ã\81\93ã\81¨ã\81§ç\94\9fæ\88\90ã\81\95ã\82\8cã\81¦ã\81\84ã\81\9fã\80\82å¤\89æ\8f\9bã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ \fBiconv\fP() ã\81\8cå¤\89æ\8f\9bã\81«ä½¿ç\94¨ã\81\99
る文字エンコーディングを定義するものである。 \fIinbuf\fP 引き数は入力シー
ケンスの先頭バイトを指す変数のアドレスであり、\fIinbytesleft\fP は入力シー
-ã\82±ã\83³ã\82¹ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\81®ã\83\90ã\82¤ã\83\88æ\95°ã\82\92示ã\81\99ã\80\82\fIoutbuf\fP å¼\95ã\81\8dæ\95°ã\81¯å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡で利用
+ã\82±ã\83³ã\82¹ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\90ã\82¤ã\83\88æ\95°ã\82\92示ã\81\99ã\80\82\fIoutbuf\fP å¼\95ã\81\8dæ\95°ã\81¯å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼で利用
できる先頭バイトを指す変数のアドレスであり、 \fIoutbytesleft\fP は出力
-バッファのバイト数を示す。
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\90ã\82¤ã\83\88æ\95°ã\82\92示ã\81\99ã\80\82
.PP
主に使われるのは、 「\fIinbuf\fP が NULL でなく、かつ \fI*inbuf\fP が NULL でない」 という場合である。 この場合、
\fBiconv\fP() 関数は、 \fI*inbuf\fP で始まるマルチバイト文字列を \fI*outbuf\fP で始まるマルチバイト文字列に変換する。
エンコーディングによっては、バイト 0 もマルチバイト文字の有効な
構成要素の場合がある。
-\fBiconv\fP() の呼び出し元は、 \fBiconv\fP() に渡すポインタが、
+\fBiconv\fP() ã\81®å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯ã\80\81 \fBiconv\fP() ã\81«æ¸¡ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cã\80\81
必要な文字集合の文字にアクセスするのに適したものとなっていることを
保証しなければならない。これには、アライメントに関して厳しい制限が
あるプラットフォームにおいて正しいアライメントになっていることを
.\"
.TH ICONV_OPEN 3 2008\-08\-11 GNU "Linux Programmer's Manual"
.SH 名前
-iconv_open \- 文字セット変換のためのディスクリプタを割り当てる
+iconv_open \- æ\96\87å\97ã\82»ã\83\83ã\83\88å¤\89æ\8f\9bã\81®ã\81\9fã\82\81ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8b
.SH 書式
.nf
\fB#include <iconv.h>\fP
.fi
.SH 説明
\fBiconv_open\fP() 関数は、文字エンコーディング \fIfromcode\fP から 文字エンコーディング \fItocode\fP
-へのバイト文字列変換に適した 変換ディスクリプタを割り当てる。
+ã\81¸ã\81®ã\83\90ã\82¤ã\83\88æ\96\87å\97å\88\97å¤\89æ\8f\9bã\81«é\81©ã\81\97ã\81\9f å¤\89æ\8f\9bã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\80\82
.PP
\fIfromcode\fP と \fItocode\fP に使うことのできる値と、 サポートされる組み合わせは、システムに依存する。 GNU C
ライブラリでは、使うことのできる値は \fIiconv \-\-list\fP コマンドでリストされ、 リストされたすべての値の組み合わせがサポートされる。
//IGNORE
\fItocode\fP の後ろに文字列 "//IGNORE" が付いている場合、 変換先の文字セットで表現できない文字は黙って無視される。
.PP
-この関数を読んで得られた変換ディスクリプタは、 \fBiconv\fP(3) で 何度でも使うことができる。 これは \fBiconv_close\fP(3)
+ã\81\93ã\81®é\96¢æ\95°ã\82\92èªã\82\93ã\81§å¾\97ã\82\89ã\82\8cã\81\9få¤\89æ\8f\9bã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81 \fBiconv\fP(3) ã\81§ ä½\95度ã\81§ã\82\82使ã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ \fBiconv_close\fP(3)
を使って解放されるまで有効である。
.PP
-変換ディスクリプタは変換状態を持つ。 \fBiconv_open\fP() を用いて生成された後、変換状態は初期状態である。 \fBiconv\fP(3)
-ã\82\92使ã\81\86ã\81\93ã\81¨ã\81«ã\82\88ã\82\8aã\80\81ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®å¤\89æ\8f\9bç\8a¶æ\85\8bã\81\8cå¤\89æ\9b´ã\81\95ã\82\8cã\82\8bã\80\82 (å¤\89æ\8f\9bã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿はマルチスレッドで 同時に使うことができないことを意味している。)
+å¤\89æ\8f\9bã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯å¤\89æ\8f\9bç\8a¶æ\85\8bã\82\92æ\8c\81ã\81¤ã\80\82 \fBiconv_open\fP() ã\82\92ç\94¨ã\81\84ã\81¦ç\94\9fæ\88\90ã\81\95ã\82\8cã\81\9få¾\8cã\80\81å¤\89æ\8f\9bç\8a¶æ\85\8bã\81¯å\88\9dæ\9c\9fç\8a¶æ\85\8bã\81§ã\81\82ã\82\8bã\80\82 \fBiconv\fP(3)
+ã\82\92使ã\81\86ã\81\93ã\81¨ã\81«ã\82\88ã\82\8aã\80\81ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®å¤\89æ\8f\9bç\8a¶æ\85\8bã\81\8cå¤\89æ\9b´ã\81\95ã\82\8cã\82\8bã\80\82 (å¤\89æ\8f\9bã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼はマルチスレッドで 同時に使うことができないことを意味している。)
変換状態を初期状態に戻すには、 \fIinbuf\fP 引き数を NULL として \fBiconv\fP(3) を用いること。
.SH 返り値
-\fBiconv_open\fP() 関数は、新たに割り当てられた変換ディスクリプタを返す。 エラーの場合、この関数は \fIerrno\fP を設定し、
+\fBiconv_open\fP() é\96¢æ\95°ã\81¯ã\80\81æ\96°ã\81\9fã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9få¤\89æ\8f\9bã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81ã\81\93ã\81®é\96¢æ\95°ã\81¯ \fIerrno\fP ã\82\92è¨å®\9aã\81\97ã\80\81
\fI(iconv_t)\ \-1\fP を返す。
.SH エラー
他のいろいろなエラーのうち、以下のエラーが起こりうる。
.PP
\fIif_index\fP フィールドにはインターフェースのインデックスが入る。 \fIifa_name\fP
フィールドはヌル終端されたインターフェース名を指す。 配列の最後は、 \fIif_index\fP が 0 で \fIifa_name\fP が NULL
-のエントリで示される。
+ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81§ç¤ºã\81\95ã\82\8cã\82\8bã\80\82
.PP
\fBif_nameindex\fP() が返すデータ構造体は動的に確保される。 必要なくなった際には \fBif_freenameindex\fP()
で解放すべきである。
.SH 返り値
-成功した場合には \fBif_nameindex\fP() は配列へのポインタを返す。エラー時には NULL が返され、 \fIerrno\fP
+æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\81«ã\81¯ \fBif_nameindex\fP() ã\81¯é\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82ã\82¨ã\83©ã\83¼æ\99\82ã\81«ã\81¯ NULL ã\81\8cè¿\94ã\81\95ã\82\8cã\80\81 \fIerrno\fP
が適切に設定される。
.SH エラー
\fBif_nameindex\fP() が失敗した場合には以下の \fIerrno\fP が設定される。
\fBif_nametoindex\fP() 関数は、 名前が \fIifname\fP のネットワークインターフェースのインデックスを返す。
\fBif_indextoname\fP() 関数は、 インターフェースのインデックスが \fIifindex\fP
-ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®å\90\8då\89\8dã\82\92è¿\94ã\81\99ã\80\82 å\90\8då\89\8dã\81¯ \fIifname\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡は少なくとも
+ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®å\90\8då\89\8dã\82\92è¿\94ã\81\99ã\80\82 å\90\8då\89\8dã\81¯ \fIifname\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼は少なくとも
\fBIF_NAMESIZE\fP バイトの領域が必要である。
.SH 返り値
成功した場合、 \fBif_nametoindex\fP() はネットワークインターフェースのインデックス番号を返す。エラーの場合、 0 を返し、
\fBchar *rindex(const char *\fP\fIs\fP\fB, int \fP\fIc\fP\fB);\fP
.fi
.SH 説明
-\fBindex\fP() 関数は、文字列 \fIs\fP 中に最初に文字 \fIc\fP が 現れた位置へのポインタを返す。
+\fBindex\fP() é\96¢æ\95°ã\81¯ã\80\81æ\96\87å\97å\88\97 \fIs\fP ä¸ã\81«æ\9c\80å\88\9dã\81«æ\96\87å\97 \fIc\fP ã\81\8c ç\8f¾ã\82\8cã\81\9fä½\8dç½®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.PP
-\fBrindex\fP() 関数は、文字列 \fIs\fP 中に最後に文字 \fIc\fP が 現れた位置へのポインタを返す。
+\fBrindex\fP() é\96¢æ\95°ã\81¯ã\80\81æ\96\87å\97å\88\97 \fIs\fP ä¸ã\81«æ\9c\80å¾\8cã\81«æ\96\87å\97 \fIc\fP ã\81\8c ç\8f¾ã\82\8cã\81\9fä½\8dç½®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.PP
文字列を終端するヌルバイト (\(aq\e0\(aq) は、文字列の一部とみなされる。
.SH 返り値
-\fBindex\fP() と \fBrindex\fP() 関数は、一致した文字へのポインタか、 もし文字が見つからない場合は NULL を返す。
+\fBindex\fP() ã\81¨ \fBrindex\fP() é\96¢æ\95°ã\81¯ã\80\81ä¸\80è\87´ã\81\97ã\81\9fæ\96\87å\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8bã\80\81 ã\82\82ã\81\97æ\96\87å\97ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\84å ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
関数 \fBindex\fP() と \fBrindex\fP() はスレッドセーフである。
ホストバイトオーダの数値に変換する。 成功すると、変換されたアドレスを返す。 入力が不正な場合は \-1 を返す。
.PP
\fBinet_ntoa\fP() 関数は、ネットワークバイトオーダで渡されたインターネットホストアドレス \fIin\fP を、 IPv4 のドット区切りの
-10 進数表記の文字列に変換する。 文字列は静的に割当てられたバッファに格納されて返されるので、 この後でこの関数を再度呼び出すと文字列は上書きされる。
+10 進数表記の文字列に変換する。 文字列は静的に割当てられたバッファーに格納されて返されるので、
+この後でこの関数を再度呼び出すと文字列は上書きされる。
.PP
\fBinet_lnaof\fP() 関数は、インターネットアドレス \fIin\fP のローカルネットワーク部分を返す。 この返り値はホストバイトオーダである。
.PP
.fi
.SH 説明
この関数は、 \fIaf\fP アドレスファミリーのネットワークアドレス構造体 \fIsrc\fP を文字列に変換する。 変換結果の文字列は、 \fIdst\fP
-ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\81«ã\82³ã\83\94ã\83¼ã\81\95ã\82\8cã\82\8bã\80\82 \fIdst\fP ã\81¯ NULL ã\81§ã\81ªã\81\84ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 å\91¼ã\81³å\87ºã\81\97æ\99\82ã\81«ã\80\81ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\81§å\88©ç\94¨ã\81§ã\81\8dã\82\8bã\83\90ã\82¤ã\83\88æ\95°ã\82\92 å¼\95ã\81\8dæ\95°
-\fIsize\fP に指定する。
+ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\82³ã\83\94ã\83¼ã\81\95ã\82\8cã\82\8bã\80\82 \fIdst\fP ã\81¯ NULL ã\81§ã\81ªã\81\84ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 å\91¼ã\81³å\87ºã\81\97æ\99\82ã\81«ã\80\81ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§å\88©ç\94¨ã\81§ã\81\8dã\82\8bã\83\90ã\82¤ã\83\88æ\95°ã\82\92
+引き数 \fIsize\fP に指定する。
.PP
\fBinet_ntop\fP() は \fBinet_ntoa\fP(3) 関数を拡張して複数のアドレスファミリーを扱えるようにしたものである。 今後は
\fBinet_ntoa\fP(3) は使わず、 \fBinet_ntop\fP() を使うようにすると良いだろう。
現在サポートされているアドレスファミリーは以下の通り:
.TP
\fBAF_INET\fP
-この場合 \fIsrc\fP は (ネットワークバイトオーダーの) \fIstruct in_addr\fP へのポインタとみなされ、この構造体の内容が
-ドット区切りの 10 進数形式 "\fIddd.ddd.ddd.ddd\fP" の IPv4 ネットワークアドレスに変換される。 バッファ \fIdst\fP
+ã\81\93ã\81®å ´å\90\88 \fIsrc\fP ã\81¯ (ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\83\90ã\82¤ã\83\88ã\82ªã\83¼ã\83\80ã\83¼ã\81®) \fIstruct in_addr\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\81¿ã\81ªã\81\95ã\82\8cã\80\81ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81®å\86\85容ã\81\8c
+ドット区切りの 10 進数形式 "\fIddd.ddd.ddd.ddd\fP" の IPv4 ネットワークアドレスに変換される。 バッファー \fIdst\fP
は少なくとも \fBINET_ADDRSTRLEN\fP バイトの長さを持たなければならない。
.TP
\fBAF_INET6\fP
-この場合 \fIsrc\fP は (ネットワークバイトオーダーの) \fIstruct in6_addr\fP へのポインタとみなされ、この構造体の内容が、
-(このアドレスに対してもっとも適切な) IPv6 ネットワークアドレスの表示形式に変換される。 バッファ \fIdst\fP は少なくとも
+ã\81\93ã\81®å ´å\90\88 \fIsrc\fP ã\81¯ (ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\83\90ã\82¤ã\83\88ã\82ªã\83¼ã\83\80ã\83¼ã\81®) \fIstruct in6_addr\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\81¿ã\81ªã\81\95ã\82\8cã\80\81ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81®å\86\85容ã\81\8cã\80\81
+(このアドレスに対してもっとも適切な) IPv6 ネットワークアドレスの表示形式に変換される。 バッファー \fIdst\fP は少なくとも
\fBINET6_ADDRSTRLEN\fP バイトの長さを持たなければならない。
.SH 返り値
-成功すると、 \fBinet_ntop\fP() は \fIdst\fP への (NULL でない) ポインタを返す。 エラーがあった場合は NULL を返し、
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 \fBinet_ntop\fP() ã\81¯ \fIdst\fP ã\81¸ã\81® (NULL ã\81§ã\81ªã\81\84) ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81\8cã\81\82ã\81£ã\81\9få ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\97ã\80\81
\fIerrno\fP をエラーを示す値に適切に設定する。
.SH エラー
.TP
現在サポートされているアドレスファミリーは以下の通りである。
.TP
\fBAF_INET\fP
-\fIsrc\fP はドット区切りの 10 進数形式 "\fIddd.ddd.ddd.ddd\fP" の IPv4 ネットワークアドレス文字列へのポインタである。
+\fIsrc\fP ã\81¯ã\83\89ã\83\83ã\83\88å\8cºå\88\87ã\82\8aã\81® 10 é\80²æ\95°å½¢å¼\8f "\fIddd.ddd.ddd.ddd\fP" ã\81® IPv4 ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¢ã\83\89ã\83¬ã\82¹æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
\fIddd\fP は 0 から 255 までの範囲の最大 3 桁の 10 進数である。 このアドレスは \fIstruct in_addr\fP に変換されて
\fIdst\fP にコピーされる。 \fIdst\fP の長さは \fIsizeof(struct in_addr)\fP (4) バイト (32ビット)
でなければならない。
.TP
\fBAF_INET6\fP
-\fIsrc\fP は IPv6 ネットワークアドレスが格納された文字列へのポインタである。 このアドレスは \fIstruct in6_addr\fP
+\fIsrc\fP ã\81¯ IPv6 ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81¯ \fIstruct in6_addr\fP
に変換されて \fIdst\fP にコピーされる。 \fIdst\fP の長さは \fIsizeof(struct in6_addr)\fP (16) バイト (128
ビット) でなければならない。 以下の 3 つのルールにしたがった形式が IPv6 アドレスとして入力できる。
.RS
.SH エラー
.TP
\fBENOMEM\fP
-グループ情報構造体を配置するためのメモリが不足している。
+ã\82°ã\83«ã\83¼ã\83\97æ\83\85å ±æ§\8bé\80 ä½\93ã\82\92é\85\8dç½®ã\81\99ã\82\8bã\81\9fã\82\81ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cä¸\8d足ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fBEPERM\fP
呼出しプロセスが十分な特権を持っていない。 この関数の裏で実行されるシステムコール \fBsetgroups\fP(2) も参照のこと。
.SH 説明
関数 \fBinsque\fP() と \fBremque\fP() は双方向連結リスト (doubly\-linked list) を
操作する。リスト中のそれぞれの要素は、最初の二つの要素がそれぞれ次と前への
-ポインタであるような構造体である。
+ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\82\88ã\81\86ã\81ªæ§\8bé\80 ä½\93ã\81§ã\81\82ã\82\8bã\80\82
リンクリストは、線形 (linear) か環状 (circular) のどちらかになる
-(線形の場合には、リストの末尾では次へのポインタが NULL になり、
-リストの先頭では前へのポインタが NULL になる)。
+(ç·\9aå½¢ã\81®å ´å\90\88ã\81«ã\81¯ã\80\81ã\83ªã\82¹ã\83\88ã\81®æ\9c«å°¾ã\81§ã\81¯æ¬¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8c NULL ã\81«ã\81ªã\82\8aã\80\81
+ã\83ªã\82¹ã\83\88ã\81®å\85\88é ã\81§ã\81¯å\89\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8c NULL ã\81«ã\81ªã\82\8b)ã\80\82
\fBinsque\fP() 関数は \fIelem\fP で示される要素を \fIprev\fP で示される
要素の直後に挿入する。
リストが線形の場合、\fIinsque(elem, NULL)\fP を呼び出すと、
リストの最初の要素を挿入することができる。
-ã\81\93ã\81®å\91¼ã\81³å\87ºã\81\97ã\82\92è¡\8cã\81\86ã\81¨ \fIelem\fP ã\81®æ¬¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¨å\89\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿に
+ã\81\93ã\81®å\91¼ã\81³å\87ºã\81\97ã\82\92è¡\8cã\81\86ã\81¨ \fIelem\fP ã\81®æ¬¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨å\89\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼に
共に NULL が設定される。
-ã\83ªã\82¹ã\83\88ã\81\8cç\92°ç\8a¶ã\81®å ´å\90\88ã\80\81å\91¼ã\81³å\87ºã\81\99å\81´ã\81\8cã\80\81æ\9c\80å\88\9dã\81®è¦\81ç´ ã\81®æ¬¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¨å\89\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿
+ã\83ªã\82¹ã\83\88ã\81\8cç\92°ç\8a¶ã\81®å ´å\90\88ã\80\81å\91¼ã\81³å\87ºã\81\99å\81´ã\81\8cã\80\81æ\9c\80å\88\9dã\81®è¦\81ç´ ã\81®æ¬¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨å\89\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼
が自分自身を指し、また \fBinsque\fP() の呼び出しで \fIprev\fP 引き数が最初の要素
を指すように保証しなければならない。
glibc 2.4 以前では \fIprev\fP に NULL を指定することができなかった。
その結果、線形のリストを作成するためには、
呼び出し側は、最初の呼び出しで、リストの最初の 2 つの要素を持ち、
-å\90\84è¦\81ç´ ã\81®æ¬¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¨å\89\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を適切に初期化したリストを
+å\90\84è¦\81ç´ ã\81®æ¬¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨å\89\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を適切に初期化したリストを
作成しなければならなかった。
.SH 例
次のプログラムは \fBinsque\fP() の使用法を示したものである。
この章で説明している関数の多くは標準 C ライブラリ (\fIlibc\fP) のものである。 また、いくつかの関数は、他のライブラリ
(例えば、数学ライブラリの \fIlibm\fP やリアルタイムライブラリ \fIlibrt )\fP のものである。後者の場合は、マニュアルページに、
-必要なライブラリとリンクするために必要なリンカオプションが 示されている (例えば、前述のライブラリの場合はそれぞれ \fI\-lm\fP や \fI\-lrt\fP
+å¿\85è¦\81ã\81ªã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81¨ã\83ªã\83³ã\82¯ã\81\99ã\82\8bã\81\9fã\82\81ã\81«å¿\85è¦\81ã\81ªã\83ªã\83³ã\82«ã\83¼ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8c 示ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b (ä¾\8bã\81\88ã\81°ã\80\81å\89\8dè¿°ã\81®ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81®å ´å\90\88ã\81¯ã\81\9dã\82\8cã\81\9eã\82\8c \fI\-lm\fP ã\82\84 \fI\-lrt\fP
である)。
.\"
.\" .IP (3X)
.\" Various special libraries. The manual pages documenting their functions
.\" specify the library names.
-マニュアルページの「書式」の節に規定されたヘッダファイルから関数の定義を 得るために、プログラマが機能検査マクロを定義しなければならない場合がある。
+ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81®ã\80\8cæ\9b¸å¼\8fã\80\8dã\81®ç¯\80ã\81«è¦\8få®\9aã\81\95ã\82\8cã\81\9fã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89é\96¢æ\95°ã\81®å®\9a義ã\82\92 å¾\97ã\82\8bã\81\9fã\82\81ã\81«ã\80\81ã\83\97ã\83ã\82°ã\83©ã\83\9eã\81\8cæ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83ã\82\92å®\9a義ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84å ´å\90\88ã\81\8cã\81\82ã\82\8bã\80\82
このような場合には、必要なマクロがマニュアルページで説明されている。 (機能検査マクロの定義が必要な場合、これらの機能検査マクロの定義は
-「どの」ヘッダファイルのインクルードよりも前で行われなければならない)。 機能検査マクロのさらなる情報については、
+ã\80\8cã\81©ã\81®ã\80\8dã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\82\88ã\82\8aã\82\82å\89\8dã\81§è¡\8cã\82\8fã\82\8cã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84)ã\80\82 æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83ã\81®ã\81\95ã\82\89ã\81ªã\82\8bæ\83\85å ±ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\80\81
\fBfeature_test_macros\fP(7) を参照のこと。
.SH 準拠
この章の関数が準拠する UNIX システムや標準を示すのにいくつかの単語や略号が 使用されている。 \fBstandards\fP(7) を参照のこと。
.SH 注意
.SS 著者と著作権
-著者と著作権に関しては各マニュアルページのソースのヘッダを参照すること。 これらはページごとに異なる可能性があることに注意してほしい。
+è\91\97è\80\85ã\81¨è\91\97ä½\9c権ã\81«é\96¢ã\81\97ã\81¦ã\81¯å\90\84ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81®ã\82½ã\83¼ã\82¹ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82 ã\81\93ã\82\8cã\82\89ã\81¯ã\83\9aã\83¼ã\82¸ã\81\94ã\81¨ã\81«ç\95°ã\81ªã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\80\82
.SH 関連項目
\fBintro\fP(2), \fBerrno\fP(3), \fBcapabilities\fP(7), \fBcredentials\fP(7),
\fBenviron\fP(7), \fBfeature_test_macros\fP(7), \fBlibc\fP(7), \fBmath_error\fP(7),
.\"
.TH ISATTY 3 2014\-01\-27 Linux "Linux Programmer's Manual"
.SH 名前
-isatty \- ファイルディスクリプタが端末を参照しているかをチェックする
+isatty \- ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c端æ\9c«ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\81\8bã\82\92ã\83\81ã\82§ã\83\83ã\82¯ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <unistd.h>\fP
\fBint isatty(int \fP\fIfd\fP\fB);\fP
.fi
.SH 説明
-\fBisatty\fP() 関数は、 \fIfd\fP が端末を参照するオープンされたファイルディスクリプタかどうかを チェックする。
+\fBisatty\fP() é\96¢æ\95°ã\81¯ã\80\81 \fIfd\fP ã\81\8c端æ\9c«ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8bã\81©ã\81\86ã\81\8bã\82\92 ã\83\81ã\82§ã\83\83ã\82¯ã\81\99ã\82\8bã\80\82
.SH 返り値
-\fBisatty\fP() は、 \fIfd\fP が端末を参照するオープンされたファイルディスクリプタであれば 1 を返す。 そうでなければ 0 を返し、
+\fBisatty\fP() ã\81¯ã\80\81 \fIfd\fP ã\81\8c端æ\9c«ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8cã\81° 1 ã\82\92è¿\94ã\81\99ã\80\82 ã\81\9dã\81\86ã\81§ã\81ªã\81\91ã\82\8cã\81° 0 ã\82\92è¿\94ã\81\97ã\80\81
\fIerrno\fP にエラーを示す値を設定する。
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP が有効なファイルディスクリプタではない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
.\" FIXME . File a bug for this?
.\"*******************************************************************
.TH ISFDTYPE 3 2014\-03\-13 Linux "Linux Programmer's Manual"
.SH 名前
-isfdtype \- ファイルディスクリプタのファイル種別を検査する
+isfdtype \- ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\83\95ã\82¡ã\82¤ã\83«ç¨®å\88¥ã\82\92æ¤\9cæ\9f»ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <sys/stat.h>\fP
.RE
.ad b
.SH 説明
-\fBisfdtype\fP() 関数はファイルディスクリプタ \fIfd\fP がタイプが \fIfdtype\fP のファイルを参照しているかを検査する。
+\fBisfdtype\fP() 関数はファイルディスクリプター \fIfd\fP がタイプが \fIfdtype\fP のファイルを参照しているかを検査する。
\fIfdtype\fP 引き数には、\fI<sys/stat.h>\fP で定義されている \fBS_IF*\fP 定数のひとつ (\fBS_IFREG\fP
など) を指定する。 \fBS_IF*\fP 定数の説明は \fBstat\fP(2) にある。
.SH 返り値
-\fBisfdtype\fP() 関数は、ファイルディスクリプタ \fIfd\fP がタイプ \fIfdtype\fP であった場合に 1 を返し、そうでない場合に 0
+\fBisfdtype\fP() 関数は、ファイルディスクリプター \fIfd\fP がタイプ \fIfdtype\fP であった場合に 1 を返し、そうでない場合に 0
を返す。 エラーの場合、 \-1 を返し、\fIerrno\fP に原因を示す値を設定する。
.SH エラー
\fBisfdtype\fP() 関数は \fBfstat\fP(3) と同じエラーで失敗する。
.SH 準拠
C99.
.SH 注意
-\fBiswalnum\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBiswalnum\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBisalnum\fP(3), \fBiswctype\fP(3)
.SH この文書について
.SH 準拠
C99.
.SH 注意
-\fBiswalpha\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBiswalpha\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBisalpha\fP(3), \fBiswctype\fP(3)
.SH この文書について
.SH 準拠
POSIX.1\-2001.
.SH 注意
-\fBiswblank\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBiswblank\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBisblank\fP(3), \fBiswctype\fP(3)
.SH この文書について
.SH 準拠
C99.
.SH 注意
-\fBiswcntrl\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBiswcntrl\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBiscntrl\fP(3), \fBiswctype\fP(3)
.SH この文書について
.SH 準拠
C99.
.SH 注意
-\fBiswctype\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBiswctype\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBiswalnum\fP(3), \fBiswalpha\fP(3), \fBiswblank\fP(3), \fBiswcntrl\fP(3),
\fBiswdigit\fP(3), \fBiswgraph\fP(3), \fBiswlower\fP(3), \fBiswprint\fP(3),
.SH 準拠
C99.
.SH 注意
-\fBiswdigit\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBiswdigit\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBisdigit\fP(3), \fBiswctype\fP(3)
.SH この文書について
.SH 準拠
C99.
.SH 注意
-\fBiswgraph\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBiswgraph\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBisgraph\fP(3), \fBiswctype\fP(3)
.SH この文書について
.SH 準拠
C99.
.SH 注意
-\fBiswlower\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBiswlower\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.PP
この関数で Unicode 文字を扱うのはあまり適切でない。 なぜなら、Unicode には、大文字 (upper case)・小文字 (lower
case)・ タイトル文字 (title case) という 3 つの "case" が含まれているからである。
.SH 準拠
C99.
.SH 注意
-\fBiswprint\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBiswprint\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBisprint\fP(3), \fBiswctype\fP(3)
.SH この文書について
.SH 準拠
C99.
.SH 注意
-\fBiswpunct\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBiswpunct\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.PP
この関数の名前は Unicode 文字を扱う際には正しくない。なぜなら、ワイド 文字クラス "punct"
は句読点文字と記号文字(数学記号、貨幣記号など)の両 方を含むからである。
.SH 準拠
C99.
.SH 注意
-\fBiswspace\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBiswspace\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBisspace\fP(3), \fBiswctype\fP(3)
.SH この文書について
.SH 準拠
C99.
.SH 注意
-\fBiswupper\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBiswupper\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.PP
この関数で Unicode 文字を扱うのはあまり適切でない。 なぜなら、Unicode には、大文字 (upper case)・小文字 (lower
case)・ タイトル文字 (title case) という 3 つの "case" が含まれているからである。
.SH 準拠
C99.
.SH 注意
-\fBiswxdigit\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBiswxdigit\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBiswctype\fP(3), \fBisxdigit\fP(3)
.SH この文書について
.TH KEY_SETSECRET 3 2014\-05\-28 "" "Linux Programmer's Manual"
.SH 名前
key_decryptsession, key_encryptsession, key_setsecret, key_gendes,
-key_secretkey_is_set \- rpc é\8dµã\82µã\83¼ã\83\90ã\83»ã\83\87ã\83¼ã\83¢ã\83³ã\81¨ã\81®ã\82¤ã\83³ã\82¿フェース
+key_secretkey_is_set \- rpc é\8dµã\82µã\83¼ã\83\90ã\83\87ã\83¼ã\83¢ã\83³ã\81¨ã\81®ã\82¤ã\83³ã\82¿ã\83¼フェース
.SH 書式
\fB#include <rpc/rpc.h>\fP
.sp
.sp
\fBint key_secretkey_is_set(void);\fP
.SH 説明
-ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ RPC ã\81®å®\89å\85¨ã\81ªèª\8d証æ©\9fæ§\8b (AUTH_DES) ã\81§ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 ã\83¦ã\83¼ã\82¶ã\83»プログラムでこれらの関数を使用する必要はない。
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ RPC ã\81®å®\89å\85¨ã\81ªèª\8d証æ©\9fæ§\8b (AUTH_DES) ã\81§ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 ã\83¦ã\83¼ã\82¶ã\83¼プログラムでこれらの関数を使用する必要はない。
関数 \fBkey_decryptsession\fP() は(リモート)サーバのネット名を用いて、復号用の DES 鍵を取得する。
サーバの公開鍵と、呼び出し元プロセスの実効 UID に対応する秘密鍵が使用される。
行われる。詳細は \fBsigevent\fP(7) を参照。\fIsevp\fP が NULL の場合、
非同期通知は行われない。
.PP
-\fIaiocb_list\fP 引き数は、I/O 操作を指定する \fIaiocb\fP 構造体へのポインタ
+\fIaiocb_list\fP 引き数は、I/O 操作を指定する \fIaiocb\fP 構造体へのポインター
の配列である。指定された操作の実行順序は規定されていない。
\fInitems\fP 引き数は、配列 \fIaiocb_list\fP の大きさを指定する。
-\fIaiocb_list\fP 内のヌルポインタは無視される。
+\fIaiocb_list\fP å\86\85ã\81®ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ç\84¡è¦\96ã\81\95ã\82\8cã\82\8bã\80\82
\fIaiocb_list\fP の各制御ブロックでは、
\fIaio_lio_opcode\fP フィールドで開始する I/O 操作を指定する。
.\" or the control block of the operation
使用前に制御ブロックを 0 で埋めるのは良い考えである。
I/O 操作の実行中は制御ブロックを変更してはならない。データの読み書き先
-のバッファ領域に I/O 操作の実行中にアクセスしてはならない。さもないと、
-どのような結果になるか分からない。また、関係するメモリ領域も有効な状態
+のバッファー領域に I/O 操作の実行中にアクセスしてはならない。さもないと、
+どのような結果になるか分からない。また、関係するメモリー領域も有効な状態
のままにしておかなければならない。
同じ \fIaiocb\fP 構造体を指定して同時に複数の I/O 操作を行った場合、
\fBstruct lconv *localeconv(void);\fP
.fi
.SH 説明
-\fBlocaleconv\fP() 関数は、現在のロケール情報を表す \fIstruct lconv\fP へのポインタを返す。 この構造体は
-\fBlocale\fP(7) ã\81§èª¬æ\98\8eã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81ã\83ã\82±ã\83¼ã\83«ã\83»ã\82«ã\83\86ã\82´ã\83ª \fBLC_NUMERIC\fP と \fBLC_MONETARY\fP
+\fBlocaleconv\fP() é\96¢æ\95°ã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«æ\83\85å ±ã\82\92表ã\81\99 \fIstruct lconv\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¯
+\fBlocale\fP(7) ã\81§èª¬æ\98\8eã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81ã\83ã\82±ã\83¼ã\83«ã\82«ã\83\86ã\82´ã\83ªã\83¼ \fBLC_NUMERIC\fP と \fBLC_MONETARY\fP
に関連するすべての値を含んでいる。 この関数を用いるプログラムは、おそらく同時に \fBprintf\fP(3) や \fBstrfmon\fP(3)
のような関数も用いるだろう。 これらの関数は、現在使用されているロケールに従った動作をする。
.SH 返り値
-\fBlocaleconv\fP() 関数は、情報が格納された \fIstruct lconv\fP へのポインタを返す。
+\fBlocaleconv\fP() é\96¢æ\95°ã\81¯ã\80\81æ\83\85å ±ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\81\9f \fIstruct lconv\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
この構造体は静的に割り当てられる場合があり (glibc では「そうだ」)、後の呼び出しで上書きされる可能性がある。 POSIX
では、呼び出し元はこの構造体の内容を変更すべきではないとされている。 \fBlocaleconv\fP() 関数は常に成功する。
.SH 属性
.ad
.SH 説明
オープンされたファイルのセクションに対して、 POSIX ロックの適用・テスト・解除をする。 ファイルは \fIfd\fP で指定される。 \fIfd\fP
-は書き込みのためにオープンしたファイルディスクリプタである。 アクションは \fIcmd\fP で指定される。 \fIpos\fP を現在のファイル位置とすると、
+ã\81¯æ\9b¸ã\81\8dè¾¼ã\81¿ã\81®ã\81\9fã\82\81ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\82¢ã\82¯ã\82·ã\83§ã\83³ã\81¯ \fIcmd\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\82\8bã\80\82 \fIpos\fP ã\82\92ç\8f¾å\9c¨ã\81®ã\83\95ã\82¡ã\82¤ã\83«ä½\8dç½®ã\81¨ã\81\99ã\82\8bã\81¨ã\80\81
\fIlen\fP が正の場合、セクションはバイト位置 \fIpos\fP..\fIpos\fP+\fIlen\fP\-1 となり、 \fIlen\fP
が負の場合、セクションはバイト位置 \fIpos\fP\-\fIlen\fP..\fIpos\fP\-1 となる。 \fIlen\fP が 0
の場合、セクションは現在のファイル位置から無限大までとなる (つまり現在の、あるいは変更された場合は将来の、ファイル終端位置まで)。
\fBF_LOCK\fP
ファイルの指定されたセクションに排他ロックを設定する。 そのセクション (の一部) が既にロックされていた場合、
前のロックが解除されるまで関数の呼び出しがブロックされる。 このセクションが前にロックされているセクションと重なった場合、 2
-つのセクションは結合される。 ロックを保持しているプロセスが、 そのファイルのファイルディスクリプタをクローズすると、 ファイルロックは解放される。
+ã\81¤ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯çµ\90å\90\88ã\81\95ã\82\8cã\82\8bã\80\82 ã\83ã\83\83ã\82¯ã\82\92ä¿\9dæ\8c\81ã\81\97ã\81¦ã\81\84ã\82\8bã\83\97ã\83ã\82»ã\82¹ã\81\8cã\80\81 ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\99ã\82\8bã\81¨ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\83ã\83\83ã\82¯ã\81¯è§£æ\94¾ã\81\95ã\82\8cã\82\8bã\80\82
子プロセスはロックを継承しない。
.TP
\fBF_TLOCK\fP
または、ファイルが他のプロセスによりメモリーマップされており、 指定された操作が禁止されている。
.TP
\fBEBADF\fP
-\fIfd\fP がオープンされたファイルのディスクリプタではない。 または、 \fIcmd\fP が \fBF_LOCK\fP か \fBF_TLOCK\fP で、
-\fIfd\fP が書き込み可能なファイルディスクリプタでない。
+\fIfd\fP ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81¾ã\81\9fã\81¯ã\80\81 \fIcmd\fP ã\81\8c \fBF_LOCK\fP ã\81\8b \fBF_TLOCK\fP ã\81§ã\80\81
+\fIfd\fP ã\81\8cæ\9b¸ã\81\8dè¾¼ã\81¿å\8f¯è\83½ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEDEADLK\fP
コマンドが \fBF_LOCK\fP であり、このロック操作を行うとデッドロックが発生してしまう。
.\"
.TH LOGIN 3 2004\-05\-06 GNU "Linux Programmer's Manual"
.SH 名前
-login, logout \- utmp と wtmp エントリを書き込む
+login, logout \- utmp ã\81¨ wtmp ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92æ\9b¸ã\81\8dè¾¼ã\82\80
.SH 書式
\fB#include <utmp.h>\fP
.sp
.sp
\fI\-lutil\fP でリンクする。
.SH 説明
-utmp ファイルは現在システムを使用しているユーザを記録する。 wtmp ファイルはすべてのログインとログアウトを記録する。 \fButmp\fP(5)
+utmp ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ç\8f¾å\9c¨ã\82·ã\82¹ã\83\86ã\83 ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼ã\82\92è¨\98é\8c²ã\81\99ã\82\8bã\80\82 wtmp ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\81\99ã\81¹ã\81¦ã\81®ã\83ã\82°ã\82¤ã\83³ã\81¨ã\83ã\82°ã\82¢ã\82¦ã\83\88ã\82\92è¨\98é\8c²ã\81\99ã\82\8bã\80\82 \fButmp\fP(5)
を参照すること。
.LP
関数 \fBlogin\fP() は与えられた \fIstruct utmp\fP \fIut\fP を utmp と wtmp ファイルの両方に書き込む。
.LP
-関数 \fBlogout\fP() は utmp ファイルにあるエントリをクリアする。
+é\96¢æ\95° \fBlogout\fP() ã\81¯ utmp ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81\82ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\82¯ã\83ªã\82¢ã\81\99ã\82\8bã\80\82
.SS "GNU 版の詳細"
より正確には、 \fBlogin\fP() は引き数 \fIut\fP 構造体をとり、(もし存在するならば) フィールド \fIut\->ut_type\fP を
\fBUSER_PROCESS\fP という値にし、(もし存在するならば) フィールド \fIut\->ut_pid\fP を呼び出し元プロセスのプロセス
このフィールドに格納して、この構造体を utmp ファイルに書き込む。 一方、端末名が見つからない場合は、このフィールドは "???" とされて、
この構造体は utmp ファイルに書き込まれない。 その後にこの構造体は wtmp ファイルに書き込まれる。
.LP
-\fBlogout\fP() 関数は utmp ファイルから \fIut_line\fP 引き数にマッチするエントリを探す。 レコードが見つかった場合、
+\fBlogout\fP() é\96¢æ\95°ã\81¯ utmp ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89 \fIut_line\fP å¼\95ã\81\8dæ\95°ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92æ\8e¢ã\81\99ã\80\82 ã\83¬ã\82³ã\83¼ã\83\89ã\81\8cè¦\8bã\81¤ã\81\8bã\81£ã\81\9få ´å\90\88ã\80\81
\fIut_name\fP と \fIut_host\fP フィールドをクリアして、 \fIut_tv\fP タイムスタンプフィールドを更新し、 (もし存在するならば)
\fIut_type\fP フィールドを \fBDEAD_PROCESS\fP に更新する。
.SH 返り値
-エントリをデータベースに書き込むのに成功した場合、 \fBlogout\fP() 関数は 1 を返す。 またエラーが起こった場合、0 を返す。
+ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«æ\9b¸ã\81\8dè¾¼ã\82\80ã\81®ã\81«æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 \fBlogout\fP() é\96¢æ\95°ã\81¯ 1 ã\82\92è¿\94ã\81\99ã\80\82 ã\81¾ã\81\9fã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9få ´å\90\88ã\80\810 ã\82\92è¿\94ã\81\99ã\80\82
.SH ファイル
.TP
\fI/var/run/utmp\fP
-ユーザアカウントデータベース。 \fI<paths.h>\fP における \fB_PATH_UTMP\fP で設定されている。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\80\82 \fI<paths.h>\fP ã\81«ã\81\8aã\81\91ã\82\8b \fB_PATH_UTMP\fP ã\81§è¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fI/var/log/wtmp\fP
-ユーザアカウントログファイル。 \fI<paths.h>\fP における \fB_PATH_WTMP\fP で設定されている。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\83ã\82°ã\83\95ã\82¡ã\82¤ã\83«ã\80\82 \fI<paths.h>\fP ã\81«ã\81\8aã\81\91ã\82\8b \fB_PATH_WTMP\fP ã\81§è¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
.SH 準拠
POSIX.1\-2001 にはない。 BSD 系に存在する。
.SH 注意
\fBlsearch\fP() は、マッチする要素を見つけられなかったとき、 配列の最後に \fIkey\fP をつけ加える。そして \fI*nmemb\fP を 1
ふやす。 したがって、この関数を使用する際には、マッチする要素が存在するか、 もしくは配列に要素を追加するための領域があるか、を把握しておく必要がある。
.SH 返り値
-\fBlfind\fP() の返り値は、配列のマッチしたメンバーへのポインタである。 もしマッチするメンバーが見つからないと NULL を返す。
-\fBlsearch\fP() の返り値も、配列のマッチしたメンバーへのポインタである。 マッチするメンバーが見つからなかったときは、
-新たにつけ加えたメンバーへのポインタを返す。
+\fBlfind\fP() ã\81®è¿\94ã\82\8aå\80¤ã\81¯ã\80\81é\85\8då\88\97ã\81®ã\83\9eã\83\83ã\83\81ã\81\97ã\81\9fã\83¡ã\83³ã\83\90ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\82\82ã\81\97ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\83¡ã\83³ã\83\90ã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\84ã\81¨ NULL ã\82\92è¿\94ã\81\99ã\80\82
+\fBlsearch\fP() ã\81®è¿\94ã\82\8aå\80¤ã\82\82ã\80\81é\85\8då\88\97ã\81®ã\83\9eã\83\83ã\83\81ã\81\97ã\81\9fã\83¡ã\83³ã\83\90ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\83¡ã\83³ã\83\90ã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\8bã\81£ã\81\9fã\81¨ã\81\8dã\81¯ã\80\81
+æ\96°ã\81\9fã\81«ã\81¤ã\81\91å\8a ã\81\88ã\81\9fã\83¡ã\83³ã\83\90ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.SH 準拠
SVr4, 4.3BSD, POSIX.1\-2001. libc には libc\-4.6.27 以降で実装されている。
.SH バグ
.sp
\fBoff64_t lseek64(int \fP\fIfd\fP\fB, off64_t \fP\fIoffset\fP\fB, int \fP\fIwhence\fP\fB);\fP
.SH 説明
-\fBlseek\fP(2) 関数ファミリーは、ファイルディスクリプタ \fIfd\fP に関連するオープンされたファイルのオフセットを、
+\fBlseek\fP(2) 関数ファミリーは、ファイルディスクリプター \fIfd\fP に関連するオープンされたファイルのオフセットを、
ファイルの開始位置・現在位置・終端から \fIoffset\fP の位置へ変更する。 これは \fIwhence\fP がそれぞれ \fBSEEK_SET\fP,
\fBSEEK_CUR\fP, \fBSEEK_END\fP の場合に対応する。
.LP
更に詳しい説明・返り値・エラーは、 \fBlseek\fP(2) を参照すること。
.PP
-4 つのインタフェースが使用可能である: \fBlseek\fP(2), \fBlseek64\fP(), \fBllseek\fP(2) と元となるシステムコール
+4 ã\81¤ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81\8c使ç\94¨å\8f¯è\83½ã\81§ã\81\82ã\82\8b: \fBlseek\fP(2), \fBlseek64\fP(), \fBllseek\fP(2) ã\81¨å\85\83ã\81¨ã\81ªã\82\8bã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«
\fB_llseek\fP(2) である。
.SS lseek
プロトタイプ:
.in
.fi
.sp
-\fBlseek\fP(2) は型 \fIoff_t\fP を使う。 これは 32 ビットアーキテクチャ上では 32 ビット符号付き型である。 ただし、
+\fBlseek\fP(2) は型 \fIoff_t\fP を使う。 これは 32 ビットアーキテクチャー上では 32 ビット符号付き型である。 ただし、
.nf
.sp
.in +4n
.sp
.\" in libc 5.0.9, not in 4.7.6
型 \fIloff_t\fP は 64 ビット符号付き型である。 ライブラリルーチン \fBllseek\fP() は glibc で利用可能であり、
-特別な定義なしに動作する。 しかしながら、 glibc のヘッダーはプロトタイプを供していない。 ユーザは上記のプロトタイプまたはそれと同等のものを、
-自身のソースに追加しなければならない。 このデータがないことによって \fBe2fsck\fP(8) のコンパイルが失敗するという苦情がユーザから出たので、
-glibc 2.1.3 では以下のようなリンク時の警告が追加された。
+ç\89¹å\88¥ã\81ªå®\9a義ã\81ªã\81\97ã\81«å\8b\95ä½\9cã\81\99ã\82\8bã\80\82 ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89ã\80\81 glibc ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\81¯ã\83\97ã\83ã\83\88ã\82¿ã\82¤ã\83\97ã\82\92ä¾\9bã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\80\82 ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ä¸\8aè¨\98ã\81®ã\83\97ã\83ã\83\88ã\82¿ã\82¤ã\83\97ã\81¾ã\81\9fã\81¯ã\81\9dã\82\8cã\81¨å\90\8cç\89ã\81®ã\82\82ã\81®ã\82\92ã\80\81
+自身のソースに追加しなければならない。 このデータがないことによって \fBe2fsck\fP(8)
+のコンパイルが失敗するという苦情がユーザーから出たので、 glibc 2.1.3 では以下のようなリンク時の警告が追加された。
.sp
.in +4n
"the \`llseek\' function may be dangerous; use \`lseek64\' instead."
.\"
.TH MAKECONTEXT 3 2014\-05\-28 GNU "Linux Programmer's Manual"
.SH 名前
-makecontext, swapcontext \- ユーザコンテキストを操作する
+makecontext, swapcontext \- ã\83¦ã\83¼ã\82¶ã\83¼ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\82\92æ\93\8dä½\9cã\81\99ã\82\8b
.SH 書式
\fB#include <ucontext.h>\fP
.sp
System V 的な環境では、 \fBmcontext_t\fP および \fBucontext_t\fP という 2 つの型と、
\fBgetcontext\fP(3), \fBsetcontext\fP(3), \fBmakecontext\fP(), \fBswapcontext\fP() という
4 つの関数が \fI<ucontext.h>\fP で定義されており、あるプロセス内部で制御下にある複数のスレッド間で、
-ユーザレベルのコンテキスト切替えができるようになっている。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\83¬ã\83\99ã\83«ã\81®ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88å\88\87æ\9b¿ã\81\88ã\81\8cã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\80\82
.LP
これらの型と、最初の 2 つの関数については、 \fBgetcontext\fP(3) を参照のこと。
.LP
-\fBmakecontext\fP() 関数は、ポインタ \fIucp\fP が指すコンテキストを変更する (\fIucp\fP は以前の
+\fBmakecontext\fP() 関数は、ポインター \fIucp\fP が指すコンテキストを変更する (\fIucp\fP は以前の
\fBgetcontext\fP(3) 呼び出しで得られたものである)。 \fBmakecontext\fP()
を起動する前には、呼び出し者は、このコンテキスト用に 新しいスタックを確保し、そのアドレスを \fIucp\->uc_stack\fP に代入し、
さらに後継のコンテキストを定義し、そのアドレスを \fIucp\->uc_link\fP に 代入しなければならない。
このコンテキストが将来 (\fBsetcontext\fP(3) または \fBswapcontext\fP() によって) 有効にされると、関数
\fIfunc\fP が呼ばれ、 引き数として \fIargc\fP 以降の整数 (\fIint\fP) 引き数の列が渡される。 呼び出し者は \fIargc\fP
-にこれらの引き数の個数を指定しなければならない。 この関数が戻ると、後継のコンテキストが有効になる。 後継コンテキストのポインタが NULL
+ã\81«ã\81\93ã\82\8cã\82\89ã\81®å¼\95ã\81\8dæ\95°ã\81®å\80\8bæ\95°ã\82\92æ\8c\87å®\9aã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\81\93ã\81®é\96¢æ\95°ã\81\8cæ\88»ã\82\8bã\81¨ã\80\81å¾\8cç¶\99ã\81®ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81\8cæ\9c\89å\8a¹ã\81«ã\81ªã\82\8bã\80\82 å¾\8cç¶\99ã\82³ã\83³ã\83\86ã\82ã\82¹ã\83\88ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8c NULL
の場合、そのスレッドが終了する。
.LP
-\fBswapcontext\fP() 関数は現在のコンテキストを ポインタ \fIoucp\fP が指す構造体に保存し、 ポインタ \fIucp\fP
+\fBswapcontext\fP() 関数は現在のコンテキストを ポインター \fIoucp\fP が指す構造体に保存し、 ポインター \fIucp\fP
が指すコンテキストを有効にする。
.SH 返り値
成功すると、 \fBswapcontext\fP() は返らない (しかし後に \fIoucp\fP が有効になった場合には返ることがある。 このときには
\fBswapcontext\fP() の仕様が削除されている。 代わりに、アプリケーションを POSIX スレッドを使って書き直すことが 推奨されている。
.SH 注意
\fIucp\->uc_stack\fP の解釈は \fBsigaltstack\fP(2) の場合と同じである。 すなわちこの構造体には、
-スタックとして用いられるメモリ領域の開始アドレスと長さが含まれ、 これはスタックが伸びる方向がどちらであるかには関係しない。
-したがって、ユーザプログラムはこの件については心配しなくてよい。
+スタックとして用いられるメモリー領域の開始アドレスと長さが含まれ、 これはスタックが伸びる方向がどちらであるかには関係しない。
+ã\81\97ã\81\9fã\81\8cã\81£ã\81¦ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\81\93ã\81®ä»¶ã\81«ã\81¤ã\81\84ã\81¦ã\81¯å¿\83é\85\8dã\81\97ã\81ªã\81\8fã\81¦ã\82\88ã\81\84ã\80\82
-\fIint\fP とポインタ型が同じ大きさであるアーキテクチャでは (x86\-32 はその例であり、両方の型とも 32 ビットである)、
-\fBmakecontext\fP() の \fIargc\fP 以降の引き数としてポインタを渡してもうまく動くかもしれない。
-しかしながら、このようにすると、移植性は保証されず、 標準に従えば動作は未定義であり、ポインタが \fIint\fP
-よりも大きいアーキテクチャでは正しく動作しないことだろう。 それにも関わらず、バージョン 2.8 以降の glibc では、
-\fBmakecontext\fP() に変更が行われ、(x86\-64 などの) いくつかの 64 ビットアーキテクチャで
-引き数としてポインタを渡すことができるようになっている。
+\fIint\fP とポインター型が同じ大きさであるアーキテクチャーでは (x86\-32 はその例であり、両方の型とも 32 ビットである)、
+\fBmakecontext\fP() ã\81® \fIargc\fP 以é\99\8dã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92渡ã\81\97ã\81¦ã\82\82ã\81\86ã\81¾ã\81\8få\8b\95ã\81\8fã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
+ã\81\97ã\81\8bã\81\97ã\81ªã\81\8cã\82\89ã\80\81ã\81\93ã\81®ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81¨ã\80\81移æ¤\8dæ\80§ã\81¯ä¿\9d証ã\81\95ã\82\8cã\81\9aã\80\81 æ¨\99æº\96ã\81«å¾\93ã\81\88ã\81°å\8b\95ä½\9cã\81¯æ\9cªå®\9a義ã\81§ã\81\82ã\82\8aã\80\81ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8c \fIint\fP
+ã\82\88ã\82\8aã\82\82大ã\81\8dã\81\84ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯æ£ã\81\97ã\81\8få\8b\95ä½\9cã\81\97ã\81ªã\81\84ã\81\93ã\81¨ã\81 ã\82\8dã\81\86ã\80\82 ã\81\9dã\82\8cã\81«ã\82\82é\96¢ã\82\8fã\82\89ã\81\9aã\80\81ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.8 以é\99\8dã\81® glibc ã\81§ã\81¯ã\80\81
+\fBmakecontext\fP() ã\81«å¤\89æ\9b´ã\81\8cè¡\8cã\82\8fã\82\8cã\80\81(x86\-64 ã\81ªã\81©ã\81®) ã\81\84ã\81\8fã\81¤ã\81\8bã\81® 64 ã\83\93ã\83\83ã\83\88ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§
+å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92渡ã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\80\82
.SH 例
.PP
-以ä¸\8bã\81®ã\82µã\83³ã\83\97ã\83«ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\80\81 \fBgetcontext\fP(3), \fBmakecontext\fP(), \fBswapcontext\fP()
+以下のサンプルプログラムは、 \fBgetcontext\fP(3), \fBmakecontext\fP(), \fBswapcontext\fP()
の使用方法の例を示すものである。 このプログラムを実行すると、以下のような出力が得られる:
.in +4n
.nf
関数 \fBmakedev\fP(), \fBmajor\fP(), \fBminor\fP() は
POSIX.1 では規定されていないが、他の多くのシステムにも存在する。
.SH 注意
-これらのインタフェースはマクロとして定義されている。
+ã\81\93ã\82\8cã\82\89ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ã\83\9eã\82¯ã\83ã\81¨ã\81\97ã\81¦å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
glibc 2.3.3 以降では、これらは GNU 固有の 3 つの関数
\fBgnu_dev_makedev\fP(), \fBgnu_dev_major\fP(), \fBgnu_dev_minor\fP() の
エイリアス (別名) となっている。後者の名前がエクスポートされるが、
.\"
.TH MALLOC 3 2014\-05\-21 GNU "Linux Programmer's Manual"
.SH 名前
-malloc, free, calloc, realloc \- 動的なメモリの割り当てと解放を行う
+malloc, free, calloc, realloc \- å\8b\95ç\9a\84ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81®å\89²ã\82\8aå½\93ã\81¦ã\81¨è§£æ\94¾ã\82\92è¡\8cã\81\86
.SH 書式
.nf
\fB#include <stdlib.h>\fP
.SH 説明
.PP
.\" glibc does this:
-\fBmalloc\fP() 関数は \fIsize\fP バイトを割り当て、 割り当てられたメモリに対する
-ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82\fIã\83¡ã\83¢ã\83ªの内容は初期化されない\fP。 \fIsize\fP が 0 の場合、
+\fBmalloc\fP() é\96¢æ\95°ã\81¯ \fIsize\fP ã\83\90ã\82¤ã\83\88ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\80\81 å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81«å¯¾ã\81\99ã\82\8b
+ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82\fIã\83¡ã\83¢ã\83ªã\83¼の内容は初期化されない\fP。 \fIsize\fP が 0 の場合、
\fBmalloc\fP() は NULL または \fBfree\fP() に後で渡しても問題の起こらない
-一意なポインタ値を返す。
+一意なポインター値を返す。
.PP
-\fBfree\fP() 関数はポインタ \fIptr\fP が指すメモリ空間を解放する。このポインタは、
+\fBfree\fP() 関数はポインター \fIptr\fP が指すメモリー空間を解放する。このポインターは、
以前に呼び出された \fBmalloc\fP(), \fBcalloc\fP(), \fBrealloc\fP() のいずれかが返した値で
-なければならない。これ以外のポインタを指定したり、すでに \fIfree(ptr)\fP が実行
+ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82ã\81\93ã\82\8c以å¤\96ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92æ\8c\87å®\9aã\81\97ã\81\9fã\82\8aã\80\81ã\81\99ã\81§ã\81« \fIfree(ptr)\fP ã\81\8cå®\9fè¡\8c
されていたりした場合の動作は定義されていない。
\fIptr\fP が NULL の場合には、何の動作も行われない。
.PP
.\" glibc does this:
-\fBcalloc\fP() 関数は \fIsize\fP バイトの要素 \fInmemb\fP 個からなる配列にメモリを
-å\89²ã\82\8aå½\93ã\81¦ã\80\81å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\81«å¯¾ã\81\99ã\82\8bã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\83¡ã\83¢ã\83ªの内容は数値ゼロ
+\fBcalloc\fP() é\96¢æ\95°ã\81¯ \fIsize\fP ã\83\90ã\82¤ã\83\88ã\81®è¦\81ç´ \fInmemb\fP å\80\8bã\81\8bã\82\89ã\81ªã\82\8bé\85\8då\88\97ã\81«ã\83¡ã\83¢ã\83ªã\83¼ã\82\92
+å\89²ã\82\8aå½\93ã\81¦ã\80\81å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81«å¯¾ã\81\99ã\82\8bã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\83¡ã\83¢ã\83ªã\83¼の内容は数値ゼロ
(全ビットが 0 のバイト) にセットされる。 \fInmemb\fP か \fIsize\fP が 0 の場合、
\fBcalloc\fP() は NULL または \fBfree\fP() に後で渡しても問題の起こらない一意な
-ポインタ値を返す。
+ポインター値を返す。
.PP
-\fBrealloc\fP() は、ポインタ \fIptr\fP が示すメモリブロックのサイズを \fIsize\fP バイト
+\fBrealloc\fP() は、ポインター \fIptr\fP が示すメモリーブロックのサイズを \fIsize\fP バイト
に変更する。領域の先頭から、新旧のサイズの小さい方の位置までの範囲の内容は
-変更されない。新しいサイズが前のサイズよりも大きい場合、追加されたメモリは
+å¤\89æ\9b´ã\81\95ã\82\8cã\81ªã\81\84ã\80\82æ\96°ã\81\97ã\81\84ã\82µã\82¤ã\82ºã\81\8cå\89\8dã\81®ã\82µã\82¤ã\82ºã\82\88ã\82\8aã\82\82大ã\81\8dã\81\84å ´å\90\88ã\80\81追å\8a ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81¯
初期化 \fIされない\fP。
\fIptr\fP が NULL の場合には \fImalloc(size)\fP と等価である。
\fIsize\fP が 0 で \fIptr\fP が NULL でない場合には、 \fIfree(ptr)\fP と等価である。
\fBrealloc\fP() のいずれかが返した値でなければならない。
\fIptr\fP が指す領域が移動されていた場合は \fIfree(ptr)\fP が実行される。
.SH 返り値
-é\96¢æ\95° \fBcalloc\fP() ã\81¨ \fBmalloc\fP() ã\81¯ã\80\81å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す。
-å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\81¯ã\80\81ã\81\82ã\82\89ã\82\86ã\82\8bçµ\84ã\81¿è¾¼ã\81¿å\9e\8bã\81«å¯¾å¿\9cã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\82¢ã\83©ã\82¤ã\83³ã\83¡ã\83³ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82 \fIsize\fP ã\81\8c
-0 で呼び出した \fBmalloc\fP() や、\fInmemb\fP か \fIsize\fP が 0 で呼び出した \fBcalloc\fP() が成功した場合にも
+é\96¢æ\95° \fBcalloc\fP() ã\81¨ \fBmalloc\fP() ã\81¯ã\80\81å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す。
+å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81¯ã\80\81ã\81\82ã\82\89ã\82\86ã\82\8bçµ\84ã\81¿è¾¼ã\81¿å\9e\8bã\81«å¯¾å¿\9cã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\82¢ã\83©ã\82¤ã\83³ã\83¡ã\83³ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82 \fIsize\fP
+が 0 で呼び出した \fBmalloc\fP() や、\fInmemb\fP か \fIsize\fP が 0 で呼び出した \fBcalloc\fP() が成功した場合にも
NULL が返される。
.PP
\fBfree\fP() 関数は値を返さない。
.PP
-\fBrealloc\fP() é\96¢æ\95°ã\81¯æ\96°ã\81\9fã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す。 これはあらゆる組み込み型に対応できるようにアラインメントされており、
+\fBrealloc\fP() é\96¢æ\95°ã\81¯æ\96°ã\81\9fã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す。 これはあらゆる組み込み型に対応できるようにアラインメントされており、
\fIptr\fP とは異なることもある。割り当て要求に失敗した場合は NULL が返る。 \fIsize\fP が 0 の場合には、NULL もしくは
-\fBfree\fP() に渡すことができるポインタが返る。 \fBrealloc\fP() が失敗した場合には、元のブロックは変更されない。
+\fBfree\fP() ã\81«æ¸¡ã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cè¿\94ã\82\8bã\80\82 \fBrealloc\fP() ã\81\8c失æ\95\97ã\81\97ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81å\85\83ã\81®ã\83\96ã\83ã\83\83ã\82¯ã\81¯å¤\89æ\9b´ã\81\95ã\82\8cã\81ªã\81\84ã\80\82
つまり、解放されたり移動されたりはしない。
.SH 準拠
C89, C99.
.SH 注意
-デフォルトでは、Linux は楽観的メモリ配置戦略を用いている。つまり、
-\fBmalloc\fP() が NULL でない値を返しても、そのメモリが実際に利用可能であること
-が保証されない。システムがメモリ不足状態になったとき、メモリ不足解決器 (OOM
+デフォルトでは、Linux は楽観的メモリー配置戦略を用いている。つまり、
+\fBmalloc\fP() ã\81\8c NULL ã\81§ã\81ªã\81\84å\80¤ã\82\92è¿\94ã\81\97ã\81¦ã\82\82ã\80\81ã\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå®\9fé\9a\9bã\81«å\88©ç\94¨å\8f¯è\83½ã\81§ã\81\82ã\82\8bã\81\93ã\81¨
+が保証されない。システムがメモリー不足状態になったとき、メモリー不足解決器 (OOM
killer) によって一つまたは複数のプロセスが削除される。
詳しい情報は、\fBproc\fP(5) の \fI/proc/sys/vm/overcommit_memory\fP と
\fIproc/sys/vm/oom_adj\fP、および Linux カーネルのソースファイルの
\fIDocumentation/vm/overcommit\-accounting\fP を参照のこと。
-通常、 \fBmalloc\fP() は、ヒープからメモリを割り当て、必要に応じてヒープのサイズを \fBsbrk\fP(2) を使って調節する。
-\fBMMAP_THRESHOLD\fP バイトよりも大きなメモリブロックを割り当てる場合、 glibc の \fBmalloc\fP() 実装は
-\fBmmap\fP(2) を使ってプライベートな無名マッピング (anonymous mapping) として メモリを割り当てる。 デフォルトでは
+é\80\9a常ã\80\81 \fBmalloc\fP() ã\81¯ã\80\81ã\83\92ã\83¼ã\83\97ã\81\8bã\82\89ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\80\81å¿\85è¦\81ã\81«å¿\9cã\81\98ã\81¦ã\83\92ã\83¼ã\83\97ã\81®ã\82µã\82¤ã\82ºã\82\92 \fBsbrk\fP(2) ã\82\92使ã\81£ã\81¦èª¿ç¯\80ã\81\99ã\82\8bã\80\82
+\fBMMAP_THRESHOLD\fP ã\83\90ã\82¤ã\83\88ã\82\88ã\82\8aã\82\82大ã\81\8dã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\83\96ã\83ã\83\83ã\82¯ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bå ´å\90\88ã\80\81 glibc ã\81® \fBmalloc\fP() å®\9fè£\85ã\81¯
+\fBmmap\fP(2) ã\82\92使ã\81£ã\81¦ã\83\97ã\83©ã\82¤ã\83\99ã\83¼ã\83\88ã\81ªç\84¡å\90\8dã\83\9eã\83\83ã\83\94ã\83³ã\82° (anonymous mapping) ã\81¨ã\81\97ã\81¦ ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯
\fBMMAP_THRESHOLD\fP は 128 kB だが、 \fBmallopt\fP(3) を使って調整できる。 \fBmmap\fP(2)
-を使って行われたメモリ割り当ては \fBRLIMIT_DATA\fP リソース上限の影響を受けない (\fBgetrlimit\fP(2) 参照)。
+を使って行われたメモリー割り当ては \fBRLIMIT_DATA\fP リソース上限の影響を受けない (\fBgetrlimit\fP(2) 参照)。
マルチスレッドアプリケーションでのデータ破損を回避するため、内部では mutexを
-使用して、これらの関数で利用されるメモリ管理用のデータ構造を保護している。
-複数のスレッドが同時にメモリの確保や解放を行うようなマルチスレッドアプリケー
+使用して、これらの関数で利用されるメモリー管理用のデータ構造を保護している。
+è¤\87æ\95°ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81\8cå\90\8cæ\99\82ã\81«ã\83¡ã\83¢ã\83ªã\83¼ã\81®ç¢ºä¿\9dã\82\84解æ\94¾ã\82\92è¡\8cã\81\86ã\82\88ã\81\86ã\81ªã\83\9eã\83«ã\83\81ã\82¹ã\83¬ã\83\83ã\83\89ã\82¢ã\83\97ã\83ªã\82±ã\83¼
ションでは、これらの mutex の衝突が起こり得る。マルチスレッドアプリケーション
-でのメモリ割り当て処理にスケーラビリティを持たせるために、glibc では mutex の
-衝突が検出された際には追加の \fIメモリ割り当て領域\fP を作成する。
+でのメモリー割り当て処理にスケーラビリティを持たせるために、glibc では mutex の
+衝突が検出された際には追加の \fIメモリー割り当て領域\fP を作成する。
追加領域の各々は、(\fBbrk\fP(2) や \fBmmap\fP(2) を使って) システムにより内部的に
割り当てられた大きな領域で、それぞれ独自の mutex により管理されている。
を設定しない場合には、失敗した際に \fIerrno\fP にエラーの理由を設定しないライブラリルーチンがあるかもしれない。
.LP
\fBmalloc\fP(), \fBcalloc\fP(), \fBrealloc\fP(), \fBfree\fP() における事故は、 ほとんどの場合はヒープの破壊
-(corruption) が原因である。 例えば、割り当てられた領域をオーバーフローする、 同じポインタに二度 free する、などがこれにあたる。
+(corruption) ã\81\8cå\8e\9få\9b ã\81§ã\81\82ã\82\8bã\80\82 ä¾\8bã\81\88ã\81°ã\80\81å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fé \98å\9f\9fã\82\92ã\82ªã\83¼ã\83\90ã\83¼ã\83\95ã\83ã\83¼ã\81\99ã\82\8bã\80\81 å\90\8cã\81\98ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81«äº\8c度 free ã\81\99ã\82\8bã\80\81ã\81ªã\81©ã\81\8cã\81\93ã\82\8cã\81«ã\81\82ã\81\9fã\82\8bã\80\82
.PP
\fBmalloc\fP 実装は、環境変数で動作を調整できる。 詳細は \fBmallopt\fP(3) を参照のこと。
.SH 関連項目
.fi
.SH 説明
GNU C ライブラリでは、適切なフック関数 (hook function) を指定することで \fBmalloc\fP(3), \fBrealloc\fP(3),
-\fBfree\fP(3) の動作を変更することができる。例えば、動的にメモリ割り当てを行う プログラムのデバッグにこれらのフックを使うことができる。
+\fBfree\fP(3) の動作を変更することができる。例えば、動的にメモリー割り当てを行う プログラムのデバッグにこれらのフックを使うことができる。
.LP
-変数 \fB__malloc_initialize_hook\fP は malloc の実装が初期化される際に一度だけ呼ばれる関数へのポインタである。
+å¤\89æ\95° \fB__malloc_initialize_hook\fP ã\81¯ malloc ã\81®å®\9fè£\85ã\81\8cå\88\9dæ\9c\9få\8c\96ã\81\95ã\82\8cã\82\8bé\9a\9bã\81«ä¸\80度ã\81 ã\81\91å\91¼ã\81°ã\82\8cã\82\8bé\96¢æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
この変数は書き換え可能 (weak) であり、アプリケーション内で 以下のような定義で上書きできる:
.nf
\fBmalloc\fP(3) などの呼び出し元 (caller) のアドレスが格納される。
.LP
変数 \fB__after_morecore_hook\fP は、領域の追加要求があり \fBsbrk\fP(2)
-が呼ばれた後で毎回呼び出される関数へのポインタである。
+ã\81\8cå\91¼ã\81°ã\82\8cã\81\9få¾\8cã\81§æ¯\8eå\9b\9eå\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bé\96¢æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH 準拠
これらの関数は GNU による拡張である。
.SH 注意
printf("malloc(%u) called from %p returns %p\en",
(unsigned int) size, caller, result);
- /* ユーザが使おうとするフックを再設定する */
+ /* ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8c使ã\81\8aã\81\86ã\81¨ã\81\99ã\82\8bã\83\95ã\83\83ã\82¯ã\82\92å\86\8dè¨å®\9aã\81\99ã\82\8b */
__malloc_hook = my_malloc_hook;
return result;
\fBint malloc_info(int \fP\fIoptions\fP\fB, FILE *\fP\fIstream\fP\fB);\fP
.fi
.SH 説明
-\fBmalloc_info\fP() 関数は、 呼び出し元のメモリ割り当て実装の現在の状態を表す XML 文字列を出力する。 文字列は、 ファイルストリーム
-\fIstream\fP に出力される。 出力された文字列には、 全ての割り当て領域の情報が含まれる (\fBmalloc\fP(3) 参照)。
+\fBmalloc_info\fP() 関数は、 呼び出し元のメモリー割り当て実装の現在の状態を表す XML 文字列を出力する。 文字列は、
+ファイルストリーム \fIstream\fP に出力される。 出力された文字列には、 全ての割り当て領域の情報が含まれる (\fBmalloc\fP(3) 参照)。
現在の実装では、 \fIoptions\fP は 0 でなければならない。
.SH 返り値
.SH 準拠
この関数は GNU による拡張である。
.SH 注意
-メモリ割り当て情報は (C の構造体ではなく) XML 文字列として提供される。 これは、 この情報は時間をたつと (内部で使用している実装によって)
+メモリー割り当て情報は (C の構造体ではなく) XML 文字列として提供される。 これは、 この情報は時間をたつと (内部で使用している実装によって)
変わる可能性があるからである。 出力される XML 文字列にはバージョンフィールドが付いている。
\fBopen_memstream\fP(3) 関数を使うと、 \fBmalloc_info\fP() の出力を、
-ファイルではなくメモリ内のバッファに直接送ることができる。
+ファイルではなくメモリー内のバッファーに直接送ることができる。
\fBmalloc_info\fP() 関数は、 \fBmalloc_stats\fP(3) と \fBmallinfo\fP(3) の不備を解決するために設定された。
.SH 例
以下のプログラムは最大で 4 つのコマンドライン引数を取り、 最初の 3 つは必須である。 最初の引数は、このプログラムが生成するスレッド数を指定する。
-メインスレッドを含む全てのスレッドが第 2 引数で指定した数のメモリブロックの割り当てを行う。 第 3 引数は割り当てるブロックのサイズを制御する。
+ã\83¡ã\82¤ã\83³ã\82¹ã\83¬ã\83\83ã\83\89ã\82\92å\90«ã\82\80å\85¨ã\81¦ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81\8c第 2 å¼\95æ\95°ã\81§æ\8c\87å®\9aã\81\97ã\81\9fæ\95°ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\96ã\83ã\83\83ã\82¯ã\81®å\89²ã\82\8aå½\93ã\81¦ã\82\92è¡\8cã\81\86ã\80\82 第 3 å¼\95æ\95°ã\81¯å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\83\96ã\83ã\83\83ã\82¯ã\81®ã\82µã\82¤ã\82ºã\82\92å\88¶å¾¡ã\81\99ã\82\8bã\80\82
メインスレッドはこのサイズのブロックを作成し、 このプログラムが生成する 2 番目のスレッドはこのサイズの 2 倍のサイズのブロックを、 3
番目のスレッドはこのサイズの 3 倍のサイズのブロックを割り当て、 以下同様である。
-このプログラムは \fBmalloc_info\fP() を 2 回呼び出し、メモリ割り当て状態を表示する。
-最初の呼び出しはスレッドの生成もメモリの割り当ても行われる前に実行される。 2 回目の呼び出しは全てのスレッドがメモリ割り当てを行った後に実行される。
+このプログラムは \fBmalloc_info\fP() を 2 回呼び出し、メモリー割り当て状態を表示する。
+最初の呼び出しはスレッドの生成もメモリーの割り当ても行われる前に実行される。 2
+回目の呼び出しは全てのスレッドがメモリー割り当てを行った後に実行される。
以下の例では、 コマンドライン引数で、 追加でスレッドを一つ生成し、メインスレッドと追加のスレッドの両方が 10000
-å\80\8bã\81®ã\83¡ã\83¢ã\83ªã\83\96ã\83ã\83\83ã\82¯ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\82\88ã\81\86ã\81«æ\8c\87å®\9aã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ã\83¡ã\83¢ã\83ªブロックの割り当て後の \fBmalloc_info\fP() では、 2
+å\80\8bã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\96ã\83ã\83\83ã\82¯ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\82\88ã\81\86ã\81«æ\8c\87å®\9aã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ã\83¡ã\83¢ã\83ªã\83¼ブロックの割り当て後の \fBmalloc_info\fP() では、 2
つの割り当て領域の状態が表示されている。
.in +4
.nf
.\"
.TH MALLOC_STATS 3 2012\-05\-06 Linux "Linux Programmer's Manual"
.SH 名前
-malloc_stats \- メモリ割り当ての統計を表示する
+malloc_stats \- メモリー割り当ての統計を表示する
.SH 書式
\fB#include <malloc.h>\fP
.SH 説明
.\" .SH VERSIONS
.\" Available already in glibc 2.0, possibly earlier
-\fBmalloc_stats\fP() 関数は \fBmalloc\fP(3) や関連する関数により割り当てられたメモリに関する統計を (標準エラーに)
-出力する。 各領域 (割り当てエリア) について、 この関数は割り当てられているメモリの総量と現在の割り当てが使用している総バイト数を出力する
+\fBmalloc_stats\fP() é\96¢æ\95°ã\81¯ \fBmalloc\fP(3) ã\82\84é\96¢é\80£ã\81\99ã\82\8bé\96¢æ\95°ã\81«ã\82\88ã\82\8aå\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81«é\96¢ã\81\99ã\82\8bçµ±è¨\88ã\82\92 (æ¨\99æº\96ã\82¨ã\83©ã\83¼ã\81«)
+å\87ºå\8a\9bã\81\99ã\82\8bã\80\82 å\90\84é \98å\9f\9f (å\89²ã\82\8aå½\93ã\81¦ã\82¨ã\83ªã\82¢) ã\81«ã\81¤ã\81\84ã\81¦ã\80\81 ã\81\93ã\81®é\96¢æ\95°ã\81¯å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81®ç·\8fé\87\8fã\81¨ç\8f¾å\9c¨ã\81®å\89²ã\82\8aå½\93ã\81¦ã\81\8c使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bç·\8fã\83\90ã\82¤ã\83\88æ\95°ã\82\92å\87ºå\8a\9bã\81\99ã\82\8b
(これらの二つの値は \fBmallinfo\fP(3) で取得できる \fIarena\fP と \fIuordblks\fP フィールドに対応している)。
また、この関数は、 すべての領域のこれら二つの統計情報の合計値と、 \fBmmap\fP(2)
を使って同時に割り当てられたブロック数とバイト数の最大値を表示する。
.SH 準拠
この関数は GNU による拡張である。
.SH 注意
-\fBmallinfo\fP(3) を使用すると、 メイン領域のメモリ割り当てに関するより詳細な情報を取得できる。
+\fBmallinfo\fP(3) を使用すると、 メイン領域のメモリー割り当てに関するより詳細な情報を取得できる。
.SH 関連項目
\fBmmap\fP(2), \fBmallinfo\fP(3), \fBmalloc\fP(3), \fBmalloc_info\fP(3), \fBmallopt\fP(3)
.SH この文書について
.\"*******************************************************************
.TH MALLOC_USABLE_SIZE 3 2014\-06\-13 GNU "Linux Programmer's Manual"
.SH 名前
-malloc_usable_size \- ヒープから確保したメモリブロックのサイズを取得する
+malloc_usable_size \- ã\83\92ã\83¼ã\83\97ã\81\8bã\82\89確ä¿\9dã\81\97ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\83\96ã\83ã\83\83ã\82¯ã\81®ã\82µã\82¤ã\82ºã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
\fB#include <malloc.h>\fP
\fBsize_t malloc_usable_size (void *\fP\fIptr\fP\fB);\fP
.SH 説明
\fBmalloc_usable_size\fP() 関数は、 \fIptr\fP が指すブロックで使用可能なバイト数を返す。 \fIptr\fP
-は、\fBmalloc\fP(3) や同様の関数で割り当てられたメモリブロックへのポインターである。
+ã\81¯ã\80\81\fBmalloc\fP(3) ã\82\84å\90\8cæ§\98ã\81®é\96¢æ\95°ã\81§å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\83\96ã\83ã\83\83ã\82¯ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH 返り値
-\fBmalloc_usable_size\fP() は \fIptr\fP が指す割り当て済みメモリブロックで使用可能なバイト数を返す。 \fIptr\fP が
+\fBmalloc_usable_size\fP() ã\81¯ \fIptr\fP ã\81\8cæ\8c\87ã\81\99å\89²ã\82\8aå½\93ã\81¦æ¸\88ã\81¿ã\83¡ã\83¢ã\83ªã\83¼ã\83\96ã\83ã\83\83ã\82¯ã\81§ä½¿ç\94¨å\8f¯è\83½ã\81ªã\83\90ã\82¤ã\83\88æ\95°ã\82\92è¿\94ã\81\99ã\80\82 \fIptr\fP ã\81\8c
NULL の場合、 0 が返される。
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
この関数は GNU による拡張である。
.SH 注意
\fBmalloc_usable_size\fP() が返す値は、 要求された割り当てサイズよりも大きい場合がある。
-これは、メモリアラインメントと最小サイズの制約のためである。 この超過バイトをアプリケーションは悪影響なしで上書きすることができるが、
+ã\81\93ã\82\8cã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83©ã\82¤ã\83³ã\83¡ã\83³ã\83\88ã\81¨æ\9c\80å°\8fã\82µã\82¤ã\82ºã\81®å\88¶ç´\84ã\81®ã\81\9fã\82\81ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®è¶\85é\81\8eã\83\90ã\82¤ã\83\88ã\82\92ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81¯æ\82ªå½±é\9f¿ã\81ªã\81\97ã\81§ä¸\8aæ\9b¸ã\81\8dã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\81\8cã\80\81
これを行うのはプログラミングマナーとしてはよいこととは言えない。 アプリケーションの超過バイトの量は、内部の実装に依存する。
この関数の主な使用目的はデバッグと内部調査である。
助けとなるよう、 glibc の \fBmatherr\fP() の仕組みについて説明する。
\fBmatherr\fP() を使用するためには、
-プログラマは (\fIどの\fPヘッダファイルをインクルードするよりも前に)
+ã\83\97ã\83ã\82°ã\83©ã\83\9eã\81¯ (\fIã\81©ã\81®\fPã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\99ã\82\8bã\82\88ã\82\8aã\82\82å\89\8dã\81«)
\fB_SVID_SOURCE\fP 機能検査マクロを定義し、値 \fB_SVID_\fP をグローバル変数
\fB_LIB_VERSION\fP に代入しなければならない。
デフォルト版を上書きすることができる。
プログラマが定義した関数は例外が発生した際に起動される。
この関数は引き数 1 個で起動され、その引き数は以下に示す
-\fIexception\fP 構造体へのポインタである。
+\fIexception\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.in +4n
.nf
.SH 準拠
C99.
.SH 注意
-\fBmblen\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
+\fBmblen\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.PP
-\fBmbrlen\fP(3) 関数は同じ機能のより良いインタフェースを提供する。
+\fBmbrlen\fP(3) é\96¢æ\95°ã\81¯å\90\8cã\81\98æ©\9fè\83½ã\81®ã\82\88ã\82\8aè\89¯ã\81\84ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBmbrlen\fP(3)
.SH この文書について
を増さなければならないことを意味する。
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
-\fBmbrlen\fP() 関数は、例外付きのスレッドセーフである。 \fIps\fP パラメータが NULL で呼び出された場合はスレッドセーフではない。
+\fBmbrlen\fP() é\96¢æ\95°ã\81¯ã\80\81ä¾\8bå¤\96ä»\98ã\81\8dã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\82»ã\83¼ã\83\95ã\81§ã\81\82ã\82\8bã\80\82 \fIps\fP ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8c NULL ã\81§å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9få ´å\90\88ã\81¯ã\82¹ã\83¬ã\83\83ã\83\89ã\82»ã\83¼ã\83\95ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.SH 準拠
C99.
.SH 注意
-\fBmbrlen\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
+\fBmbrlen\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.SH 関連項目
\fBmbrtowc\fP(3)
.SH この文書について
\fI(size_t)\ \-1\fP を返し、\fIerrno\fP に \fBEILSEQ\fP を設定する。 この場合は \fI*ps\fP への影響は未定義である。
.PP
\fIs\fP が NULL でなく \fIpwc\fP が NULL の場合は \fBmbrtowc\fP() 関数は
-上記と同様に動作するが、変換したワイド文字はメモリには書き込まれない。
+ä¸\8aè¨\98ã\81¨å\90\8cæ§\98ã\81«å\8b\95ä½\9cã\81\99ã\82\8bã\81\8cã\80\81å¤\89æ\8f\9bã\81\97ã\81\9fã\83¯ã\82¤ã\83\89æ\96\87å\97ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\81¯æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\81ªã\81\84ã\80\82
.PP
puts \fI*ps\fP in the initial state and returns 0. 三番目の場合として \fIs\fP が NULL の場合、
\fIpwc\fP と \fIn\fP は 無視される。 \fI*ps\fP が表現する変換状態が不完全なマルチバイト文字変換を示している場合は、
を設定する。完全なマルチバイト文字を 解析できなかった場合には \fI(size_t)\ \-2\fP を返し \fIn\fP を増加させる必要があることを示す。
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
-\fBmbrtowc\fP() 関数は、例外付きのスレッドセーフである。 \fIps\fP パラメータが NULL で呼び出された場合はスレッドセーフではない。
+\fBmbrtowc\fP() é\96¢æ\95°ã\81¯ã\80\81ä¾\8bå¤\96ä»\98ã\81\8dã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\82»ã\83¼ã\83\95ã\81§ã\81\82ã\82\8bã\80\82 \fIps\fP ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8c NULL ã\81§å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9få ´å\90\88ã\81¯ã\82¹ã\83¬ã\83\83ã\83\89ã\82»ã\83¼ã\83\95ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.SH 準拠
C99.
.SH 注意
-\fBmbrtowc\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
+\fBmbrtowc\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.SH 関連項目
\fBmbsinit\fP(3), \fBmbsrtowcs\fP(3)
.SH この文書について
.SH 準拠
C99.
.SH 注意
-\fBmbsinit\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
+\fBmbsinit\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.SH 関連項目
\fBmbrlen\fP(3), \fBmbrtowc\fP(3), \fBwcrtomb\fP(3), \fBmbsrtowcs\fP(3), \fBwcsrtombs\fP(3)
.SH この文書について
が初期状態に戻される。) この場合は \fI*src\fP には NULL が設定され、 \fIdest\fP に書き込まれた文字数 (終端の
ヌルワイド文字は含まれない) を返す。
.PP
-\fIdest\fP が NULL の場合、\fIlen\fP は無視され、上記と同様の変換が 行われるが、変換されたワイド文字はメモリに書き込まれず、変換先の上限
-が存在しない。
+\fIdest\fP が NULL の場合、\fIlen\fP は無視され、上記と同様の変換が
+行われるが、変換されたワイド文字はメモリーに書き込まれず、変換先の上限 が存在しない。
.PP
上記のどちらの場合でも、\fIps\fP が NULL ならば、 代りに \fBmbsnrtowcs\fP() 関数のみが使用する静的で名前のない状態が使用される。
.PP
.SH 準拠
POSIX.1\-2008.
.SH 注意
-\fBmbsnrtowcs\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
+\fBmbsnrtowcs\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.PP
\fIps\fP に NULL を渡した際の動作はマルチスレッドセーフでない。
.SH 関連項目
が初期状態に戻される。 この場合は \fI*src\fP には NULL が設定され、終端のヌルワイド文字を除いて \fIdest\fP
に書き込まれた文字数を返す。
.PP
-\fIdest\fP が NULL の場合、\fIlen\fP は無視され、上記と同様の変換が 行われるが、変換されたワイド文字はメモリに書き込まれず、変換先の上限
-が存在しない。
+\fIdest\fP が NULL の場合、\fIlen\fP は無視され、上記と同様の変換が
+行われるが、変換されたワイド文字はメモリーに書き込まれず、変換先の上限 が存在しない。
.PP
上記のどちらの場合でも、\fIps\fP が NULL ならば、 代りに \fBmbsrtowcs\fP() 関数のみが使用する静的で名前のない状態が使用される。
.PP
.SH 準拠
C99.
.SH 注意
-\fBmbsrtowcs\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
+\fBmbsrtowcs\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.PP
\fIps\fP に NULL を渡した際の動作はマルチスレッドセーフでない。
.SH 関連項目
.PP
プログラマーは \fIdest\fP に最低でも \fIn\fP ワイド文字を書き込むこ とができる空間があることを保証しなければならない。
.PP
-\fIdest\fP が NULL の場合、\fIn\fP は無視され、上記と同様の変換が 行われるが、変換されたワイド文字はメモリに書き込まれず、変換先の上限
+\fIdest\fP ã\81\8c NULL ã\81®å ´å\90\88ã\80\81\fIn\fP ã\81¯ç\84¡è¦\96ã\81\95ã\82\8cã\80\81ä¸\8aè¨\98ã\81¨å\90\8cæ§\98ã\81®å¤\89æ\8f\9bã\81\8c è¡\8cã\82\8fã\82\8cã\82\8bã\81\8cã\80\81å¤\89æ\8f\9bã\81\95ã\82\8cã\81\9fã\83¯ã\82¤ã\83\89æ\96\87å\97ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\81«æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\81\9aã\80\81å¤\89æ\8f\9bå\85\88ã\81®ä¸\8aé\99\90
が存在しない。
.PP
上記の 2. の場合を避けるためにプログラマーは \fIn\fP が \fImbstowcs(NULL,src,0)+1\fP 以上であることを保証すべきである。
.SH 準拠
C99.
.SH 注意
-\fBmbstowcs\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
+\fBmbstowcs\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.PP
\fBmbsrtowcs\fP(3) 関数は同じ機能のより良いインターフェースを提供する。
.SH 例
の場合もこのようなことが 起こりえる。
.PP
\fIs\fP が NULL でなく \fIpwc\fP が NULL の場合は \fBmbtowc\fP() 関数は
-上記と同様に動作するが、変換したワイド文字はメモリには書き込まれない。
+ä¸\8aè¨\98ã\81¨å\90\8cæ§\98ã\81«å\8b\95ä½\9cã\81\99ã\82\8bã\81\8cã\80\81å¤\89æ\8f\9bã\81\97ã\81\9fã\83¯ã\82¤ã\83\89æ\96\87å\97ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\81¯æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\81ªã\81\84ã\80\82
.PP
.\" The Dinkumware doc and the Single UNIX specification say this, but
.\" glibc doesn't implement this.
.SH 準拠
C99.
.SH 注意
-\fBmbtowc\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
+\fBmbtowc\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.PP
この関数はマルチスレッドでは安全ではない。 \fBmbrtowc\fP(3) 関数は 同じ機能のより良いインターフェースを提供する。
.SH 関連項目
.\"
.TH MEMCCPY 3 2014\-03\-10 GNU "Linux Programmer's Manual"
.SH 名前
-memccpy \- メモリ領域をコピーする
+memccpy \- メモリー領域をコピーする
.SH 書式
.nf
\fB#include <string.h>\fP
\fBvoid *memccpy(void *\fP\fIdest\fP\fB, const void *\fP\fIsrc\fP\fB, int \fP\fIc\fP\fB, size_t \fP\fIn\fP\fB);\fP
.fi
.SH 説明
-\fBmemccpy\fP() は、メモリ領域 \fIsrc\fP からメモリ領域 \fIdest\fP に 最大で \fIn\fP バイトのコピーを行う。 \fIn\fP
+\fBmemccpy\fP() は、メモリー領域 \fIsrc\fP からメモリー領域 \fIdest\fP に 最大で \fIn\fP バイトのコピーを行う。 \fIn\fP
バイトコピーする前に文字 \fIc\fP が見つかると、 そこでコピーを中止する。
-コピー元とコピー先のメモリ領域が重なっている場合、 結果は不定である。
+コピー元とコピー先のメモリー領域が重なっている場合、 結果は不定である。
.SH 返り値
-\fBmemccpy\fP() は、\fIdest\fP 中に見つかった \fIc\fP の 次にあるキャラクター型の変数を指すポインタを返す。
+\fBmemccpy\fP() ã\81¯ã\80\81\fIdest\fP ä¸ã\81«è¦\8bã\81¤ã\81\8bã\81£ã\81\9f \fIc\fP ã\81® 次ã\81«ã\81\82ã\82\8bã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼å\9e\8bã\81®å¤\89æ\95°ã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
見つからなかった場合、NULL を返す。
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
.\"
.TH MEMCHR 3 2015\-01\-10 "" "Linux Programmer's Manual"
.SH 名前
-memchr, memrchr, rawmemchr \- 文字を探すためにメモリをスキャンする
+memchr, memrchr, rawmemchr \- æ\96\87å\97ã\82\92æ\8e¢ã\81\99ã\81\9fã\82\81ã\81«ã\83¡ã\83¢ã\83ªã\83¼ã\82\92ã\82¹ã\82ã\83£ã\83³ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <string.h>\fP
.sp
\fBmemrchr\fP(): \fBrawmemchr\fP(): _GNU_SOURCE
.SH 説明
-\fBmemchr\fP() 関数は、ポインタ \fIs\fP が指し示すメモリ領域の先頭の
+\fBmemchr\fP() 関数は、ポインター \fIs\fP が指し示すメモリー領域の先頭の
\fIn\fP バイトから最初に登場する文字 \fIc\fP を探す。
-\fIc\fP と \fIs\fP が指し示すメモリ領域の各バイトは両方とも
+\fIc\fP と \fIs\fP が指し示すメモリー領域の各バイトは両方とも
\fIunsigned char\fP と解釈される。
.PP
-\fBmemrchr\fP() 関数は \fBmemchr\fP() 関数に似ているが、 先頭から順方向に探すのではなく、 ポインタ \fIs\fP が指し示す
-\fIn\fP バイトのメモリブロックの 末尾から逆向きに探す。
+\fBmemrchr\fP() 関数は \fBmemchr\fP() 関数に似ているが、 先頭から順方向に探すのではなく、 ポインター \fIs\fP が指し示す
+\fIn\fP ã\83\90ã\82¤ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\96ã\83ã\83\83ã\82¯ã\81® æ\9c«å°¾ã\81\8bã\82\89é\80\86å\90\91ã\81\8dã\81«æ\8e¢ã\81\99ã\80\82
\fBrawmemchr\fP() 関数は \fBmemchr\fP() と同様だが、 \fIc\fP が \fIs\fP が指す場所
-から始まるメモリ領域のどこかにあることを前提にして (つまり、プログラマ
+から始まるメモリー領域のどこかにあることを前提にして (つまり、プログラマ
はそのことを知っている)、最適化した方法で \fIc\fP の検索を実行する (すなわ
ち、検索範囲の上限を示す引き数も使用されない)。\fIc\fP が見つからなかった
場合、その結果はどうなるか分からない。次に示す呼び出しは、文字列終端の
.fi
.in
.SH 返り値
-\fBmemchr\fP() é\96¢æ\95°ã\81¨ \fBmemrchr\fP() é\96¢æ\95°ã\81¯ä¸\80è\87´ã\81\99ã\82\8bæ\96\87å\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\97ã\80\81 ã\82\82ã\81\97æ\96\87å\97ã\81\8cæ\8c\87å®\9aã\83¡ã\83¢ã\83ªé \98å\9f\9fã\81«ç\8f¾ã\82\8cã\81ªã\81\84å ´å\90\88ã\81¯ NULL
-を返す。
+\fBmemchr\fP() é\96¢æ\95°ã\81¨ \fBmemrchr\fP() é\96¢æ\95°ã\81¯ä¸\80è\87´ã\81\99ã\82\8bæ\96\87å\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\97ã\80\81 ã\82\82ã\81\97æ\96\87å\97ã\81\8cæ\8c\87å®\9aã\83¡ã\83¢ã\83ªã\83¼é \98å\9f\9fã\81«ç\8f¾ã\82\8cã\81ªã\81\84å ´å\90\88ã\81¯
+NULL を返す。
-\fBrawmemchr\fP() 関数はマッチするバイトが見つかった場合はマッチしたバイトへのポインタを返す。
+\fBrawmemchr\fP() é\96¢æ\95°ã\81¯ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\83\90ã\82¤ã\83\88ã\81\8cè¦\8bã\81¤ã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ã\83\9eã\83\83ã\83\81ã\81\97ã\81\9fã\83\90ã\82¤ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
マッチするバイトが見つからなかった場合、結果は不定である。
.SH バージョン
\fBrawmemchr\fP() は glibc バージョン 2.1 で初めて登場した。
.\"
.TH MEMCMP 3 2014\-12\-31 "" "Linux Programmer's Manual"
.SH 名前
-memcmp \- メモリ領域を比較する
+memcmp \- メモリー領域を比較する
.SH 書式
.nf
\fB#include <string.h>\fP
\fBint memcmp(const void *\fP\fIs1\fP\fB, const void *\fP\fIs2\fP\fB, size_t \fP\fIn\fP\fB);\fP
.fi
.SH 説明
-\fBmemcmp\fP() 関数は、メモリ領域 \fIs1\fP と\fIs2\fP の最初の \fIn\fP バイトを比較する (各バイトは \fIunsigned
+\fBmemcmp\fP() 関数は、メモリー領域 \fIs1\fP と\fIs2\fP の最初の \fIn\fP バイトを比較する (各バイトは \fIunsigned
char\fP として解釈される)。
.SH 返り値
\fBmemcmp\fP() 関数は、\fIs1\fP の最初の \fIn\fP バイトが \fIs2\fP の最初の \fIn\fP バイトよりも
.\"
.TH MEMCPY 3 2014\-03\-17 "" "Linux Programmer's Manual"
.SH 名前
-memcpy \- メモリ領域をコピーする。
+memcpy \- メモリー領域をコピーする。
.SH 書式
.nf
\fB#include <string.h>\fP
\fBvoid *memcpy(void *\fP\fIdest\fP\fB, const void *\fP\fIsrc\fP\fB, size_t \fP\fIn\fP\fB);\fP
.fi
.SH 説明
-\fBmemcpy\fP() はメモリ領域 \fIsrc\fP の先頭 \fIn\fP バイトを メモリ領域 \fIdest\fP にコピーする。コピー元の領域と
+\fBmemcpy\fP() はメモリー領域 \fIsrc\fP の先頭 \fIn\fP バイトを メモリー領域 \fIdest\fP にコピーする。コピー元の領域と
コピー先の領域が重なってはならない。重なっている場合は \fBmemmove\fP(3) を使うこと。
.SH 返り値
-\fBmemcpy\fP() は \fIdest\fP へのポインタを返す。
+\fBmemcpy\fP() ã\81¯ \fIdest\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBmemcpy\fP() 関数はスレッドセーフである。
.\"
.TH MEMFROB 3 2014\-03\-17 GNU "Linux Programmer's Manual"
.SH 名前
-memfrob \- メモリエリアの操作 (暗号化)
+memfrob \- ã\83¡ã\83¢ã\83ªã\83¼ã\82¨ã\83ªã\82¢ã\81®æ\93\8dä½\9c (æ\9a\97å\8f·å\8c\96)
.SH 書式
.nf
\fB#define _GNU_SOURCE\fP /* feature_test_macros(7) 参照 */
\fBvoid *memfrob(void *\fP\fIs\fP\fB, size_t \fP\fIn\fP\fB);\fP
.fi
.SH 説明
-\fBmemfrob\fP() 関数は、メモリエリア \fIs\fP の最初の \fIn\fP バイトの それぞれの文字を 42
-との排他的論理をとることによって暗号化する。 変換後のデータは、暗号化されているメモリエリアに (再度) \fBmemfrob\fP()
+\fBmemfrob\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\82¨ã\83ªã\82¢ \fIs\fP ã\81®æ\9c\80å\88\9dã\81® \fIn\fP ã\83\90ã\82¤ã\83\88ã\81® ã\81\9dã\82\8cã\81\9eã\82\8cã\81®æ\96\87å\97ã\82\92 42
+ã\81¨ã\81®æ\8e\92ä»\96ç\9a\84è«\96ç\90\86ã\82\92ã\81¨ã\82\8bã\81\93ã\81¨ã\81«ã\82\88ã\81£ã\81¦æ\9a\97å\8f·å\8c\96ã\81\99ã\82\8bã\80\82 å¤\89æ\8f\9bå¾\8cã\81®ã\83\87ã\83¼ã\82¿ã\81¯ã\80\81æ\9a\97å\8f·å\8c\96ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\82¨ã\83ªã\82¢ã\81« (å\86\8d度) \fBmemfrob\fP()
関数を施すことで、元に戻すことができる。
.PP
この関数は妥当な暗号化ルーチンであるとは言えないことに注意して欲しい。 XOR
をとる定数を固定しているので、せいぜい、文字列を隠す程度の用途にしか向いていない。
.SH 返り値
-\fBmemfrob\fP() é\96¢æ\95°ã\81¯ã\80\81æ\9a\97å\8f·å\8c\96ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\82¨ã\83ªã\82¢ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す。
+\fBmemfrob\fP() é\96¢æ\95°ã\81¯ã\80\81æ\9a\97å\8f·å\8c\96ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82¨ã\83ªã\82¢ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す。
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBmemfrob\fP() 関数はスレッドセーフである。
\fB const void *\fP\fIneedle\fP\fB, size_t \fP\fIneedlelen\fP\fB);\fP
.fi
.SH 説明
-\fBmemmem\fP() 関数は、 \fIhaystacklen\fP の大きさを持つメモリ領域 \fIhaystack\fP の中で \fIneedlelen\fP
+\fBmemmem\fP() 関数は、 \fIhaystacklen\fP の大きさを持つメモリー領域 \fIhaystack\fP の中で \fIneedlelen\fP
の大きさを持つ部分文字列 \fIneedle\fP が 最初に現れる位置を見つける。
.SH 返り値
-\fBmemmem\fP() 関数は、部分文字列の開始を指すポインタを返し、もし部分文字列が 見つからない場合は NULL を返す。
+\fBmemmem\fP() é\96¢æ\95°ã\81¯ã\80\81é\83¨å\88\86æ\96\87å\97å\88\97ã\81®é\96\8bå§\8bã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\97ã\80\81ã\82\82ã\81\97é\83¨å\88\86æ\96\87å\97å\88\97ã\81\8c è¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\84å ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBmemmem\fP() 関数はスレッドセーフである。
.\" (instead of
.\" .IR haystack )
.\" is returned.
-glibc 2.0 では、 \fIneedle\fP が空の場合、 \fBmemmem\fP() は \fIhaystack\fP の最後のバイトへのポインタを返す。
+glibc 2.0 ã\81§ã\81¯ã\80\81 \fIneedle\fP ã\81\8c空ã\81®å ´å\90\88ã\80\81 \fBmemmem\fP() ã\81¯ \fIhaystack\fP ã\81®æ\9c\80å¾\8cã\81®ã\83\90ã\82¤ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
これは glibc 2.1 で修正されている。
.SH 関連項目
\fBstrstr\fP(3)
.\"
.TH MEMMOVE 3 2014\-03\-17 GNU "Linux Programmer's Manual"
.SH 名前
-memmove \- メモリ領域をコピーする
+memmove \- メモリー領域をコピーする
.SH 書式
.nf
\fB#include <string.h>\fP
\fBvoid *memmove(void *\fP\fIdest\fP\fB, const void *\fP\fIsrc\fP\fB, size_t \fP\fIn\fP\fB);\fP
.fi
.SH 説明
-\fBmemmove\fP() は、メモリ領域 \fIsrc\fP の先頭 \fIn\fP バイトを メモリ領域 \fIdest\fP にコピーする。コピー元とコピー先の
+\fBmemmove\fP() は、メモリー領域 \fIsrc\fP の先頭 \fIn\fP バイトを メモリー領域 \fIdest\fP にコピーする。コピー元とコピー先の
領域が重なっていてもよい。 最初に \fIsrc\fP のバイトが \fIsrc\fP とも \fIdest\fP
とも重ならない一時的な配列にコピーされてから、一時的な配列から \fIdest\fP にバイトのコピーが行われたかのように、コピーが行われる。
.SH 返り値
-\fBmemmove\fP() は \fIdest\fP へのポインタを返す。
+\fBmemmove\fP() ã\81¯ \fIdest\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBmemmove\fP() 関数はスレッドセーフである。
.\"
.TH MEMPCPY 3 2014\-03\-18 GNU "Linux Programmer's Manual"
.SH 名前
-mempcpy, wmempcpy \- メモリ領域をコピーする
+mempcpy, wmempcpy \- メモリー領域をコピーする
.SH 書式
.nf
\fB#define _GNU_SOURCE\fP /* feature_test_macros(7) 参照 */
.SH 説明
\fBmempcpy\fP() 関数は \fBmemcpy\fP(3) 関数とほぼ同一である。 この関数は、 \fIsrc\fP で始まるオブジェクトから \fIn\fP
バイトを、 \fIdest\fP で指されるオブジェクトにコピーする。 ただし \fIdest\fP の値を返すのではなく、
-最後に書き込まれたバイトの後に続くバイトへのポインタを返す。
+æ\9c\80å¾\8cã\81«æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\81\9fã\83\90ã\82¤ã\83\88ã\81®å¾\8cã\81«ç¶\9aã\81\8fã\83\90ã\82¤ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.PP
-この関数はいくつかのオブジェクトが 連続的なメモリの場所にコピーされるような状況で役に立つ。
+ã\81\93ã\81®é\96¢æ\95°ã\81¯ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81\8c é\80£ç¶\9aç\9a\84ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81®å ´æ\89\80ã\81«ã\82³ã\83\94ã\83¼ã\81\95ã\82\8cã\82\8bã\82\88ã\81\86ã\81ªç\8a¶æ³\81ã\81§å½¹ã\81«ç«\8bã\81¤ã\80\82
.PP
\fBwmempcpy\fP() 関数はこの関数と同じであるが、 \fIwchar_t\fP 型の引き数をとり、 \fIn\fP ワイド文字列をコピーする。
.SH 返り値
.\"
.TH MEMSET 3 2014\-03\-18 GNU "Linux Programmer's Manual"
.SH 名前
-memset \- ある一定のバイトでメモリ領域を埋める。
+memset \- ある一定のバイトでメモリー領域を埋める。
.SH 書式
.nf
\fB#include <string.h>\fP
\fBvoid *memset(void *\fP\fIs\fP\fB, int \fP\fIc\fP\fB, size_t \fP\fIn\fP\fB);\fP
.fi
.SH 説明
-\fBmemset\fP() は \fIs\fP で示されるメモリ領域の先頭から \fIn\fP バイトを \fIc\fP で埋める。
+\fBmemset\fP() は \fIs\fP で示されるメモリー領域の先頭から \fIn\fP バイトを \fIc\fP で埋める。
.SH 返り値
-\fBmemset\fP() は \fIs\fP へのポインタを返す。
+\fBmemset\fP() ã\81¯ \fIs\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBmemset\fP() 関数はスレッドセーフである。
6 文字は XXXXXX でなければならない。 この部分はディレクトリ名を他と重ならなくするための 文字列で置き換えられる。 ディレクトリは許可属性を
0700 として作成される。 \fItemplate\fP は変更されるので、文字列定数にしてはならず、文字配列にすべきである。
.SH 返り値
-成功した場合、 \fBmkdtemp\fP() 関数は 変更された template 文字列へのポインタを返す。 失敗した場合は、NULL を返して、
+æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 \fBmkdtemp\fP() é\96¢æ\95°ã\81¯ å¤\89æ\9b´ã\81\95ã\82\8cã\81\9f template æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 失æ\95\97ã\81\97ã\81\9få ´å\90\88ã\81¯ã\80\81NULL ã\82\92è¿\94ã\81\97ã\81¦ã\80\81
\fIerrno\fP を適切に設定する。
.SH エラー
.TP
\fIpathname\fP の中のディレクトリの一つに対し検索(実行)許可がない。
.TP
\fBEDQUOT\fP
-ディスクブロックか inode がそのファイルシステムのユーザクォータに達していた。
+ã\83\87ã\82£ã\82¹ã\82¯ã\83\96ã\83ã\83\83ã\82¯ã\81\8b inode ã\81\8cã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82¯ã\82©ã\83¼ã\82¿ã\81«é\81\94ã\81\97ã\81¦ã\81\84ã\81\9fã\80\82
.TP
\fBEEXIST\fP
\fIpathname\fP がすでに存在する。 これには \fIpathname\fP がシンボリックリンクである場合も含まれる
\fBmkfifoat\fP() では以下のエラーも発生する。
.TP
\fBEBADF\fP
-\fIdirfd\fP が有効なファイルディスクリプタでない。
+\fIdirfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
-\fIpathname\fP が相対パスで、 \fIdirfd\fP がディレクトリ以外のファイルを参照しているファイルディスクリプタである。
+\fIpathname\fP ã\81\8cç\9b¸å¯¾ã\83\91ã\82¹ã\81§ã\80\81 \fIdirfd\fP ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä»¥å¤\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH バージョン
\fBmkfifoat\fP() は glibc 2.4 で追加された。これは、カーネル 2.6.16 以降の Linux で利用できる
\fBmknodat\fP(2) を使って実装されている。
\fBmkostemps\fP(): _GNU_SOURCE
.SH 説明
関数 \fBmkstemp\fP() は引数 \fItemplate\fP から他と重ならない一時ファイル名を生成し、 そのファイルの作成とオープンを行い、
-そのファイルに対するオープン済みのファイルディスクリプタを返す。
+ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«å¯¾ã\81\99ã\82\8bã\82ªã\83¼ã\83\97ã\83³æ¸\88ã\81¿ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
引数 \fItemplate\fP で指示する文字列の後ろの 6 文字は XXXXXX である必要がある。
この部分がファイル名を他と重ならないようにする文字で置き換えられる。 \fItemplate\fP は書き換えられるため、文字列定数ではなく文字配列として
宣言するようにしなければならない。
-ファイルは許可モード 0600 で作成され、所有者のみが読み書き可能である。返されるファイルディスクリプタで、このファイルへの読み書き両方のアクセスが
+ã\83\95ã\82¡ã\82¤ã\83«ã\81¯è¨±å\8f¯ã\83¢ã\83¼ã\83\89 0600 ã\81§ä½\9cæ\88\90ã\81\95ã\82\8cã\80\81æ\89\80æ\9c\89è\80\85ã\81®ã\81¿ã\81\8cèªã\81¿æ\9b¸ã\81\8då\8f¯è\83½ã\81§ã\81\82ã\82\8bã\80\82è¿\94ã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\80\81ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¸ã\81®èªã\81¿æ\9b¸ã\81\8d両æ\96¹ã\81®ã\82¢ã\82¯ã\82»ã\82¹ã\81\8c
可能である。 呼び出し者がそのファイルを作成するプロセスであることを保証するために、 ファイルは \fBopen\fP(2) の \fBO_EXCL\fP
フラグ付きでオープンされる。
\fBmkostemps\fP() と \fBmkstemps\fP() の関係は、
\fBmkostemp\fP() と \fBmkstemp\fP() の関係と同じである。
.SH 返り値
-成功すると、これらの関数は一時ファイルのファイルディスクリプタを返す。 エラーの場合は、\-1 を返し、 \fIerrno\fP を適切に設定する。
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ä¸\80æ\99\82ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\81¯ã\80\81\-1 ã\82\92è¿\94ã\81\97ã\80\81 \fIerrno\fP ã\82\92é\81©å\88\87ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82
.SH エラー
.TP
\fBEEXIST\fP
\fBmkostemp\fP() と \fBmkostemps\fP(): glibc による拡張。
.SH 注意
-glibc バージョン 2.06 以前では、ファイルは許可モード 0666 で作成され、全てのユーザが読み書き可能であった。この古い動作は、
+glibc ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.06 以å\89\8dã\81§ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81¯è¨±å\8f¯ã\83¢ã\83¼ã\83\89 0666 ã\81§ä½\9cæ\88\90ã\81\95ã\82\8cã\80\81å\85¨ã\81¦ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cèªã\81¿æ\9b¸ã\81\8då\8f¯è\83½ã\81§ã\81\82ã\81£ã\81\9fã\80\82ã\81\93ã\81®å\8f¤ã\81\84å\8b\95ä½\9cã\81¯ã\80\81
セキュリティ上のリスクになり得る。特に、他の UNIX では許可モードとして 0600
を使うため、プログラムを移植する際、この細かな違いを見落とす可能性があるからだ。 POSIX.1\-2008 では、ファイルを許可モード 0600
で作成することが必須要件として追加された。
.TH MPOOL 3 2012\-04\-26 "" "Linux Programmer's Manual"
.UC 7
.SH 名前
-mpool \- å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83\90ã\83\83ã\83\95ã\82¡プール
+mpool \- å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼プール
.SH 書式
.nf
\fB#include <db.h>\fP
インターフェースは提供されていない。おそらく、このページではなく、
\fIlibdb\fP ライブラリが提供する API をお探しなのだろう。
-\fImpool\fP は、ファイルに対するページ指向のバッファ管理を実装した ライブラリインターフェイスである。
+\fImpool\fP は、ファイルに対するページ指向のバッファー管理を実装した ライブラリインターフェイスである。
.PP
-é\96¢æ\95° \fBmpool_open\fP() ã\81¯ã\83¡ã\83¢ã\83ªã\83\97ã\83¼ã\83«ã\82\92å\88\9dæ\9c\9få\8c\96ã\81\99ã\82\8bã\80\82 \fIkey\fP å¼\95æ\95°ã\81¯ã\83\90ã\82¤ã\83\88æ\96\87å\97å\88\97ã\81§ã\81\82ã\82\8aã\80\81ã\83\90ã\83\83ã\83\95ã\82¡を共有したい複数プロセス間
-ã\81§ã\81®ã\83\8dã\82´ã\82·ã\82¨ã\83¼ã\82·ã\83§ã\83³ã\81«ä½¿ã\82\8fã\82\8cã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\83\90ã\83\83ã\83\95ã\82¡ã\81\8cå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\81«ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81 å\90\8cã\81\98ã\82ã\83¼ã\82\92使ã\81\86ã\83\97ã\83ã\82»ã\82¹ã\81¯å\85¨ã\81¦ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\80\82 \fIkey\fP ã\81\8c
-NULL だと、バッファはプライベートなメモリに割り付けられる。 \fIfd\fP 引数はもとになるファイルのファイルデスクリプタである。
-ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82¹ã\82¯ã\83ªã\83\97ã\82¿はシーク可能でなくてはならない。 \fIkey\fP が NULL でなく、かつ既にマップされているファイルにマッチした場合、
+é\96¢æ\95° \fBmpool_open\fP() ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\83\97ã\83¼ã\83«ã\82\92å\88\9dæ\9c\9få\8c\96ã\81\99ã\82\8bã\80\82 \fIkey\fP å¼\95æ\95°ã\81¯ã\83\90ã\82¤ã\83\88æ\96\87å\97å\88\97ã\81§ã\81\82ã\82\8aã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼を共有したい複数プロセス間
+ã\81§ã\81®ã\83\8dã\82´ã\82·ã\82¨ã\83¼ã\82·ã\83§ã\83³ã\81«ä½¿ã\82\8fã\82\8cã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81 å\90\8cã\81\98ã\82ã\83¼ã\82\92使ã\81\86ã\83\97ã\83ã\82»ã\82¹ã\81¯å\85¨ã\81¦ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\80\82 \fIkey\fP
+が NULL だと、バッファーはプライベートなメモリーに割り付けられる。 \fIfd\fP 引数はもとになるファイルのファイルディスクリプターである。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼はシーク可能でなくてはならない。 \fIkey\fP が NULL でなく、かつ既にマップされているファイルにマッチした場合、
\fIfd\fP 引数は無視される。
.PP
\fIpagesize\fP 引数はバイト単位でのページサイズであり、ファイルはこのサイズに分割される。 \fImaxcache\fP
-引数は基ファイルをキャッシュするときに用いる最大ページ数である。 この値はファイルバッファを共有しているプロセスの数には関係ないが、
+å¼\95æ\95°ã\81¯å\9fºã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81\99ã\82\8bã\81¨ã\81\8dã\81«ç\94¨ã\81\84ã\82\8bæ\9c\80大ã\83\9aã\83¼ã\82¸æ\95°ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®å\80¤ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92å\85±æ\9c\89ã\81\97ã\81¦ã\81\84ã\82\8bã\83\97ã\83ã\82»ã\82¹ã\81®æ\95°ã\81«ã\81¯é\96¢ä¿\82ã\81ªã\81\84ã\81\8cã\80\81
ファイルを共有するプロセスが指定したうちの最大値が実際に用いられる。
.PP
関数 \fBmpool_filter\fP() は透過的なページ入出力処理を可能にする。 関数 \fIpgin\fP が指定されていると、
-ファイルからメモリプールに読み込まれる度にこの関数が呼び出される。 関数 \fIpgout\fP が指定されていと、
-バッファからファイルに書き出される度にこの関数が呼び出される。 どちらの関数も、 \fIpgcookie\fP
-ã\83\9dã\82¤ã\83³ã\82¿ã\80\81ã\83\9aã\83¼ã\82¸æ\95°ã\80\81èªã\81¿æ\9b¸ã\81\8dã\81\95ã\82\8cã\82\8bã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を引数にとる。
+ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89ã\83¡ã\83¢ã\83ªã\83¼ã\83\97ã\83¼ã\83«ã\81«èªã\81¿è¾¼ã\81¾ã\82\8cã\82\8b度ã\81«ã\81\93ã\81®é\96¢æ\95°ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\80\82 é\96¢æ\95° \fIpgout\fP ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81¨ã\80\81
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8bã\82\89ã\83\95ã\82¡ã\82¤ã\83«ã\81«æ\9b¸ã\81\8då\87ºã\81\95ã\82\8cã\82\8b度ã\81«ã\81\93ã\81®é\96¢æ\95°ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\80\82 ã\81©ã\81¡ã\82\89ã\81®é\96¢æ\95°ã\82\82ã\80\81 \fIpgcookie\fP
+ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\81ã\83\9aã\83¼ã\82¸æ\95°ã\80\81èªã\81¿æ\9b¸ã\81\8dã\81\95ã\82\8cã\82\8bã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を引数にとる。
.PP
-関数 \fBmpool_new\fP() は \fIMPOOL\fP ポインタとアドレスを引数にとる。
-新しいページが割り当て可能な場合、ページへのポインタが返され、 ページ数が \fIpgnoaddr\fP アドレスに納められる。 割り当てが不可能な場合は
+é\96¢æ\95° \fBmpool_new\fP() ã\81¯ \fIMPOOL\fP ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92å¼\95æ\95°ã\81«ã\81¨ã\82\8bã\80\82
+æ\96°ã\81\97ã\81\84ã\83\9aã\83¼ã\82¸ã\81\8cå\89²ã\82\8aå½\93ã\81¦å\8f¯è\83½ã\81ªå ´å\90\88ã\80\81ã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cè¿\94ã\81\95ã\82\8cã\80\81 ã\83\9aã\83¼ã\82¸æ\95°ã\81\8c \fIpgnoaddr\fP ã\82¢ã\83\89ã\83¬ã\82¹ã\81«ç´\8dã\82\81ã\82\89ã\82\8cã\82\8bã\80\82 å\89²ã\82\8aå½\93ã\81¦ã\81\8cä¸\8då\8f¯è\83½ã\81ªå ´å\90\88ã\81¯
NULL が返され、 \fIerrno\fP がセットされる。
.PP
-é\96¢æ\95° \fBmpool_get\fP() ã\81¯ \fIMPOOL\fP ã\83\9dã\82¤ã\83³ã\82¿ã\81¨ã\83\9aã\83¼ã\82¸æ\95°ã\82\92å¼\95æ\95°ã\81«ã\81¨ã\82\8bã\80\82ã\83\9aã\83¼ã\82¸ã\81\8cå\98å\9c¨ã\81\97ã\81¦ã\81\84ã\82\8bã\81¨ã\80\81 ã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿が返される。
+é\96¢æ\95° \fBmpool_get\fP() ã\81¯ \fIMPOOL\fP ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\83\9aã\83¼ã\82¸æ\95°ã\82\92å¼\95æ\95°ã\81«ã\81¨ã\82\8bã\80\82ã\83\9aã\83¼ã\82¸ã\81\8cå\98å\9c¨ã\81\97ã\81¦ã\81\84ã\82\8bã\81¨ã\80\81 ã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼が返される。
存在していないと NULL が返され、 \fIerrno\fP がセットされる。 \fIflags\fP 引き数は現在使用されていない。
.PP
関数 \fBmpool_put\fP() は \fIpgaddr\fP が参照するページを解放する。 \fIpgaddr\fP は以前に \fBmpool_get\fP()
.PP
\fBmpool_put\fP() は成功すると 0 を、エラーがあると \-1 を返す。
.PP
-関数 \fBmpool_sync\fP() は \fIMPOOL\fP ポインタの示すページのうち、 変更されたものを全てファイルに書き出す。
+é\96¢æ\95° \fBmpool_sync\fP() ã\81¯ \fIMPOOL\fP ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®ç¤ºã\81\99ã\83\9aã\83¼ã\82¸ã\81®ã\81\86ã\81¡ã\80\81 å¤\89æ\9b´ã\81\95ã\82\8cã\81\9fã\82\82ã\81®ã\82\92å\85¨ã\81¦ã\83\95ã\82¡ã\82¤ã\83«ã\81«æ\9b¸ã\81\8då\87ºã\81\99ã\80\82
\fBmpool_sync\fP() は成功すると 0 を、エラーがあると \-1 を返す。
.PP
-é\96¢æ\95° \fBmpool_close\fP() ã\81¯ã\83¡ã\83¢ã\83ªã\83\97ã\83¼ã\83«ã\82¯ã\83\83ã\82ã\83¼ã\81®ç¤ºã\81\99å\89²ã\82\8aå½\93ã\81¦æ¸\88ã\81¿ã\81®ã\83¡ã\83¢ã\83ªを解放する。
+é\96¢æ\95° \fBmpool_close\fP() ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\83\97ã\83¼ã\83«ã\82¯ã\83\83ã\82ã\83¼ã\81®ç¤ºã\81\99å\89²ã\82\8aå½\93ã\81¦æ¸\88ã\81¿ã\81®ã\83¡ã\83¢ã\83ªã\83¼を解放する。
変更されたページはファイルに\fB書き出されない\fP。 \fImpool_close ()\fP は成功すると 0 を、エラーがあると \-1 を返す。
.SH エラー
関数 \fBmpool_open\fP() は失敗するとライブラリルーチン \fBmalloc\fP(3) で指定されているエラーに応じた \fIerrno\fP
.SH エラー
.TP
\fBEBADF\fP
-\fImqdes\fP に指定されたディスクリプタが不正である。
+\fImqdes\fP ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cä¸\8dæ£ã\81§ã\81\82ã\82\8bã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
関数 \fBmq_close\fP() はスレッドセーフである。
\fBmq_getattr\fP() と \fBmq_setattr\fP() は、記述子 \fImqdes\fP
で参照されるメッセージキューの属性の取得と変更をそれぞれ行う。
-\fBmq_getattr\fP() は、 \fIattr\fP が指すバッファに \fImq_attr\fP
+\fBmq_getattr\fP() ã\81¯ã\80\81 \fIattr\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81« \fImq_attr\fP
構造体を格納して返す。この構造体は以下のように定義されている:
.in +4n
.nf
\fBmq_setattr\fP() は、 \fInewattr\fP が指す \fImq_attr\fP
構造体で与えられた情報を使って、メッセージキューの属性を設定する。 変更することができる属性は、 \fImq_flags\fP の \fBO_NONBLOCK\fP
フラグの設定だけである。 \fInewattr\fP の他のフィールドは無視される。 \fIoldattr\fP フィールドが NULL 以外の場合、
-\fBmq_getattr\fP() が返すのと同じ情報を格納した \fImq_attr\fP 構造体を \fIoldattr\fP が指すバッファに入れて返す。
+\fBmq_getattr\fP() ã\81\8cè¿\94ã\81\99ã\81®ã\81¨å\90\8cã\81\98æ\83\85å ±ã\82\92æ ¼ç´\8dã\81\97ã\81\9f \fImq_attr\fP æ§\8bé\80 ä½\93ã\82\92 \fIoldattr\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82
.SH 返り値
成功すると、 \fImq_getattr ()\fP と \fImq_setattr ()\fP は 0 を返す。エラーの場合、\-1 を返し、 \fIerrno\fP
にエラーを示す値を設定する。
.SH エラー
.TP
\fBEBADF\fP
-\fImqdes\fP に指定されたディスクリプタが不正である。
+\fImqdes\fP ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cä¸\8dæ£ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBEINVAL\fP
\fInewattr\->mq_flags\fP に \fBO_NONBLOCK\fP 以外のビットがセットされていた。
.sp
\fI\-lrt\fP でリンクする。
.SH 説明
-\fBmq_notify\fP() を使うと、ディスクリプタ \fImqdes\fP で参照される空のメッセージキューに新しくメッセージが到着した時に
+\fBmq_notify\fP() を使うと、ディスクリプター \fImqdes\fP で参照される空のメッセージキューに新しくメッセージが到着した時に
非同期の通知 (notification) の配送が行われるように登録したり、 その解除を行ったりできる。
-\fIsevp\fP 引き数は \fIsigevent\fP 構造体へのポインタである。 この構造体の定義と一般的な詳細については \fBsigevent\fP(7)
+\fIsevp\fP å¼\95ã\81\8dæ\95°ã\81¯ \fIsigevent\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81®å®\9a義ã\81¨ä¸\80è\88¬ç\9a\84ã\81ªè©³ç´°ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ \fBsigevent\fP(7)
を参照。
.PP
-\fIsevp\fP ã\81\8c NULL ã\81§ã\81ªã\81\84ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81\82ã\82\8cã\81°ã\80\81 \fBmq_notify\fP() ã\81¯ã\83¡ã\83\83ã\82»ã\83¼ã\82¸é\80\9aç\9f¥ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bã\82\88ã\81\86ã\81«å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\97ã\83ã\82»ã\82¹ã\82\92ç\99»é\8c²ã\81\99ã\82\8bã\80\82
-\fIsevp\fP が指す \fIsigevent\fP 構造体の \fIsigev_notify\fP フィールドは、どのような通知を行うのかを指定する。
-このフィールドは以下の値のいずれかを持つ。
+\fIsevp\fP ã\81\8c NULL ã\81§ã\81ªã\81\84ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8cã\81°ã\80\81 \fBmq_notify\fP()
+はメッセージ通知を受け取るように呼び出し元のプロセスを登録する。 \fIsevp\fP が指す \fIsigevent\fP 構造体の
+\fIsigev_notify\fP フィールドは、どのような通知を行うのかを指定する。 このフィールドは以下の値のいずれかを持つ。
.TP
\fBSIGEV_NONE\fP
.\" When is SIGEV_NONE useful?
.\" si_pid and si_uid -- MTK
\fIsigev_signo\fP で指定されたシグナルを送って、プロセスに通知する。 一般的な詳細については \fBsigevent\fP(7) を参照。
\fIsiginfo_t\fP 構造体の \fIsi_code\fP フィールドには \fBSI_MESGQ\fP が設定される。 さらに、 \fIsi_pid\fP
-にはメッセージを送信したプロセスの PID が、 \fIsi_uid\fP には送信プロセスの実ユーザ ID が設定される。
+にはメッセージを送信したプロセスの PID が、 \fIsi_uid\fP には送信プロセスの実ユーザー ID が設定される。
.TP
\fBSIGEV_THREAD\fP
メッセージの配送時には、 \fIsigev_notify_function\fP があたかも新しいスレッドの開始関数であるかのように起動される。 詳細は
.SH エラー
.TP
\fBEBADF\fP
-\fImqdes\fP に指定されたディスクリプタが不正である。
+\fImqdes\fP ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cä¸\8dæ£ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBEBUSY\fP
別のプロセスがすでに このメッセージキューに対する通知を受信するように登録している。
\fBSIGEV_SIGNAL\fP だが \fIsevp\->sigev_signo\fP が有効なシグナル番号ではない。
.TP
\fBENOMEM\fP
-十分なメモリがない。
+å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.PP
.\" Linux does not do this
POSIX.1\-2008 では、 \fIsevp\fP が NULL で、呼び出し元のプロセスがキュー \fImqdes\fP
mqd_t mqdes = *((mqd_t *) sv.sival_ptr);
/* 最大メッセージサイズを決定し、
- メッセージ受信用のバッファを確保する */
+ ã\83¡ã\83\83ã\82»ã\83¼ã\82¸å\8f\97ä¿¡ç\94¨ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92確ä¿\9dã\81\99ã\82\8b */
if (mq_getattr(mqdes, &attr) == \-1)
handle_error("mq_getattr");
.TP
\fBO_CREAT\fP
.\" In reality the filesystem IDs are used on Linux.
-存在しない場合、メッセージキューを作成する。 メッセージキューの所有者 (ユーザ ID) とグループ所有権 (グループ ID) は、
-それぞれ呼び出し元プロセスの実効ユーザ ID と実効グループ ID に設定される。
+存在しない場合、メッセージキューを作成する。 メッセージキューの所有者 (ユーザー ID) とグループ所有権 (グループ ID) は、
+それぞれ呼び出し元プロセスの実効ユーザー ID と実効グループ ID に設定される。
.TP
\fBO_EXCL\fP
\fBO_CREAT\fP が \fIoflag\fP に指定され、かつ指定された名前 \fIname\fP を持つキューがすでに存在する場合、エラー \fBEEXIST\fP
\fIname\fP が "/" だけで、その後ろに他の文字が続いていなかった。
.TP
\fBENOMEM\fP
-十分なメモリがない。
+å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOSPC\fP
新しいメッセージキューを作成するのに十分な空間がない。 このエラーはおそらく \fIqueues_max\fP 上限に抵触したため起こったのだろう。
.ad
.SH 説明
\fBmq_receive\fP() は、記述子 \fImqdes\fP で参照されるメッセージキューから最も高い優先度を持つ
-最も古いメッセージを削除し、そのメッセージを \fImsg_ptr\fP が指すバッファに格納する。 \fImsg_len\fP 引き数は、 \fImsg_ptr\fP
-が指すバッファの大きさを示す。この値はキューの \fImq_msgsize\fP 属性以上でなければならない (\fBmq_getattr\fP(3) 参照)。
-\fImsg_prio\fP が NULL 以外の場合、 \fImsg_prio\fP が指すバッファに受信したメッセージの優先度が格納される。
+æ\9c\80ã\82\82å\8f¤ã\81\84ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92å\89\8aé\99¤ã\81\97ã\80\81ã\81\9dã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92 \fImsg_ptr\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82 \fImsg_len\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81 \fImsg_ptr\fP
+ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å¤§ã\81\8dã\81\95ã\82\92示ã\81\99ã\80\82ã\81\93ã\81®å\80¤ã\81¯ã\82ã\83¥ã\83¼ã\81® \fImq_msgsize\fP å±\9eæ\80§ä»¥ä¸\8aã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84 (\fBmq_getattr\fP(3) å\8f\82ç\85§)ã\80\82
+\fImsg_prio\fP ã\81\8c NULL 以å¤\96ã\81®å ´å\90\88ã\80\81 \fImsg_prio\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\8f\97ä¿¡ã\81\97ã\81\9fã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81®å\84ªå\85\88度ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82
-キューが空の場合、デフォルトでは、 \fBmq_receive\fP() は、新しいメッセージが届くか、関数呼び出しがシグナルハンドラにより
+ã\82ã\83¥ã\83¼ã\81\8c空ã\81®å ´å\90\88ã\80\81ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\80\81 \fBmq_receive\fP() ã\81¯ã\80\81æ\96°ã\81\97ã\81\84ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81\8cå±\8aã\81\8fã\81\8bã\80\81é\96¢æ\95°å\91¼ã\81³å\87ºã\81\97ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8a
中断されるまで、停止 (block) する。 メッセージキュー記述 (message queue description) で
\fBO_NONBLOCK\fP フラグが有効になっている場合は、 \fBmq_receive\fP() はエラー \fBEAGAIN\fP ですぐに失敗する。
\fImqdes\fP で指定された記述子が不正である。
.TP
\fBEINTR\fP
-関数呼び出しがシグナルハンドラにより中断された。 \fBsignal\fP(7) 参照。
+é\96¢æ\95°å\91¼ã\81³å\87ºã\81\97ã\81\8cã\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 \fBsignal\fP(7) å\8f\82ç\85§ã\80\82
.TP
\fBEINVAL\fP
関数呼び出しは停止するはずであったが、 \fIabs_timeout\fP が不正であった。 \fIabs_timeout\fP が不正とは、 \fItv_sec\fP
メッセージは優先度の降順でキューに格納され、同じ優先度の新しいメッセージは 同じ優先度の古いメッセージの後ろに格納される。
メッセージキューがすでに一杯の場合 (すなわち、キューに入っているメッセージ数がキューの \fImq_maxmsg\fP 属性と等しい場合)、デフォルトでは、
-\fBmq_send ()\fP は、メッセージをキューイングするのに十分な空間ができるか、 関数呼び出しがシグナルハンドラにより中断されるまで、停止
+\fBmq_send ()\fP ã\81¯ã\80\81ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92ã\82ã\83¥ã\83¼ã\82¤ã\83³ã\82°ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªç©ºé\96\93ã\81\8cã\81§ã\81\8dã\82\8bã\81\8bã\80\81 é\96¢æ\95°å\91¼ã\81³å\87ºã\81\97ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aä¸æ\96ã\81\95ã\82\8cã\82\8bã\81¾ã\81§ã\80\81å\81\9cæ¢
(block) する。 メッセージキュー記述 (message queue description) で \fBO_NONBLOCK\fP
フラグが有効になっている場合は、 \fBmq_send\fP() はエラー \fBEAGAIN\fP ですぐに失敗する。
\fImqdes\fP で指定された記述子が不正である。
.TP
\fBEINTR\fP
-関数呼び出しがシグナルハンドラにより中断された。 \fBsignal\fP(7) 参照。
+é\96¢æ\95°å\91¼ã\81³å\87ºã\81\97ã\81\8cã\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 \fBsignal\fP(7) å\8f\82ç\85§ã\80\82
.TP
\fBEINVAL\fP
関数呼び出しは停止するはずであったが、 \fIabs_timeout\fP が不正であった。 \fIabs_timeout\fP が不正とは、 \fItv_sec\fP
.SH 説明
\fI<linux/netlink.h>\fP では、 netlink データグラムにアクセスしたり、これを作成するための
標準マクロがいくつか定義されている。 これらは \fBcmsg\fP(3) で定義されている補助データ (auxiliary data) 用のマクロと、
-その精神において似ているものである。 netlink ソケットに対してやりとりされるバッファには、 必ずこれらのマクロだけを使ってアクセスすべきである。
+その精神において似ているものである。 netlink ソケットに対してやりとりされるバッファーには、
+必ずこれらのマクロだけを使ってアクセスすべきである。
.TP
\fBNLMSG_ALIGN\fP
netlink メッセージの長さを丸めて正しく揃える。
ペイロードの長さが \fIlen\fP の netlink メッセージのバイト数を返す。
.TP
\fBNLMSG_DATA\fP
-与えた \fInlmsghdr\fP に関連づけられた格納領域へのポインタを返す。
+ä¸\8eã\81\88ã\81\9f \fInlmsghdr\fP ã\81«é\96¢é\80£ã\81¥ã\81\91ã\82\89ã\82\8cã\81\9fæ ¼ç´\8dé \98å\9f\9fã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.TP
.\" this is bizarre, maybe the interface should be fixed.
\fBNLMSG_NEXT\fP
マルチパートメッセージにおいて、次の \fInlmsghdr\fP を入手する。これを呼び出すときには、 現在の nlmsghdr で NLMSG_DONE
がセットされていないことを 確認しなければならない。この関数は終端で NULL を返さないからである。 \fIlen\fP
-å¼\95æ\95°ã\81¯ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83\90ã\83\83ã\83\95ã\82¡ã\81®æ®\8bã\82\8aé\95·ã\81\95ã\81\8cå\85¥ã\81£ã\81\9f左辺å\80¤ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\81¯ã\81\93ã\81®å¼\95æ\95°ã\81\8bã\82\89ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83\98ã\83\83ã\83\80の長さ分を差し引く。
+å¼\95æ\95°ã\81¯ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ®\8bã\82\8aé\95·ã\81\95ã\81\8cå\85¥ã\81£ã\81\9f左辺å\80¤ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\81¯ã\81\93ã\81®å¼\95æ\95°ã\81\8bã\82\89ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83\98ã\83\83ã\83\80ã\83¼の長さ分を差し引く。
.TP
\fBNLMSG_OK\fP
Netlink メッセージが途切れておらず、かつ解釈可能な形の場合であれば真を返す。
.fi
.SH 説明
\fBnl_langinfo\fP() 関数は、 \fBlocaleconv\fP(3) より柔軟なロケール情報へのアクセス方法を提供する。
-ロケールカテゴリの個々の要素や追加の要素を問い合わせることができる。
+ã\83ã\82±ã\83¼ã\83«ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®å\80\8bã\80\85ã\81®è¦\81ç´ ã\82\84追å\8a ã\81®è¦\81ç´ ã\82\92å\95\8fã\81\84å\90\88ã\82\8fã\81\9bã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
.PP
\fI<langinfo.h>\fP に定数として定義されていて、 \fIitem\fP に指定できるロケール要素の例を以下に示す:
.TP
通貨記号を返す。 記号が数値の前に配置される場合は、"\-" が通貨記号に前置される。 数値の後に記号が配置される場合は "+" が、
記号が基数文字と置き換わる場合は "." が前置される。
.PP
-ä¸\8aè¨\98ã\81®ã\83ªã\82¹ã\83\88ã\81¯ã\80\81è¦\81æ±\82ã\81§ã\81\8dã\82\8bå®\9a義ã\81®ã\81\94ã\81\8fä¸\80é\83¨ã\81§ã\81\82ã\82\8bã\80\82 詳細ã\81ªã\83ªã\82¹ã\83\88ã\81¯ã\80\81 \fIGNU C ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\83»ã\83ªã\83\95ã\82¡ã\83¬ã\83³ã\82¹ã\83\9eã\83\8bã\83¥ã\82¢ã\83«\fP ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\80\82
+上記のリストは、要求できる定義のごく一部である。 詳細なリストは、 \fIGNU C ライブラリリファレンスマニュアル\fP を参照してほしい。
.SH 返り値
-適切なカテゴリのロケールが \fBsetlocale\fP(3) によって選択されていない場合は、 \fBnl_langinfo\fP() は "C"
-ロケールのときに相当する文字列へのポインタを返す。
+é\81©å\88\87ã\81ªã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®ã\83ã\82±ã\83¼ã\83«ã\81\8c \fBsetlocale\fP(3) ã\81«ã\82\88ã\81£ã\81¦é\81¸æ\8a\9eã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81 \fBnl_langinfo\fP() ã\81¯ "C"
+ã\83ã\82±ã\83¼ã\83«ã\81®ã\81¨ã\81\8dã\81«ç\9b¸å½\93ã\81\99ã\82\8bæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.PP
-無効な \fIitem\fP の場合は、空文字列へのポインタが返される。
+ç\84¡å\8a¹ã\81ª \fIitem\fP ã\81®å ´å\90\88ã\81¯ã\80\81空æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82
.PP
-このポインタは静的なデータ領域を指し、その内容は次回の \fBnl_langinfo\fP() や \fBsetlocale\fP(3)
+ã\81\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯é\9d\99ç\9a\84ã\81ªã\83\87ã\83¼ã\82¿é \98å\9f\9fã\82\92æ\8c\87ã\81\97ã\80\81ã\81\9dã\81®å\86\85容ã\81¯æ¬¡å\9b\9eã\81® \fBnl_langinfo\fP() ã\82\84 \fBsetlocale\fP(3)
の呼び出しによって書き替わることがある。
.SH 準拠
SUSv2, POSIX.1\-2001.
\fBlocale\fP(1), \fBlocaleconv\fP(3), \fBsetlocale\fP(3), \fBcharsets\fP(7),
\fBlocale\fP(7)
.br
-GNU C ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\83»ã\83ªã\83\95ã\82¡ã\83¬ã\83³ã\82¹ã\83\9eã\83\8bã\83¥ã\82¢ã\83«
+GNU C ライブラリリファレンスマニュアル
.SH この文書について
この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.78 の一部
である。プロジェクトの説明とバグ報告に関する情報は
.ad
.PD
.SH 説明
-\fBopendir\fP() 関数はディレクトリ \fIname\fP に対応する ディレクトリストリームをオープンし、そのストリームへのポインタを返す。
-ストリームの位置はディレクトリの先頭のエントリに設定される。
+\fBopendir\fP() é\96¢æ\95°ã\81¯ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ª \fIname\fP ã\81«å¯¾å¿\9cã\81\99ã\82\8b ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81ã\81\9dã\81®ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
+ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ä½\8dç½®ã\81¯ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®å\85\88é ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81«è¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82
-\fBfdopendir\fP() 関数は \fBopendir\fP() と同様だが、オープン済みのファイルディスクリプタ \fIfd\fP
+\fBfdopendir\fP() 関数は \fBopendir\fP() と同様だが、オープン済みのファイルディスクリプター \fIfd\fP
により参照されるディレクトリに対する ディレクトリストリームを返す。 \fBfdopendir\fP() の呼び出しが成功した後は、 \fIfd\fP
は実装の内部で使用される。アプリケーションは \fIfd\fP を他の場面で使用すべきではない。
.SH 返り値
-関数 \fBopendir\fP() と \fBfdopendir\fP() はディレクトリストリームへのポインタを返す。 エラーの場合は、NULL
+é\96¢æ\95° \fBopendir\fP() ã\81¨ \fBfdopendir\fP() ã\81¯ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\81¯ã\80\81NULL
が返されて、 \fIerrno\fP が適切に設定される。
.SH エラー
.TP
アクセス権限がない。
.TP
\fBEBADF\fP
-\fIfd\fP が読み出し用にオープンされた、有効なファイルディスクリプタではない。
+\fIfd\fP ã\81\8cèªã\81¿å\87ºã\81\97ç\94¨ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\80\81æ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEMFILE\fP
-プロセスが使用中のファイルディスクリプタが多すぎる。
+ã\83\97ã\83ã\82»ã\82¹ã\81\8c使ç\94¨ä¸ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå¤\9aã\81\99ã\81\8eã\82\8bã\80\82
.TP
\fBENFILE\fP
システムでオープンされているファイルが多すぎる。
ディレクトリが存在しないか、または \fIname\fP が空文字列である。
.TP
\fBENOMEM\fP
-操作を完了するのに十分なメモリがない。
+æ\93\8dä½\9cã\82\92å®\8cäº\86ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
\fIname\fP はディレクトリではない。
\fBopendir\fP() は SVr4 と 4.3BSD に存在し、 POSIX.1\-2001 で規定されている。 \fBfdopendir\fP() は
POSIX.1\-2008 で規定されている。
.SH 注意
-ディレクトリストリームに対応するファイルディスクリプタは \fBdirfd\fP(3) を使用して得ることができる。
+ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ \fBdirfd\fP(3) ã\82\92使ç\94¨ã\81\97ã\81¦å¾\97ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
-\fBopendir\fP() 関数は、 \fIDIR *\fP の背後にあるファイルディスクリプタの close\-on\-exec フラグを設定する。
-\fBfdopendir\fP() 関数は、ファイルディスクリプタの close\-on\-exec フラグの設定を変更しない。 \fBfdopendir\fP()
-の呼び出しが成功した際に、ファイルディスクリプタ \fIfd\fP の close\-on\-exec を設定するかどうかは、 POSIX.1\-200x
+\fBopendir\fP() é\96¢æ\95°ã\81¯ã\80\81 \fIDIR *\fP ã\81®è\83\8cå¾\8cã\81«ã\81\82ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81® close\-on\-exec ã\83\95ã\83©ã\82°ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82
+\fBfdopendir\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81® close\-on\-exec ã\83\95ã\83©ã\82°ã\81®è¨å®\9aã\82\92å¤\89æ\9b´ã\81\97ã\81ªã\81\84ã\80\82 \fBfdopendir\fP()
+の呼び出しが成功した際に、ファイルディスクリプター \fIfd\fP の close\-on\-exec を設定するかどうかは、 POSIX.1\-200x
では規定されていない。
.SH 関連項目
\fBopen\fP(2), \fBclosedir\fP(3), \fBdirfd\fP(3), \fBreaddir\fP(3), \fBrewinddir\fP(3),
\fI\-lutil\fP でリンクする。
.fi
.SH 説明
-\fBopenpty\fP() é\96¢æ\95°ã\81¯ã\80\81使ç\94¨å\8f¯è\83½ã\81ªç\96\91似端æ\9c« (pseudoterminal) ã\82\92è¦\8bã\81¤ã\81\91ã\81¦ã\80\81 ã\83\9eã\82¹ã\82¿ã\81¨ã\82¹ã\83¬ã\83¼ã\83\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を
+\fBopenpty\fP() é\96¢æ\95°ã\81¯ã\80\81使ç\94¨å\8f¯è\83½ã\81ªç\96\91似端æ\9c« (pseudoterminal) ã\82\92è¦\8bã\81¤ã\81\91ã\81¦ã\80\81 ã\83\9eã\82¹ã\82¿ã\81¨ã\82¹ã\83¬ã\83¼ã\83\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を
\fIamaster\fP と \fIaslave\fP に入れて返す。 \fIname\fP が NULL でない場合、スレーブのファイル名が \fIname\fP
-ã\81«è¿\94ã\81\95ã\82\8cã\82\8bã\80\82 \fItermp\fP ã\81\8c NULL ã\81§ã\81ªã\81\84å ´å\90\88ã\80\81ã\82¹ã\83¬ã\83¼ã\83\96ã\81®ç«¯æ\9c«ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81¯ \fItermp\fP ã\81®å\80¤ã\81«è¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82 \fIwinp\fP ã\81\8c NULL
-でない場合、スレーブのウインドウサイズは \fIwinp\fP に設定される。
+ã\81«è¿\94ã\81\95ã\82\8cã\82\8bã\80\82 \fItermp\fP ã\81\8c NULL ã\81§ã\81ªã\81\84å ´å\90\88ã\80\81ã\82¹ã\83¬ã\83¼ã\83\96ã\81®ç«¯æ\9c«ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ \fItermp\fP ã\81®å\80¤ã\81«è¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82 \fIwinp\fP ã\81\8c
+NULL でない場合、スレーブのウインドウサイズは \fIwinp\fP に設定される。
\fBlogin_tty\fP() 関数は、端末 \fIfd\fP にログインする準備をする (\fIfd\fP は実際の端末デバイスでも、 \fBopenpty\fP()
で返される疑似端末のスレーブでもよい)。 具体的には、新しいセッションを作成し、 \fIfd\fP を呼び出し元のプロセスの制御端末とし、
呼び出し元の標準入力・標準出力・標準エラーのストリームを \fIfd\fP に設定した後、 \fIfd\fP をクローズする。
\fBforkpty\fP() 関数は \fBopenpty\fP(), \fBfork\fP(2), \fBlogin_tty\fP()
-ã\82\92çµ\84ã\81¿å\90\88ã\82\8fã\81\9bã\80\81ç\96\91似端æ\9c«ã\82\92æ\93\8dä½\9cã\81\99ã\82\8bæ\96°ã\81\97ã\81\84ã\83\97ã\83ã\82»ã\82¹ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\80\82 ç\96\91似端æ\9c«ã\81®ã\83\9eã\82¹ã\82¿å\81´ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は \fIamaster\fP に返され、
+ã\82\92çµ\84ã\81¿å\90\88ã\82\8fã\81\9bã\80\81ç\96\91似端æ\9c«ã\82\92æ\93\8dä½\9cã\81\99ã\82\8bæ\96°ã\81\97ã\81\84ã\83\97ã\83ã\82»ã\82¹ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\80\82 ç\96\91似端æ\9c«ã\81®ã\83\9eã\82¹ã\82¿å\81´ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は \fIamaster\fP に返され、
\fIname\fP が NULL でない場合には、スレーブのファイル名が \fIname\fP に返される。 \fItermp\fP と \fIwinp\fP
引き数は、NULL でなければ、 疑似端末のスレーブ側の端末属性とウインドウサイズを決定する。
.SH 返り値
.SH 準拠
これらは BSD の関数であり、 glibc2 に存在する。 POSIX での標準化はされていない。
.SH 注意
-glibc 2.8 で、 \fBopenpty\fP() と \fBforkpty\fP() の構造体へのポインタの引き数に \fBconst\fP
+glibc 2.8 ã\81§ã\80\81 \fBopenpty\fP() ã\81¨ \fBforkpty\fP() ã\81®æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®å¼\95ã\81\8dæ\95°ã\81« \fBconst\fP
修飾子が追加された。
-2.0.92 ã\82\88ã\82\8aå\89\8dã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81® glibc ã\81§ã\81¯ã\80\81 \fBopenpty\fP() ã\81¯ BSD ç\96\91似端æ\9c«ã\83\9aã\82¢ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を返す。
+2.0.92 ã\82\88ã\82\8aå\89\8dã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81® glibc ã\81§ã\81¯ã\80\81 \fBopenpty\fP() ã\81¯ BSD ç\96\91似端æ\9c«ã\83\9aã\82¢ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を返す。
2.0.92 以降の glibc では、 \fBopenpty\fP() はまず Unix 98 疑似端末ペアをオープンしようとし、それに失敗した場合に
BSD 疑似端末ペアのオープンへと移行する。
.SH バグ
定義から分かるように、パイプは一方向なので、 \fItype\fP 引き数には読み込みか書き込みのどちらか一方だけを指定できる (両方は指定できない)。
生成されるストリームは、この指定に対応して、読み取り専用または 書き込み専用のいずれかとなる。
.PP
-\fIcommand\fP 引き数は、シェルのコマンドラインを含むヌル終端された文字列へのポインタである。 このコマンドは \fB\-c\fP フラグを用いて
+\fIcommand\fP å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\82·ã\82§ã\83«ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³ã\82\92å\90«ã\82\80ã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81¯ \fB\-c\fP ã\83\95ã\83©ã\82°ã\82\92ç\94¨ã\81\84ã\81¦
\fI/bin/sh\fP に渡される。 コマンドの解釈は (もし必要ならば) シェルによって行われる。 \fItype\fP
-引き数は、ヌル終端された文字列へのポインタで、 読み込みを示す文字 \(aqr\(aq か、書き込みを示す文字 \(aqw\(aq の
+å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\80\81 èªã\81¿è¾¼ã\81¿ã\82\92示ã\81\99æ\96\87å\97 \(aqr\(aq ã\81\8bã\80\81æ\9b¸ã\81\8dè¾¼ã\81¿ã\82\92示ã\81\99æ\96\87å\97 \(aqw\(aq ã\81®
どちらか一方を指定しなければならない。 glibc 2.9 以降では、この引き数に文字 \(aqe\(aq を追加で指定できる。 文字
-\(aqe\(aq を指定すると、 対応するファイルディスクリプタにおいて、 close\-on\-exec フラグ (\fBFD_CLOEXEC\fP)
+\(aqe\(aq ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81¨ã\80\81 対å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ã\81\8aã\81\84ã\81¦ã\80\81 close\-on\-exec ã\83\95ã\83©ã\82° (\fBFD_CLOEXEC\fP)
がセットされる。 これが役に立つ理由については、 \fBopen\fP(2) の \fBO_CLOEXEC\fP フラグの説明を参照のこと。
.PP
\fBpopen\fP() からの返り値は、通常の標準 I/O ストリームと同じであるが、 \fBfclose\fP(3) ではなく \fBpclose\fP()
ストリームからの読み込みは、 そのコマンドの標準出力を読み込むことになる。 そして、そのコマンドの標準入力は \fBpopen\fP()
を呼んだプロセスの標準入力と同一である。
.PP
-デフォルトでは、 \fBpopen\fP() の出力ストリームは完全にバッファリングされることに注意しよう。
+ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\80\81 \fBpopen\fP() ã\81®å\87ºå\8a\9bã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81¯å®\8cå\85¨ã\81«ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\97ã\82\88ã\81\86ã\80\82
.PP
\fBpclose\fP() 関数は、(パイプに) 関連づけられたプロセスが終了するのを待ち、 \fBwait4\fP(2)
によって返されたコマンドの終了状態を返す。
.SH 返り値
-\fBpopen\fP() 関数は、 \fBfork\fP(2) または \fBpipe\fP(2) 呼び出しが失敗した場合や、 メモリ割り当てができなかった場合、
-NULL を返す。
+\fBpopen\fP() 関数は、 \fBfork\fP(2) または \fBpipe\fP(2) 呼び出しが失敗した場合や、
+メモリー割り当てができなかった場合、 NULL を返す。
.PP
.\" These conditions actually give undefined results, so I commented
.\" them out.
\fBpclose\fP() 関数は、 \fBwait4\fP(2) がエラーを返したり、何か他のエラーが見つかった場合、 \-1 を返す。 その場合、
\fIerrno\fP にエラーの原因を示す値が設定される。
.SH エラー
-\fBpopen\fP() 関数は、メモリアロケーションに失敗しても \fIerrno\fP をセットしない。 \fBpopen\fP() が中で呼び出す
+\fBpopen\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83ã\82±ã\83¼ã\82·ã\83§ã\83³ã\81«å¤±æ\95\97ã\81\97ã\81¦ã\82\82 \fIerrno\fP ã\82\92ã\82»ã\83\83ã\83\88ã\81\97ã\81ªã\81\84ã\80\82 \fBpopen\fP() ã\81\8cä¸ã\81§å\91¼ã\81³å\87ºã\81\99
\fBfork\fP(2) や \fBpipe\fP(2) が失敗した場合には、 \fIerrno\fP が適切にセットされる。 引き数 \fItype\fP
が無効であり、この状態が検知された場合には、 \fIerrno\fP が \fBEINVAL\fP にセットされる。
.PP
\fItype\fP に指定できる \(aqe\(aq は Linux での拡張である。
.SH バグ
読み込みのために開かれたコマンドの標準入力は \fBpopen\fP(), を呼んだプロセスと一緒に、その読み取り位置を共有する。
-そのため、もとのプロセスがバッファリングされた読み取りを終了したら、 そのコマンドの入力位置は予想されたものには なっていないかもしれない。
+ã\81\9dã\81®ã\81\9fã\82\81ã\80\81ã\82\82ã\81¨ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\81\9fèªã\81¿å\8f\96ã\82\8aã\82\92çµ\82äº\86ã\81\97ã\81\9fã\82\89ã\80\81 ã\81\9dã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81®å\85¥å\8a\9bä½\8dç½®ã\81¯äº\88æ\83³ã\81\95ã\82\8cã\81\9fã\82\82ã\81®ã\81«ã\81¯ ã\81ªã\81£ã\81¦ã\81\84ã\81ªã\81\84ã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
同様に、書き込みのために開かれたコマンドからの出力は、 もとのプロセスの出力と混ざり合うことになるかもしれない。 後者は \fBpopen\fP() の前に
\fBfflush\fP(3) を呼び出すことによって回避可能である。
.PP
.RE
.ad
.SH 説明
-関数 \fBposix_fallocate\fP() は、ディスクリプタ \fIfd\fP で参照されるファイルに対して、ディスクスペースを確実に確保する。
+関数 \fBposix_fallocate\fP() は、ディスクリプター \fIfd\fP で参照されるファイルに対して、ディスクスペースを確実に確保する。
ディスクスペースは \fIoffset\fP から始まる \fIlen\fP バイトの範囲のバイトである。 \fBposix_fallocate\fP()
の呼び出しが成功した後、指定された範囲のバイトに対する書き込みは、 ディスクスペースの不足で失敗しないことが保証される。
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP が有効なファイルディスクリプタでないか、 書き込み用としてオープンされていない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\81\8bã\80\81 æ\9b¸ã\81\8dè¾¼ã\81¿ç\94¨ã\81¨ã\81\97ã\81¦ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.TP
\fBEFBIG\fP
\fIoffset+len\fP が最大ファイルサイズを超えている。
.TH POSIX_MEMALIGN 3 2013\-09\-02 GNU "Linux Programmer's Manual"
.SH 名前
posix_memalign, aligned_alloc, memalign, valloc, pvalloc \- アラインメント
-されたメモリの割り当てを行う
+ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81®å\89²ã\82\8aå½\93ã\81¦ã\82\92è¡\8cã\81\86
.SH 書式
.nf
\fB#include <stdlib.h>\fP
_BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
.ad b
.br
-((非標準の) ヘッダファイル \fI<malloc.h>\fP も
+((é\9d\9eæ¨\99æº\96ã\81®) ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83« \fI<malloc.h>\fP ã\82\82
\fBvalloc\fP() の宣言も公開する。機能検査マクロは不要である。
.RE
.PD
.SH 説明
.\" glibc does this:
-é\96¢æ\95° \fBposix_memalign\fP() ã\81¯ã\80\81 \fIsize\fP ã\83\90ã\82¤ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\82\92å\89²ã\82\8aå½\93ã\81¦ã\80\81å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92 \fI*memptr\fP
-に設定する。 割り当てられたメモリのアドレスは \fIalignment\fP の倍数になっているはずである。 \fIalignment\fP は 2
-のべき乗で、かつ \fIsizeof(void\ *)\fP の倍数でなければならない。 \fIsize\fP が 0 の場合、 \fI*memptr\fP には
-NULL か一意なポインタ値が書かれる。 このポインタ値は、後で \fBfree\fP(3) に問題なく渡すことができる。
+é\96¢æ\95° \fBposix_memalign\fP() ã\81¯ã\80\81 \fIsize\fP ã\83\90ã\82¤ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\80\81å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92
+\fI*memptr\fP に設定する。 割り当てられたメモリーのアドレスは \fIalignment\fP の倍数になっているはずである。
+\fIalignment\fP は 2 のべき乗で、かつ \fIsizeof(void\ *)\fP の倍数でなければならない。 \fIsize\fP が 0 の場合、
+\fI*memptr\fP には NULL か一意なポインター値が書かれる。 このポインター値は、後で \fBfree\fP(3) に問題なく渡すことができる。
.\" The behavior of memalign() for size==0 is as for posix_memalign()
.\" but no standards govern this.
-廃止された関数である \fBmemalign\fP() は、 \fIsize\fP バイトのメモリを割り当て、
-å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\83¡ã\83¢ã\83ªのアドレスは \fIalignment\fP
+å»\83æ¢ã\81\95ã\82\8cã\81\9fé\96¢æ\95°ã\81§ã\81\82ã\82\8b \fBmemalign\fP() ã\81¯ã\80\81 \fIsize\fP ã\83\90ã\82¤ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\80\81
+å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\83¡ã\83¢ã\83ªã\83¼のアドレスは \fIalignment\fP
の倍数になっているはずである。 \fIalignment\fP は 2 のべき乗でなければならない。
関数 \fBaligned_alloc\fP() は \fBmemalign\fP() と同じだが、\fIsize\fP が \fIalignment\fP
の倍数でなければならないという追加の制限がある点が異なる。
-å»\83æ¢ã\81\95ã\82\8cã\81\9fé\96¢æ\95°ã\81§ã\81\82ã\82\8b \fBvalloc\fP() ã\81¯ \fIsize\fP ã\83\90ã\82¤ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\82\92å\89²ã\82\8aå½\93ã\81¦ã\80\81å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す。
-メモリのアドレスはページサイズの倍数になっているはずである。 これは \fImemalign(sysconf(_SC_PAGESIZE),size)\fP
+å»\83æ¢ã\81\95ã\82\8cã\81\9fé\96¢æ\95°ã\81§ã\81\82ã\82\8b \fBvalloc\fP() ã\81¯ \fIsize\fP ã\83\90ã\82¤ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\80\81å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81¯ã\83\9aã\83¼ã\82¸ã\82µã\82¤ã\82ºã\81®å\80\8dæ\95°ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81¯ã\81\9aã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ \fImemalign(sysconf(_SC_PAGESIZE),size)\fP
と等価である。
廃止された関数 \fBpvalloc\fP() は \fBvalloc\fP() と同様だが、
割り当てられるサイズがシステムのページサイズの倍数に切り上げられる。
-これらの関数はいずれもメモリのゼロクリアを行わない。
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\81\84ã\81\9aã\82\8cã\82\82ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82¼ã\83ã\82¯ã\83ªã\82¢ã\82\92è¡\8cã\82\8fã\81ªã\81\84ã\80\82
.SH 返り値
\fBaligned_alloc\fP(), \fBmemalign\fP(), \fBvalloc\fP(), \fBpvalloc\fP() は割り当てられた
-ã\83¡ã\83¢ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す。 割り当てに失敗した場合は NULL を返す。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す。 割り当てに失敗した場合は NULL を返す。
\fBposix_memalign\fP() は成功した場合は 0 を返し、 失敗した場合は次のセクションに記載されたエラー値のいずれかを返す。
\fBposix_memalign\fP() の呼び出し後は \fIerrno\fP の値は不定である。
\fIalignment\fP 引き数が 2 のべき乗でなかったか、 \fIsizeof(void\ *)\fP の倍数でなかった。
.TP
\fBENOMEM\fP
-割り当て要求を満たすのに十分なメモリがなかった。
+å\89²ã\82\8aå½\93ã\81¦è¦\81æ±\82ã\82\92æº\80ã\81\9fã\81\99ã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82
.SH バージョン
関数 \fBmemalign\fP(), \fBvalloc\fP(), \fBpvalloc\fP() は
すべての Linux libc ライブラリで使用可能である。
.\"
関数 \fIaligned_alloc\fP() は C11 標準で規定されている。
-.SS ヘッダ
+.SS ヘッダー
\fBposix_memalign\fP() の宣言を \fI<stdlib.h>\fP で行うことに関しては、 皆の意見が一致している。
いくつかのシステムでは、 \fBmemalign\fP() は \fI<malloc.h>\fP ではなく
や glibc では \fI<malloc.h>\fP で宣言されており、 さらに適切な機能検査
マクロが定義された場合には \fI<stdlib.h>\fP でも宣言される(上記を参照)。
.SH 注意
-多くのシステムでは、アラインメントに関して制限がある。例えば、 ブロックデバイスに対するダイレクト I/O に使用するバッファには
+å¤\9aã\81\8fã\81®ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ã\80\81ã\82¢ã\83©ã\82¤ã\83³ã\83¡ã\83³ã\83\88ã\81«é\96¢ã\81\97ã\81¦å\88¶é\99\90ã\81\8cã\81\82ã\82\8bã\80\82ä¾\8bã\81\88ã\81°ã\80\81 ã\83\96ã\83ã\83\83ã\82¯ã\83\87ã\83\90ã\82¤ã\82¹ã\81«å¯¾ã\81\99ã\82\8bã\83\80ã\82¤ã\83¬ã\82¯ã\83\88 I/O ã\81«ä½¿ç\94¨ã\81\99ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81¯
アラインメントに関する制限がある。 POSIX では、どんなアラインメントが必要かを知るために
\fIpathconf(path,_PC_REC_XFER_ALIGN)\fP コールを規定している。ここで \fBposix_memalign\fP()
を使うと、この必要条件を満たすことができる。
.\" .IR free (3),
.\" but not to
.\" .IR realloc (3).
-POSIX では \fBposix_memalign\fP() によって獲得したメモリは \fBfree\fP(3) を
+POSIX ã\81§ã\81¯ \fBposix_memalign\fP() ã\81«ã\82\88ã\81£ã\81¦ç\8d²å¾\97ã\81\97ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81¯ \fBfree\fP(3) ã\82\92
使って解放することができる必要がある。 いくつかのシステムでは
-\fBmemalign\fP() や\fBvalloc\fP() で割り当てられたメモリを再利用する手段が
+\fBmemalign\fP() ã\82\84\fBvalloc\fP() ã\81§å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\86\8då\88©ç\94¨ã\81\99ã\82\8bæ\89\8b段ã\81\8c
提供されていない(なぜなら \fBfree\fP(3) に渡すことができるのは
-\fBmalloc\fP(3) から受け取ったポインタだけだが、例えば \fBmemalign\fP() は
+\fBmalloc\fP(3) ã\81\8bã\82\89å\8f\97ã\81\91å\8f\96ã\81£ã\81\9fã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81 ã\81\91ã\81 ã\81\8cã\80\81ä¾\8bã\81\88ã\81° \fBmemalign\fP() ã\81¯
\fBmalloc\fP(3) を呼び出し、得た値をアラインメントしてしまうからである)。
-glibc の実装では、 ここに述べた関数のいずれで獲得したメモリも
+glibc ã\81®å®\9fè£\85ã\81§ã\81¯ã\80\81 ã\81\93ã\81\93ã\81«è¿°ã\81¹ã\81\9fé\96¢æ\95°ã\81®ã\81\84ã\81\9aã\82\8cã\81§ç\8d²å¾\97ã\81\97ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\82
\fBfree\fP(3) で再利用することができる。
-glibc の \fBmalloc\fP(3) は常に 8 バイトにアラインメントされたメモリアドレスを
+glibc ã\81® \fBmalloc\fP(3) ã\81¯å¸¸ã\81« 8 ã\83\90ã\82¤ã\83\88ã\81«ã\82¢ã\83©ã\82¤ã\83³ã\83¡ã\83³ã\83\88ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92
返すので、ここで述べた関数が必要になるのは 8 バイトよりも大きなアラインメント
が必要な場合だけである。
.SH 関連項目
.ad b
.SH 説明
\fBposix_openpt\fP() 関数は使用されていない疑似端末マスタデバイスをオープンし、
-そのデバイスを参照するために使うファイルディスクリプタを返す。
+ã\81\9dã\81®ã\83\87ã\83\90ã\82¤ã\82¹ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ä½¿ã\81\86ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
\fIflags\fP 引き数は、以下のフラグのうち 0 個以上の OR をとったビットマスクである。
.TP
\fBO_NOCTTY\fP
このデバイスをプロセスの制御端末としない。
.SH 返り値
-成功した場合、 \fBposix_openpt\fP() は負ではないファイルディスクリプタを返す。
-これは使用されていないディスクリプタのうち最小の値である。 失敗した場合、\-1 が返されて、エラーを示すために \fIerrno\fP が設定される。
+æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 \fBposix_openpt\fP() ã\81¯è² ã\81§ã\81¯ã\81ªã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
+ã\81\93ã\82\8cã\81¯ä½¿ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\81\86ã\81¡æ\9c\80å°\8fã\81®å\80¤ã\81§ã\81\82ã\82\8bã\80\82 失æ\95\97ã\81\97ã\81\9få ´å\90\88ã\80\81\-1 ã\81\8cè¿\94ã\81\95ã\82\8cã\81¦ã\80\81ã\82¨ã\83©ã\83¼ã\82\92示ã\81\99ã\81\9fã\82\81ã\81« \fIerrno\fP ã\81\8cè¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82
.SH エラー
\fBopen\fP(2) を参照すること。
.SH バージョン
C99 と POSIX.1\-2001 では、 \fBsprintf\fP(), \fBsnprintf\fP(), \fBvsprintf\fP(),
\fBvsnprintf\fP() の呼び出しで、範囲が重複するオブジェクト間でコピーが発生する場合の 結果は不定であると規定されている
-(例えば、出力先の文字列と入力された 引き数の一つが同じバッファを参照している場合などである)。 「注意」の節を参照。
+(ä¾\8bã\81\88ã\81°ã\80\81å\87ºå\8a\9bå\85\88ã\81®æ\96\87å\97å\88\97ã\81¨å\85¥å\8a\9bã\81\95ã\82\8cã\81\9f å¼\95ã\81\8dæ\95°ã\81®ä¸\80ã\81¤ã\81\8cå\90\8cã\81\98ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81ªã\81©ã\81§ã\81\82ã\82\8b)ã\80\82 ã\80\8c注æ\84\8fã\80\8dã\81®ç¯\80ã\82\92å\8f\82ç\85§ã\80\82
.SS "Return Values"
成功時には、上記の関数は書き込まれた文字数を返す (文字列の最後を示すために使用するヌルバイトは数に含まれない)。
.TP
\fBhh\fP
整数変換に対応する引き数が \fIsigned char\fP か \fIunsigned char\fP で、 \fBn\fP 変換に対応する引き数が \fIsigned
-char\fP へのポインタであることを示す。
+char\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82
.TP
\fBh\fP
整数変換に対応する引き数が \fIshort int\fP か \fIunsigned short int\fP で、 \fBn\fP 変換に対応する引き数が
-\fIshort int\fP へのポインタであることを示す。
+\fIshort int\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82
.TP
\fBl\fP
各変換に対応する引き数が、 整数変換では \fIlong int\fPか \fIunsigned long int\fP、 \fBn\fP 変換では \fIlong
-long int\fP へのポインタ、 \fBc\fP 変換では \fIwint_t\fP、 \fBs\fP 変換では \fIwchar_t\fP へのポインタであることを示す。
+long int\fP へのポインター、 \fBc\fP 変換では \fIwint_t\fP、 \fBs\fP 変換では \fIwchar_t\fP
+へのポインターであることを示す。
.TP
\fBll\fP (エルエル)
整数変換に対応する引き数が \fIlong long int\fP か \fIunsigned long long int\fP で、 \fBn\fP
-変換に対応する引き数が \fIlong int\fP へのポインタであることを示す。
+å¤\89æ\8f\9bã\81«å¯¾å¿\9cã\81\99ã\82\8bå¼\95ã\81\8dæ\95°ã\81\8c \fIlong int\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82
.TP
\fBL\fP
.\" .TP
.TP
\fBj\fP
整数変換に対応する引き数が \fIintmax_t\fP か \fIuintmax_t\fP で、 \fBn\fP 変換に対応する引き数が \fIintmax_t\fP
-へのポインタであることを示す。
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82
.TP
\fBz\fP
.\" (Linux libc5 has
.\" with this meaning.
.\" Don't use it.)
整数変換に対応する引き数が \fIsize_t\fP か \fIssize_t\fP で、 \fBn\fP 変換に対応する引き数が \fIsize_t\fP
-へのポインタであることを示す。
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82
.TP
\fBt\fP
-整数変換に対応する引き数が \fIptrdiff_t\fP で、 \fBn\fP 変換に対応する引き数が \fIptrdiff_t\fP へのポインタであることを示す。
+æ\95´æ\95°å¤\89æ\8f\9bã\81«å¯¾å¿\9cã\81\99ã\82\8bå¼\95ã\81\8dæ\95°ã\81\8c \fIptrdiff_t\fP ã\81§ã\80\81 \fBn\fP å¤\89æ\8f\9bã\81«å¯¾å¿\9cã\81\99ã\82\8bå¼\95ã\81\8dæ\95°ã\81\8c \fIptrdiff_t\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82
.PP
SUSv3 では上記のすべてが規定されている。 SUSv2 で規定されていたのは、 長さ修飾子 \fBh\fP (\fBhd\fP, \fBhi\fP, \fBho\fP,
\fBhx\fP, \fBhX\fP, \fBhn\fP), \fBl\fP (\fBld\fP, \fBli\fP, \fBlo\fP, \fBlx\fP, \fBlX\fP, \fBln\fP, \fBlc\fP,
関数を初期シフト状態で呼び出してマルチバイト文字列に変換し、 変換されたマルチバイト文字列を出力する。
.TP
\fBs\fP
-\fBl\fP 修飾子がない場合、 引き数は \fIconst char\ *\fP 型で文字型の配列へのポインタ (文字列へのポインタ) であることが
+\fBl\fP 修飾子がない場合、 引き数は \fIconst char\ *\fP 型で文字型の配列へのポインター (文字列へのポインター) であることが
期待されている。配列中の文字は、終端の ヌルバイト (\(aq\e0\(aq) が出てくるまで出力される (終端文字は出力されない)。
精度が指定されていると、指定された字数以上は出力されない。 精度が指定された場合には、終端バイトが存在する必要はない。
精度が指定されていなかったり、精度の値が配列の大きさより大きい場合には、 配列は終端のヌルバイトを含んでいなければならない。
-\fBl\fP 修飾子が指定されている場合、 引き数は \fIconst wchar_t\ *\fP 型でワイド文字の配列へのポインタであることが期待されている。
+\fBl\fP 修飾å\90ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81 å¼\95ã\81\8dæ\95°ã\81¯ \fIconst wchar_t\ *\fP å\9e\8bã\81§ã\83¯ã\82¤ã\83\89æ\96\87å\97ã\81®é\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\81\8cæ\9c\9få¾\85ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
配列中のワイド文字は (1文字毎に \fBwcrtomb\fP(3) を呼び出して) マルチバイト文字に変換される (最初のワイド文字の変換の前に
\fBwcrtomb\fP() のシフト状態を初期状態に戻してから変換は行われる)。 マルチバイト文字への変換は、文字列を終端するヌルワイド文字が
出てくるまで行われ、終端ヌルワイド文字も含めて変換される。 結果のマルチバイト文字列は、終端のヌルバイトが出てくるまで 出力される
(C99, C11 にはないが SUSv2, SUSv3, SUSv4 にはある) \fBls\fP と同じ。使ってはならない。
.TP
\fBp\fP
-\fIvoid\ *\fP ポインタ引き数を (\fB%#x\fP や \fB%#lx\fP のような) 16 進数で出力する。
+\fIvoid\ *\fP ポインター引き数を (\fB%#x\fP や \fB%#lx\fP のような) 16 進数で出力する。
.TP
\fBn\fP
これまでに書き込まれた文字数が対応する引き数が指す整数に格納される。 この引き数は \fIint\ *\fP
.\" glibc 2.0 adds conversion characters \fBC\fP and \fBS\fP.
\fBsnprintf\fP() の返り値を見ると、 SUSv2 と C99 標準は互いに矛盾している。 SUSv2 では、 \fBsnprintf\fP()
が \fIsize\fP=0 で呼び出された場合、 1 未満の値を何か返り値とするように規定している。 一方 C99 では、このような場合 \fIstr\fP を
-NULL とし、返り値として (通常通り) 出力バッファが十分な大きさが あった場合に出力されるであろう文字数を返す。 SUSv3 やそれ以降では
+NULL ã\81¨ã\81\97ã\80\81è¿\94ã\82\8aå\80¤ã\81¨ã\81\97ã\81¦ (é\80\9a常é\80\9aã\82\8a) å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cå\8d\81å\88\86ã\81ªå¤§ã\81\8dã\81\95ã\81\8c ã\81\82ã\81£ã\81\9få ´å\90\88ã\81«å\87ºå\8a\9bã\81\95ã\82\8cã\82\8bã\81§ã\81\82ã\82\8dã\81\86æ\96\87å\97æ\95°ã\82\92è¿\94ã\81\99ã\80\82 SUSv3 ã\82\84ã\81\9dã\82\8c以é\99\8dã\81§ã\81¯
C99 の \fBsnprintf\fP() の規定にあわせたものとなっている。
.PP
glibc 2.1 では、長さ修飾子 \fBhh\fP, \fBj\fP, \fBt\fP, \fBz\fP と変換文字 \fBa\fP, \fBA\fP が追加された。
.\" http://sourceware.org/bugzilla/show_bug.cgi?id=7075
しかしながら、標準規格では、 \fBsprintf\fP(), \fBsnprintf\fP(), \fBvsprintf\fP(), \fBvsnprintf\fP()
-の呼び出しにおいて、コピー元とコピー先のバッファが重なっていた場合の 結果は不定である、と明記されている。 使用する \fBgcc\fP(1)
+ã\81®å\91¼ã\81³å\87ºã\81\97ã\81«ã\81\8aã\81\84ã\81¦ã\80\81ã\82³ã\83\94ã\83¼å\85\83ã\81¨ã\82³ã\83\94ã\83¼å\85\88ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cé\87\8dã\81ªã\81£ã\81¦ã\81\84ã\81\9få ´å\90\88ã\81® çµ\90æ\9e\9cã\81¯ä¸\8då®\9aã\81§ã\81\82ã\82\8bã\80\81ã\81¨æ\98\8eè¨\98ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 使ç\94¨ã\81\99ã\82\8b \fBgcc\fP(1)
のバージョンや指定したコンパイラのオプション次第では、 上記のような呼び出しで、期待した結果が得られ「ない」ことがある。
.\" .SH HISTORY
.\" caused memory leaks.
\fBprintf(\fP\fIfoo\fP\fB);\fP のようなコードはしばしばバグを引き起こす。 なぜなら \fIfoo\fP に %
文字が含まれてるかもしれないからである。 \fIfoo\fP が信頼できないユーザー入力から作られている場合には、 その中に \fB%n\fP
-が含まれていることがあり、 \fBprintf\fP() 呼び出し時にメモリへの書き込みが起こり、 セキュリティーホールを作ることになるかもしれない。
+ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8aã\80\81 \fBprintf\fP() å\91¼ã\81³å\87ºã\81\97æ\99\82ã\81«ã\83¡ã\83¢ã\83ªã\83¼ã\81¸ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿ã\81\8cèµ·ã\81\93ã\82\8aã\80\81 ã\82»ã\82ã\83¥ã\83ªã\83\86ã\82£ã\83¼ã\83\9bã\83¼ã\83«ã\82\92ä½\9cã\82\8bã\81\93ã\81¨ã\81«ã\81ªã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
.SH 例
\fIPi\fP を 5 桁で出力する。
.in +4n
.in
.PP
日付と時間を "Sunday, July 3, 10:02" の形式で出力する。 (\fIweekday\fP と \fImonth\fP
-は文字列へのポインタである)
+ã\81¯æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8b)
.in +4n
.nf
\fBprofil\fP(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500)
.SH 説明
このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提供する。引き数 \fIbuf\fP は \fIbufsiz\fP
-ã\83\90ã\82¤ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\82\92æ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82ä»®æ\83³ã\81® 10 ã\83\9fã\83ªç§\92ã\81\94ã\81¨ã\81«ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81® ã\83\97ã\83ã\82°ã\83©ã\83 ã\83»カウンター (PC) が検査される: \fIoffset\fP
+ã\83\90ã\82¤ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92æ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82ä»®æ\83³ã\81® 10 ã\83\9fã\83ªç§\92ã\81\94ã\81¨ã\81«ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81® ã\83\97ã\83ã\82°ã\83©ã\83 カウンター (PC) が検査される: \fIoffset\fP
が引かれ、その結果が \fIscale\fP 倍され 65536 で割られる。 結果が \fIbufsiz\fP より小さい場合は \fIbuf\fP
-の対応するエントリがインクリメントされる。 \fIbuf\fP が NULL ならば、プロファイル (profile) は無効にされる。
+ã\81®å¯¾å¿\9cã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\82¤ã\83³ã\82¯ã\83ªã\83¡ã\83³ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82 \fIbuf\fP ã\81\8c NULL ã\81ªã\82\89ã\81°ã\80\81ã\83\97ã\83ã\83\95ã\82¡ã\82¤ã\83« (profile) ã\81¯ç\84¡å\8a¹ã\81«ã\81\95ã\82\8cã\82\8bã\80\82
.SH 返り値
常に 0 が返される。
.SH 準拠
SVr4 のコールに似ている (しかし POSIX.1\-2001 ではない)。
.SH バグ
-\fBprofil\fP() ã\81¯ \fBITIMER_PROF\fP ã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83«ã\83»ã\82¿ã\82¤ã\83\9eã\83¼ã\82\82使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\81¯ä½¿ç\94¨ã\81§ã\81\8dã\81ªã\81\84
+\fBprofil\fP() は \fBITIMER_PROF\fP インターバルタイマーも使用しているプログラムでは使用できない
(\fBsetitimer\fP(2) 参照)。
-æ\9c¬å½\93ã\81®ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\83\97ã\83ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\82\88ã\82\8aæ£ç¢ºã\81ªçµ\90æ\9e\9cã\82\92ä¸\8eã\81\88ã\82\8bã\80\82 libc 4.4 ã\81«ã\81¯ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83« profil ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\81\9fã\82\81ã\81®
+本当のカーネルプロファイルはより正確な結果を与える。 libc 4.4 にはシステムコール profil を提供するための
カーネルパッチが含まれていた。
.SH 関連項目
\fBgprof\fP(1), \fBsprof\fP(1), \fBsetitimer\fP(2), \fBsigaction\fP(2), \fBsignal\fP(2)
保持する。つまり、この変数の内容は、最後のスラッシュ (/) とそれより前の 部分がある場合、 \fIprogram_invocation_name\fP
からこの部分を削除したものとなる。
-ã\81\93ã\82\8cã\82\89ã\81®å¤\89æ\95°ã\81¯ glibc ã\81®ã\83©ã\83³ã\82¿ã\82¤ã\83 ã\83»ã\82¹ã\82¿ã\83¼ã\83\88ã\82¢ã\83\83ã\83\97ã\83»コードで 自動的に初期化される。
+ã\81\93ã\82\8cã\82\89ã\81®å¤\89æ\95°ã\81¯ glibc ã\81®ã\83©ã\83³ã\82¿ã\82¤ã\83 ã\82¹ã\82¿ã\83¼ã\83\88ã\82¢ã\83\83ã\83\97コードで 自動的に初期化される。
.SH 準拠
これらの変数は GNU の拡張であり、 移植性が必要なプログラムでは使用すべきでない。
.SH 注意
\fBpsiginfo\fP() 関数は \fBpsignal\fP() と同じだが、 \fIpinfo\fP に書かれたシグナルの情報を表示する点が異なる。
\fIpinfo\fP は有効な \fIsiginfo_t\fP 構造体を指している必要がある。 \fBpsiginfo\fP() は、 シグナルの説明だけでなく、
-シグナルの送信元やそのシグナルに関連するその他の情報も表示する (例えば、ハードウェアが発生したシグナルの関連メモリアドレス、 \fBSIGCHLD\fP
-の子プロセス ID、 \fIkill\fP(2) や \fBsigqueue\fP(3) を使って送信されたシグナルの送信元プロセスのユーザ ID とプロセス ID
-など)。
+ã\82·ã\82°ã\83\8aã\83«ã\81®é\80\81ä¿¡å\85\83ã\82\84ã\81\9dã\81®ã\82·ã\82°ã\83\8aã\83«ã\81«é\96¢é\80£ã\81\99ã\82\8bã\81\9dã\81®ä»\96ã\81®æ\83\85å ±ã\82\82表示ã\81\99ã\82\8b (ä¾\8bã\81\88ã\81°ã\80\81ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\81\8cç\99ºç\94\9fã\81\97ã\81\9fã\82·ã\82°ã\83\8aã\83«ã\81®é\96¢é\80£ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\80\81 \fBSIGCHLD\fP
+の子プロセス ID、 \fIkill\fP(2) や \fBsigqueue\fP(3) を使って送信されたシグナルの送信元プロセスのユーザー ID とプロセス
+ID など)。
配列 \fIsys_siglist\fP はシグナルを説明する文字列を保持しており、 配列へのアクセスにはシグナル番号を添え字として用いる事ができる。
.SH 返り値
コマンドライン引き数でスタックサイズが与えられた場合、
このプログラムは、スレッド属性オブジェクトを初期化し、
そのオブジェクトの各種属性を設定し、
-\fBpthread_create\fP(3) の呼び出しでこのオブジェクトへのポインタを渡す。
+\fBpthread_create\fP(3) ã\81®å\91¼ã\81³å\87ºã\81\97ã\81§ã\81\93ã\81®ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92渡ã\81\99ã\80\82
このプログラムを NPTL スレッド実装が使われている Linux/x86\-32 で
動作させると、以下のような出力が得られる。
\fBpthread_attr_getaffinity_np\fP() 関数は、 \fIattr\fP が参照する
スレッド属性オブジェクトの CPU affinity マスク属性を
-\fIcpuset\fP が指すバッファに入れて返す。
+\fIcpuset\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82
-\fIcpusetsize\fP 引き数は \fIcpuset\fP が指すバッファの (バイト単位の)
+\fIcpusetsize\fP å¼\95ã\81\8dæ\95°ã\81¯ \fIcpuset\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81® (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8dã\81®)
大きさである。通常は、この引き数には \fIsizeof(cpu_set_t)\fP を
指定することだろう。
(すなわち、\fIcpuset\fP/\fIcpusetsize\fP が小さすぎる)。
.TP
\fBENOMEM\fP
-(\fBpthread_attr_setaffinity_np\fP()) メモリを割り当てることができなかった。
+(\fBpthread_attr_setaffinity_np\fP()) ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9fã\80\82
.SH バージョン
これらの関数は glibc バージョン 2.3.4 以降で提供されている。
.SH 準拠
\fBpthread_attr_getdetachstate\fP() は、
スレッド属性オブジェクト \fIattr\fP の detach state 属性を
-\fIdetachstate\fP が指すバッファに入れて返す。
+\fIdetachstate\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82
.SH 返り値
成功すると、これらの関数は 0 を返す。
エラーの場合、0 以外のエラー番号を返す。
\fBpthread_attr_getguardsize\fP() は、
スレッド属性オブジェクト \fIattr\fP の guard size 属性を
-\fIguardsize\fP が指すバッファに入れて返す。
+\fIguardsize\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82
.SH 返り値
成功すると、これらの関数は 0 を返す。
エラーの場合、0 以外のエラー番号を返す。
POSIX.1\-2001.
.SH 注意
ガード領域は、読み出し/書き込みアクセスが行われないように保護がかけ
-られた仮想メモリページで構成で構成される。スレッドがスタックをガード
-領域までオーバーフローさせた場合、ほとんどのハードウェアアーキテクチャ
+ã\82\89ã\82\8cã\81\9fä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\83\9aã\83¼ã\82¸ã\81§æ§\8bæ\88\90ã\81§æ§\8bæ\88\90ã\81\95ã\82\8cã\82\8bã\80\82ã\82¹ã\83¬ã\83\83ã\83\89ã\81\8cã\82¹ã\82¿ã\83\83ã\82¯ã\82\92ã\82¬ã\83¼ã\83\89
+領域までオーバーフローさせた場合、ほとんどのハードウェアアーキテクチャー
では、スレッドに \fBSIGSEGV\fP シグナルが送られ、オーバーフローが発生した
ことが通知される。ガード領域はページ境界から開始され、ガード領域の
大きさはスレッド作成時に内部的にシステムのページサイズに切り上げられる
多くのスレッドを作成するアプリケーションで、かつ、スタックオーバーフロー
が決して発生しないことが分かっている場合には、guard size を 0 に設定
-することで、メモリを節約できることもある。
+ã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\82\92ç¯\80ç´\84ã\81§ã\81\8dã\82\8bã\81\93ã\81¨ã\82\82ã\81\82ã\82\8bã\80\82
スレッドがスタックに大きなデータ構造を割り当てる場合には、
スタックオーバーフローを検出するためには、デフォルトサイズよりも
\fBPTHREAD_INHERIT_SCHED\fP である。
\fBpthread_attr_getinheritsched\fP() は、 スレッド属性オブジェクト \fIattr\fP の
-inherit\-scheduler 属性を \fIinheritsched\fP が指すバッファに入れて返す。
+inherit\-scheduler å±\9eæ\80§ã\82\92 \fIinheritsched\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82
.SH 返り値
成功すると、これらの関数は 0 を返す。
エラーの場合、0 以外のエラー番号を返す。
.TH PTHREAD_ATTR_SETSCHEDPARAM 3 2014\-05\-21 Linux "Linux Programmer's Manual"
.SH 名前
pthread_attr_setschedparam, pthread_attr_getschedparam \-
-スレッド属性オブジェクトのスケジューリングパラメータ属性の設定/取得を行う
+スレッド属性オブジェクトのスケジューリングパラメーター属性の設定/取得を行う
.SH 書式
.nf
\fB#include <pthread.h>\fP
.SH 説明
\fBpthread_attr_setschedparam\fP() 関数は、
\fIattr\fP が参照するスレッド属性オブジェクトのスケジューリング
-パラメータ属性を \fIparam\fP が指すバッファで指定された値に設定する。
+パラメーター属性を \fIparam\fP が指すバッファーで指定された値に設定する。
これらの属性により、スレッド属性オブジェクト \fIattr\fP を使って
-作成されるスレッドのスケジューリングパラメータが決定される。
+ä½\9cæ\88\90ã\81\95ã\82\8cã\82\8bã\82¹ã\83¬ã\83\83ã\83\89ã\81®ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8c決å®\9aã\81\95ã\82\8cã\82\8bã\80\82
\fBpthread_attr_getschedparam\fP() は、
-スレッド属性オブジェクト \fIattr\fP のスケジューリングパラメータ属性を
-\fIparam\fP が指すバッファに入れて返す。
+スレッド属性オブジェクト \fIattr\fP のスケジューリングパラメーター属性を
+\fIparam\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82
-スケジューリングパラメータは以下の構造体で管理される。
+ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ä»¥ä¸\8bã\81®æ§\8bé\80 ä½\93ã\81§ç®¡ç\90\86ã\81\95ã\82\8cã\82\8bã\80\82
.in +4n
.nf
.fi
.in
-見て分かる通り、サポートされているスケジューリングパラメータは一つだけである。各スケジューリングポリシーで許可されるスケジューリング優先度の詳細については、\fBsched\fP(7)
+è¦\8bã\81¦å\88\86ã\81\8bã\82\8bé\80\9aã\82\8aã\80\81ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ä¸\80ã\81¤ã\81 ã\81\91ã\81§ã\81\82ã\82\8bã\80\82å\90\84ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\9dã\83ªã\82·ã\83¼ã\81§è¨±å\8f¯ã\81\95ã\82\8cã\82\8bã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°å\84ªå\85\88度ã\81®è©³ç´°ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\80\81\fBsched\fP(7)
を参照のこと。
\fBpthread_create\fP(3) を呼び出した際に \fBpthread_attr_setschedparam\fP()
-で行ったパラメータ設定を有効にするには、 呼び出し側で \fBpthread_attr_setinheritsched\fP(3) を使って 属性オブジェクト
-\fIattr\fP の inherit\-scheduler 属性を \fBPTHREAD_EXPLICIT_SCHED\fP に設定しておかなければならない。
+で行ったパラメーター設定を有効にするには、 呼び出し側で \fBpthread_attr_setinheritsched\fP(3) を使って
+属性オブジェクト \fIattr\fP の inherit\-scheduler 属性を \fBPTHREAD_EXPLICIT_SCHED\fP
+に設定しておかなければならない。
.SH 返り値
成功すると、これらの関数は 0 を返す。
エラーの場合、0 以外のエラー番号を返す。
\fBpthread_attr_getschedpolicy\fP() は、
スレッド属性オブジェクト \fIattr\fP のスケジューリングポリシー属性を
-\fIpolicy\fP が指すバッファに入れて返す。
+\fIpolicy\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82
\fBpthread_create\fP(3) を呼び出した際に \fBpthread_attr_setschedpolicy\fP()
で行ったポリシー設定を有効にするには、 呼び出し側で \fBpthread_attr_setinheritsched\fP(3) を使って 属性オブジェクト
\fBPTHREAD_SCOPE_PROCESS\fP はサポートしていない。
複数の contention scope をサポートしているシステムで、 \fBpthread_create\fP(3) を呼び出した際に
-\fBpthread_attr_setscope\fP() で行ったパラメータ設定を有効にするには、 呼び出し側で
+\fBpthread_attr_setscope\fP() で行ったパラメーター設定を有効にするには、 呼び出し側で
\fBpthread_attr_setinheritsched\fP(3) を使って 属性オブジェクト \fIattr\fP の inherit\-scheduler
属性を \fBPTHREAD_EXPLICIT_SCHED\fP に設定しておかなければならない。
\fBpthread_attr_getscope\fP() は、
スレッド属性オブジェクト \fIattr\fP の contention scope 属性を
-\fIscope\fP が指すバッファに入れて返す。
+\fIscope\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82
.SH 返り値
成功すると、これらの関数は 0 を返す。
エラーの場合、0 以外のエラー番号を返す。
POSIX.1\-2001.
.SH 注意
\fBPTHREAD_SCOPE_SYSTEM\fP contention scope では、通常は、一つの
-ユーザ空間スレッドは一つのカーネルスケジューリング・エンティティに
+ユーザー空間スレッドは一つのカーネルスケジューリングエンティティに
直接結び付けられる。
Linux では、廃止予定の LinuxThreads 実装も新しい NPTL 実装もこれに
該当し、両方とも 1:1 で結び付けられるスレッド実装となっている。
作成されるスレッドが使用すべきスタックの位置とサイズが指定される。
\fIstackaddr\fP は、呼び出し側で割り当てた、大きさが \fIstacksize\fP バイトの
-バッファ内の指定できる最小のアドレスバイトを指すべきである。
-割り当てられたバッファのページは読み書き両方が可能なページとなっている
+バッファー内の指定できる最小のアドレスバイトを指すべきである。
+å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\9aã\83¼ã\82¸ã\81¯èªã\81¿æ\9b¸ã\81\8d両æ\96¹ã\81\8cå\8f¯è\83½ã\81ªã\83\9aã\83¼ã\82¸ã\81¨ã\81ªã\81£ã\81¦ã\81\84ã\82\8b
べきである。
\fBpthread_attr_getstack\fP() 関数は、
スレッド属性オブジェクト \fIattr\fP のスタックアドレス属性と
スタックサイズ属性をそれぞれ \fIstackaddr\fP と \fIstacksize\fP が
-指すバッファに入れて返す。
+æ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82
.SH 返り値
成功すると、これらの関数は 0 を返す。
エラーの場合、0 以外のエラー番号を返す。
一つの \fIattr\fP を使って複数のスレッドを作成する場合、
\fBpthread_create\fP(3) の次の呼び出しを行う前に、
呼び出し側でスタックアドレス属性を変更しなければならない。
-さもなければ、複数のスレッドがスタックとして同じメモリ領域を
+さもなければ、複数のスレッドがスタックとして同じメモリー領域を
使おうとするため、訳の分からない状況が発生してしまう。
.SH 例
\fBpthread_attr_init\fP(3) を参照。
この属性により、スレッド属性オブジェクト \fIattr\fP を使って
作成されるスレッドが使用すべきスタックの位置が指定される。
-\fIstackaddr\fP は呼び出し側が割り当てたバッファ (大きさは
+\fIstackaddr\fP は呼び出し側が割り当てたバッファー (大きさは
少なくとも \fBPTHREAD_STACK_MIN\fP バイト)を指すべきである。
-割り当てられたバッファのページは読み書き両方が可能なページと
+å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\9aã\83¼ã\82¸ã\81¯èªã\81¿æ\9b¸ã\81\8d両æ\96¹ã\81\8cå\8f¯è\83½ã\81ªã\83\9aã\83¼ã\82¸ã\81¨
なっているべきである。
\fBpthread_attr_getstackaddr\fP() は、
スレッド属性オブジェクト \fIattr\fP のスタックアドレス属性を
-\fIstackaddr\fP が指すバッファに入れて返す。
+\fIstackaddr\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82
.SH 返り値
成功すると、これらの関数は 0 を返す。
エラーの場合、0 以外のエラー番号を返す。
\fIこれらの関数を使用しないこと!\fP これらの関数は移植性がある形では使用で
きない。なぜなら、これらの関数ではスタック領域がどちらの方向に伸びるの
かを指定する手段が提供されていないからである。
-例えば、スタックが下向き (アドレスが小さい方向) に伸びるアーキテクチャ
+例えば、スタックが下向き (アドレスが小さい方向) に伸びるアーキテクチャー
では、\fIstackaddr\fP には割り当てられたスタック領域の\fI最も大きな\fPアドレ
スの次のアドレスを指定する。一方、スタックが上向き (アドレスが大きい
-方向) に伸びるアーキテクチャでは、\fIstackaddr\fP には割り当てられた
+æ\96¹å\90\91) ã\81«ä¼¸ã\81³ã\82\8bã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81\fIstackaddr\fP ã\81«ã\81¯å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9f
スタック領域の\fI最も小さい\fPアドレスを指定する。これに対して、
\fBpthread_attr_setstack\fP(3) と \fBpthread_attr_getstack\fP(3) が使用する
\fIstackaddr\fP は、常に割り当てられたスタック領域の最も小さいアドレス
-へのポインタである (\fIstacksize\fP 引き数はスタックの範囲を指定する)。
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8b (\fIstacksize\fP å¼\95ã\81\8dæ\95°ã\81¯ã\82¹ã\82¿ã\83\83ã\82¯ã\81®ç¯\84å\9b²ã\82\92æ\8c\87å®\9aã\81\99ã\82\8b)ã\80\82
.SH 関連項目
\fBpthread_attr_init\fP(3), \fBpthread_attr_setstack\fP(3),
\fBpthread_attr_setstacksize\fP(3), \fBpthread_create\fP(3), \fBpthreads\fP(7)
\fBpthread_attr_getstacksize\fP() は、
スレッド属性オブジェクト \fIattr\fP のスタックアドレス属性を
-\fIstacksize\fP が指すバッファに入れて返す。
+\fIstacksize\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82
.SH 返り値
成功すると、これらの関数は 0 を返す。
エラーの場合、0 以外のエラー番号を返す。
呼び出し側で割り当てたスタックのサイズと場所を指定できる。
.SH バグ
glibc 2.8 の時点では、指定された \fIstacksize\fP が \fBSTACK_ALIGN\fP
-(ほとんどのアーキテクチャでは 16 バイト) の倍数でない場合、
+(ã\81»ã\81¨ã\82\93ã\81©ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ 16 ã\83\90ã\82¤ã\83\88) ã\81®å\80\8dæ\95°ã\81§ã\81ªã\81\84å ´å\90\88ã\80\81
\fIstacksize\fP は\fI小さくなる方向に\fPに丸められる。
これは POSIX.1\-2001 に違反している。
POSIX.1\-2001 では、割り当てらたスタックの大きさは
キャンセル要求が実行されると、
\fIthread\fP では以下のステップが (この順序で) 行われる。
.IP 1. 3
-キャンセルクリーンアップハンドラが (push されたのと逆順で)
+ã\82ã\83£ã\83³ã\82»ã\83«ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8c (push ã\81\95ã\82\8cã\81\9fã\81®ã\81¨é\80\86é \86ã\81§)
取り出され (pop され)、呼び出される。
(\fBpthread_cleanup_push\fP(3) 参照)
.IP 2.
.TH PTHREAD_CLEANUP_PUSH 3 2008\-11\-24 Linux "Linux Programmer's Manual"
.SH 名前
pthread_cleanup_push, pthread_cleanup_pop \- スレッドの
-キャンセルクリーンアップハンドラの push/pop を行う
+ã\82ã\83£ã\83³ã\82»ã\83«ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81® push/pop ã\82\92è¡\8cã\81\86
.SH 書式
.nf
\fB#include <pthread.h>\fP
.fi
.SH 説明
これらの関数は、呼び出したスレッドのスレッドキャンセル時のクリーンアッ
-ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\81®æ\93\8dä½\9cã\82\92è¡\8cã\81\86ã\80\82ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©は、スレッドが
+ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\81®æ\93\8dä½\9cã\82\92è¡\8cã\81\86ã\80\82ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼は、スレッドが
キャンセルされた場合 (や以下で説明する他の種々の状況において) 自動的に
実行される関数である。例えば、mutex のロック解除を行い、プロセス内の
他のスレッドが利用できるようにする関数などが考えられる。
\fBpthread_cleanup_push\fP() 関数は、 \fIroutine\fP をクリーンアップ
-ハンドラのスタックの一番上にプッシュする。 \fIroutine\fP が後で
+ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\81®ä¸\80ç\95ªä¸\8aã\81«ã\83\97ã\83\83ã\82·ã\83¥ã\81\99ã\82\8bã\80\82 \fIroutine\fP ã\81\8cå¾\8cã\81§
起動される際には、 \fIarg\fP が関数の引き数と渡される。
-\fBpthread_cleanup_pop\fP() 関数は、クリーンアップハンドラの
+\fBpthread_cleanup_pop\fP() é\96¢æ\95°ã\81¯ã\80\81ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®
スタックの一番上のルーチンを削除する。
\fIexecute\fP が 0 以外の場合にはそのルーチンを追加で実行する。
-キャンセルクリーンアップハンドラは、以下に示す場合に
+ã\82ã\83£ã\83³ã\82»ã\83«ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯ã\80\81以ä¸\8bã\81«ç¤ºã\81\99å ´å\90\88ã\81«
スタックから取り出され実行される。
.IP 1. 3
スレッドがキャンセルされた際に、スタックに登録された全てのクリーン
-ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\81\8cå\8f\96ã\82\8aå\87ºã\81\95ã\82\8cã\81¦ã\80\81å®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\80\82ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©の
+ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cå\8f\96ã\82\8aå\87ºã\81\95ã\82\8cã\81¦ã\80\81å®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\80\82ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼の
実行は、スタックに登録されたのと逆の順序で行われる。
.IP 2.
スレッドが \fBpthread_exit\fP(3) を呼び出して終了する際に、全てのクリーン
-アップハンドラが上の項目で述べたのと同様に実行される。
+ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cä¸\8aã\81®é \85ç\9b®ã\81§è¿°ã\81¹ã\81\9fã\81®ã\81¨å\90\8cæ§\98ã\81«å®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\80\82
(スレッドがスレッド開始関数からの \fIreturn\fP の実行により終了する場合に
-は、クリーンアップハンドラは\fI呼び出されない\fP。)
+ã\81¯ã\80\81ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯\fIå\91¼ã\81³å\87ºã\81\95ã\82\8cã\81ªã\81\84\fPã\80\82)
.IP 3.
スレッドが 0 以外の \fIexecute\fP 引き数で \fBpthread_cleanup_pop\fP() を
-呼び出した際に、スタックの一番上のクリーンアップハンドラが取り出されて
+å\91¼ã\81³å\87ºã\81\97ã\81\9fé\9a\9bã\81«ã\80\81ã\82¹ã\82¿ã\83\83ã\82¯ã\81®ä¸\80ç\95ªä¸\8aã\81®ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cå\8f\96ã\82\8aå\87ºã\81\95ã\82\8cã\81¦
実行される。
.PP
POSIX.1 では、 \fBpthread_cleanup_push\fP() と \fBpthread_cleanup_pop\fP() を
して実装することを許容している。
このため、呼び出し側では、これらの関数の呼び出しが同じ関数の中で対と
なり、かつ文法的に同じネストレベル (nesting level) になることを保証
-しなければならない。 (言い換えると、クリーンアップハンドラは、コード
+ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 (è¨\80ã\81\84æ\8f\9bã\81\88ã\82\8bã\81¨ã\80\81ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯ã\80\81ã\82³ã\83¼ã\83\89
の特定のセクションの実行の中でのみ設定するものであると言える。)
\fBlongjmp\fP(3) (\fBsiglongjmp\fP(3)) の呼び出しは、
\fBpthread_cleanup_push\fP() や \fBpthread_cleanup_pop\fP() の呼び出しが対と
なる呼び出しがない状態で行われた場合には、どのような結果になるかは不定
-である。これは jump バッファは \fBsetjmp\fP(3) (\fBsigsetjmp\fP(3)) により設
-定されるからである。同様に、クリーンアップハンドラ内からの
-\fBlongjmp\fP(3) (\fBsiglongjmp\fP(3)) ã\81®å\91¼ã\81³å\87ºã\81\97ã\82\82ã\80\81jump ã\83\90ã\83\83ã\83\95ã\82¡ã\81\8cã\83\8fã\83³ã\83\89ã\83©
+ã\81§ã\81\82ã\82\8bã\80\82ã\81\93ã\82\8cã\81¯ jump ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯ \fBsetjmp\fP(3) (\fBsigsetjmp\fP(3)) ã\81«ã\82\88ã\82\8aè¨
+定されるからである。同様に、クリーンアップハンドラー内からの
+\fBlongjmp\fP(3) (\fBsiglongjmp\fP(3)) ã\81®å\91¼ã\81³å\87ºã\81\97ã\82\82ã\80\81jump ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cã\83\8fã\83³ã\83\89ã\83©ã\83¼
内で \fBsetjmp\fP(3) (\fBsigsetjmp\fP(3)) で設定されていない限り、どのような
結果になるかは不定である。
.SH 返り値
.in
上記の実行例から、スレッドがキャンセルされ、
-キャンセルクリーンアップハンドラが呼び出され、
+ã\82ã\83£ã\83³ã\82»ã\83«ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\80\81
グローバル変数 \fIcnt\fP の値が 0 にリセットされていることが確認できる。
次の実行例では、メインプログラムはグローバル変数を設定して、
.fi
.in
-上記では、 (\fIcleanup_pop_arg\fP が 0 なので) クリーンアップハンドラは
+ä¸\8aè¨\98ã\81§ã\81¯ã\80\81 (\fIcleanup_pop_arg\fP ã\81\8c 0 ã\81ªã\81®ã\81§) ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯
実行されておらず、その結果 \fIcnt\fP の値はリセットされていないことが
分かる。
.fi
.in
-上記では、スレッドはキャンセルされていないが、クリーンアップハンドラが
+ä¸\8aè¨\98ã\81§ã\81¯ã\80\81ã\82¹ã\83¬ã\83\83ã\83\89ã\81¯ã\82ã\83£ã\83³ã\82»ã\83«ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\81\8cã\80\81ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8c
実行されていないことが分かる。これは \fBpthread_cleanup_pop\fP() の引き数
に 0 以外を渡したからである。
.SS プログラムのソース
.TH PTHREAD_CLEANUP_PUSH_DEFER_NP 3 2014\-05\-28 Linux "Linux Programmer's Manual"
.SH 名前
pthread_cleanup_push_defer_np, pthread_cleanup_pop_restore_np \-
-cancelability type を保持したままでスレッドのキャンセルクリーンアップハンドラの push/pop を行う
+cancelability type ã\82\92ä¿\9dæ\8c\81ã\81\97ã\81\9fã\81¾ã\81¾ã\81§ã\82¹ã\83¬ã\83\83ã\83\89ã\81®ã\82ã\83£ã\83³ã\82»ã\83«ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81® push/pop ã\82\92è¡\8cã\81\86
.SH 書式
.nf
\fB#include <pthread.h>\fP
\fBpthread_cleanup_push\fP(3) と同様に、
\fBpthread_cleanup_push_defer_np\fP() は \fIroutine\fP をそのスレッドの
-クリーンアップハンドラのスタックに追加する。これに加えて、
+ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\81«è¿½å\8a ã\81\99ã\82\8bã\80\82ã\81\93ã\82\8cã\81«å\8a ã\81\88ã\81¦ã\80\81
\fBpthread_cleanup_push_defer_np\fP() は現在の cancelability type も
保存し、cancelability type は "deferred" に設定する
(\fBpthread_setcanceltype\fP(3) 参照)。
\fBpthread_cleanup_pop\fP(3) と同様に、
\fBpthread_cleanup_pop_restore_np\fP() はそのスレッドのキャンセル
-ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\81\8bã\82\89ä¸\80ç\95ªä¸\8aã\81«ã\81\82ã\82\8bã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©
+ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\81\8bã\82\89ä¸\80ç\95ªä¸\8aã\81«ã\81\82ã\82\8bã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼
を取り出す。これに加えて、そのスレッドの cancelability type を、対応
する \fBpthread_cleanup_push_defer_np\fP() が呼ばれた時点の値に戻す。
メインスレッドで \fImain\fP() 内で return が実行される。
この場合は、プロセス内の全てのスレッドが終了される。
.PP
-\fIattr\fP 引き数は \fIpthread_attr_t\fP 構造体へのポインタであり、
+\fIattr\fP å¼\95ã\81\8dæ\95°ã\81¯ \fIpthread_attr_t\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8aã\80\81
\fIpthread_attr_t\fP 構造体の内容を使用して、スレッド作成時に
新しいスレッドの属性が決定される。
この構造体は \fBpthread_attr_init\fP(3) や関連の関数を使って初期化される。
\fIattr\fP が NULL の場合、新しいスレッドはデフォルトの属性で作成される。
成功した場合は、 \fBpthread_create\fP() は返る前に新しいスレッドの ID を
-\fIthread\fP が指すバッファに格納する。この ID は、これ以降に他の
+\fIthread\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82ã\81\93ã\81® ID ã\81¯ã\80\81ã\81\93ã\82\8c以é\99\8dã\81«ä»\96ã\81®
pthreads 関数の呼び出しでスレッドを参照するのに使用される。
新しいスレッドは、スレッドを作成したスレッドのシグナルマスク
.TP
\fBEAGAIN\fP
.\" NOTE! The following should match the description in fork(2)
-システムで設定されたスレッド数の上限に達していた。 このエラーの原因となる上限値はいくつかある。 実ユーザ ID
+システムで設定されたスレッド数の上限に達していた。 このエラーの原因となる上限値はいくつかある。 実ユーザー ID
当たりのプロセス数とスレッド数の上限である、ソフトリソース上限 \fBRLIMIT_NPROC\fP に達していた (\fBsetrlimit\fP(2)
で設定できる)。 カーネルのシステム全体のプロセスとスレッドの数の上限値である \fI/proc/sys/kernel/threads\-max\fP
が達していた (\fBproc\fP(5) 参照)。 PID の最大値 \fI/proc/sys/kernel/pid_max\fP に達していた
.TP
.\" FIXME . Test the following
\fBEPERM\fP
-\fIattr\fP に指定されたスケジューリングポリシーとパラメータを
+\fIattr\fP ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\9dã\83ªã\82·ã\83¼ã\81¨ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92
設定する許可がない。
.SH 準拠
POSIX.1\-2001.
この値は (そのスレッドが join 可能な場合に) \fBpthread_join\fP(3) を
呼び出した同じプロセス内の別のスレッドが参照できる値と同じである。
-\fBpthread_cleanup_push\fP(3) で設定されたクリーンアップハンドラのうち、
-まだ pop (取り出されていない) ハンドラを (push されたのと逆の順序で)
+\fBpthread_cleanup_push\fP(3) ã\81§è¨å®\9aã\81\95ã\82\8cã\81\9fã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®ã\81\86ã\81¡ã\80\81
+ã\81¾ã\81 pop (å\8f\96ã\82\8aå\87ºã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84) ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92 (push ã\81\95ã\82\8cã\81\9fã\81®ã\81¨é\80\86ã\81®é \86åº\8fã\81§)
取り出して実行する。そのスレッドがスレッド固有のデータを持っている
-場合は、クリーンアップハンドラが実行された後に、スレッド固有のデータ
+å ´å\90\88ã\81¯ã\80\81ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cå®\9fè¡\8cã\81\95ã\82\8cã\81\9få¾\8cã\81«ã\80\81ã\82¹ã\83¬ã\83\83ã\83\89å\9bºæ\9c\89ã\81®ã\83\87ã\83¼ã\82¿
に対応するデストラクタ (destructor) 関数が呼び出される (呼び出し順序
は規定されていない)。
スレッドが終了する際に、プロセスの共有リソース (例えば、mutex、状態変数
-(condition variables)、セマフォ、ファイルディスクリプタ)が解放される。
+(condition variables)、セマフォ、ファイルディスクリプター)が解放される。
\fBatexit\fP(3) を使って登録された関数は呼び出されない。
プロセスの最後のスレッドが終了すると、そのプロセスは、終了ステータス 0
.TP
\fBENOMEM\fP
.\" Can happen (but unlikely) while trying to allocate memory for cpuset
-メモリが十分になかった。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå\8d\81å\88\86ã\81«ã\81ªã\81\8bã\81£ã\81\9fã\80\82
.PP
さらに、 \fIthread\fP がメインスレッドを参照している場合には、
\fBpthread_getattr_np\fP() は内部で行われる様々な呼び出しでの
POSIX.1\-2008.
.SH 注意
シグナルの配送はプロセス全体で行われる。
-シグナルハンドラが設定されている場合、
-そのハンドラがスレッド \fIthread\fP で起動されるが、
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81
+ã\81\9dã\81®ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cã\82¹ã\83¬ã\83\83ã\83\89 \fIthread\fP ã\81§èµ·å\8b\95ã\81\95ã\82\8cã\82\8bã\81\8cã\80\81
シグナルの配送が "stop", "continue", "terminate" のいずれかの場合、
シグナルに対するアクションはプロセス全体に影響がある。
LinuxThreads スレッド実装では、この関数を呼び出すと
アプリケーション内の全てのスレッドがすぐに終了される。
終了対象のスレッドの cancelability state と cancelability type は
-無視され、それらのスレッドのクリーンアップハンドラは呼び出されない。
+ç\84¡è¦\96ã\81\95ã\82\8cã\80\81ã\81\9dã\82\8cã\82\89ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81®ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81ªã\81\84ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBpthread_kill_other_threads_np\fP() 関数はスレッドセーフである。
場合は、スレッドは指定された CPU のいずれかに移動される。
\fBpthread_getaffinity_np\fP() 関数は、スレッド \fIthread\fP の CPU affinity
-マスクを、\fIcpuset\fP が指すバッファに入れて返す。
+ã\83\9eã\82¹ã\82¯ã\82\92ã\80\81\fIcpuset\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82
CPU affinity マスクの詳細については、
\fBsched_setaffinity\fP(2) を参照してほしい。
CPU 集合の操作や取得を行う際に利用できるマクロ群の説明は
\fBCPU_SET\fP(3) を参照してほしい。
-引き数 \fIcpusetsize\fP は \fIcpuset\fP が指すバッファの長さ (バイト単位) で
+å¼\95ã\81\8dæ\95° \fIcpusetsize\fP ã\81¯ \fIcpuset\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®é\95·ã\81\95 (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d) ã\81§
ある。通常は、この引き数には \fIsizeof(cpu_set_t)\fP を指定する
(\fBCPU_SET\fP(3) に書かれているマクロを使って CPU 集合を動的に
割り当てている場合には、別の値になることもある)。
.SH エラー
.TP
\fBEFAULT\fP
-指定されたメモリアドレスが無効である。
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8cç\84¡å\8a¹ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBEINVAL\fP
(\fBpthread_setaffinity_np\fP()) affinity ビットマスク \fImask\fP に、
\fBpthread_setcancelstate\fP() は、呼び出したスレッドの
cancelability state に \fIstate\fP で指定された
値を設定する。変更前のスレッドの cancelability state は
-\fIoldstate\fP が指すバッファで返される。
+\fIoldstate\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§è¿\94ã\81\95ã\82\8cã\82\8bã\80\82
\fIstate\fP 引き数には以下の値のいずれか一つを指定しなければならない。
.TP
\fBPTHREAD_CANCEL_ENABLE\fP
\fBpthread_setcanceltype\fP() は、呼び出したスレッドの
cancelability type に \fItype\fP で指定された値を設定する。
変更前のスレッドの cancelability type は
-\fIoldtype\fP が指すバッファで返される。
+\fIoldtype\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§è¿\94ã\81\95ã\82\8cã\82\8bã\80\82
\fItype\fP 引き数には以下の値のいずれか一つを指定しなければならない。
.TP
\fBPTHREAD_CANCEL_DEFERRED\fP
.SS 非同期キャンセル
cancelability type を \fBPTHREAD_CANCEL_ASYNCHRONOUS\fP
に設定して役に立つことはめったにない。スレッドは\fIいつでも\fPキャンセルすることができることになるので、スレッドが安全にリソースの確保 (例えば
-\fBmalloc\fP(3) でメモリを割り当てる) や
+\fBmalloc\fP(3) ã\81§ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8b) ã\82\84
mutex、セマフォ、ロックなどの獲得を行うことができない。アプリケーションは、スレッドがキャンセルされる際に、これらのリソースがどのような状態にあるかを知る術はないので、リソースの確保が安全ではなくなる。つまり、キャンセルが起こったのが、リソースの確保前なのか、確保中なのか、確保後なのかが分からない。さらに、関数呼び出しの最中にキャンセルが発生すると、いくつかの内部データ構造
(例えば、\fBmalloc\fP(3) 関連の関数が管理している未使用ブロックのリンクリスト)
-が一貫性のない状態のままになってしまう可能性がある。その結果、クリーンアップハンドラが役に立たないものになってしまう。
+ã\81\8cä¸\80貫æ\80§ã\81®ã\81ªã\81\84ç\8a¶æ\85\8bã\81®ã\81¾ã\81¾ã\81«ã\81ªã\81£ã\81¦ã\81\97ã\81¾ã\81\86å\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\80\82ã\81\9dã\81®çµ\90æ\9e\9cã\80\81ã\82¯ã\83ªã\83¼ã\83³ã\82¢ã\83\83ã\83\97ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cå½¹ã\81«ç«\8bã\81\9fã\81ªã\81\84ã\82\82ã\81®ã\81«ã\81ªã\81£ã\81¦ã\81\97ã\81¾ã\81\86ã\80\82
非同期で安全にキャンセルできる関数は \fIasync\-cancel\-safe functions\fP と呼ばれる。 POSIX.1\-2001
で、非同期で安全にキャンセルできるように求められている関数は \fBpthread_cancel\fP(3),
デフォルトの concurrency level は 0 である。
並列処理レベルが意味を持つのは M:N スレッド実装の場合のみである。
-M:N スレッド実装では、ある瞬間において、あるプロセスのユーザレベルスレッ
+M:N ã\82¹ã\83¬ã\83\83ã\83\89å®\9fè£\85ã\81§ã\81¯ã\80\81ã\81\82ã\82\8bç\9e¬é\96\93ã\81«ã\81\8aã\81\84ã\81¦ã\80\81ã\81\82ã\82\8bã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\83¬ã\83\99ã\83«ã\82¹ã\83¬ã\83\83
ドの集合のサブ集合が、そのサブ集合のサイズよりも少ない数のカーネルの
スケジューリング実体 (kernel\-scheduling entity) に結び付けられる。
並列処理レベルを設定すると、そのアプリケーションの効率的な実行に必要な
.SH 説明
デフォルトでは、 \fBpthread_create\fP() で作成されたすべてのスレッドはプログラム名を継承する。
\fBpthread_setname_np\fP() 関数を使うとスレッドに固有の名前を設定することができる。
-ã\82¹ã\83¬ã\83\83ã\83\89å\9bºæ\9c\89ã\81®å\90\8då\89\8dã\81¯ã\83\9eã\83«ã\83\81ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81®ã\83\87ã\83\90ã\83\83ã\82°ã\81«ä¾¿å\88©ã\81§ã\81\82ã\82\8bã\80\82 ã\82¹ã\83¬ã\83\83ã\83\89å\90\8dã\81¯æ\84\8få\91³ã\81®ã\81\82ã\82\8b C è¨\80èª\9eã\81®æ\96\87å\97å\88\97ã\81§ã\81\82ã\82\8bã\80\82 ã\81\9dã\81®é\95·ã\81\95ã\81¯ 16
+スレッド固有の名前はマルチスレッドアプリケーションのデバッグに便利である。 スレッド名は意味のある C 言語の文字列である。 その長さは 16
文字に限定されており、 終端のヌルバイト (\(aq\e0\(aq) も 16 文字に含まれる。 \fIthread\fP
引き数で名前を変更するスレッドを指定する。 \fIname\fP には新しい名前を指定する。
\fBpthread_getname_np\fP() 関数を使うと、 スレッド名を取得することができる。 \fIthread\fP
-引き数は名前を取得するスレッドを指定する。 バッファ \fIname\fP はスレッド名を返すのに使用される。 \fIlen\fP には \fIname\fP
-の大きさをバイトで指定する。 \fIname\fP で指定されたバッファの大きさは最低でも 16 文字とすべきである。
-出力バッファに返されたスレッド名はヌル終端される。
+引き数は名前を取得するスレッドを指定する。 バッファー \fIname\fP はスレッド名を返すのに使用される。 \fIlen\fP には \fIname\fP
+ã\81®å¤§ã\81\8dã\81\95ã\82\92ã\83\90ã\82¤ã\83\88ã\81§æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 \fIname\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å¤§ã\81\8dã\81\95ã\81¯æ\9c\80ä½\8eã\81§ã\82\82 16 æ\96\87å\97ã\81¨ã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82
+å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«è¿\94ã\81\95ã\82\8cã\81\9fã\82¹ã\83¬ã\83\83ã\83\89å\90\8dã\81¯ã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\82\8bã\80\82
.SH 返り値
成功すると、これらの関数は 0 を返す。
エラーの場合、0 以外のエラー番号を返す。
\fBpthread_getname_np\fP() は以下のエラーで失敗する場合がある。
.TP
\fBERANGE\fP
-\fIname\fP と \fIlen\fP で指定されたバッファが、 スレッド名を格納するには短かすぎる。
+\fIname\fP ã\81¨ \fIlen\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cã\80\81 ã\82¹ã\83¬ã\83\83ã\83\89å\90\8dã\82\92æ ¼ç´\8dã\81\99ã\82\8bã\81«ã\81¯ç\9fã\81\8bã\81\99ã\81\8eã\82\8bã\80\82
.PP
\fI/proc/self/task/[tid]/comm\fP のオープンに失敗した場合、 これらの関数は \fBopen\fP(2)
で説明されているエラーのいずれかで失敗する。
.TH PTHREAD_SETSCHEDPARAM 3 2014\-12\-31 Linux "Linux Programmer's Manual"
.SH 名前
pthread_setschedparam, pthread_getschedparam \- スレッドの
-スケジューリングポリシーとパラメータを設定/取得する
+ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\9dã\83ªã\82·ã\83¼ã\81¨ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92è¨å®\9a/å\8f\96å¾\97ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <pthread.h>\fP
.fi
.SH 説明
\fBpthread_setschedparam\fP() 関数は、スレッド \fIthread\fP の
-スケジューリングポリシーとスケジューリングパラメータを設定する。
+ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\9dã\83ªã\82·ã\83¼ã\81¨ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82
.\" FIXME . pthread_setschedparam() places no restriction on the policy,
.\" but pthread_attr_setschedpolicy() restricts policy to RR/FIFO/OTHER
\fIpolicy\fP は \fIthread\fP の新しいスケジューリングポリシーを指定する。 \fIpolicy\fP に指定できる値とその意味は
\fBsched\fP(7) で説明されている。
-\fIparam\fP が指す構造体は \fIthread\fP の新しいスケジューリングパラメータを
-指定する。スケジューリングパラメータは以下の構造体で管理される。
+\fIparam\fP ã\81\8cæ\8c\87ã\81\99æ§\8bé\80 ä½\93ã\81¯ \fIthread\fP ã\81®æ\96°ã\81\97ã\81\84ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92
+æ\8c\87å®\9aã\81\99ã\82\8bã\80\82ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ä»¥ä¸\8bã\81®æ§\8bé\80 ä½\93ã\81§ç®¡ç\90\86ã\81\95ã\82\8cã\82\8bã\80\82
.in +4n
.nf
.fi
.in
-見て分かる通り、サポートされているスケジューリングパラメータは一つだけである。各スケジューリングポリシーで許可されるスケジューリング優先度の詳細については、\fBsched\fP(7)
+è¦\8bã\81¦å\88\86ã\81\8bã\82\8bé\80\9aã\82\8aã\80\81ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ä¸\80ã\81¤ã\81 ã\81\91ã\81§ã\81\82ã\82\8bã\80\82å\90\84ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\9dã\83ªã\82·ã\83¼ã\81§è¨±å\8f¯ã\81\95ã\82\8cã\82\8bã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°å\84ªå\85\88度ã\81®è©³ç´°ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\80\81\fBsched\fP(7)
を参照のこと。
.\" FIXME . nptl/pthread_setschedparam.c has the following
.\" Eventually (perhaps after writing the mutexattr pages), we
.\" may want to add something on the topic to this page.
\fBpthread_getschedparam\fP() 関数は、スレッド \fIthread\fP の
-スケジューリングポリシーとパラメータを、
-それぞれ \fIpolicy\fP と \fIparam\fP が指すバッファに入れて返す。
+ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\9dã\83ªã\82·ã\83¼ã\81¨ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ã\80\81
+ã\81\9dã\82\8cã\81\9eã\82\8c \fIpolicy\fP ã\81¨ \fIparam\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82
返された優先度の値は、最も最近実行した \fIthread\fP に影響を与える
\fBpthread_setschedparam\fP(), \fBpthread_setschedprio\fP,
\fBpthread_create\fP で設定された値となる。
成功すると、これらの関数は 0 を返す。
エラーの場合、0 以外のエラー番号を返す。
\fBpthread_setschedparam\fP() が失敗した場合、 \fIthread\fP の
-スケジューリングポリシーとパラメータは変更されない。
+ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\9dã\83ªã\82·ã\83¼ã\81¨ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯å¤\89æ\9b´ã\81\95ã\82\8cã\81ªã\81\84ã\80\82
.SH エラー
これらの関数はどちらも以下のエラーで失敗する場合がある。
.TP
\fIparam\fP が \fIpolicy\fP では意味を持たない値である。
.TP
\fBEPERM\fP
-呼び出し側が、指定されたスケジューリングポリシーやパラメータを設定する
+å\91¼ã\81³å\87ºã\81\97å\81´ã\81\8cã\80\81æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\9dã\83ªã\82·ã\83¼ã\82\84ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8b
のに必要な特権を持たない。
.PP
.\" .SH VERSIONS
.\" Available since glibc 2.0
POSIX.1\-2001 では、 \fBpthread_setschedparam\fP() に関して
エラー \fBENOTSUP\fP ("サポートされていない値をスケジューリングポリシーや
-パラメータに設定しようとした") も追加で規定されている。
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81«è¨å®\9aã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9f") ã\82\82追å\8a ã\81§è¦\8få®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
関数 \fBpthread_setschedparam\fP() と \fBpthread_getschedparam\fP() はスレッドセーフである。
\fBptsname\fP() 関数は \fIfd\fP で参照されるマスタ擬似端末 (pts) デバイスに対応する スレーブ擬似端末デバイスの名前を返す。
\fBptsname_r\fP() 関数は \fBptsname\fP() のリエントラントなバージョンである。
-この関数は、スレーブ疑似端末デバイスの名前を、ヌルで終端された文字列の形で \fIbuf\fP で指定されたバッファに格納して返す。 \fIbuflen\fP
+ã\81\93ã\81®é\96¢æ\95°ã\81¯ã\80\81ã\82¹ã\83¬ã\83¼ã\83\96ç\96\91似端æ\9c«ã\83\87ã\83\90ã\82¤ã\82¹ã\81®å\90\8då\89\8dã\82\92ã\80\81ã\83\8cã\83«ã\81§çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81®å½¢ã\81§ \fIbuf\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\97ã\81¦è¿\94ã\81\99ã\80\82 \fIbuflen\fP
引き数には \fIbuf\fP のバイト数を指定する。
.SH 返り値
-成功の場合、 \fBptsname\fP() は静的記憶領域の文字列へのポインタを返す。 この記憶領域はこの後の \fBptsname\fP()
-の呼び出しで上書きされる。 このポインタを free してはいけない。 エラーの場合は NULL を返す。
+æ\88\90å\8a\9fã\81®å ´å\90\88ã\80\81 \fBptsname\fP() ã\81¯é\9d\99ç\9a\84è¨\98æ\86¶é \98å\9f\9fã\81®æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®è¨\98æ\86¶é \98å\9f\9fã\81¯ã\81\93ã\81®å¾\8cã\81® \fBptsname\fP()
+ã\81®å\91¼ã\81³å\87ºã\81\97ã\81§ä¸\8aæ\9b¸ã\81\8dã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92 free ã\81\97ã\81¦ã\81¯ã\81\84ã\81\91ã\81ªã\81\84ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82
.\" In fact the errno value is also returned as the function
.\" result -- MTK, Dec 04
\fBputenv\fP() はリエントラントであることを求められていない。 glibc 2.0 ではリエントラントではない。 glibc 2.1
ではリエントラントである。
.LP
-バージョン 2.1.2 以降では、 glibc の実装は SUSv2 に準拠している。 \fBputenv\fP() で与えられたポインタ
+バージョン 2.1.2 以降では、 glibc の実装は SUSv2 に準拠している。 \fBputenv\fP() で与えられたポインター
\fIstring\fP が使われる。 この文字列は環境の一部となり、後で変更すると環境も変わる。 (従って、 \fBputenv\fP()
を自動変数を引数として呼び出し、 \fIstring\fPが環境の一部のままで呼び出した関数から return するとエラーになる) しかし、glibc
-バージョン 2.0 から 2.1.1 まででは違っており、文字列のコピーが使われる。 これはメモリリークを引き起こすだけでなく、 SUSv2
+ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.0 ã\81\8bã\82\89 2.1.1 ã\81¾ã\81§ã\81§ã\81¯é\81\95ã\81£ã\81¦ã\81\8aã\82\8aã\80\81æ\96\87å\97å\88\97ã\81®ã\82³ã\83\94ã\83¼ã\81\8c使ã\82\8fã\82\8cã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\83ªã\83¼ã\82¯ã\82\92å¼\95ã\81\8dèµ·ã\81\93ã\81\99ã\81 ã\81\91ã\81§ã\81ªã\81\8fã\80\81 SUSv2
にも違反している。
.LP
4.4BSD バージョンでは、glibc 2.0 と同様にコピーを使う。
.\"
.TH PUTGRENT 3 2015\-01\-22 GNU "Linux Programmer's Manual"
.SH 名前
-putgrent \- グループデータベースエントリをファイルに書き込む
+putgrent \- ã\82°ã\83«ã\83¼ã\83\97ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\83\95ã\82¡ã\82¤ã\83«ã\81«æ\9b¸ã\81\8dè¾¼ã\82\80
.SH 書式
\fB#define _GNU_SOURCE\fP /* feature_test_macros(7) 参照 */
.br
.\"
.TH PUTPWENT 3 2013\-04\-19 GNU "Linux Programmer's Manual"
.SH 名前
-putpwent \- パスワードファイルエントリの書き込み
+putpwent \- ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\95ã\82¡ã\82¤ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿
.SH 書式
.nf
\fB#include <stdio.h>\fP
.sp
\fBputpwent\fP(): _SVID_SOURCE
.SH 説明
-\fBputpwent\fP() 関数は、構造体 \fIp\fP からのパスワードエントリを \fIstream\fP に結びつけられたファイルに書き込む。
+\fBputpwent\fP() é\96¢æ\95°ã\81¯ã\80\81æ§\8bé\80 ä½\93 \fIp\fP ã\81\8bã\82\89ã\81®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 \fIstream\fP ã\81«çµ\90ã\81³ã\81¤ã\81\91ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81«æ\9b¸ã\81\8dè¾¼ã\82\80ã\80\82
.PP
\fIpasswd\fP 構造体は、\fI<pwd.h>\fP で以下のように定義されている:
.sp
.in +4n
.nf
struct passwd {
- char *pw_name; /* ユーザ名 */
- char *pw_passwd; /* ユーザのパスワード */
- uid_t pw_uid; /* ユーザ ID */
+ char *pw_name; /* ユーザー名 */
+ char *pw_passwd; /* ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89 */
+ uid_t pw_uid; /* ユーザー ID */
gid_t pw_gid; /* グループ ID */
char *pw_gecos; /* 本名 */
char *pw_dir; /* ホームディレクトリ */
\fBint puts(const char *\fP\fIs\fP\fB);\fP
.fi
.SH 説明
-\fBfputc\fP() は、キャラクタ \fIc\fP を \fIunsigned char\fP にキャストし、 \fIstream\fP に書き込む。
+\fBfputc\fP() は、キャラクター \fIc\fP を \fIunsigned char\fP にキャストし、 \fIstream\fP に書き込む。
.PP
\fBfputs\fP() は、文字列 \fIs\fP を \fIstream\fP に書き込む。 文字列終端のヌルバイト (\(aq\e0\(aq) は出力しない。
.PP
.SH 準拠
C89, C99.
.SH バグ
-\fIstdio\fP ライブラリに含まれる出力関数と、同じ出力ストリームに結びつけられた ファイルディスクリプタに対する \fBwrite\fP(2)
+\fIstdio\fP ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81«å\90«ã\81¾ã\82\8cã\82\8bå\87ºå\8a\9bé\96¢æ\95°ã\81¨ã\80\81å\90\8cã\81\98å\87ºå\8a\9bã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81«çµ\90ã\81³ã\81¤ã\81\91ã\82\89ã\82\8cã\81\9f ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\99ã\82\8b \fBwrite\fP(2)
の低レベル呼び出しを混在して 使用することは賢明ではない。 その結果は定義されておらず、望む結果が得られない可能性が高い。
.SH 関連項目
\fBwrite\fP(2), \fBferror\fP(3), \fBfgets\fP(3), \fBfopen\fP(3), \fBfputwc\fP(3),
.SH 準拠
C99.
.SH 注意
-\fBputwchar\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
+\fBputwchar\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.PP
\fBputwchar\fP() が実際にはワイド文字 \fIwc\fP と等価なマルチバイト文字を 書き出すことを期待してもよい。
.SH 関連項目
.ad b
.SH 説明
\fBqsort\fP() 関数は、 \fInmemb\fP 個の大きさ \fIsize\fP の要素をもつ配列を並べ変える。 \fIbase\fP
-引き数は配列の先頭へのポインタである。
+å¼\95ã\81\8dæ\95°ã\81¯é\85\8då\88\97ã\81®å\85\88é ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.PP
-\fIcompar\fP をポインタとする比較関数によって、 配列の中身は昇順 (値の大きいものほど後に並ぶ順番) に並べられる。
-比較関数の引き数は比較されるふたつのオブジェクトのポインタである。
+\fIcompar\fP ã\82\92ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\81\99ã\82\8bæ¯\94è¼\83é\96¢æ\95°ã\81«ã\82\88ã\81£ã\81¦ã\80\81 é\85\8då\88\97ã\81®ä¸èº«ã\81¯æ\98\87é \86 (å\80¤ã\81®å¤§ã\81\8dã\81\84ã\82\82ã\81®ã\81»ã\81©å¾\8cã\81«ä¸¦ã\81¶é \86ç\95ª) ã\81«ä¸¦ã\81¹ã\82\89ã\82\8cã\82\8bã\80\82
+æ¯\94è¼\83é\96¢æ\95°ã\81®å¼\95ã\81\8dæ\95°ã\81¯æ¯\94è¼\83ã\81\95ã\82\8cã\82\8bã\81µã\81\9fã\81¤ã\81®ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.PP
比較関数は、第一引き数が第二引き数に対して、 1) 小さい、2) 等しい、3) 大きいのそれぞれに応じて、 1) ゼロより小さい整数、2) ゼロ、3)
ゼロより大きい整数の いずれかを返さなければならない。 二つの要素の比較結果が等しいとき、 並べ変えた後の配列では、これら二つの順序は規定されていない。
.PP
\fBqsort_r\fP() 関数は \fBqsort\fP() と同じだが、比較関数 \fIcompar\fP が第 3 引き数を
-取る点が異なる。ポインタが \fIarg\fP 経由で比較関数に渡される。
+å\8f\96ã\82\8bç\82¹ã\81\8cç\95°ã\81ªã\82\8bã\80\82ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8c \fIarg\fP çµ\8cç\94±ã\81§æ¯\94è¼\83é\96¢æ\95°ã\81«æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82
これにより、比較関数は任意の引き数を渡すためにグローバル変数を使う必要がなくなり、
そのため、リエントラント (再入可能) で安全にスレッドで使用できるようになる。
.SH 返り値
static int
cmpstringp(const void *p1, const void *p2)
{
- /* ã\81\93ã\81®é\96¢æ\95°ã\81®å®\9fé\9a\9bã\81®å¼\95ã\81\8dæ\95°ã\81¯ "char å\9e\8bã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81®ã\83\9dã\82¤ã\83³ã\82¿" だが、
- strcmp(3) の引き数は "char 型へのポインタ" である。
- そこで、以下のようにキャストをしてからポインタの逆参照を行う。*/
+ /* ã\81\93ã\81®é\96¢æ\95°ã\81®å®\9fé\9a\9bã\81®å¼\95ã\81\8dæ\95°ã\81¯ "char å\9e\8bã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼" だが、
+ strcmp(3) の引き数は "char 型へのポインター" である。
+ ã\81\9dã\81\93ã\81§ã\80\81以ä¸\8bã\81®ã\82\88ã\81\86ã\81«ã\82ã\83£ã\82¹ã\83\88ã\82\92ã\81\97ã\81¦ã\81\8bã\82\89ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®é\80\86å\8f\82ç\85§ã\82\92è¡\8cã\81\86ã\80\82*/
return strcmp(* (char * const *) p1, * (char * const *) p2);
}
.RS 4
.PD 0
.IP * 4
-新たなエントリをリストの先頭に挿入する。
+æ\96°ã\81\9fã\81ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\83ªã\82¹ã\83\88ã\81®å\85\88é ã\81«æ\8c¿å\85¥ã\81\99ã\82\8bã\80\82
.IP *
-新たなエントリをリストのどの要素よりも後に挿入する。
+æ\96°ã\81\9fã\81ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\83ªã\82¹ã\83\88ã\81®ã\81©ã\81®è¦\81ç´ ã\82\88ã\82\8aã\82\82å¾\8cã\81«æ\8c¿å\85¥ã\81\99ã\82\8bã\80\82
.IP *
-リストの任意のエントリを削除する。
+ã\83ªã\82¹ã\83\88ã\81®ä»»æ\84\8fã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\89\8aé\99¤ã\81\99ã\82\8bã\80\82
.IP *
リストを順方向に辿る。
.PD
テールキューは以下の機能を追加する:
.RS 4
.IP * 4
-エントリをリストの最後に追加できる。
+ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\83ªã\82¹ã\83\88ã\81®æ\9c\80å¾\8cã\81«è¿½å\8a ã\81§ã\81\8dã\82\8bã\80\82
.RE
.PP
ただし:
.IP 1. 4
全てのリスト挿入と削除において、リストの先頭を指定しなければならない。
.IP 2.
-å\90\84å\85\88é ã\82¨ã\83³ã\83\88ã\83ªã\81¯ 1 ã\81¤ã\81§ã\81¯ã\81ªã\81\8f 2 ã\81¤ã\81®ã\83\9dã\82¤ã\83³ã\82¿を必要とする。
+å\90\84å\85\88é ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ 1 ã\81¤ã\81§ã\81¯ã\81ªã\81\8f 2 ã\81¤ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を必要とする。
.IP 3.
リストと比べて、コードサイズは 15% 大きくなり、操作は 20% 遅くなる。
.PD
.RS 4
.PD 0
.IP * 4
-エントリをリストの最後に追加できる。
+ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\83ªã\82¹ã\83\88ã\81®æ\9c\80å¾\8cã\81«è¿½å\8a ã\81§ã\81\8dã\82\8bã\80\82
.IP *
-ã\82¨ã\83³ã\83\88ã\83ªã\82\92ä»\96ã\81®ã\82¨ã\83³ã\83\88ã\83ªの前に追加できる。
+ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ä»\96ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼の前に追加できる。
.IP *
逆方向に末尾から先頭へ辿ることができる。
.PD
.IP 1. 4
全てのリスト挿入と削除において、リストの先頭を指定しなければならない。
.IP 2.
-å\90\84å\85\88é ã\82¨ã\83³ã\83\88ã\83ªã\81¯ 1 ã\81¤ã\81§ã\81¯ã\81ªã\81\8f 2 ã\81¤ã\81®ã\83\9dã\82¤ã\83³ã\82¿を必要とする。
+å\90\84å\85\88é ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ 1 ã\81¤ã\81§ã\81¯ã\81ªã\81\8f 2 ã\81¤ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を必要とする。
.IP 3.
辿る際の終了条件がより複雑である。
.IP 4.
.PD
.RE
.PP
-マクロ定義において \fITYPE\fP はユーザ定義構造体の名前であり、 \fBLIST_ENTRY\fP, \fBTAILQ_ENTRY\fP,
+マクロ定義において \fITYPE\fP はユーザー定義構造体の名前であり、 \fBLIST_ENTRY\fP, \fBTAILQ_ENTRY\fP,
\fBCIRCLEQ_ENTRY\fP の何れか型のフィールドと 指定された \fINAME\fP を含まなければならない。 引き数 \fIHEADNAME\fP
-はユーザ定義構造体の名前であり、 マクロ \fBLIST_HEAD\fP, \fBTAILQ_HEAD\fP, \fBCIRCLEQ_HEAD\fP
+はユーザー定義構造体の名前であり、 マクロ \fBLIST_HEAD\fP, \fBTAILQ_HEAD\fP, \fBCIRCLEQ_HEAD\fP
を用いて宣言されなければならない。 これらのマクロがどのように使われるかについての更なる説明は、 以下の例を参照すること。
.SS リスト
-リストの先頭には、 \fBLIST_HEAD\fP マクロで定義される構造体が置かれる。 この構造体はリストの最初の要素へのポインタを 1 つ含む。 要素は
+ã\83ªã\82¹ã\83\88ã\81®å\85\88é ã\81«ã\81¯ã\80\81 \fBLIST_HEAD\fP ã\83\9eã\82¯ã\83ã\81§å®\9a義ã\81\95ã\82\8cã\82\8bæ§\8bé\80 ä½\93ã\81\8cç½®ã\81\8bã\82\8cã\82\8bã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¯ã\83ªã\82¹ã\83\88ã\81®æ\9c\80å\88\9dã\81®è¦\81ç´ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92 1 ã\81¤å\90«ã\82\80ã\80\82 è¦\81ç´ ã\81¯
2 重にリンクされており、 任意の要素はリストを辿らずに削除できる。 新しい要素は既存の要素の後またはリストの先頭に追加できる。
\fBLIST_HEAD\fP 構造体は以下のように宣言されている:
.in +4n
.in
.PP
ここで \fIHEADNAME\fP は定義される構造体の名前であり、 \fITYPE\fP はリンク内でリンクされる要素の型である。
-リストの先頭へのポインタは、その後で次のように宣言される:
+ã\83ªã\82¹ã\83\88ã\81®å\85\88é ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ã\80\81ã\81\9dã\81®å¾\8cã\81§æ¬¡ã\81®ã\82\88ã\81\86ã\81«å®£è¨\80ã\81\95ã\82\8cã\82\8b:
.in +4n
.nf
.fi
.in
.PP
-(名前 \fIhead\fP と \fIheadp\fP はユーザが選択できる。)
+(å\90\8då\89\8d \fIhead\fP ã\81¨ \fIheadp\fP ã\81¯ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cé\81¸æ\8a\9eã\81§ã\81\8dã\82\8bã\80\82)
.PP
マクロ \fBLIST_ENTRY\fP はリストの要素を接続する構造体を宣言する。
.PP
LIST_REMOVE(head.lh_first, entries);
.fi
.SS テールキュー
-テールキューの先頭には \fBTAILQ_HEAD\fP マクロで定義される構造体が置かれる。 この構造体は 1 組のポインタを含んでいる。 1
-ã\81¤ã\81¯ã\83\86ã\83¼ã\83«ã\82ã\83¥ã\83¼ã\81®æ\9c\80å\88\9dã\81®è¦\81ç´ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81\82ã\82\8aã\80\81 ã\82\82ã\81\86 1 ã\81¤ã\81¯ã\83\86ã\83¼ã\83«ã\82ã\83¥ã\83¼ã\81®æ\9c\80å¾\8cã\81®è¦\81ç´ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿である。 要素は 2 重にリンクされており、
+ã\83\86ã\83¼ã\83«ã\82ã\83¥ã\83¼ã\81®å\85\88é ã\81«ã\81¯ \fBTAILQ_HEAD\fP ã\83\9eã\82¯ã\83ã\81§å®\9a義ã\81\95ã\82\8cã\82\8bæ§\8bé\80 ä½\93ã\81\8cç½®ã\81\8bã\82\8cã\82\8bã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¯ 1 çµ\84ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å\90«ã\82\93ã\81§ã\81\84ã\82\8bã\80\82 1
+ã\81¤ã\81¯ã\83\86ã\83¼ã\83«ã\82ã\83¥ã\83¼ã\81®æ\9c\80å\88\9dã\81®è¦\81ç´ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8aã\80\81 ã\82\82ã\81\86 1 ã\81¤ã\81¯ã\83\86ã\83¼ã\83«ã\82ã\83¥ã\83¼ã\81®æ\9c\80å¾\8cã\81®è¦\81ç´ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼である。 要素は 2 重にリンクされており、
任意の要素はテールキューを辿らずに削除できる。 新しい要素は既存の要素の後またはテールキューの先頭または末尾に追加できる。 \fBTAILQ_HEAD\fP
構造体は以下のように定義されている:
.in +4n
.in
.PP
ここで \fIHEADNAME\fP は定義される構造体の名前であり、 \fITYPE\fP はテールキュー内でリンクされる要素の型である。
-テールキューの先頭へのポインタは、その後で次のように宣言される:
+ã\83\86ã\83¼ã\83«ã\82ã\83¥ã\83¼ã\81®å\85\88é ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ã\80\81ã\81\9dã\81®å¾\8cã\81§æ¬¡ã\81®ã\82\88ã\81\86ã\81«å®£è¨\80ã\81\95ã\82\8cã\82\8b:
.in +4n
.nf
.fi
.in
.PP
-(名前 \fIhead\fP と \fIheadp\fP はユーザが選択できる。)
+(å\90\8då\89\8d \fIhead\fP ã\81¨ \fIheadp\fP ã\81¯ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cé\81¸æ\8a\9eã\81§ã\81\8dã\82\8bã\80\82)
.PP
マクロ \fBTAILQ_ENTRY\fP はテールキューの要素を接続する構造体を宣言する。
.PP
TAILQ_REMOVE(&head, head.tqh_first, entries);
.fi
.SS 循環キュー
-循環キューの先頭には \fBCIRCLEQ_HEAD\fP マクロで定義される構造体が置かれる。 この構造体は 1 組のポインタを含んでいる。 1
-ã\81¤ã\81¯å¾ªç\92°ã\82ã\83¥ã\83¼ã\81®æ\9c\80å\88\9dã\81®è¦\81ç´ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81\82ã\82\8aã\80\81 ã\82\82ã\81\86 1 ã\81¤ã\81¯å¾ªç\92°ã\82ã\83¥ã\83¼ã\81®æ\9c\80å¾\8cã\81®è¦\81ç´ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿である。 要素は 2 重にリンクされており、
+循ç\92°ã\82ã\83¥ã\83¼ã\81®å\85\88é ã\81«ã\81¯ \fBCIRCLEQ_HEAD\fP ã\83\9eã\82¯ã\83ã\81§å®\9a義ã\81\95ã\82\8cã\82\8bæ§\8bé\80 ä½\93ã\81\8cç½®ã\81\8bã\82\8cã\82\8bã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¯ 1 çµ\84ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å\90«ã\82\93ã\81§ã\81\84ã\82\8bã\80\82 1
+ã\81¤ã\81¯å¾ªç\92°ã\82ã\83¥ã\83¼ã\81®æ\9c\80å\88\9dã\81®è¦\81ç´ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8aã\80\81 ã\82\82ã\81\86 1 ã\81¤ã\81¯å¾ªç\92°ã\82ã\83¥ã\83¼ã\81®æ\9c\80å¾\8cã\81®è¦\81ç´ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼である。 要素は 2 重にリンクされており、
任意の要素はキューを辿らずに削除できる。 新しい要素は、既存の要素の後または前、またはキューの先頭または末尾に追加できる。 A
\fBCIRCLEQ_HEAD\fP 構造体は以下のように定義されている:
.in +4n
.in
.PP
ここで \fIHEADNAME\fP は定義される構造体の名前であり、 \fITYPE\fP は循環キュー内でリンクされる要素の型である。
-循環キューの先頭へのポインタは、その後で次のように宣言される:
+循ç\92°ã\82ã\83¥ã\83¼ã\81®å\85\88é ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ã\80\81ã\81\9dã\81®å¾\8cã\81§æ¬¡ã\81®ã\82\88ã\81\86ã\81«å®£è¨\80ã\81\95ã\82\8cã\82\8b:
.in +4n
.nf
.fi
.in
.PP
-(名前 \fIhead\fP と \fIheadp\fP はユーザが選択できる。)
+(å\90\8då\89\8d \fIhead\fP ã\81¨ \fIheadp\fP ã\81¯ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cé\81¸æ\8a\9eã\81§ã\81\8dã\82\8bã\80\82)
.PP
マクロ \fBCIRCLEQ_ENTRY\fP は循環キューの要素を接続する構造体を宣言する。
.PP
.fi
.in
.PP
-ã\82·ã\82°ã\83\8aã\83«ã\81«èµ·å\9b ã\81\97ã\81¦ã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81 \fBraise\fP() ã\81\8cè¿\94ã\82\8bã\81®ã\81¯å¿\85ã\81\9aã\82·ã\82°ã\83\8aã\83«ã\83»ã\83\8fã\83³ã\83\89ã\83©が返った後になる。
+ã\82·ã\82°ã\83\8aã\83«ã\81«èµ·å\9b ã\81\97ã\81¦ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81 \fBraise\fP() ã\81\8cè¿\94ã\82\8bã\81®ã\81¯å¿\85ã\81\9aã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼が返った後になる。
.SH 返り値
成功した場合は 0 を、失敗した場合は 0 以外の値を返す。
.SH 属性
.PP
種の値が与えられない場合には、 \fBrand\fP() 関数は 自動的に 1 を種とする。
.PP
-\fBrand\fP() é\96¢æ\95°ã\81¯å\86\8då\85¥å\8f¯è\83½ (reentrant) ã\81§ã\81¯ã\81ªã\81\84ã\80\81ã\81¤ã\81¾ã\82\8aã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82»ã\83¼ã\83\95ã\81§ã\81¯ã\81ªã\81\84ã\80\82
+\fBrand\fP() 関数は再入可能 (reentrant) ではない、つまりスレッドセーフではない。
この関数には隠し状態があり、呼び出される度にこの隠し状態が変更されるからである。
ちょうどこの隠し状態が次の呼び出し時の乱数の種として使われるようなものである。
実際にはもう少し複雑かもしれないが。
\fBrand\fP() と同様、 \fBrand_r\fP() は [0,\ \fBRAND_MAX\fP] の範囲の疑似乱数整数を返す。
\fIseedp\fP 引き数は、\fBrand_r\fP() の呼び出し間で状態を保持するために使用される
-\fIunsigned int\fP へのポインタである。
+\fIunsigned int\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
\fIseedp\fP が指す整数に同じ初期値を \fBrand_r\fP() を呼び出し、
呼び出し間でその値が変更されなければ、同じ疑似乱数系列が得られる。
関数 \fBrandom\fP() と \fBrand_r\fP() は 0 以上 \fBRAND_MAX\fP 以下の数を返す。
関数 \fBsrandom\fP() は値を返さない。
-関数 \fBinitstate\fP() は、変更前の状態配列へのポインタを返す。エラーの場合、 \fIerrno\fP に原因を示す値が設定される。
+é\96¢æ\95° \fBinitstate\fP() ã\81¯ã\80\81å¤\89æ\9b´å\89\8dã\81®ç\8a¶æ\85\8bé\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81 \fIerrno\fP ã\81«å\8e\9få\9b ã\82\92示ã\81\99å\80¤ã\81\8cè¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82
関数 \fBsetstate\fP() は、成功すると 0 を返す。 エラーの場合、\-1 を返し、 \fIerrno\fP にエラーの原因を示す値が設定される。
.SH エラー
.ad b
.SH 説明
これらの関数は、 \fBrandom\fP(3) で説明されている関数のリエントラント版で、等価な機能を持つ。
-ã\81\93ã\82\8cã\82\89ã\81¯ã\80\81ç\8b¬ç«\8bã\81\97ã\81\9få\86\8dç\8f¾å\8f¯è\83½ã\81ªä¹±æ\95°å\88\97ã\82\92å\90\84ã\82¹ã\83¬ã\83\83ã\83\89ã\81\8cå¾\97ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\82\88ã\81\86ã\81ª ã\83\9eã\83«ã\83\81ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\81®ä½¿ç\94¨ã\81«é\81©ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
+これらは、独立した再現可能な乱数列を各スレッドが得る必要があるような マルチスレッドプログラムでの使用に適している。
\fBrandom_r\fP() 関数は \fBrandom\fP(3) と同様だが、 大域変数 (global variable)
で管理される状態情報を使うのではなく、 \fIbuf\fP が指す引き数に格納された状態情報を使う。 生成された乱数は引き数 \fIresult\fP
.SH バグ
.\" Bug filed 25 Nov 2007:
.\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=5399
-\fBiruserok\fP() と \fBiruserok_af\fP() は glibc バージョン 2.12 以降のヘッダ
+\fBiruserok\fP() と \fBiruserok_af\fP() は glibc バージョン 2.12 以降のヘッダー
でのみ宣言されている。
.SH 関連項目
\fBrlogin\fP(1), \fBrsh\fP(1), \fBintro\fP(2), \fBrexec\fP(3), \fBrexecd\fP(8),
\fBint re_exec(const char *\fP\fIstring\fP\fB);\fP
.SH 説明
\fBre_comp\fP() は、 \fIregex\fP で示されるヌルで終端された正規表現をコンパイルするために使用される。
-コンパイルされたパターンは静的な領域を使用しており、そのパターンバッファ は以降の \fBre_comp\fP() の使用によって上書きされる。 もし
-\fIregex\fP が NULL ならば何の操作も行われず、パターンバッファの内容は 置き換えられない。
+コンパイルされたパターンは静的な領域を使用しており、そのパターンバッファー は以降の \fBre_comp\fP() の使用によって上書きされる。 もし
+\fIregex\fP ã\81\8c NULL ã\81ªã\82\89ã\81°ä½\95ã\81®æ\93\8dä½\9cã\82\82è¡\8cã\82\8fã\82\8cã\81\9aã\80\81ã\83\91ã\82¿ã\83¼ã\83³ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å\86\85容ã\81¯ ç½®ã\81\8dæ\8f\9bã\81\88ã\82\89ã\82\8cã\81ªã\81\84ã\80\82
\fBre_exec\fP() は、 \fIstring\fP が指すヌルで終端された文字列が前回コンパイルされた \fIregex\fP
にマッチするかどうかを評価するために使用される。
.SH 返り値
\fBre_comp\fP() は、 \fIregex\fP のコンパイルに成功した場合 NULL を返し、
-それ以外の場合は適切なエラーメッセージへのポインタを返す。
+ã\81\9dã\82\8c以å¤\96ã\81®å ´å\90\88ã\81¯é\81©å\88\87ã\81ªã\82¨ã\83©ã\83¼ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
\fBre_exec\fP() は、一致した場合 1 を、失敗した場合 0 を返す。
.SH 属性
.RE
.ad b
.SH 説明
-\fBreaddir\fP() 関数は、\fIdirp\fP が指すディレクトリストリームの中で、 次のディレクトリエントリを表す \fIdirent\fP
-構造体へのポインタを返す。 ディレクトリストリームの末尾に達した場合や、 エラーが発生した場合は、 NULL を返す。
+\fBreaddir\fP() é\96¢æ\95°ã\81¯ã\80\81\fIdirp\fP ã\81\8cæ\8c\87ã\81\99ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ä¸ã\81§ã\80\81 次ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92表ã\81\99 \fIdirent\fP
+æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®æ\9c«å°¾ã\81«é\81\94ã\81\97ã\81\9få ´å\90\88ã\82\84ã\80\81 ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81\9få ´å\90\88ã\81¯ã\80\81 NULL ã\82\92è¿\94ã\81\99ã\80\82
.PP
Linux では \fIdirent\fP 構造体は以下のように定義されている。
.PP
の呼び出しによって上書きされる可能性がある。
\fBreaddir_r\fP() 関数は \fBreaddir\fP() のリエントラント版である。 この関数はディレクトリストリーム \fIdirp\fP
-ã\81\8bã\82\89次ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\82\92èªã\81¿è¾¼ã\81¿ã\80\81 \fIentry\fP ã\81\8cæ\8c\87ã\81\99å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8cå\89²ã\82\8aå½\93ã\81¦ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\81«ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªを格納して返す
-(ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\81®å\89²ã\82\8aå½\93ã\81¦ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\80\8c注æ\84\8fã\80\8dã\81®ç¯\80ã\82\92å\8f\82ç\85§ã\81®ã\81\93ã\81¨)ã\80\82 è¿\94ã\81\95ã\82\8cã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿が \fI*result\fP
+ã\81\8bã\82\89次ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92èªã\81¿è¾¼ã\81¿ã\80\81 \fIentry\fP ã\81\8cæ\8c\87ã\81\99å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8cå\89²ã\82\8aå½\93ã\81¦ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼を格納して返す
+(ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å\89²ã\82\8aå½\93ã\81¦ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\80\8c注æ\84\8fã\80\8dã\81®ç¯\80ã\82\92å\8f\82ç\85§ã\81®ã\81\93ã\81¨)ã\80\82 è¿\94ã\81\95ã\82\8cã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼が \fI*result\fP
に格納される。ディレクトリストリームの末尾に達した場合は、 NULL が \fI*result\fP に格納される。
.SH 返り値
-成功すると、 \fBreaddir\fP() は \fIdirent\fP 構造体へのポインタを返す。 (この構造体は静的に割り当てられているかもしれない。
-このポインタを \fBfree\fP(3) しようとしないこと。) ディレクトリストリームの末尾に達した場合には、NULL が返され、 \fIerrno\fP
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 \fBreaddir\fP() ã\81¯ \fIdirent\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 (ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¯é\9d\99ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
+ã\81\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92 \fBfree\fP(3) ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81ªã\81\84ã\81\93ã\81¨ã\80\82) ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®æ\9c«å°¾ã\81«é\81\94ã\81\97ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81NULL ã\81\8cè¿\94ã\81\95ã\82\8cã\80\81 \fIerrno\fP
は変化しない。 エラーが発生した場合、NULL が返され、 \fIerrno\fP が適切に設定される。
成功すると、 \fBreaddir_r\fP() 関数は 0 を返す。 エラーの場合、(「エラー」の節のリストに載っている) 正のエラー番号を返す。
.SH エラー
.TP
\fBEBADF\fP
-ディレクトリストリームディスクリプタ \fIdirp\fP が無効である。
+ディレクトリストリームディスクリプター \fIdirp\fP が無効である。
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBreaddir\fP() 関数はスレッドセーフではない。
ブロックデバイスである。
.TP
\fBDT_CHR\fP
-キャラクタデバイスである。
+ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\83\87ã\83\90ã\82¤ã\82¹ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBDT_DIR\fP
ディレクトリである。
POSIX.1 では \fId_name\fP フィールドのサイズは規定されておらず、 \fIdirent\fP 構造体の \fId_name\fP
の後ろに他の非標準のフィールドがあるかもしれないので、 移植性が必要なアプリケーションで \fBreaddir_r\fP() を使う場合は \fIentry\fP
-に渡すバッファを次のようにして割り当てるべきである。
+ã\81«æ¸¡ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92次ã\81®ã\82\88ã\81\86ã\81«ã\81\97ã\81¦å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82
.in +4n
.nf
.SH 説明
\fBrealpath\fP() は \fIpath\fP として与えられたヌル終端された文字列中の すべてのシンボリックリンクを展開し、 \fI/./\fP,
\fI/../\fP による参照や余分な \(aq/\(aq を解決して、正規化された絶対パス名を生成する。 得られた絶対パス名は、最大で
-\fBPATH_MAX\fP バイトのヌル終端された文字列として、 \fIresolved_path\fP により参照されるバッファに格納される。
+\fBPATH_MAX\fP ã\83\90ã\82¤ã\83\88ã\81®ã\83\8cã\83«çµ\82端ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¨ã\81\97ã\81¦ã\80\81 \fIresolved_path\fP ã\81«ã\82\88ã\82\8aå\8f\82ç\85§ã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82
結果として返るパスの中には、シンボリックリンクや \fI/./\fP, \fI/../\fP といった要素は含まれない。
.\" Even if we use resolved_path == NULL, then realpath() will still
.\" .BR realpath ()
.\" function first appeared in 4.4BSD, contributed by Jan-Simon Pendry.
\fIresolved_path\fP に NULL が指定されると、 \fBrealpath\fP() は \fBmalloc\fP(3)
-ã\82\92使ã\81£ã\81¦è§£æ±ºã\81\97ã\81\9fã\83\91ã\82¹å\90\8dã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\81\9fã\82\81ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92 æ\9c\80大ã\81§ \fBPATH_MAX\fP ã\83\90ã\82¤ã\83\88ã\81¾ã\81§å\89²ã\82\8aå½\93ã\81¦ã\80\81ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯ã\80\81
-\fBfree\fP(3) を使ってこのバッファを解放すべきである。
+ã\82\92使ã\81£ã\81¦è§£æ±ºã\81\97ã\81\9fã\83\91ã\82¹å\90\8dã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\81\9fã\82\81ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92 æ\9c\80大ã\81§ \fBPATH_MAX\fP ã\83\90ã\82¤ã\83\88ã\81¾ã\81§å\89²ã\82\8aå½\93ã\81¦ã\80\81ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
+呼び出し元は、 \fBfree\fP(3) を使ってこのバッファーを解放すべきである。
.SH 返り値
エラーがなかった場合、 \fBrealpath\fP() は \fIresolved_path\fP へのポインターを返す。
ファイルシステムを読むときに、I/Oエラーが起こった。
.TP
\fBELOOP\fP
-ã\83\91ã\82¹å\90\8dã\81®å¤\89æ\8f\9bã\81«ã\81\82ã\81\9fã\82\8aã\80\81解決ã\81\99ã\81¹ã\81\8dã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83»ã\83ªã\83³ã\82¯ã\81®æ\95°ã\81\8cå¤\9aé\81\8eã\81\8eã\81\9fã\80\82
+パス名の変換にあたり、解決すべきシンボリックリンクの数が多過ぎた。
.TP
\fBENAMETOOLONG\fP
パス名の一要素の文字数が \fBNAME_MAX\fP を越えている、またはパス名全体の文字数が \fBPATH_MAX\fP を越えている。
.\" Thus, set-user-ID programs like
.\" .BR mount (8)
.\" needed a private version.
-この関数の POSIX.1\-2001 版は、設計段階から問題がある。 出力バッファ \fIresolved_path\fP
-ã\81®é\81©å\88\87ã\81ªã\82µã\82¤ã\82ºã\82\92決å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\81\8bã\82\89ã\81§ã\81\82ã\82\8bã\80\82 POSIX.1\-2001 ã\81§ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83»サイズとして \fBPATH_MAX\fP
+この関数の POSIX.1\-2001 版は、設計段階から問題がある。 出力バッファー \fIresolved_path\fP
+ã\81®é\81©å\88\87ã\81ªã\82µã\82¤ã\82ºã\82\92決å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\81\8bã\82\89ã\81§ã\81\82ã\82\8bã\80\82 POSIX.1\-2001 ã\81§ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼サイズとして \fBPATH_MAX\fP
は十分だとされているが、 \fBPATH_MAX\fP は定義済の定数である必要はなく、 \fBpathconf\fP(3)
-ã\82\92使ã\81£ã\81¦å¾\97ã\82\89ã\82\8cã\82\8bå\80¤ã\81§ã\81\82ã\81£ã\81¦ã\82\82ã\82\88ã\81\84ã\81\93ã\81¨ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\80\82 \fBpathconf\fP(3) ã\81\8bã\82\89ã\83\90ã\83\83ã\83\95ã\82¡ã\83»サイズを取得したとしても必ずしも十分ではない。
-なぜなら、POSIX で警告されているように、 \fBpathconf\fP(3) の返り値が大き過ぎて適切にメモリを確保することができない
+ã\82\92使ã\81£ã\81¦å¾\97ã\82\89ã\82\8cã\82\8bå\80¤ã\81§ã\81\82ã\81£ã\81¦ã\82\82ã\82\88ã\81\84ã\81\93ã\81¨ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\80\82 \fBpathconf\fP(3) ã\81\8bã\82\89ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼サイズを取得したとしても必ずしも十分ではない。
+ã\81ªã\81\9cã\81ªã\82\89ã\80\81POSIX ã\81§è¦å\91\8aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82\88ã\81\86ã\81«ã\80\81 \fBpathconf\fP(3) ã\81®è¿\94ã\82\8aå\80¤ã\81\8c大ã\81\8dé\81\8eã\81\8eã\81¦é\81©å\88\87ã\81«ã\83¡ã\83¢ã\83ªã\83¼ã\82\92確ä¿\9dã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84
かもしれない一方で、 \fBpathconf\fP(3) は \fBPATH_MAX\fP に制限がないことを示す \-1 を返すかもしれないからである。
\fIresolved_path\ ==\ NULL\fP の機能を使うと、この設計上の問題を回避することができる。 この機能は POSIX.1\-2001
では標準化されていないが、 POSIX.1\-2008 では標準化されている。
.RE
.TP
\fIcachesize\fP
-æ\83³å®\9aã\81\95ã\82\8cã\82\8bã\83¡ã\83¢ã\83ªã\82ã\83£ã\83\83ã\82·ã\83¥ã\81®æ\9c\80大ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d)ã\80\82 ã\81\93ã\81®å\80¤ã\81¯ \fBã\81\82ã\81\8fã\81¾ã\81§\fP å\8f\82è\80\83ã\81§ã\81\82ã\82\8aã\80\81ã\82¢ã\82¯ã\82»ã\82¹ã\83¡ã\82½ã\83\83ã\83\89ã\81¯ã\81\93ã\81®å\80¤ã\82\92è¶\8aã\81\88ã\81\9fã\83¡ã\83¢ã\83ªの
+æ\83³å®\9aã\81\95ã\82\8cã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81®æ\9c\80大ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d)ã\80\82 ã\81\93ã\81®å\80¤ã\81¯ \fBã\81\82ã\81\8fã\81¾ã\81§\fP å\8f\82è\80\83ã\81§ã\81\82ã\82\8aã\80\81ã\82¢ã\82¯ã\82»ã\82¹ã\83¡ã\82½ã\83\83ã\83\89ã\81¯ã\81\93ã\81®å\80¤ã\82\92è¶\8aã\81\88ã\81\9fã\83¡ã\83¢ã\83ªã\83¼の
割り当てに成功することもある。 \fIcachesize\fP が 0 (あるいは指定されていない) の場合、デフォルトのキャッシュが使われる。
.TP
\fIpsize\fP
-recno アクセスメソッドは、自身のレコードのコピーをメモリ内部に btree で保存している。 この値は、その btree
+recno アクセスメソッドは、自身のレコードのコピーをメモリー内部に btree で保存している。 この値は、その btree
中のノードに対して用いられる ページサイズ (バイト単位) である。 \fIpsize\fP が 0 (あるいは指定されていない) の場合、
ファイルシステムの I/O ブロックサイズを基にして ページサイズが決められる。 詳細は \fBbtree\fP(3) を参照。
.TP
で埋められる。
.TP
\fIbfname\fP
-recno アクセスメソッドは、 自身のレコードのコピーをメモリ内部で btree に保存している。 \fIbfname\fP が NULL
+recno アクセスメソッドは、 自身のレコードのコピーをメモリー内部で btree に保存している。 \fIbfname\fP が NULL
でない場合、これは btree ファイル名 (btree ファイルを \fBdbopen\fP(3) する時に指定するファイル名) を指定する。
.PP
\fIrecno\fP アクセスメソッドで使われるキー/データ対のデータ部分は、 他のアクセスメソッドと同じである。 しかしキーは異なっている。 キーの
-\fIdata\fP フィールドは \fIrecno_t\fP 型の、メモリ位置へのポインタでなければならない。 \fIrecno_t\fP は
+\fIdata\fP フィールドは \fIrecno_t\fP 型の、メモリー位置へのポインターでなければならない。 \fIrecno_t\fP は
\fI<db.h>\fP インクルードファイルで定義されている。 この型は通常、その実装で利用可能な最大の符号無し整数である。 キーの
\fIsize\fP フィールドはその型のサイズとなる。
.PP
.SS "POSIX regex コンパイル"
\fBregcomp\fP() は、正規表現をコンパイルして、 \fBregexec\fP() での検索処理に適合する形態にする。
-\fBregcomp\fP() ã\81¯ã\83\91ã\82¿ã\83¼ã\83³ã\82\92è¨\98æ\86¶ã\81\99ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ \fIpreg\fP、 ヌル文字で終端された文字列 \fIregex\fP、
+\fBregcomp\fP() ã\81¯ã\83\91ã\82¿ã\83¼ã\83³ã\82\92è¨\98æ\86¶ã\81\99ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ \fIpreg\fP、 ヌル文字で終端された文字列 \fIregex\fP、
そしてコンパイルの形式を決めるためのフラグ \fIcflag\fP を引数に伴う。
全ての正規表現検索は、コンパイルされたパターンによって行わなければならない。 よって、 \fBregexec\fP() に指定するのは、必ず
-(\fBregcomp\fP() によってコンパイルされた) パターンバッファへのアドレスでなければならない。
+(\fBregcomp\fP() ã\81«ã\82\88ã\81£ã\81¦ã\82³ã\83³ã\83\91ã\82¤ã\83«ã\81\95ã\82\8cã\81\9f) ã\83\91ã\82¿ã\83¼ã\83³ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
\fIcflags\fP には以下に示す定数一つ以上のビットごとの OR (bitwise\-or) を指定する。
.TP
\fIregex\fP に \fBPOSIX\fP 拡張正規表現を使用する。もしこのフラグが設定されない場合、 \fBPOSIX\fP 標準正規表現が使われる。
.TP
\fBREG_ICASE\fP
-大文字小文字の違いを無視する。このフラグを指定してコンパイルされた パターンバッファを用いて \fBregexec\fP()
+大æ\96\87å\97å°\8fæ\96\87å\97ã\81®é\81\95ã\81\84ã\82\92ç\84¡è¦\96ã\81\99ã\82\8bã\80\82ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\82³ã\83³ã\83\91ã\82¤ã\83«ã\81\95ã\82\8cã\81\9f ã\83\91ã\82¿ã\83¼ã\83³ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92ç\94¨ã\81\84ã\81¦ \fBregexec\fP()
関数を呼び出すと、大文字小文字の区別を付けずに検索が行われる。
.TP
\fBREG_NOSUB\fP
-マッチの場所を報告しない。渡されたパターンバッファがこのフラグを設定してコンパイルされていた場合、 \fBregexec\fP() の引き数
+ã\83\9eã\83\83ã\83\81ã\81®å ´æ\89\80ã\82\92å ±å\91\8aã\81\97ã\81ªã\81\84ã\80\82渡ã\81\95ã\82\8cã\81\9fã\83\91ã\82¿ã\83¼ã\83³ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cã\81\93ã\81®ã\83\95ã\83©ã\82°ã\82\92è¨å®\9aã\81\97ã\81¦ã\82³ã\83³ã\83\91ã\82¤ã\83«ã\81\95ã\82\8cã\81¦ã\81\84ã\81\9få ´å\90\88ã\80\81 \fBregexec\fP() ã\81®å¼\95ã\81\8dæ\95°
\fInmatch\fP, \fIpmatch\fP が無視される。
.TP
\fBREG_NEWLINE\fP
\fIeflags\fP に \fBREG_NOTEOL\fP を含むかどうかにかかわらず、行末にマッチするオペレータ (\fB$\fP)
を改行直前の空文字列にマッチさせる。
.SS "POSIX regex マッチング"
-\fBregexec\fP() は、 プリコンパイルされたパターンバッファ \fIpreg\fP をヌル文字で終端された文字列にマッチさせる。 \fInmatch\fP
-と \fIpmatch\fP はマッチングの位置に関する情報を取得するのに用いられる。 \fIeflags\fP には \fBREG_NOTBOL\fP と
-\fBREG_NOTEOL\fP のどちらか、もしくは両方のビットごとの \fBOR\fP (bitwise\-\fBor\fP)
+\fBregexec\fP() は、 プリコンパイルされたパターンバッファー \fIpreg\fP をヌル文字で終端された文字列にマッチさせる。
+\fInmatch\fP と \fIpmatch\fP はマッチングの位置に関する情報を取得するのに用いられる。 \fIeflags\fP には
+\fBREG_NOTBOL\fP と \fBREG_NOTEOL\fP のどちらか、もしくは両方のビットごとの \fBOR\fP (bitwise\-\fBor\fP)
を指定し、以下で説明するようにマッチング動作を変化させる。
.TP
\fBREG_NOTBOL\fP
\fBREG_NOTEOL\fP
行末にマッチするオペレータは、必ずマッチに失敗する (コンパイル時のフラグ \fBREG_NEWLINE\fP の項目も参照)。
.SS バイトオフセット
-パターンバッファのコンパイル時に \fBREG_NOSUB\fP が設定されない場合は、マッチング位置情報を得ることができる。 \fIpmatch\fP
+ã\83\91ã\82¿ã\83¼ã\83³ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82³ã\83³ã\83\91ã\82¤ã\83«æ\99\82ã\81« \fBREG_NOSUB\fP ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81ã\83\9eã\83\83ã\83\81ã\83³ã\82°ä½\8dç½®æ\83\85å ±ã\82\92å¾\97ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 \fIpmatch\fP
は、少なくとも \fInmatch\fP の大きさを持つように指定しなければならない。 \fBregexec\fP()
の実行によって、それらに部分文字列マッチング位置情報が代入される。 \fIi\fP 番目の括弧で始まる部分正規表現のオフセットは \fIpmatch[i]\fP
に格納される。正規表現全体のマッチアドレスは \fIpmatch[0]\fP に格納される。 (\fIN\fP 個の部分正規表現のマッチのオフセットを返すためには、
\fBregerror\fP() は、 \fBregcomp\fP() と \fBregexec\fP()
の実行によって得られるエラーコードから、エラーメッセージ文字列を 得るのに用いられる。
-\fBregerror\fP() はエラーコード \fIerrcode\fP、 パターンバッファ \fIpreg\fP、 文字列バッファへのポインタ
-\fIerrbuf\fP、 文字列バッファのサイズ \fIerrbuf_size\fP を引数にとる。
+\fBregerror\fP() はエラーコード \fIerrcode\fP、 パターンバッファー \fIpreg\fP、 文字列バッファーへのポインター
+\fIerrbuf\fPã\80\81 æ\96\87å\97å\88\97ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82µã\82¤ã\82º \fIerrbuf_size\fP ã\82\92å¼\95æ\95°ã\81«ã\81¨ã\82\8bã\80\82
この関数は、ヌル文字で終端されたエラーメッセージ文字列を格納するのに必要な \fIerrbuf\fP のサイズを返す。もし \fIerrbuf\fP と
\fIerrbuf_size\fP の両方が非 0 値であれば、 \fIerrbuf\fP には最初の \fIerrbuf_size \- 1\fP
文字分にエラーメッセージと終端のヌルバイト (\(aq\e0\(aq) が収まるように代入される。
-.SS "POSIX パターンバッファ解放"
-引数にコンパイルされたパターンバッファ \fIpreg\fP を与えて \fBregfree\fP() を呼び出すと、 \fBregcomp\fP()
-ã\81«ã\82\88ã\82\8bã\82³ã\83³ã\83\91ã\82¤ã\83«æ\99\82ã\81«ã\83\91ã\82¿ã\83¼ã\83³ã\83\90ã\83\83ã\83\95ã\82¡ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªが解放される。
+.SS "POSIX パターンバッファー解放"
+引数にコンパイルされたパターンバッファー \fIpreg\fP を与えて \fBregfree\fP() を呼び出すと、 \fBregcomp\fP()
+ã\81«ã\82\88ã\82\8bã\82³ã\83³ã\83\91ã\82¤ã\83«æ\99\82ã\81«ã\83\91ã\82¿ã\83¼ã\83³ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼が解放される。
.SH 返り値
\fBregcomp\fP() は、コンパイルの成功時には 0 を返し、失敗時にはエラーコードを返す。
照合順序の要素 (collating element) として有効ではない。 (訳注) 詳細は \fBregex\fP(7) を参照。
.TP
\fBREG_ECTYPE\fP
-未知のキャラクタクラス名。
+æ\9cªç\9f¥ã\81®ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\82¯ã\83©ã\82¹å\90\8dã\80\82
.TP
\fBREG_EEND\fP
未定義エラー。これは POSIX.2 には定義されていない。
無効な範囲オペレータの使用。 例えば、範囲の終了位置が開始位置よりも前にあるような場合。
.TP
\fBREG_ESIZE\fP
-正規表現のコンパイルに、64Kb 以上のパターンバッファが必要。 これは POSIX.2 には定義されていない。
+æ£è¦\8f表ç\8f¾ã\81®ã\82³ã\83³ã\83\91ã\82¤ã\83«ã\81«ã\80\8164Kb 以ä¸\8aã\81®ã\83\91ã\82¿ã\83¼ã\83³ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cå¿\85è¦\81ã\80\82 ã\81\93ã\82\8cã\81¯ POSIX.2 ã\81«ã\81¯å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.TP
\fBREG_ESPACE\fP
-regex ルーチンがメモリを使いはたしている。
+regex ã\83«ã\83¼ã\83\81ã\83³ã\81\8cã\83¡ã\83¢ã\83ªã\83¼ã\82\92使ã\81\84ã\81¯ã\81\9fã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fBREG_ESUBREG\fP
サブエクスプレッション \e\fB(...\e\fP) (subexpression) への無効な後方参照。
もしその名前が ファイルへの最後のリンクで、かつ、どのプロセスもそのファイルを 開いていないなら、ファイルも削除する。ファイルの占めていた
領域は他で使うことができるようになる。
-名前がファイルへの最後のリンクであっても、どこかのプロセスが そのファイルを開いているなら、ファイルの最後のファイル記述子 (file
+名前がファイルへの最後のリンクであっても、どこかのプロセスが そのファイルを開いているなら、ファイルの最後のファイルディスクリプター (file
descriptor) が閉じられるまでファイルは存在し続ける。
名前が指しているのがシンボリックリンクなら、そのリンクを削除する。
.RE
.ad
.SH 説明
-これらの関数は \fIx\fP を \fIy\fP で割ったときの商の一部と剰余を計算する。 商のいくつかのビットが \fIquo\fP ポインタを使って格納される。
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ \fIx\fP ã\82\92 \fIy\fP ã\81§å\89²ã\81£ã\81\9fã\81¨ã\81\8dã\81®å\95\86ã\81®ä¸\80é\83¨ã\81¨å\89°ä½\99ã\82\92è¨\88ç®\97ã\81\99ã\82\8bã\80\82 å\95\86ã\81®ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\83\93ã\83\83ã\83\88ã\81\8c \fIquo\fP ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92使ã\81£ã\81¦æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82
剰余は関数の結果として返される。
剰余の値は \fBremainder\fP(3) 関数で計算されるものと同じである。
-\fIquo\fP ポインタを使って格納される値には、 \fIx\ /\ y\fP の符号と最低でも商の下位 3 ビットが含まれる。
+\fIquo\fP ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92使ã\81£ã\81¦æ ¼ç´\8dã\81\95ã\82\8cã\82\8bå\80¤ã\81«ã\81¯ã\80\81 \fIx\ /\ y\fP ã\81®ç¬¦å\8f·ã\81¨æ\9c\80ä½\8eã\81§ã\82\82å\95\86ã\81®ä¸\8bä½\8d 3 ã\83\93ã\83\83ã\83\88ã\81\8cå\90«ã\81¾ã\82\8cã\82\8bã\80\82
.\" A possible application of this function might be the computation
.\" of sin(x). Compute remquo(x, pi/2, &quo) or so.
\fB sa_family_t \fP\fIaf\fP\fB);\fP
.fi
.SH 説明
-このインタフェースは \fBrcmd\fP(3) によって置き換えられた。
+ã\81\93ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ \fBrcmd\fP(3) ã\81«ã\82\88ã\81£ã\81¦ç½®ã\81\8dæ\8f\9bã\81\88ã\82\89ã\82\8cã\81\9fã\80\82
\fBrexec\fP() 関数は \fBgethostbyname\fP(3) を使ってホスト \fI*ahost\fP を探す。ホストが存在しない場合は \-1
-を返し、それ以外の場合には \fI*ahost\fP にそのホストの標準的な名前を設定する。 ユーザ名とパスワードの両方が指定された場合には、これらは
-æ\8e¥ç¶\9aå\85\88ã\81®ã\83\9bã\82¹ã\83\88ã\81¸ã\81®èª\8d証ã\81«å\88©ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82ã\81\9dã\81\86ã\81§ã\81ªã\81\84å ´å\90\88ã\81«ã\81¯ã\80\81 é\81©å\88\87ã\81ªæ\83\85å ±ã\82\92å\85¥æ\89\8bã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\80\81ç\92°å¢\83å¤\89æ\95°ã\81¨ã\80\81ã\81\9dã\81®ã\83¦ã\83¼ã\82¶ã\81® ã\83\9bã\83¼ã\83 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81® \fI.netrc\fP
-ファイルが検索される。情報が見つからなかった時には、 ユーザに対して情報を入力するプロンプトが表示される。
+を返し、それ以外の場合には \fI*ahost\fP にそのホストの標準的な名前を設定する。 ユーザー名とパスワードの両方が指定された場合には、これらは
+æ\8e¥ç¶\9aå\85\88ã\81®ã\83\9bã\82¹ã\83\88ã\81¸ã\81®èª\8d証ã\81«å\88©ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82ã\81\9dã\81\86ã\81§ã\81ªã\81\84å ´å\90\88ã\81«ã\81¯ã\80\81 é\81©å\88\87ã\81ªæ\83\85å ±ã\82\92å\85¥æ\89\8bã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\80\81ç\92°å¢\83å¤\89æ\95°ã\81¨ã\80\81ã\81\9dã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81® ã\83\9bã\83¼ã\83 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®
+\&\fI.netrc\fP ファイルが検索される。情報が見つからなかった時には、 ユーザーに対して情報を入力するプロンプトが表示される。
.PP
ポート \fIinport\fP には、接続に使用する DARPA Internet の well\-known ポートを指定する。
-\fIgetservbyname("exec", "tcp")\fP を呼び出すと構造体へのポインタが返され (\fBgetservent\fP(3)
+\fIgetservbyname("exec", "tcp")\fP ã\82\92å\91¼ã\81³å\87ºã\81\99ã\81¨æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cè¿\94ã\81\95ã\82\8c (\fBgetservent\fP(3)
参照)、この構造体には必要なポートが入っている。 接続に使用されるプロトコルについての詳細は \fBrexecd\fP(8) に書かれている (訳注:
現在のところ存在しない)。
.PP
接続に成功すると、インターネットドメインの \fBSOCK_STREAM\fP 型のソケットが返され、そのソケットはリモートコマンドの
-標準入力および標準出力となる。 \fIfd2p\fP が 0 以外の場合、制御プロセスへの補助チャンネルがセットアップされ、 補助チャンネルのディスクリプタが
-\fI*fd2p\fP に書かれる。 制御プロセスはコマンドからの診断メッセージ出力 (ファイルディスクリプタ 2)
+標準入力および標準出力となる。 \fIfd2p\fP が 0 以外の場合、制御プロセスへの補助チャンネルがセットアップされ、
+補助チャンネルのディスクリプターが \fI*fd2p\fP に書かれる。 制御プロセスはコマンドからの診断メッセージ出力 (ファイルディスクリプター 2)
をこのチャンネルで返す。また、このチャンネル経由で UNIX のシグナル番号を示すバイトを受信する。受信したシグナルは
コマンドが属すプロセスグループに転送される。 診断情報にはリモートの認証失敗は含まれない。なぜなら、認証の確認が行われた
-後で補助チャンネルの接続はセットアップされるからである。 \fIfd2p\fP が 0 の場合、標準エラー (リモートコマンドのファイルディスクリプタ 2)
-は 標準出力と同様に扱われ、リモートプロセスに任意のシグナルを送るための 手段は提供されない。但し、リモートプロセスに対してトリガをかけるために、
+後で補助チャンネルの接続はセットアップされるからである。 \fIfd2p\fP が 0 の場合、標準エラー (リモートコマンドのファイルディスクリプター 2)
+ã\81¯ æ¨\99æº\96å\87ºå\8a\9bã\81¨å\90\8cæ§\98ã\81«æ\89±ã\82\8fã\82\8cã\80\81ã\83ªã\83¢ã\83¼ã\83\88ã\83\97ã\83ã\82»ã\82¹ã\81«ä»»æ\84\8fã\81®ã\82·ã\82°ã\83\8aã\83«ã\82\92é\80\81ã\82\8bã\81\9fã\82\81ã\81® æ\89\8b段ã\81¯æ\8f\90ä¾\9bã\81\95ã\82\8cã\81ªã\81\84ã\80\82ä½\86ã\81\97ã\80\81ã\83ªã\83¢ã\83¼ã\83\88ã\83\97ã\83ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦ã\83\88ã\83ªã\82¬ã\83¼ã\82\92ã\81\8bã\81\91ã\82\8bã\81\9fã\82\81ã\81«ã\80\81
帯域外データ (out\-of\-band data) を使うことはできる。
.SS rexec_af()
\fBrexec\fP() 関数は IPv4 (\fBAF_INET\fP) 上で動作する。
.\"
.TH RPC 3 2013\-09\-26 "" "Linux Programmer's Manual"
.SH 名前
-rpc \- é\81 é\9a\94æ\89\8bç¶\9aã\81\8då\91¼ã\81³å\87ºã\81\97(RPC)ã\81®ã\81\9fã\82\81ã\81®ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\83»ã\83«ã\83¼ã\83\86ã\82£ã\83³
+rpc \- 遠隔手続き呼び出し(RPC)のためのライブラリルーティン
.SH 書式と説明
.\" .LP
.\" We don't have an rpc_secure.3 page at the moment -- MTK, 19 Sep 05
.\" Routines that are used for Secure RPC (DES authentication) are described in
.\" .BR rpc_secure (3).
.\" Secure RPC can be used only if DES encryption is available.
-ã\81\93ã\82\8cã\82\89ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯ C ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82\92é\80\9aã\81\97ã\81¦ ä»\96ã\81®ã\83\9eã\82·ã\83³ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8bã\83\97ã\83ã\82·ã\82¸ã\83£を作成することを可能にする。
-æ\9c\80å\88\9dã\81«ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\81¯ã\83\87ã\83¼ã\82¿ã\83\91ã\82±ã\83\83ã\83\88ã\82\92ã\82µã\83¼ã\83\90ã\81«é\80\81ã\82\8bã\81\9fã\82\81ã\81« ã\83\97ã\83ã\82·ã\82¸ã\83£を呼び出す。 サーバはパケットを受け取ると、配分ルーチンを呼び出して
-è¦\81æ±\82ã\81\95ã\82\8cã\81\9fã\82µã\83¼ã\83\93ã\82¹ã\81«å®\9fè¡\8cã\81\97ã\80\81è¿\94ç\94ã\82\92é\80\81ã\82\8aè¿\94ã\81\99ã\80\82 æ\9c\80å¾\8cã\81«ã\83\97ã\83ã\82·ã\82¸ã\83£ã\83»コールはクライアントへと戻る。
+ã\81\93ã\82\8cã\82\89ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯ C ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82\92é\80\9aã\81\97ã\81¦ ä»\96ã\81®ã\83\9eã\82·ã\83³ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8bã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼を作成することを可能にする。
+æ\9c\80å\88\9dã\81«ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\81¯ã\83\87ã\83¼ã\82¿ã\83\91ã\82±ã\83\83ã\83\88ã\82\92ã\82µã\83¼ã\83\90ã\81«é\80\81ã\82\8bã\81\9fã\82\81ã\81« ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼を呼び出す。 サーバはパケットを受け取ると、配分ルーチンを呼び出して
+è¦\81æ±\82ã\81\95ã\82\8cã\81\9fã\82µã\83¼ã\83\93ã\82¹ã\81«å®\9fè¡\8cã\81\97ã\80\81è¿\94ç\94ã\82\92é\80\81ã\82\8aè¿\94ã\81\99ã\80\82 æ\9c\80å¾\8cã\81«ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼コールはクライアントへと戻る。
.LP
-これらのルーティンを使用するには、ヘッダファイル \fI<rpc/rpc.h>\fP をインクルードすること。
+ã\81\93ã\82\8cã\82\89ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\82\92使ç\94¨ã\81\99ã\82\8bã\81«ã\81¯ã\80\81ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83« \fI<rpc/rpc.h>\fP ã\82\92ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82
下記のプロトタイプでは次の型を使用している。
.in +4n
.fi
.in
.LP
-型 \fIAUTH\fP, \fICLIENT\fP, \fISVCXPRT\fP, \fIXDR\fP の宣言についてはヘッダファイルを参照。
+å\9e\8b \fIAUTH\fP, \fICLIENT\fP, \fISVCXPRT\fP, \fIXDR\fP ã\81®å®£è¨\80ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\80\82
.LP
.nf
\fBvoid auth_destroy(AUTH *\fP\fIauth\fP\fB);\fP
\fBAUTH *authnone_create(void);\fP
.fi
.IP
-å\90\84ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82·ã\82¸ã\83£ã\83»コールで使用できない仮の認証情報として渡される RPC 認証ハンドルを作成して返す。 これは RPC
+å\90\84ã\83ªã\83¢ã\83¼ã\83\88ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼コールで使用できない仮の認証情報として渡される RPC 認証ハンドルを作成して返す。 これは RPC
で使用されるデフォルトの認証である。
.LP
.nf
.fi
.IP
認証情報を含んだ RPC 認証ハンドルを作成して返す。 \fIhost\fP パラメーターは情報が作成されたマシンの名前である。 \fIuid\fP
-ã\81¯ã\81\9dã\81®ã\83¦ã\83¼ã\82¶ã\81®ã\83¦ã\83¼ã\82¶
+ã\81¯ã\81\9dã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83¦ã\83¼ã\82¶ã\83¼
.SM ID
-、 \fIgid\fP はそのユーザの現在のグループ
+ã\80\81 \fIgid\fP ã\81¯ã\81\9dã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ç\8f¾å\9c¨ã\81®ã\82°ã\83«ã\83¼ã\83\97
.SM ID
である。 \fIlen\fP と
-\fIaup_gids\fP ã\81¯ã\81\9dã\81®ã\83¦ã\83¼ã\82¶ã\81\8cæ\89\80å±\9eã\81\99ã\82\8bã\82°ã\83«ã\83¼ã\83\97ã\81®é\85\8då\88\97ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ä»\96ã\81®ã\83¦ã\83¼ã\82¶になりすますことは簡単である。
+\fIaup_gids\fP ã\81¯ã\81\9dã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cæ\89\80å±\9eã\81\99ã\82\8bã\82°ã\83«ã\83¼ã\83\97ã\81®é\85\8då\88\97ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ä»\96ã\81®ã\83¦ã\83¼ã\82¶ã\83¼になりすますことは簡単である。
.LP
.nf
\fBAUTH *authunix_create_default(void);\fP
\fB xdrproc_t \fP\fIoutproc\fP\fB, char *\fP\fIout\fP\fB);\fP
.fi
.IP
-ã\83\9eã\82·ã\83³ \fIhost\fP ä¸\8aã\81§ \fIprognum\fP, \fIversnum\fP, \fIprocnum\fP ã\81«é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82·ã\82¸ã\83£を呼び出す。
-ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ \fIin\fP ã\81¯ã\83\97ã\83ã\82·ã\82¸ã\83£の引き数のアドレスであり \fIout\fP は結果を格納するアドレスである。 \fIinproc\fP
-ã\81¯ã\83\97ã\83ã\82·ã\82¸ã\83£のパラメーターをエンコードするのに使用され、 \fIoutproc\fP は結果をデコードするのに使用される。
+ã\83\9eã\82·ã\83³ \fIhost\fP ä¸\8aã\81§ \fIprognum\fP, \fIversnum\fP, \fIprocnum\fP ã\81«é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83ªã\83¢ã\83¼ã\83\88ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼を呼び出す。
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ \fIin\fP ã\81¯ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼の引き数のアドレスであり \fIout\fP は結果を格納するアドレスである。 \fIinproc\fP
+ã\81¯ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼のパラメーターをエンコードするのに使用され、 \fIoutproc\fP は結果をデコードするのに使用される。
このルーティンは成功した場合にはゼロを返す。失敗した場合には \fBenum clnt_stat\fP を整数にキャストした値を返す。
\fBclnt_perrno\fP() ルーティンが失敗の状態をメッセージに変換するのに使用できる。
.IP
-è¦å\91\8a: ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81§ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82·ã\82¸ã\83£を呼び出すと通信には UDP/IP が使用される。この際の制限については
+è¦å\91\8a: ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81§ã\83ªã\83¢ã\83¼ã\83\88ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼を呼び出すと通信には UDP/IP が使用される。この際の制限については
\fBclntudp_create\fP() を参照すること。このルーティンを使用して認証や時間切れの制御を することはできない。
.LP
.nf
\fB resultproc_t \fP\fIeachresult\fP\fB);\fP
.fi
.IP
-\fBcallrpc\fP() ã\81¨å\90\8cæ§\98ã\81§ã\81\82ã\82\8bã\81\8cã\80\81ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81\8cã\83ã\83¼ã\82«ã\83«ã\81®ã\83\96ã\83ã\83¼ã\83\89ã\82ã\83£ã\82¹ã\83\88ã\83»ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯
+\fBcallrpc\fP() と同様であるが、メッセージがローカルのブロードキャストネットワーク
全体へとブロードキャストされる点が異っている。回答を受け取る度に このルーティンは以下の形式の \fBeachresult\fP() を呼び出す。
.IP
.in +4n
.in
.IP
ここで \fIout\fP は \fBclnt_broadcast\fP() に渡される \fIout\fP
-ã\81¨å\90\8cã\81\98ã\81§ã\81\82ã\82\8bã\81\8cã\80\81ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82·ã\82¸ã\83£からの出力がデコードされている 点のみが異っている。 \fIaddr\fP
+ã\81¨å\90\8cã\81\98ã\81§ã\81\82ã\82\8bã\81\8cã\80\81ã\83ªã\83¢ã\83¼ã\83\88ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼からの出力がデコードされている 点のみが異っている。 \fIaddr\fP
は結果を送って来たマシンのアドレスを指している。 \fBeachresult\fP() がゼロを返した場合、 \fBclnt_broadcast\fP()
はさらなる回答を待つ。そうでなければ適切な状態で終了する。
.IP
-è¦å\91\8a: ã\83\96ã\83ã\83¼ã\83\89ã\82ã\83£ã\82¹ã\83\88ã\83»ã\82½ã\82±ã\83\83ã\83\88ã\81¯ã\83\87ã\83¼ã\82¿ã\83ªã\83³ã\82¯å±¤ã\81®æ\9c\80大転é\80\81å\8d\98ä½\8dã\81« å\88¶é\99\90ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82ã\82¤ã\83¼ã\82µã\83\8dã\83\83ã\83\88ã\81®å ´å\90\88ã\80\81æ\9c\80大å\80¤ã\81¯ 1500 ã\83\90ã\82¤ã\83\88ã\81§ã\81\82ã\82\8bã\80\82
+警告: ブロードキャストソケットはデータリンク層の最大転送単位に 制限されている。イーサネットの場合、最大値は 1500 バイトである。
.LP
.nf
\fBenum clnt_stat clnt_call(CLIENT *\fP\fIclnt\fP\fB, unsigned long \fP\fIprocnum\fP\fB,\fP
\fB struct timeval \fP\fItout\fP\fB);\fP
.fi
.IP
-ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\81¯ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\83»ã\83\8fã\83³ã\83\89ã\83« \fIclnt\fP ã\81«é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9f \fIprocnum\fP ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82·ã\82¸ã\83£ã\82\92å\91¼ã\81³å\87ºã\81\99ã\80\82 ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\83»ハンドルは
+ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\81¯ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\83\8fã\83³ã\83\89ã\83« \fIclnt\fP ã\81«é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9f \fIprocnum\fP ã\83ªã\83¢ã\83¼ã\83\88ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼ã\82\92å\91¼ã\81³å\87ºã\81\99ã\80\82 ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ハンドルは
\fBclnt_create\fP() のような
.SM RPC
クライアント作成ルーティンによって得られる。 パタメータ \fIin\fP
-ã\81¯ã\83\97ã\83ã\82·ã\82¸ã\83£ã\81®å¼\95ã\81\8dæ\95°ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81§ã\81\82ã\82\8bã\80\82 \fIout\fP ã\81¯ã\83\97ã\83ã\82·ã\82¸ã\83£の返り値を格納するアドレスである。 \fIinproc\fP
-ã\81¯ã\83\97ã\83ã\82·ã\82¸ã\83£ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ã\82¨ã\83³ã\82³ã\83¼ã\83\89ã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 \fIoutproc\fP ã\81¯ã\83\97ã\83ã\82·ã\82¸ã\83£ã\81®è¿\94ã\82\8aå\80¤ã\82\92ã\83\87ã\82³ã\83¼ã\83\89ã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 \fItout\fP
-は結果が返されるのを待つ時間である。
+ã\81¯ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼ã\81®å¼\95ã\81\8dæ\95°ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81§ã\81\82ã\82\8bã\80\82 \fIout\fP ã\81¯ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼の返り値を格納するアドレスである。 \fIinproc\fP
+ã\81¯ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ã\82¨ã\83³ã\82³ã\83¼ã\83\89ã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 \fIoutproc\fP ã\81¯ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼ã\81®è¿\94ã\82\8aå\80¤ã\82\92ã\83\87ã\82³ã\83¼ã\83\89ã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82
+\fItout\fP は結果が返されるのを待つ時間である。
.LP
.nf
\fBclnt_destroy(CLIENT *\fP\fIclnt\fP\fB);\fP
デフォルトの時間切れが設定されるが、 \fBclnt_control\fP() を使用して変更可能である。
.IP
警告: UDP を使用した場合には欠点がある。 UDP に基づいた RPC メッセージは 最大でも 8 KByte のエンコードデータしか保持する
-ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\81\9fã\82\81ã\80\81大ã\81\8dã\81ªå¼\95ã\81\8dæ\95°ã\82\84巨大ã\81ªçµ\90æ\9e\9cã\82\92å\8f\96ã\82\8bã\83\97ã\83ã\82·ã\82¸ã\83£に は使用することができない。
+ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\81\9fã\82\81ã\80\81大ã\81\8dã\81ªå¼\95ã\81\8dæ\95°ã\82\84巨大ã\81ªçµ\90æ\9e\9cã\82\92å\8f\96ã\82\8bã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼に は使用することができない。
.LP
.nf
\fBbool_t clnt_control(CLIENT *\fP\fIcl\fP\fB, int \fP\fIreq\fP\fB, char *\fP\fIinfo\fP\fB);\fP
\fBvoid clnt_geterr(CLIENT *\fP\fIclnt\fP\fB, struct rpc_err *\fP\fIerrp\fP\fB);\fP
.fi
.IP
-ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\81¯ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\83»ã\83\8fã\83³ã\83\89ã\83«ã\81®ã\82¨ã\83©ã\83¼æ§\8bé\80 ä½\93ã\82\92 \fIerrp\fP ã\82¢ã\83\89ã\83¬ã\82¹ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fæ§\8bé\80 ä½\93ã\81¸ã\82³ã\83\94ã\83¼ã\81\99ã\82\8bã\80\82
+このマクロはクライアントハンドルのエラー構造体を \fIerrp\fP アドレスで指定された構造体へコピーする。
.LP
.nf
\fBvoid clnt_pcreateerror(char *\fP\fIs\fP\fB);\fP
\fBCLIENT *clntraw_create(unsigned long \fP\fIprognum\fP\fB, unsigned long \fP\fIversnum\fP\fB);\fP
.fi
.IP
-ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 \fIprognum\fPã\80\81 ã\83\90ã\83¼ã\82¸ã\83§ã\83³ \fIversnum\fP ã\81®ã\81\9fã\82\81ã\81®æ\93¬ä¼¼ RPC
+このルーティンはリモートプログラム \fIprognum\fP、 バージョン \fIversnum\fP のための擬似 RPC
クライアントを作成する。メッセージをサービスに渡すために使用する 通信は実際にはそのプロセスのアドレス空間にあるバッファーである。 それで、対応する
RPC サーバが同じアドレス空間の中にいなければならない。 \fBsvcraw_create\fP() を参照すること。 これにより RPC
-ã\81®ã\82·ã\83\9fã\83¥ã\83¬ã\83¼ã\82·ã\83§ã\83³ã\82\84ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«å½±é\9f¿ã\81\95ã\82\8cã\81\9aã\81« å¿\9cç\94æ\99\82é\96\93ã\81ªã\81©ã\81® RPC ã\82ªã\83¼ã\83\90ã\83\98ã\83\83ã\83\89ã\81®ç\8d²å¾\97ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 失æ\95\97ã\81\97ã\81\9få ´å\90\88ã\81«ã\81¯ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯
+のシミュレーションや、カーネルインターフェースに影響されずに 応答時間などの RPC オーバヘッドの獲得ができる。 失敗した場合にはこのルーティンは
NULL を返す。
.LP
.nf
.fi
.IP
.\"The following inline font conversion is necessary for the hyphen indicator
-ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 \fIprognum\fPã\80\81 ã\83\90ã\83¼ã\82¸ã\83§ã\83³ \fIversnum\fP ã\81®ã\81\9fã\82\81ã\81® RPC
-ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\81¯é\80\9aä¿¡ã\81« TCP/IP ã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\82¤ã\83³ã\82¿ã\83¼ã\83\8dã\83\83ã\83\88ã\83»アドレスの \fI*addr\fP にある。
-\fIaddr\->sin_port\fP ã\81\8cã\82¼ã\83ã\81ªã\82\89ã\81°ã\80\81å®\9fé\9a\9bã\81«ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 ã\81\8c listen
+このルーティンはリモートプログラム \fIprognum\fP、 バージョン \fIversnum\fP のための RPC
+ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\81¯é\80\9aä¿¡ã\81« TCP/IP ã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82ã\83ªã\83¢ã\83¼ã\83\88ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\82¤ã\83³ã\82¿ã\83¼ã\83\8dã\83\83ã\83\88アドレスの \fI*addr\fP にある。
+\fIaddr\->sin_port\fP がゼロならば、実際にリモートプログラムが listen
しているポートが設定される。(この情報のためにリモートの \fBportmap\fP サービスが利用される。) パラメーター \fIsockp\fP
はソケットである。もしこれが \fBRPC_ANYSOCK\fP に設定されている場合は、このルーティンが新しいソケットをオープンして \fIsockp\fP
-ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 TCP ã\81«å\9fºã\81¥ã\81\84ã\81\9f RPC ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\81\95ã\82\8cã\81\9f I/O ã\82\92使ç\94¨ã\81\99ã\82\8bã\81\9fã\82\81ã\80\81ã\83¦ã\83¼ã\82¶はパラメーター \fIsendsz\fP と \fIrecvsz\fP
-ã\82\92使ç\94¨ã\81\97ã\81¦é\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\81¨å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡のサイズを指定することができる。 ゼロを指定した場合には適切なデフォルトが選択される。
+ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 TCP ã\81«å\9fºã\81¥ã\81\84ã\81\9f RPC ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\95ã\82\8cã\81\9f I/O ã\82\92使ç\94¨ã\81\99ã\82\8bã\81\9fã\82\81ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼はパラメーター \fIsendsz\fP と \fIrecvsz\fP
+ã\82\92使ç\94¨ã\81\97ã\81¦é\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¨å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼のサイズを指定することができる。 ゼロを指定した場合には適切なデフォルトが選択される。
このルーティンは失敗した場合は NULL を返す。
.LP
.nf
\fB struct timeval \fP\fIwait\fP\fB, int *\fP\fIsockp\fP\fB);\fP
.fi
.IP
-ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 \fIprognum\fPã\80\81 ã\83\90ã\83¼ã\82¸ã\83§ã\83³ \fIversnum\fP ã\81®ã\81\9fã\82\81ã\81® RPC
-ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\81¯é\80\9aä¿¡ã\81« UDP/IP ã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\82¤ã\83³ã\82¿ã\83¼ã\83\8dã\83\83ã\83\88ã\83»アドレスの \fI*addr\fP にある。
-\fIaddr\->sin_port\fP ã\81\8cã\82¼ã\83ã\81ªã\82\89ã\81°ã\80\81å®\9fé\9a\9bã\81«ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 ã\81\8c listen
+このルーティンはリモートプログラム \fIprognum\fP、 バージョン \fIversnum\fP のための RPC
+ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\81¯é\80\9aä¿¡ã\81« UDP/IP ã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82ã\83ªã\83¢ã\83¼ã\83\88ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\82¤ã\83³ã\82¿ã\83¼ã\83\8dã\83\83ã\83\88アドレスの \fI*addr\fP にある。
+\fIaddr\->sin_port\fP がゼロならば、実際にリモートプログラムが listen
しているポートが設定される。(この情報のためにリモートの \fBportmap\fP サービスが利用される。) パラメーター \fIsockp\fP
はソケットである。もしこれが \fBRPC_ANYSOCK\fP に設定されている場合は、このルーティンが新しいソケットをオープンして \fIsockp\fP
に設定する。 UDP 通信は回答があるか、時間切れが起こるまで \fBwait\fP 間隔で呼び出しメッセージを再送する。時間切れが起こるまでの合計時間は
\fBclnt_call\fP() で指定する。
.IP
警告: UDP に基づいた RPC メッセージは最大でも 8 Kbyte までのエンコードされたデータしか
-ä¿\9dæ\8c\81ã\81§ã\81\8dã\81ªã\81\84ã\81\9fã\82\81ã\80\81ã\81\93ã\81®é\80\9aä¿¡ã\81¯å¤§ã\81\8dã\81ªå¼\95ã\81\8dæ\95°ã\82\84巨大ã\81ªçµ\90æ\9e\9cã\82\92å\8f\96ã\82\8b ã\83\97ã\83ã\82·ã\82¸ã\83£には使用できない。
+ä¿\9dæ\8c\81ã\81§ã\81\8dã\81ªã\81\84ã\81\9fã\82\81ã\80\81ã\81\93ã\81®é\80\9aä¿¡ã\81¯å¤§ã\81\8dã\81ªå¼\95ã\81\8dæ\95°ã\82\84巨大ã\81ªçµ\90æ\9e\9cã\82\92å\8f\96ã\82\8b ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼には使用できない。
.LP
.nf
\fBCLIENT *clntudp_bufcreate(struct sockaddr_in *\fP\fIaddr\fP\fB,\fP
\fB unsigned int \fP\fIsendsize\fP\fB, unsigned int \fP\fIrecosize\fP\fB);\fP
.fi
.IP
-ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 \fIprognum\fPã\80\81 ã\83\90ã\83¼ã\82¸ã\83§ã\83³ \fIversnum\fP ã\81®ã\81\9fã\82\81ã\81® RPC
-ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\81¯é\80\9aä¿¡ã\81« UDP/IP ã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\82¤ã\83³ã\82¿ã\83¼ã\83\8dã\83\83ã\83\88ã\83»アドレスの \fI*addr\fP にある。
-\fIaddr\->sin_port\fP ã\81\8cã\82¼ã\83ã\81ªã\82\89ã\81°ã\80\81å®\9fé\9a\9bã\81«ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 ã\81\8c listen
+このルーティンはリモートプログラム \fIprognum\fP、 バージョン \fIversnum\fP のための RPC
+ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\81¯é\80\9aä¿¡ã\81« UDP/IP ã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82ã\83ªã\83¢ã\83¼ã\83\88ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\82¤ã\83³ã\82¿ã\83¼ã\83\8dã\83\83ã\83\88アドレスの \fI*addr\fP にある。
+\fIaddr\->sin_port\fP がゼロならば、実際にリモートプログラムが listen
しているポートが設定される。(この情報のためにリモートの \fBportmap\fP サービスが利用される。) パラメーター \fIsockp\fP
はソケットである。もしこれが \fBRPC_ANYSOCK\fP に設定されている場合は、このルーティンが新しいソケットをオープンして \fIsockp\fP
に設定する。 UDP 通信は回答があるか、時間切れが起こるまで \fBwait\fP 間隔で呼び出しメッセージを再送する。時間切れが起こるまでの合計時間は
\fBvoid get_myaddress(struct sockaddr_in *\fP\fIaddr\fP\fB);\fP
.fi
.IP
-ã\81\93ã\81®ã\83\9eã\82·ã\83³ã\81® IP ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92 \fI*addr\fP ã\81«æ ¼ç´\8dã\81\99ã\82\8bã\80\82 \fI/etc/hosts\fP ã\82\92æ\89±ã\81\86ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\83»ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯ä½¿ç\94¨ã\81\97ã\81ªã\81\84ã\80\82ã\83\9dã\83¼ã\83\88ç\95ªå\8f·ã\81¯å¸¸ã\81«
+このマシンの IP アドレスを \fI*addr\fP に格納する。 \fI/etc/hosts\fP を扱うライブラリルーティンは使用しない。ポート番号は常に
\fBhtons(PMAPPORT)\fP に設定される。
.LP
.nf
\fBstruct pmaplist *pmap_getmaps(struct sockaddr_in *\fP\fIaddr\fP\fB);\fP
.fi
.IP
-\fBportmap\fP サービスのためのユーザインターフェースであり、 IP アドレス \fI*addr\fP にあるホストの現在の RPC
+\fBportmap\fP ã\82µã\83¼ã\83\93ã\82¹ã\81®ã\81\9fã\82\81ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81§ã\81\82ã\82\8aã\80\81 IP ã\82¢ã\83\89ã\83¬ã\82¹ \fI*addr\fP ã\81«ã\81\82ã\82\8bã\83\9bã\82¹ã\83\88ã\81®ç\8f¾å\9c¨ã\81® RPC
プログラムからポート番号へのマッピングの一覧を返す。 このルーティンが NULL を返す場合もある。 `\fBrpcinfo \-p\fP'
コマンドはこのルーティンを使用している。
.LP
\fB unsigned int \fP\fIprotocol\fP\fB);\fP
.fi
.IP
-\fBportmap\fP ã\82µã\83¼ã\83\93ã\82¹ã\81®ã\81\9fã\82\81ã\81®ã\83¦ã\83¼ã\82¶ã\83»インターフェースで、 プログラム番号 \fIprognum\fP、 バージョン \fIversnum\fP、
+\fBportmap\fP ã\82µã\83¼ã\83\93ã\82¹ã\81®ã\81\9fã\82\81ã\81®ã\83¦ã\83¼ã\82¶ã\83¼インターフェースで、 プログラム番号 \fIprognum\fP、 バージョン \fIversnum\fP、
関連付けられた通信プロトコル \fIprotocol\fP をサポートするサービスが待っているポート番号を返す。 \fIprotocol\fP の値はほとんどの場合
IPPROTO_UDP か IPPROTO_TCP である。 返り値ゼロはマッピングが存在しないか、 RPC システムがリモートの \fBportmap\fP
サービスの参照に失敗したことを意味する。後者の場合は大域変数 \fIrpc_createerr\fP が RPC 状態を保持している。
\fB struct timeval \fP\fItout\fP\fB, unsigned long *\fP\fIportp\fP\fB);\fP
.fi
.IP
-\fBportmap\fP ã\82µã\83¼ã\83\93ã\82¹ã\81®ã\81\9fã\82\81ã\81®ã\83¦ã\83¼ã\82¶ã\83»インターフェースで、 IP アドレス \fI*addr\fP のホストの \fBportmap\fP を参照して、
-RPC å\91¼ã\81³å\87ºã\81\97ã\82\92ç\94\9fæ\88\90ã\81\97ã\80\81ã\81\9dã\81®ã\83\9bã\82¹ã\83\88ä¸\8aã\81®ã\83\97ã\83ã\82·ã\82¸ã\83£を呼び出す。 パラメーター \fI*portp\fP
-ã\81¯ã\83\97ã\83ã\82·ã\82¸ã\83£が成功した場合にはプログラムのポート番号に修正される。 他のパラメーターの定義については \fBcallrpc\fP() や
-\fBclnt_call\fP() ã\81§èª¬æ\98\8eã\81\97ã\81¦ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\83\97ã\83ã\82·ã\82¸ã\83£は \(lqping\(rq のみに使用すべきである。
+\fBportmap\fP ã\82µã\83¼ã\83\93ã\82¹ã\81®ã\81\9fã\82\81ã\81®ã\83¦ã\83¼ã\82¶ã\83¼インターフェースで、 IP アドレス \fI*addr\fP のホストの \fBportmap\fP を参照して、
+RPC å\91¼ã\81³å\87ºã\81\97ã\82\92ç\94\9fæ\88\90ã\81\97ã\80\81ã\81\9dã\81®ã\83\9bã\82¹ã\83\88ä¸\8aã\81®ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼を呼び出す。 パラメーター \fI*portp\fP
+ã\81¯ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼が成功した場合にはプログラムのポート番号に修正される。 他のパラメーターの定義については \fBcallrpc\fP() や
+\fBclnt_call\fP() ã\81§èª¬æ\98\8eã\81\97ã\81¦ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼は \(lqping\(rq のみに使用すべきである。
\fBclnt_broadcast\fP() も参照すること。
.LP
.nf
\fB unsigned int \fP\fIprotocol\fP\fB, unsigned short \fP\fIport\fP\fB);\fP
.fi
.IP
-\fBportmap\fP ã\82µã\83¼ã\83\93ã\82¹ã\81®ã\81\9fã\82\81ã\81®ã\83¦ã\83¼ã\82¶ã\83»インターフェースで、 [\fIprognum\fP,\fIversnum\fP,\fIprotocol\fP]
+\fBportmap\fP ã\82µã\83¼ã\83\93ã\82¹ã\81®ã\81\9fã\82\81ã\81®ã\83¦ã\83¼ã\82¶ã\83¼インターフェースで、 [\fIprognum\fP,\fIversnum\fP,\fIprotocol\fP]
の組み合わせと \fIport\fP との間のマッピングを、そのマシン上の \fBportmap\fP サービスに登録する。 \fIprotocol\fP
はほとんどの場合 \fBIPPROTO_UDP\fP か \fBIPPROTO_TCP\fP のどちらかである。 このルーティンは成功した場合には 1
を返す。失敗した場合にはゼロを返す。 \fBsvc_register\fP() によって自動的に実行される。
\fBbool_t pmap_unset(unsigned long \fP\fIprognum\fP\fB, unsigned long \fP\fIversnum\fP\fB);\fP
.fi
.IP
-\fBportmap\fP ã\82µã\83¼ã\83\93ã\82¹ã\81®ã\81\9fã\82\81ã\81®ã\83¦ã\83¼ã\82¶ã\83»インターフェースで、 [\fIprognum\fP,\fIversnum\fP,\fI*\fP] の組み合わせと
+\fBportmap\fP ã\82µã\83¼ã\83\93ã\82¹ã\81®ã\81\9fã\82\81ã\81®ã\83¦ã\83¼ã\82¶ã\83¼インターフェースで、 [\fIprognum\fP,\fIversnum\fP,\fI*\fP] の組み合わせと
\fBports\fP の間のマッピングをそのマシン上の \fBportmap\fP サービスから削除する。このルーティンは成功した場合は 1 を返す。
失敗した場合には 0 を返す。
.LP
\fB xdrproc_t \fP\fIinproc\fP\fB, xdrproc_t \fP\fIoutproc\fP\fB);\fP
.fi
.IP
-RPC ã\82µã\83¼ã\83\93ã\82¹ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\82\92使ç\94¨ã\81\97ã\81¦ \fIprocname\fP ã\83\97ã\83ã\82·ã\82¸ã\83£を登録する。プログラム \fIprognum\fP、 バージョン
-\fIversnum\fPã\80\81 ã\83\97ã\83ã\82·ã\82¸ã\83£ \fIprocnum\fP への要求が届いた場合、 \fIprocname\fP
+RPC ã\82µã\83¼ã\83\93ã\82¹ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\82\92使ç\94¨ã\81\97ã\81¦ \fIprocname\fP ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼を登録する。プログラム \fIprognum\fP、 バージョン
+\fIversnum\fPã\80\81 ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼ \fIprocnum\fP への要求が届いた場合、 \fIprocname\fP
がパラメーターへのポインターを持って呼び出される。 \fIprogname\fP は静的な結果へのポインターを返す必要がある。 \fIinproc\fP
はパラメーターをデコードするために使用される。 \fIoutproc\fP は結果をエンコードするために使用される。
このルーティンは登録に成功した場合にはゼロを返す。 失敗した場合には \-1 を返す。
.IP
-è¦å\91\8a: ã\81\93ã\81®å½¢å¼\8fã\81§ç\99»é\8c²ã\81\95ã\82\8cã\81\9fã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82·ã\82¸ã\83£は UDP/IP 通信を使用する。制限に関しては \fBsvcudp_create\fP()
+è¦å\91\8a: ã\81\93ã\81®å½¢å¼\8fã\81§ç\99»é\8c²ã\81\95ã\82\8cã\81\9fã\83ªã\83¢ã\83¼ã\83\88ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼は UDP/IP 通信を使用する。制限に関しては \fBsvcudp_create\fP()
を参照すること。
.LP
.nf
\fBfd_set \fP\fIsvc_fdset\fP\fB;\fP
.fi
.IP
-RPC ã\82µã\83¼ã\83\93ã\82¹å\81´ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\83\93ã\83\83ã\83\88ã\83\9eã\82¹ã\82¯ã\82\92å\8f\8dæ\98 ã\81\97ã\81\9f大å\9f\9få¤\89æ\95°ã\80\82 \fBselect\fP(2)
+RPC サービス側のファイルディスクリプターのビットマスクを反映した大域変数。 \fBselect\fP(2)
システムコールのパラメーターのために利用できる。これは、サービスの実装者が \fBsvc_run\fP()
を呼び出さずに、独自の非同期イベント処理を用いる場合にのみ意味がある。 この変数は読み込み専用で (そのまま \fBselect\fP(2)
へ渡してはならない!)、 \fBsvc_getreqset\fP() 呼び出しや生成ルーティンの後に変更されているかもしれない。
\fBsvc_freeargs(SVCXPRT *\fP\fIxprt\fP\fB, xdrproc_t \fP\fIinproc\fP\fB, char *\fP\fIin\fP\fB);\fP
.fi
.IP
-ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\81¯ã\82µã\83¼ã\83\93ã\82¹ã\83»ã\83\97ã\83ã\82·ã\82¸ã\83£が \fBsvc_getargs\fP() を使用して引き数をデコードした時に RPC/XDR
+ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\81¯ã\82µã\83¼ã\83\93ã\82¹ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼が \fBsvc_getargs\fP() を使用して引き数をデコードした時に RPC/XDR
システムによって割り当てられたデータを解放する。 このルーティンは解放に成功した場合には 1 を返す。 失敗した場合にはゼロを返す。
.LP
.nf
\fBstruct sockaddr_in *svc_getcaller(SVCXPRT *\fP\fIxprt\fP\fB);\fP
.fi
.IP
-RPC ã\82µã\83¼ã\83\93ã\82¹é\80\9aä¿¡ã\83\8fã\83³ã\83\89ã\83« \fIxprt\fP ã\81«é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83\97ã\83ã\82·ã\82¸ã\83£ã\81®å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\83»アドレスを 取得するための標準的な手段。
+RPC ã\82µã\83¼ã\83\93ã\82¹é\80\9aä¿¡ã\83\8fã\83³ã\83\89ã\83« \fIxprt\fP ã\81«é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼ã\81®å\91¼ã\81³å\87ºã\81\97å\85\83ã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯アドレスを 取得するための標準的な手段。
.LP
.nf
\fBvoid svc_getreqset(fd_set *\fP\fIrdfds\fP\fB);\fP
.IP
このルーティンはサービスの実装者が \fBsvc_run\fP() を呼び出さず、独自の非同期イベント処理を実装する場合にのみ意味がある。 これは
\fBselect\fP(2) システムコールが RPC ソケットに RPC 要求が到着したと返した場合にのみ呼び出される。 \fIrdfds\fP
-ã\81¯çµ\90æ\9e\9cã\81®èªã\81¿è¾¼ã\81¿ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\83\93ã\83\83ã\83\88ã\83\9eã\82¹ã\82¯ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯ \fIrdfds\fP
+は結果の読み込みファイルディスクリプターのビットマスクである。 このルーティンは \fIrdfds\fP
の値に関連付けられた全てのソケットのサービスが行なわれた時に 返ってくる。
.LP
.nf
\fB unsigned long \fP\fIprotocol\fP\fB);\fP
.fi
.IP
-\fIprognum\fP ã\81¨ \fIversnum\fP ã\82\92ã\82µã\83¼ã\83\93ã\82¹é\85\8då\88\86ã\83\97ã\83ã\82·ã\82¸ã\83£ \fIdispatch\fP で関連付ける。 \fIprotocol\fP
+\fIprognum\fP ã\81¨ \fIversnum\fP ã\82\92ã\82µã\83¼ã\83\93ã\82¹é\85\8då\88\86ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼ \fIdispatch\fP で関連付ける。 \fIprotocol\fP
がゼロの場合、サービスは \fBportmap\fP サービスには登録されない。 \fIprotocol\fP がゼロ以外の場合、
[\fIprognum\fP,\fIversnum\fP,\fIprotocol\fP] の組み合わせと \fIxprt\->xp_port\fP
とのマッピングがローカルの \fBportmap\fP サービスに登録される。(一般的に \fIprotocol\fP はゼロ、 \fBIPPROTO_UDP\fP、
-\fBIPPROTO_TCP\fP ã\81®ã\81©ã\82\8cã\81\8bã\81§ã\81\82ã\82\8bã\80\82) ã\83\97ã\83ã\82·ã\82¸ã\83£ \fIdispatch\fP は以下の形式である:
+\fBIPPROTO_TCP\fP ã\81®ã\81©ã\82\8cã\81\8bã\81§ã\81\82ã\82\8bã\80\82) ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼ \fIdispatch\fP は以下の形式である:
.in +4n
.nf
このルーティンは戻ってこない。これは
.SM RPC
要求の到着を待ち、どれかが届いた場合に \fBsvc_getreq\fP()
-ã\82\92使ç\94¨ã\81\97ã\81¦é\81©å\88\87ã\81ªã\82µã\83¼ã\83\93ã\82¹ã\83»ã\83\97ã\83ã\82·ã\82¸ã\83£ã\82\92å\91¼ã\81³å\87ºã\81\99ã\80\82 ã\81\93ã\81®ã\83\97ã\83ã\82·ã\82¸ã\83£は通常は \fBselect\fP(2) システムコールから返るのを待っている。
+ã\82\92使ç\94¨ã\81\97ã\81¦é\81©å\88\87ã\81ªã\82µã\83¼ã\83\93ã\82¹ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼ã\82\92å\91¼ã\81³å\87ºã\81\99ã\80\82 ã\81\93ã\81®ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼は通常は \fBselect\fP(2) システムコールから返るのを待っている。
.LP
.nf
\fBbool_t svc_sendreply(SVCXPRT *\fP\fIxprt\fP\fB, xdrproc_t \fP\fIoutproc\fP\fB, char *\fP\fIout\fP\fB);\fP
.fi
.IP
-RPC ã\82µã\83¼ã\83\93ã\82¹é\85\8då\88\86ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81«ã\82\88ã\81£ã\81¦ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82·ã\82¸ã\83£ã\83»コールの結果を 返すために呼び出される。 パラメーター \fIxprt\fP
+RPC ã\82µã\83¼ã\83\93ã\82¹é\85\8då\88\86ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81«ã\82\88ã\81£ã\81¦ã\83ªã\83¢ã\83¼ã\83\88ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼コールの結果を 返すために呼び出される。 パラメーター \fIxprt\fP
はその要求に関連付けられた通信ハンドルである。 \fIoutproc\fP は結果をエンコードするために使用する XDR ルーティンである。 \fIout\fP
は結果のアドレスである。このルーティンは成功した場合は 1 を返す。 失敗した場合はゼロを返す。
.LP
\fBvoid svcerr_auth(SVCXPRT *\fP\fIxprt\fP\fB, enum auth_stat \fP\fIwhy\fP\fB);\fP
.fi
.IP
-èª\8d証ã\82¨ã\83©ã\83¼ã\81«ã\82\88ã\82\8aã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82·ã\82¸ã\83£ã\83»コールの実行を拒否された 場合にサービス配分ルーティンによって呼び出される。
+èª\8d証ã\82¨ã\83©ã\83¼ã\81«ã\82\88ã\82\8aã\83ªã\83¢ã\83¼ã\83\88ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼コールの実行を拒否された 場合にサービス配分ルーティンによって呼び出される。
.LP
.nf
\fBvoid svcerr_decode(SVCXPRT *\fP\fIxprt\fP\fB);\fP
.fi
.IP
-パラメータのデコードに失敗した場合に サービス配分ルーティンによって呼び出される。 \fBsvc_getargs\fP() も参照すること。
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®ã\83\87ã\82³ã\83¼ã\83\89ã\81«å¤±æ\95\97ã\81\97ã\81\9få ´å\90\88ã\81« ã\82µã\83¼ã\83\93ã\82¹é\85\8då\88\86ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81«ã\82\88ã\81£ã\81¦å\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\80\82 \fBsvc_getargs\fP() ã\82\82å\8f\82ç\85§ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82
.LP
.nf
\fBvoid svcerr_noproc(SVCXPRT *\fP\fIxprt\fP\fB);\fP
.fi
.IP
-è¦\81æ±\82ã\81®ã\81\82ã\81£ã\81\9fã\83\97ã\83ã\82·ã\82¸ã\83£番号が実装されていない場合に サービス配分ルーティンより呼び出される。
+è¦\81æ±\82ã\81®ã\81\82ã\81£ã\81\9fã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼番号が実装されていない場合に サービス配分ルーティンより呼び出される。
.LP
.nf
\fBvoid svcerr_noprog(SVCXPRT *\fP\fIxprt\fP\fB);\fP
\fBvoid svcerr_systemerr(SVCXPRT *\fP\fIxprt\fP\fB);\fP
.fi
.IP
-ç\89¹å®\9aã\81®ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81«ã\82\88ã\81£ã\81¦ã\82«ã\83\90ã\83¼ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82¨ã\83©ã\83¼ã\81\8c æ¤\9cå\87ºã\81\95ã\82\8cã\81\9få ´å\90\88ã\81«ã\82µã\83¼ã\83\93ã\82¹é\85\8då\88\86ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81«ã\82\88ã\81£ã\81¦å\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\80\82
+特定のプロトコルによってカバーされていなシステムエラーが 検出された場合にサービス配分ルーティンによって呼び出される。
例えば、サービスがそれ以上、記憶装置を割り当てることができない場合には このルーティンが呼び出されるかもしれない。
.LP
.nf
\fBvoid svcerr_weakauth(SVCXPRT *\fP\fIxprt\fP\fB);\fP
.fi
.IP
-èª\8d証ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81\8c足ã\82\8aã\81ªã\81\84ã\81\9fã\82\81ã\81«ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82·ã\82¸ã\83£ã\83»コールの実行を 拒否された場合にサービス配分ルーティンによって呼び出される。 このルーティンは
+èª\8d証ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\81\9fã\82\81ã\81«ã\83ªã\83¢ã\83¼ã\83\88ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼コールの実行を 拒否された場合にサービス配分ルーティンによって呼び出される。 このルーティンは
\fBsvcerr_auth(xprt, AUTH_TOOWEAK)\fP を呼び出す。
.LP
.nf
.fi
.IP
任意のオープンされたディスクリプター上にサービスを作成する。 典型的に、ディスクリプターは TCP
-ã\81®ã\82\88ã\81\86ã\81ªã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\83»ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81§æ\8e¥ç¶\9aã\81\95ã\82\8cã\81\9fã\82½ã\82±ã\83\83ã\83\88ã\81§ã\81\82ã\82\8bã\80\82 \fIsendsize\fP ã\81¨ \fIrecvsize\fP
-ã\81«ã\81¯é\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\81¨å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡の大きさを指定する。もしゼロが指定された 場合は適切なデフォルトが選択される。
+のようなストリームプロトコルで接続されたソケットである。 \fIsendsize\fP と \fIrecvsize\fP
+ã\81«ã\81¯é\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¨å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼の大きさを指定する。もしゼロが指定された 場合は適切なデフォルトが選択される。
.LP
.nf
\fBSVCXPRT *svcraw_create(void);\fP
.fi
.IP
-このルーティンは擬似 RPC サービス通信を生成して、そのポインターを返す。 通信は実際にはそのプロセスのアドレス空間にあるバッファなので 対応する
+ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯æ\93¬ä¼¼ RPC ã\82µã\83¼ã\83\93ã\82¹é\80\9aä¿¡ã\82\92ç\94\9fæ\88\90ã\81\97ã\81¦ã\80\81ã\81\9dã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 é\80\9aä¿¡ã\81¯å®\9fé\9a\9bã\81«ã\81¯ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81«ã\81\82ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81ªã\81®ã\81§ 対å¿\9cã\81\99ã\82\8b
RPC クライアントは同じアドレス空間にいる必要がある。 \fBclntraw_create\fP() を参照すること。 このルーティンで RPC
-ã\81®ã\82·ã\83\9fã\83¥ã\83¬ã\83¼ã\82·ã\83§ã\83³ã\82\84ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\83»ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«å½±é\9f¿ã\81\95ã\82\8cã\81\9aã\81«å¿\9cç\94æ\99\82é\96\93ã\81ªã\81©ã\81® RPC ã\82ªã\83¼ã\83\90ã\83\98ã\83\83ã\83\89ã\82\92å\8f\96å¾\97ã\81\8cã\81§ã\81\8dã\82\8bã\80\82ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯å¤±æ\95\97ã\81\97ã\81\9få ´å\90\88ã\81¯
-NULL を返す。
+ã\81®ã\82·ã\83\9fã\83¥ã\83¬ã\83¼ã\82·ã\83§ã\83³ã\82\84ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«å½±é\9f¿ã\81\95ã\82\8cã\81\9aã\81«å¿\9cç\94æ\99\82é\96\93ã\81ªã\81©ã\81® RPC ã\82ªã\83¼ã\83\90ã\83\98ã\83\83ã\83\89ã\82\92å\8f\96å¾\97ã\81\8cã\81§ã\81\8dã\82\8bã\80\82ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯å¤±æ\95\97ã\81\97ã\81\9få ´å\90\88ã\81¯ NULL
+を返す。
.LP
.nf
\fBSVCXPRT *svctcp_create(int \fP\fIsock\fP\fB, unsigned int \fP\fIsend_buf_size\fP\fB,\fP
.IP
このルーティンは TCP/IP に基づく RPC サービス通信を作成し、それへのポインターを返す。 通信はソケット \fIsock\fP に結びつけられる。
\fIsock\fP は \fBRPC_ANYSOCK\fP でも良い。この場合は新しいソケットが作成される。 もしソケットがローカルな TCP ポートに bind
-されていない場合は、 このルーティンが適当なポートに bind する。 補完された場合、\fIxprt\->xp_sock\fP には通信のソケット・
+されていない場合は、 このルーティンが適当なポートに bind する。 補完された場合、\fIxprt\->xp_sock\fP には通信のソケット
ディスクリプターが、\fIxprt\->xp_port\fP には通信のポート番号が 設定される。 このルーティンは失敗した場合は NULL を返す。
-TCP ã\81«å\9fºã\81¥ã\81\84ã\81\9f RPC ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\81\95ã\82\8cã\81\9f I/O ã\82\92使ç\94¨ã\81\99ã\82\8bã\81\9fã\82\81ã\80\81 ã\83¦ã\83¼ã\82¶ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡の大きさを指定できる。
+TCP ã\81«å\9fºã\81¥ã\81\84ã\81\9f RPC ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\95ã\82\8cã\81\9f I/O ã\82\92使ç\94¨ã\81\99ã\82\8bã\81\9fã\82\81ã\80\81 ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼の大きさを指定できる。
ゼロを指定した場合は適切なデフォルトが選択される。
.LP
.nf
\fBvoid xdr_callhdr(XDR *\fP\fIxdrs\fP\fB, struct rpc_msg *\fP\fIchdr\fP\fB);\fP
.fi
.IP
-RPC å\91¼ã\81³å\87ºã\81\97ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83»ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92è¨\98è¿°ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ä½¿ç\94¨ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯ RPC ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\82\92使ç\94¨ã\81\9bã\81\9aã\81«
+RPC 呼び出しのヘッダーメッセージを記述するために使用する。 このルーティンは RPC パッケージを使用せずに
RPC\-形式のメッセージを作成しようとする場合に便利である。
.LP
.nf
\fBbool_t xdr_pmap(XDR *\fP\fIxdrs\fP\fB, struct pmap *\fP\fIregs\fP\fB);\fP
.fi
.IP
-å\90\84種ã\81® \fBportmap\fP ã\83\97ã\83ã\82·ã\82¸ã\83£へのパラメーターを外部的に記述するために使用する。 このルーティンは \fBpmap\fP
+å\90\84種ã\81® \fBportmap\fP ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼へのパラメーターを外部的に記述するために使用する。 このルーティンは \fBpmap\fP
インターフェースを使用せずに、これらのパラメーターを 作成したい場合に便利である。
.LP
.nf
\fBvoid xprt_register(SVCXPRT *\fP\fIxprt\fP\fB);\fP
.fi
.IP
-RPC ã\82µã\83¼ã\83\93ã\82¹é\80\9aä¿¡ã\83\8fã\83³ã\83\89ã\83«ã\82\92ç\94\9fæ\88\90ã\81\97ã\81\9få¾\8cã\81«ã\80\81ã\81\9dã\82\8cã\82\89è\87ªèº«ã\82\92 RPC ã\82µã\83¼ã\83\93ã\82¹ã\83»ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\81«ç\99»é\8c²ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯å¤§å\9f\9få¤\89æ\95°
+RPC サービス通信ハンドルを生成した後に、それら自身を RPC サービスパッケージに登録する必要がある。 このルーティンは大域変数
\fIsvc_fds\fP を修正する。サービスの実装者は通常、このルーティンは必要ない。
.LP
.nf
.sp
\fBrpmatch\fP(): _SVID_SOURCE
.SH 説明
-\fBrpmatch\fP() は yes/no の質問に対するユーザからの応答を処理する。 国際化 (I18N) に対応している。
+\fBrpmatch\fP() ã\81¯ yes/no ã\81®è³ªå\95\8fã\81«å¯¾ã\81\99ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼ã\81\8bã\82\89ã\81®å¿\9cç\94ã\82\92å\87¦ç\90\86ã\81\99ã\82\8bã\80\82 å\9b½é\9a\9bå\8c\96 (I18N) ã\81«å¯¾å¿\9cã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
-\fIresponse\fP にはユーザからの応答を格納したヌル終端文字列が入っている必要がある。 たいていは、 \fBfgets\fP(3) や
+\fIresponse\fP ã\81«ã\81¯ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8bã\82\89ã\81®å¿\9cç\94ã\82\92æ ¼ç´\8dã\81\97ã\81\9fã\83\8cã\83«çµ\82端æ\96\87å\97å\88\97ã\81\8cå\85¥ã\81£ã\81¦ã\81\84ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82 ã\81\9fã\81\84ã\81¦ã\81\84ã\81¯ã\80\81 \fBfgets\fP(3) ã\82\84
\fBgetline\fP(3) で取り込んだものであろう。
プログラムが \fBsetlocale\fP(3) を呼び出して環境変数の変更を有効にした場合、 環境変数 \fBLANG\fP, \fBLC_MESSAGES\fP,
-\fBLC_ALL\fP が ユーザの言語設定として考慮される。
+\fBLC_ALL\fP ã\81\8c ã\83¦ã\83¼ã\82¶ã\83¼ã\81®è¨\80èª\9eè¨å®\9aã\81¨ã\81\97ã\81¦è\80\83æ\85®ã\81\95ã\82\8cã\82\8bã\80\82
ロケールに関わらず、\fB^[Yy]\fP にマッチする応答は常に肯定だと解釈され、 \fB^[Nn]\fP にマッチする応答は常に否定だと解釈される。
.SH 返り値
glibc 2.2.5 以前の \fBrtime\fP() は、64 ビットマシンで正確に動作しない。
.SH 例
この例ではポート 37 がアップされてオープンされている必要がある。 \fI/etc/inetd.conf\fP の time
-エントリがコメントアウトされていないことを確認してほしい。
+ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\82³ã\83¡ã\83³ã\83\88ã\82¢ã\82¦ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\81\93ã\81¨ã\82\92確èª\8dã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\80\82
このプログラムは "linux" というコンピュータに接続する。 "localhost" を使った場合は動作しない。 結果はコンピュータ "linux"
のローカル時刻である。
.sp
\fBunsigned int RTA_SPACE(unsigned int \fP\fIlength\fP\fB);\fP
.SH 説明
-全ての \fBrtnetlink\fP(7) メッセージは \fBnetlink\fP(7) メッセージヘッダと追加属性からなる。
+å\85¨ã\81¦ã\81® \fBrtnetlink\fP(7) ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81¯ \fBnetlink\fP(7) ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83\98ã\83\83ã\83\80ã\83¼ã\81¨è¿½å\8a å±\9eæ\80§ã\81\8bã\82\89ã\81ªã\82\8bã\80\82
属性の操作は、必ずここに挙げたマクロだけを使って行うべきである。
.PP
-\fBRTA_OK(\fP\fIrta\fP\fB, \fP\fIattrlen\fP\fB)\fP は \fIrta\fP が有効なルーティング属性へのポインタであれば真を返す。
-\fIattrlen\fP は属性バッファの実働時の長さ (running length) である。 真でなければ、例え \fIattrlen\fP
+\fBRTA_OK(\fP\fIrta\fP\fB, \fP\fIattrlen\fP\fB)\fP ã\81¯ \fIrta\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83«ã\83¼ã\83\86ã\82£ã\83³ã\82°å±\9eæ\80§ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8cã\81°ç\9c\9fã\82\92è¿\94ã\81\99ã\80\82
+\fIattrlen\fP ã\81¯å±\9eæ\80§ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å®\9få\83\8dæ\99\82ã\81®é\95·ã\81\95 (running length) ã\81§ã\81\82ã\82\8bã\80\82 ç\9c\9fã\81§ã\81ªã\81\91ã\82\8cã\81°ã\80\81ä¾\8bã\81\88 \fIattrlen\fP
がゼロでなくても、 メッセージ中にはもうそれ以上属性は無いと考えなければならない。
.PP
-\fBRTA_DATA(\fP\fIrta\fP\fB)\fP はこの属性データの先頭へのポインタを返す。
+\fBRTA_DATA(\fP\fIrta\fP\fB)\fP ã\81¯ã\81\93ã\81®å±\9eæ\80§ã\83\87ã\83¼ã\82¿ã\81®å\85\88é ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.PP
\fBRTA_PAYLOAD(\fP\fIrta\fP\fB)\fP はこの属性データの長さを返す。
.PP
\fBRTA_NEXT(\fP\fIrta\fP\fB, \fP\fIattrlen\fP\fB)\fP は \fIrta\fP の次にある属性を取得する。 このマクロを呼ぶと
-\fIattrlen\fP が更新される。 \fBRTA_OK\fP を使って、返されたポインタが正しいかをチェックすべきである。
+\fIattrlen\fP ã\81\8cæ\9b´æ\96°ã\81\95ã\82\8cã\82\8bã\80\82 \fBRTA_OK\fP ã\82\92使ã\81£ã\81¦ã\80\81è¿\94ã\81\95ã\82\8cã\81\9fã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cæ£ã\81\97ã\81\84ã\81\8bã\82\92ã\83\81ã\82§ã\83\83ã\82¯ã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82
.PP
-\fBRTA_LENGTH(\fP\fIlen\fP\fB)\fP は \fIlen\fP バイトのデータ + ヘッダに必要な長さを返す。
+\fBRTA_LENGTH(\fP\fIlen\fP\fB)\fP ã\81¯ \fIlen\fP ã\83\90ã\82¤ã\83\88ã\81®ã\83\87ã\83¼ã\82¿ + ã\83\98ã\83\83ã\83\80ã\83¼ã\81«å¿\85è¦\81ã\81ªé\95·ã\81\95ã\82\92è¿\94ã\81\99ã\80\82
.PP
\fBRTA_SPACE(\fP\fIlen\fP\fB)\fP は \fIlen\fP バイトのデータを持つメッセージに必要とされる容量を返す。
.SH 準拠
.sp
\fBscandirat\fP(): _GNU_SOURCE
.SH 説明
-関数 \fBscandir\fP() はディレクトリ \fIdirp\fP を走査し、 ディレクトリの各エントリを引き数として \fBfilter\fP()
-を呼び出す。 \fBfilter\fP() が 0 以外の値を返すエントリは \fBmalloc\fP(3) によって 確保された文字列に保存され、比較関数
+é\96¢æ\95° \fBscandir\fP() ã\81¯ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ª \fIdirp\fP ã\82\92èµ°æ\9f»ã\81\97ã\80\81 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®å\90\84ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦ \fBfilter\fP()
+ã\82\92å\91¼ã\81³å\87ºã\81\99ã\80\82 \fBfilter\fP() ã\81\8c 0 以å¤\96ã\81®å\80¤ã\82\92è¿\94ã\81\99ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ \fBmalloc\fP(3) ã\81«ã\82\88ã\81£ã\81¦ 確ä¿\9dã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81«ä¿\9då\98ã\81\95ã\82\8cã\80\81æ¯\94è¼\83é\96¢æ\95°
\fBcompar\fP() を用いて \fBqsort\fP(3) によりソートされ、 \fBmalloc\fP(3) により確保された配列
-\fInamelist\fP にまとめられる。 \fIfilter\fP が NULL ならば、すべてのエントリが選択される。
+\fInamelist\fP ã\81«ã\81¾ã\81¨ã\82\81ã\82\89ã\82\8cã\82\8bã\80\82 \fIfilter\fP ã\81\8c NULL ã\81ªã\82\89ã\81°ã\80\81ã\81\99ã\81¹ã\81¦ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cé\81¸æ\8a\9eã\81\95ã\82\8cã\82\8bã\80\82
.LP
比較関数 \fIcompar\fP() には \fBalphasort\fP() 関数と \fBversionsort\fP() 関数を使うことができる。
-\fBalphasort\fP() ã\81¯ \fBstrcoll\fP(3) ã\82\92ç\94¨ã\81\84ã\81¦ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\82\92ã\82½ã\83¼ã\83\88ã\81\97ã\80\81 \fBversionsort\fP() ã\81¯æ\96\87å\97å\88\97
-\fI(*a)\->d_name\fP と \fI(*b)\->d_name\fP に対して \fBstrverscmp\fP(3) を用いる。
+\fBalphasort\fP() ã\81¯ \fBstrcoll\fP(3) ã\82\92ç\94¨ã\81\84ã\81¦ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\82½ã\83¼ã\83\88ã\81\97ã\80\81 \fBversionsort\fP()
+は文字列 \fI(*a)\->d_name\fP と \fI(*b)\->d_name\fP に対して \fBstrverscmp\fP(3) を用いる。
.SS scandirat()
\fBscandirat\fP() 関数は \fBscandir\fP() と全く同様の動作をする。差分についてはここで説明する。
-\fIdirp\fP で指定されたパス名が相対パスの場合、ファイルディスクリプタ \fIdirfd\fP が参照するディレクトリからの相対パスと解釈される
+\fIdirp\fP で指定されたパス名が相対パスの場合、ファイルディスクリプター \fIdirfd\fP が参照するディレクトリからの相対パスと解釈される
(これに対して、\fBscandir\fP() の場合は、相対パス名は、呼び出したプロセスのカレントワーキングディレクトリからの相対パスと解釈される)。
\fIdirp\fP が相対パスで \fIdirfd\fP が特別な値 \fBAT_FDCWD\fP の場合、 \fIdirp\fP は (\fBscandir\fP() と同様に)
.PP
\fBscandirat\fP() が必要な理由については \fBopenat\fP(2) を参照すること。
.SH 返り値
-\fBscandir\fP() 関数は、選択されたディレクトリのエントリ数を返す。 エラーの場合、 \-1 を返し、 \fIerrno\fP
+\fBscandir\fP() 関数は、選択されたディレクトリのエントリー数を返す。 エラーの場合、 \-1 を返し、 \fIerrno\fP
にエラーの原因を示す値を設定する。
.PP
関数 \fBalphasort\fP() と \fBversionsort\fP() は 1 番目の引き数が 2 番目の引き数に対して、
\fIdirp\fP で指定されたパスが存在しない。
.TP
\fBENOMEM\fP
-操作を完了するのに十分なメモリがない。
+æ\93\8dä½\9cã\82\92å®\8cäº\86ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
\fIdirp\fP で指定されたパスがディレクトリではない。
\fBscandirat\fP() では追加で以下のエラーも発生する:
.TP
\fBEBADF\fP
-\fIdirfd\fP が有効なファイルディスクリプタではない。
+\fIdirfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBENOTDIR\fP
\fIdirp\fP が相対パスで、\fIdirfd\fP がディレクトリ以外のファイルを参照している
-ファイルディスクリプタである。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH バージョン
\fBversionsort\fP() は、glibc バージョン 2.1 で追加された。
\fIformat\fP 中の変換指定の個数が \fIpointer\fP 引き数の数より多かった場合の結果は未定義である。 \fIpointer\fP
引き数の数が変換指定の個数よりも多かった場合、 余分な \fIpointer\fP 引き数の評価は行われるが、それ以外は行われず無視される。
-\fBscanf\fP() 関数は標準入力ストリーム \fIstdin\fP からの入力を読み込む。 \fBfscanf\fP() はストリームポインタ
-\fIstream\fP からの入力を読み込む。 \fBsscanf\fP() は文字列ポインタ \fIstr\fP で示された文字列からの入力を読み込む。
+\fBscanf\fP() 関数は標準入力ストリーム \fIstdin\fP からの入力を読み込む。 \fBfscanf\fP() はストリームポインター
+\fIstream\fP からの入力を読み込む。 \fBsscanf\fP() は文字列ポインター \fIstr\fP で示された文字列からの入力を読み込む。
.PP
-\fBvfscanf\fP() 関数は \fBvfprintf\fP(3) と同様に、ストリームポインタ \fIstream\fP
-からの入力をポインタの可変長引き数リストを用いて読み込む (\fBstdarg\fP(3) を参照)。 \fBvscanf\fP()
+\fBvfscanf\fP() 関数は \fBvfprintf\fP(3) と同様に、ストリームポインター \fIstream\fP
+ã\81\8bã\82\89ã\81®å\85¥å\8a\9bã\82\92ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®å\8f¯å¤\89é\95·å¼\95ã\81\8dæ\95°ã\83ªã\82¹ã\83\88ã\82\92ç\94¨ã\81\84ã\81¦èªã\81¿è¾¼ã\82\80 (\fBstdarg\fP(3) ã\82\92å\8f\82ç\85§)ã\80\82 \fBvscanf\fP()
関数は、可変長引き数のリストに基づき標準入力からの読み取りを行う。 \fBvsscanf\fP() 関数はそのリストに基づき文字列から読み取る。
これらの関係は \fBvprintf\fP(3) と \fBvsprintf\fP(3) 関数の関係と同様である。
.PP
.TP
\(bu
文字 \(aqm\(aq (省略可能)。これは文字列変換 (\fI%s\fP, \fI%c\fP, \fI%[\fP) とともに使用され、これを使うと
-呼び出し元が入力を保持する対応するバッファを確保する必要がなくなる。 代わりに \fBscanf\fP()
-ã\81\8cå¿\85è¦\81ã\81ªå¤§ã\81\8dã\81\95ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92確ä¿\9dã\81\97ã\80\81ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡のアドレスを 対応する \fIpointer\fP 引き数に代入する。 \fIpointer\fP 引き数は
-\fIchar\ *\fP 型の変数へのポインタでなければならない (変数自体は呼び出し前に初期化されている必要はない)。
-呼び出し元は、不要になった時点で、このバッファを \fBfree\fP(3) すべきである。
+å\91¼ã\81³å\87ºã\81\97å\85\83ã\81\8cå\85¥å\8a\9bã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8b対å¿\9cã\81\99ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92確ä¿\9dã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81ªã\81\8fã\81ªã\82\8bã\80\82 代ã\82\8fã\82\8aã\81« \fBscanf\fP()
+ã\81\8cå¿\85è¦\81ã\81ªå¤§ã\81\8dã\81\95ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92確ä¿\9dã\81\97ã\80\81ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼のアドレスを 対応する \fIpointer\fP 引き数に代入する。 \fIpointer\fP 引き数は
+\fIchar\ *\fP å\9e\8bã\81®å¤\89æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84 (å¤\89æ\95°è\87ªä½\93ã\81¯å\91¼ã\81³å\87ºã\81\97å\89\8dã\81«å\88\9dæ\9c\9få\8c\96ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå¿\85è¦\81ã\81¯ã\81ªã\81\84)ã\80\82
+å\91¼ã\81³å\87ºã\81\97å\85\83ã\81¯ã\80\81ä¸\8dè¦\81ã\81«ã\81ªã\81£ã\81\9fæ\99\82ç\82¹ã\81§ã\80\81ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92 \fBfree\fP(3) ã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82
.TP
\(bu
\fI「最大フィールド幅」\fP を指定する 10進数 (省略可能)。 この最大値に達するか、一致しない文字が見つかるか、のどちらかに
変換指定には、以下の \fI「型修飾子」\fP を入れることができる。
.TP
\fBh\fP
-変換が \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, \fBX\fP, \fBn\fP のいずれかであり、次のポインタが (\fIint\fP ではなく)
-\fIshort int\fP か \fIunsigned short int\fP へのポインタであることを示す。
+å¤\89æ\8f\9bã\81\8c \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, \fBX\fP, \fBn\fP ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81§ã\81\82ã\82\8aã\80\81次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8c (\fIint\fP ã\81§ã\81¯ã\81ªã\81\8f)
+\fIshort int\fP ã\81\8b \fIunsigned short int\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82
.TP
\fBhh\fP
-\fBh\fP ã\81¨å\90\8cã\81\98ã\81 ã\81\8cã\80\81次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8c \fIsigned char\fP ã\81\8b \fIunsigned char\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿であることを示す。
+\fBh\fP ã\81¨å\90\8cã\81\98ã\81 ã\81\8cã\80\81次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8c \fIsigned char\fP ã\81\8b \fIunsigned char\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼であることを示す。
.TP
\fBj\fP
-\fBh\fP ã\81¨å\90\8cã\81\98ã\81 ã\81\8cã\80\81次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8c \fIintmax_t\fP ã\81\8b \fIuintmax_t\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿であることを示す。 この修飾子は C99
+\fBh\fP ã\81¨å\90\8cã\81\98ã\81 ã\81\8cã\80\81次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8c \fIintmax_t\fP ã\81\8b \fIuintmax_t\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼であることを示す。 この修飾子は C99
で導入された。
.TP
\fBl\fP
.\" This use of l was introduced in Amendment 1 to ISO C90.
-変換が \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, \fBX\fP, \fBn\fP か \fBn\fP のいずれかであり次のポインタが (\fIint\fP
-ではなく) \fIlong int\fP か \fIunsigned long int\fP へのポインタであること、または、変換が \fBe\fP, \fBf\fP,
-\fBg\fP ã\81®ã\81\86ã\81¡ã\81®ã\81²ã\81¨ã\81¤ã\81§ã\81\82ã\82\8a次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8c (\fIfloat\fP ã\81§ã\81¯ã\81ªã\81\8f) \fIdouble\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82
-\fBl\fP 文字を二つ指定すると、 \fBL\fP と同じ意味となる。 \fB%c\fP や \fB%s\fP とともに使用すると、
-ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81¯ã\81\9dã\82\8cã\81\9eã\82\8cã\83¯ã\82¤ã\83\89æ\96\87å\97ã\82\84ã\83¯ã\82¤ã\83\89æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿であると みなされる。
+å¤\89æ\8f\9bã\81\8c \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, \fBX\fP, \fBn\fP ã\81\8b \fBn\fP ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81§ã\81\82ã\82\8a次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8c (\fIint\fP
+ã\81§ã\81¯ã\81ªã\81\8f) \fIlong int\fP ã\81\8b \fIunsigned long int\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\80\81ã\81¾ã\81\9fã\81¯ã\80\81å¤\89æ\8f\9bã\81\8c \fBe\fP, \fBf\fP,
+\fBg\fP ã\81®ã\81\86ã\81¡ã\81®ã\81²ã\81¨ã\81¤ã\81§ã\81\82ã\82\8a次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8c (\fIfloat\fP ã\81§ã\81¯ã\81ªã\81\8f) \fIdouble\fP
+へのポインターであることのいずれかであることを示す。 \fBl\fP 文字を二つ指定すると、 \fBL\fP と同じ意味となる。 \fB%c\fP や \fB%s\fP
+ã\81¨ã\81¨ã\82\82ã\81«ä½¿ç\94¨ã\81\99ã\82\8bã\81¨ã\80\81 ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\81\9dã\82\8cã\81\9eã\82\8cã\83¯ã\82¤ã\83\89æ\96\87å\97ã\82\84ã\83¯ã\82¤ã\83\89æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼であると みなされる。
.TP
\fBL\fP
.\" MTK, Jul 05: The following is no longer true for modern
.\" ANSI C
.\" type. Any program using this will not be portable to all
.\" architectures).
-\fBe\fP, \fBf\fP, \fBg\fP å¤\89æ\8f\9bã\81§ã\80\81次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8c \fIlong double\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82ã\82\82ã\81\97ã\81\8fã\81¯ã\80\81 \fBd\fP, \fBi\fP,
-\fBo\fP, \fBu\fP, \fBx\fP 変換で、次のポインタが \fIlong long\fP へのポインタであることのいずれかであることを示す。
+\fBe\fP, \fBf\fP, \fBg\fP å¤\89æ\8f\9bã\81§ã\80\81次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8c \fIlong double\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82ã\82\82ã\81\97ã\81\8fã\81¯ã\80\81 \fBd\fP,
+\fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP 変換で、次のポインターが \fIlong long\fP へのポインターであることのいずれかであることを示す。
.TP
\fBq\fP
\fBL\fP と同一である。 この修飾子は ANSI C には存在しない。
.TP
\fBt\fP
-\fBh\fP ã\81¨å\90\8cæ§\98ã\81 ã\81\8cã\80\81次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8c \fIptrdiff_t\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿であることを示す。 この修飾子は C99 で導入された。
+\fBh\fP ã\81¨å\90\8cæ§\98ã\81 ã\81\8cã\80\81次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8c \fIptrdiff_t\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼であることを示す。 この修飾子は C99 で導入された。
.TP
\fBz\fP
-\fBh\fP ã\81¨å\90\8cæ§\98ã\81 ã\81\8cã\80\81次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8c \fIsize_t\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿であることを示す。 この修飾子は C99 で導入された。
+\fBh\fP ã\81¨å\90\8cæ§\98ã\81 ã\81\8cã\80\81次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8c \fIsize_t\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼であることを示す。 この修飾子は C99 で導入された。
.PP
以下の \fI「変換指定子」\fP が利用可能である。
.TP
(但し、先頭のホワイトスペース文字は捨てられる)、 変数への代入は生じない。
.TP
\fBd\fP
-符å\8f·ã\81¤ã\81\8dã\81® 10é\80²ã\81®æ\95´æ\95°ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\82 次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¯ \fIint\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿でなければならない。
+符å\8f·ã\81¤ã\81\8dã\81® 10é\80²ã\81®æ\95´æ\95°ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\82 次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ \fIint\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼でなければならない。
.TP
\fBD\fP
\fIld\fP と同一である。これは以前の仕様との互換性だけのためにある。 (注意: これは libc4 の場合だけである。 libc5 や glibc
では \fB%D\fP は暗黙のうちに無視され、古いプログラムにおいて謎に満ちた失敗の原因となる。)
.TP
\fBi\fP
-符å\8f·ã\81¤ã\81\8dæ\95´æ\95°ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\82 次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¯ \fIint\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\81\93ã\81®æ\95´æ\95°ã\81¯ \fI0x\fP ã\81¾ã\81\9fã\81¯ \fI0X\fP ã\81§é\96\8bå§\8bã\81\99ã\82\8bå ´å\90\88ã\81«ã\81¯
-16 進数、 \fI0\fP で開始する場合には 8 進数、その他の場合には 10進数として読み込まれる。
+符å\8f·ã\81¤ã\81\8dæ\95´æ\95°ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\82 次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ \fIint\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\81\93ã\81®æ\95´æ\95°ã\81¯ \fI0x\fP ã\81¾ã\81\9fã\81¯ \fI0X\fP
+で開始する場合には 16 進数、 \fI0\fP で開始する場合には 8 進数、その他の場合には 10進数として読み込まれる。
この変換で使用される文字は、これらの基数に対応しているものだけである。
.TP
\fBo\fP
-符号なしの 8 進の整数に対応する。 次のポインタは \fIunsigned int\fP でなければならない。
+符å\8f·ã\81ªã\81\97ã\81® 8 é\80²ã\81®æ\95´æ\95°ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\82 次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ \fIunsigned int\fP ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.TP
\fBu\fP
-符å\8f·ã\81ªã\81\97ã\81® 10é\80²ã\81®æ\95´æ\95°ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\82 次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¯ \fIunsigned int\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿でなければならない。
+符å\8f·ã\81ªã\81\97ã\81® 10é\80²ã\81®æ\95´æ\95°ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\82 次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ \fIunsigned int\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼でなければならない。
.TP
\fBx\fP
-符å\8f·ã\81ªã\81\97ã\81® 16 é\80²ã\81®æ\95´æ\95°ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\82 次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¯ \fIunsigned int\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿でなければならない。
+符å\8f·ã\81ªã\81\97ã\81® 16 é\80²ã\81®æ\95´æ\95°ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\82 次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ \fIunsigned int\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼でなければならない。
.TP
\fBX\fP
\fBx\fP と同一である。
.TP
\fBf\fP
-符å\8f·ã\81¤ã\81\8dæµ®å\8b\95å°\8fæ\95°ç\82¹å®\9fæ\95°ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\82 次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¯ \fIfloat\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿でなければならない。
+符å\8f·ã\81¤ã\81\8dæµ®å\8b\95å°\8fæ\95°ç\82¹å®\9fæ\95°ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\82 次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ \fIfloat\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼でなければならない。
.TP
\fBe\fP
\fBf\fP と同一である。
(C99) \fBf\fP と同一である。
.TP
\fBs\fP
-ã\83\9bã\83¯ã\82¤ã\83\88ã\82¹ã\83\9aã\83¼ã\82¹ã\81§ã\81¯ã\81ªã\81\84æ\96\87å\97ã\81§æ§\8bæ\88\90ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\82 次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¯æ\96\87å\97ã\81®é\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81\9aã\80\81 ã\81\9dã\81®æ\96\87å\97é\85\8då\88\97ã\81¯ã\80\81å\85¥å\8a\9bã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¨
-(自動的に追加される) 終端のヌルバイト (\(aq\e0\(aq) を格納するのに十分な大きさでなければならない。
+ã\83\9bã\83¯ã\82¤ã\83\88ã\82¹ã\83\9aã\83¼ã\82¹ã\81§ã\81¯ã\81ªã\81\84æ\96\87å\97ã\81§æ§\8bæ\88\90ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\82 次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯æ\96\87å\97ã\81®é\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81\9aã\80\81
+その文字配列は、入力された文字列と (自動的に追加される) 終端のヌルバイト (\(aq\e0\(aq) を格納するのに十分な大きさでなければならない。
文字列の入力は、ホワイトスペースが入力されるか、最大フィールド幅に 達するか、のどちらかが起こると停止される。
.TP
\fBc\fP
-\fI「最大フィールド幅」\fP (デフォルトは 1) で指定された幅の文字の列に対応する。 次のポインタは \fIchar\fP
-へのポインタで、すべての文字を格納するのに十分な領域が なければならない (終端のヌルバイトは追加されない)。
+\fIã\80\8cæ\9c\80大ã\83\95ã\82£ã\83¼ã\83«ã\83\89å¹\85ã\80\8d\fP (ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81¯ 1) ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få¹\85ã\81®æ\96\87å\97ã\81®å\88\97ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\82 次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ \fIchar\fP
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\80\81ã\81\99ã\81¹ã\81¦ã\81®æ\96\87å\97ã\82\92æ ¼ç´\8dã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªé \98å\9f\9fã\81\8c ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84 (çµ\82端ã\81®ã\83\8cã\83«ã\83\90ã\82¤ã\83\88ã\81¯è¿½å\8a ã\81\95ã\82\8cã\81ªã\81\84)ã\80\82
通常行われる先頭のホワイトスペースの読み飛ばしは行われない。 先頭のホワイトスペースを読み飛ばすためには、
フォーマット文の中で明示的にスペースを使用すれば良い。
.TP
\fB\&[\fP
-格納された文字列のうちから取り出された、 指定された文字の集合で構成される空ではない文字の列に対応する。 次のポインタは \fIchar\fP
-へのポインタでなければならず、 そこには文字列中のすべての文字と終端のヌルバイト を格納するための十分な領域がなければならない。
+æ ¼ç´\8dã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81®ã\81\86ã\81¡ã\81\8bã\82\89å\8f\96ã\82\8aå\87ºã\81\95ã\82\8cã\81\9fã\80\81 æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fæ\96\87å\97ã\81®é\9b\86å\90\88ã\81§æ§\8bæ\88\90ã\81\95ã\82\8cã\82\8b空ã\81§ã\81¯ã\81ªã\81\84æ\96\87å\97ã\81®å\88\97ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\80\82 次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ \fIchar\fP
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81\9aã\80\81 ã\81\9dã\81\93ã\81«ã\81¯æ\96\87å\97å\88\97ä¸ã\81®ã\81\99ã\81¹ã\81¦ã\81®æ\96\87å\97ã\81¨çµ\82端ã\81®ã\83\8cã\83«ã\83\90ã\82¤ã\83\88 ã\82\92æ ¼ç´\8dã\81\99ã\82\8bã\81\9fã\82\81ã\81®å\8d\81å\88\86ã\81ªé \98å\9f\9fã\81\8cã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
通常行われる先頭のホワイトスペースの読み飛ばしは行われない。 この文字列は特別な集合の中の文字で構成されている。 この集合は 開き括弧 \fB[\fP
と閉じ括弧 \fB]\fP の間の文字で定義される。 開き括弧のあとの最初の文字が曲アクセント記号 (\fB^\fP)
の場合、集合はこれらの文字を含まないものとなる。 閉じ括弧を集合に含ませるためには、この文字を開き括弧または
出現または確保された領域が使い切られた時に終了する。
.TP
\fBp\fP
-(\fBprintf\fP(3) の \fB%p\fP で印字されるような) ポインタ値に対応する。 次のポインタは \fIvoid\fP
-ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿でなければならない。
+(\fBprintf\fP(3) の \fB%p\fP で印字されるような) ポインター値に対応する。 次のポインターは \fIvoid\fP
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼でなければならない。
.TP
\fBn\fP
-ã\81©ã\82\93ã\81ªå\85¥å\8a\9bã\82\82å¿\85è¦\81ã\81¨ã\81\97ã\81ªã\81\84ã\80\82 ã\81\9dã\81®ã\81\8bã\82\8fã\82\8aã\81«ã\80\81 å\85¥å\8a\9bã\81\8bã\82\89ã\81\93ã\81\93ã\81¾ã\81§æ¶\88è²»ã\81\95ã\82\8cã\81\9fæ\96\87å\97æ\95°ã\81\8c次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få ´æ\89\80ã\81« æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¯ \fIint\fP
-へのポインタでなければならない。 変換を抑制するのであれば \fB*\fP 代入抑制文字を使って抑制することができるのだが、
+ã\81©ã\82\93ã\81ªå\85¥å\8a\9bã\82\82å¿\85è¦\81ã\81¨ã\81\97ã\81ªã\81\84ã\80\82 ã\81\9dã\81®ã\81\8bã\82\8fã\82\8aã\81«ã\80\81 å\85¥å\8a\9bã\81\8bã\82\89ã\81\93ã\81\93ã\81¾ã\81§æ¶\88è²»ã\81\95ã\82\8cã\81\9fæ\96\87å\97æ\95°ã\81\8c次ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få ´æ\89\80ã\81« æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯
+\fIint\fP へのポインターでなければならない。 変換を抑制するのであれば \fB*\fP 代入抑制文字を使って抑制することができるのだが、
この変換指定子は変換では「ない」。 C 言語の標準規格では「実行の完了時に返される代入の回数は \fB%n\fP 命令の実行では増加しない」となっているが、
正誤表の内容はこれと矛盾するようである。おそらく、 \fB%n\fP 変換が返り値に与える影響についてはどのような仮定もしないのが 賢明であろう。
.SH 返り値
.SH エラー
.TP
\fBEAGAIN\fP
-\fIstream\fP に対応するファイルディスクリプタが nonblocking となっており、 読み込み操作は停止 (block) することになる。
+\fIstream\fP ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c nonblocking ã\81¨ã\81ªã\81£ã\81¦ã\81\8aã\82\8aã\80\81 èªã\81¿è¾¼ã\81¿æ\93\8dä½\9cã\81¯å\81\9cæ¢ (block) ã\81\99ã\82\8bã\81\93ã\81¨ã\81«ã\81ªã\82\8bã\80\82
.TP
\fBEBADF\fP
-\fIstream\fP に対応するファイルディスクリプタが無効であるが、 読み込み用にオープンされていない。
+\fIstream\fP ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cç\84¡å\8a¹ã\81§ã\81\82ã\82\8bã\81\8cã\80\81 èªã\81¿è¾¼ã\81¿ç\94¨ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.TP
\fBEILSEQ\fP
入力されたバイト列が有効な文字を構成していない。
引き数が十分でない。または \fIformat\fP が NULL である。
.TP
\fBENOMEM\fP
-メモリ不足。
+メモリー不足。
.TP
\fBERANGE\fP
整数変換の結果が、対応する整数型に格納できるサイズを越えてしまう。
元々、 GNU C ライブラリ (glibc) では、 \fBa\fP 文字による文字列入力に対する動的割り当て変換指定子 (dynamic
allocation conversion specifier) を (非標準の拡張として) サポートしている。この機能は少なくとも glibc 2.0
の時点ではすでに存在している。 したがって、以下のようにして、 \fBscanf\fP()
-ã\81«å\85¥å\8a\9bæ\96\87å\97å\88\97ã\81«å¯¾ã\81\97ã\81¦ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\81\95ã\81\9bã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡は \fI*buf\fP で返される。
+ã\81«å\85¥å\8a\9bæ\96\87å\97å\88\97ã\81«å¯¾ã\81\97ã\81¦ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\81\95ã\81\9bã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼は \fI*buf\fP で返される。
char *buf;
scanf("%as", &buf);
ANSI C で定義された型修飾子と変換指定子の組み合わせの中には 意味を
なさないものがある (例えば、 \fB%Ld\fP)。 これらが指定された場合、
Linux 上でははっきりと定義された振る舞いをするかもしれないが、
-他のアーキテクチャでも同様になっているとは限らない。
+ä»\96ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\82\82å\90\8cæ§\98ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81¨ã\81¯é\99\90ã\82\89ã\81ªã\81\84ã\80\82
それゆえに、ほとんどの場合、 ANSI C で定義されていない修飾子を使用した
方が良い。すなわち、 \fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, \fBX\fP 変換や \fBll\fP
と組み合わせる場合には、 \fBL\fP の代わりに \fBq\fP を使用した方が良い。
POSIX.1\-2001.
.SH 注意
.\" But not on NPTL, where sem_destroy () is a no-op..
-名前なしセマフォは、そのセマフォが置かれているメモリが解放される前に、 \fBsem_destroy\fP()
+å\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 \fBsem_destroy\fP()
を使って破棄しておくべきである。これを行わなかった場合、実装によっては リソースのリークが起こりえる。
.SH 関連項目
\fBsem_init\fP(3), \fBsem_post\fP(3), \fBsem_wait\fP(3), \fBsem_overview\fP(7)
\fIpshared\fP が 0 の場合、セマフォはプロセス内のスレッド間で共有される。 セマフォはすべてのスレッドから参照可能なアドレスに配置すべきである
(例えば、大域変数や、ヒープ上に動的に割り当てられた変数など)。
-\fIpshared\fP が 0 以外の場合、セマフォはプロセス間で共有される。セマフォは 共有メモリ領域に配置すべきである
+\fIpshared\fP が 0 以外の場合、セマフォはプロセス間で共有される。セマフォは 共有メモリー領域に配置すべきである
(\fBshm_open\fP(3), \fBmmap\fP(2), \fBshmget\fP(2) 参照)。 (\fBfork\fP(2)
-で生成された子プロセスは親プロセスのメモリマッピングを継承するため、 子プロセスもセマフォにアクセスできる。)
-共有メモリ領域にアクセスできるプロセスならば、どのプロセスでも \fBsem_post\fP(3) や \fBsem_wait\fP(3)
+ã\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æ\89¿ã\81\99ã\82\8bã\81\9fã\82\81ã\80\81 å\90ã\83\97ã\83ã\82»ã\82¹ã\82\82ã\82»ã\83\9eã\83\95ã\82©ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8dã\82\8bã\80\82)
+共有メモリー領域にアクセスできるプロセスならば、どのプロセスでも \fBsem_post\fP(3) や \fBsem_wait\fP(3)
などを使ってセマフォを操作できる。
すでに初期化済のセマフォを初期化した場合の挙動は定義されていない。
.\" In reality the filesystem IDs are used on Linux.
\fIoflag\fP 引き数には、 \fBsem_open\fP() の動作を制御するフラグを指定する (oflag の値の定義は
\fI<fcntl.h>\fP のインクルードにより得られる)。 \fIoflag\fP に \fBO_CREAT\fP
-が指定されると、まだ存在しない場合にはそのセマフォが作成される。 セマフォの所有者 (ユーザ ID)、グループ所有権 (グループ ID) には、
+が指定されると、まだ存在しない場合にはそのセマフォが作成される。 セマフォの所有者 (ユーザー ID)、グループ所有権 (グループ ID) には、
それぞれ呼び出し元プロセスの実効 UID、実効 GID が設定される。 \fIoflag\fP に \fBO_CREAT\fP と \fBO_EXCL\fP
の両方が指定された場合、指定された名前 \fIname\fP のセマフォがすでに存在するとエラーが返される。
.PP
\fIoflag\fP に \fBO_CREAT\fP を指定する場合、さらに引き数が 2 つ必要である。 \fImode\fP 引き数は、 \fBopen\fP(2)
と同じように、新しいセマフォに設定されるアクセス許可 (permission) を 指定する。許可設定はプロセスの umask でマスクされる
(許可ビットのシンボル定義は \fI<sys/stat.h>\fP のインクルードにより得られる)。
-セマフォにアクセスしようとするユーザは、読み出し許可と書き込み許可の 両方を得る必要がある。 \fIvalue\fP
+ã\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¯ã\81® 両æ\96¹ã\82\92å¾\97ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82 \fIvalue\fP
引き数は新しいセマフォの初期値を指定する。 \fBO_CREAT\fP が指定され、指定した名前 \fIname\fP のセマフォがすでに存在する場合、
\fImode\fP と \fIvalue\fP は無視される。
.SH 返り値
\fBO_CREAT\fP が指定されたが、 \fIname\fP が適切な形式ではなかった。
.TP
\fBENOMEM\fP
-十分なメモリがない。
+å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.SH 準拠
POSIX.1\-2001.
.SH 関連項目
.SH 準拠
POSIX.1\-2001.
.SH 注意
-\fBsem_post\fP() は async\-signal\-safe である。 つまり、シグナルハンドラの中でも安全に呼び出すことができる。
+\fBsem_post\fP() ã\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§ã\82\82å®\89å\85¨ã\81«å\91¼ã\81³å\87ºã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
.SH 例
\fBsem_wait\fP(3) 参照。
.SH 関連項目
.SH 説明
\fBsem_wait\fP() は \fIsem\fP が指すセマフォの値を 1 減らす (ロックする)。 セマフォの値が 0
より大きい場合、減算が実行され、関数は直ちに復帰する。 セマフォの現在値が 0 の場合には、減算を実行できるようになる (つまり、セマフォの値が 0
-より大きな値になる) まで、もしくは シグナルハンドラによって呼び出しが中断されるまで、 関数呼び出しは停止 (block) する。
+ã\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
\fBsem_trywait\fP() は \fBsem_wait\fP() と同じだが、セマフォ値の減算をすぐに実行できなかった場合に、 停止 (block)
するのではなくエラーで復帰する (\fIerrno\fP に \fBEAGAIN\fP がセットされる) 点が異なる。
\fBsem_timedwait\fP() は \fBsem_wait\fP() と同じだが、セマフォ値の減算をすぐに実行できなかった場合に
関数呼び出しが停止する時間の上限を \fIabs_timeout\fP で指定する点が異なる。 \fIabs_timeout\fP
-引き数は、タイムアウト時刻を指定する構造体へのポインタである。 この構造体には、タイムアウト時刻を時刻紀元 (Epoch; 1970\-01\-01
+å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\82¿ã\82¤ã\83 ã\82¢ã\82¦ã\83\88æ\99\82å\88»ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bæ§\8bé\80 ä½\93ã\81¸ã\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)) からの 経過時間 (秒+ナノ秒) で指定する。 構造体は以下のように定義されている:
.nf
.SH エラー
.TP
\fBEINTR\fP
-呼び出しはシグナルハンドラにより中断された。 \fBsignal\fP(7) 参照。
+å\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 \fBsignal\fP(7) å\8f\82ç\85§ã\80\82
.TP
\fBEINVAL\fP
\fIsem\fP は有効なセマフォではない。
.SH 注意
.\" sem_wait() is always interrupted on most other implementations,
.\" but on FreeBSD 5.4 SA_RESTART does cause restarting.
-ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81¯ã\80\81 \fBsigaction\fP(2) ã\81® \fBSA_RESTART\fP ã\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
-停止している場合、シグナルハンドラにより常に中断される。
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯ã\80\81 \fBsigaction\fP(2) ã\81® \fBSA_RESTART\fP
+フラグを使用しているかどうかに関わらず、これらの関数の呼び出しが 停止している場合、シグナルハンドラーにより常に中断される。
.SH 例
.PP
以下に示す (ちょっとした) プログラムは名前なしセマフォの操作を行う。 プログラムはコマンドライン引き数を 2 つ取る。 最初の引き数には、
-\fBSIGALRM\fP ã\82·ã\82°ã\83\8aã\83«ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\81\9fã\82\81ã\81®ã\82¢ã\83©ã\83¼ã\83 ã\82¿ã\82¤ã\83\9eã\83¼ã\81®è¨å®\9aã\81«ä½¿ã\82\8fã\82\8cã\82\8bå\80¤ã\82\92 ç§\92å\8d\98ä½\8dã\81§æ\8c\87å®\9aã\81\99ã\82\8bã\80\82ã\81\93ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81¯ã\80\81 \fImain()\fP å\86\85ã\81§
-\fBsem_timedwait\fP() を使って待っているセマフォを、 \fBsem_post\fP(3) を使って加算する。 2番目の引き数には、
+\fBSIGALRM\fP ã\82·ã\82°ã\83\8aã\83«ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\81\9fã\82\81ã\81®ã\82¢ã\83©ã\83¼ã\83 ã\82¿ã\82¤ã\83\9eã\83¼ã\81®è¨å®\9aã\81«ä½¿ã\82\8fã\82\8cã\82\8bå\80¤ã\82\92 ç§\92å\8d\98ä½\8dã\81§æ\8c\87å®\9aã\81\99ã\82\8bã\80\82ã\81\93ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯ã\80\81 \fImain()\fP
+内で \fBsem_timedwait\fP() を使って待っているセマフォを、 \fBsem_post\fP(3) を使って加算する。 2番目の引き数には、
\fBsem_timedwait\fP() に渡すタイムアウトまでの時間を秒単位で指定する。
.in +4n
.TH SETALIASENT 3 2003\-09\-09 GNU "Linux Programmer's Manual"
.SH 名前
setaliasent, endaliasent, getaliasent, getaliasent_r, getaliasbyname,
-getaliasbyname_r \- エイリアスエントリを読み込む
+getaliasbyname_r \- ã\82¨ã\82¤ã\83ªã\82¢ã\82¹ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92èªã\81¿è¾¼ã\82\80
.SH 書式
\fB#include <aliases.h>\fP
.sp
メールエイリアスを保持するエイリアスデータベースがある。 (どのデータベースがサポートされているかを調べるには、 getent \-\-help
を実行すること。) エイリアスデータベースにアクセスするために、 6 つの関数が提供されている。
.PP
-\fBgetaliasent\fP() 関数はエイリアスデータベースから取り出した グループ情報を含む構造体へのポインタを返す。 1
-å\9b\9eç\9b®ã\81«é\96¢æ\95°ã\81\8cå\91¼ã\81°ã\82\8cã\81\9fã\81¨ã\81\8dã\81«ã\81¯ã\80\81æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\92è¿\94ã\81\99; ã\81\9dã\82\8c以é\99\8dã\81¯ã\81\9dã\81®å¾\8cã\81®ã\82¨ã\83³ã\83\88ã\83ªを返す。
+\fBgetaliasent\fP() é\96¢æ\95°ã\81¯ã\82¨ã\82¤ã\83ªã\82¢ã\82¹ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8bã\82\89å\8f\96ã\82\8aå\87ºã\81\97ã\81\9f ã\82°ã\83«ã\83¼ã\83\97æ\83\85å ±ã\82\92å\90«ã\82\80æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 1
+å\9b\9eç\9b®ã\81«é\96¢æ\95°ã\81\8cå\91¼ã\81°ã\82\8cã\81\9fã\81¨ã\81\8dã\81«ã\81¯ã\80\81æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¿\94ã\81\99; ã\81\9dã\82\8c以é\99\8dã\81¯ã\81\9dã\81®å¾\8cã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼を返す。
.PP
-\fBsetaliasent\fP() 関数はファイルポインタをエイリアスデータベースの先頭に巻き戻す。
+\fBsetaliasent\fP() é\96¢æ\95°ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92ã\82¨ã\82¤ã\83ªã\82¢ã\82¹ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®å\85\88é ã\81«å·»ã\81\8dæ\88»ã\81\99ã\80\82
.PP
\fBendaliasent\fP() 関数はエイリアスデータベースをクローズする。
.PP
\fBgetaliasent_r\fP() 関数は上記の関数のリエントラント版である。 要求された構造体は第 1 引き数に格納されるが、
プログラマは他の引き数も埋めてやる必要がある。 充分な領域が与えられないと、この関数は失敗する。
.PP
-関数 \fBgetaliasbyname\fP() は name 引き数をとり、エイリアスデータベースを検索する。 エントリは \fIstruct
-aliasent\fP へのポインタとして返される。
+é\96¢æ\95° \fBgetaliasbyname\fP() ã\81¯ name å¼\95ã\81\8dæ\95°ã\82\92ã\81¨ã\82\8aã\80\81ã\82¨ã\82¤ã\83ªã\82¢ã\82¹ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\82\92æ¤\9cç´¢ã\81\99ã\82\8bã\80\82 ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ \fIstruct
+aliasent\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\81\97ã\81¦è¿\94ã\81\95ã\82\8cã\82\8bã\80\82
.PP
\fBgetaliasbyname_r\fP() は上記の関数のリエントラント版である。 要求された構造体は第 2 引き数に格納されるが、
プログラマは他の引き数も埋めてやる必要がある。 充分な領域が与えられないと、この関数は失敗する。
.\"
.TH SETBUF 3 2014\-08\-19 Linux "Linux Programmer's Manual"
.SH 名前
-setbuf, setbuffer, setlinebuf, setvbuf \- ストリームのバッファリングの操作
+setbuf, setbuffer, setlinebuf, setvbuf \- ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81®æ\93\8dä½\9c
.SH 書式
.nf
\fB#include <stdio.h>\fP
.sp
\fBsetbuffer\fP(), \fBsetlinebuf\fP(): _BSD_SOURCE
.SH 説明
-ã\83\90ã\83\83ã\83\95ã\82¡ã\83ªã\83³ã\82°ã\81«ã\81¯ unbuffered, block buffered, line buffered ã\81®3ã\81¤ã\81®ã\82¿ã\82¤ã\83\97ã\81\8c ã\81\82ã\82\8bã\80\82å\87ºå\8a\9bã\82¹ã\83\88ã\83ªã\83¼ã\83 のタイプが
-unbuffered の場合、データを書き込むとすぐに出 力先ファイルに書き込まれるかターミナルに表示される。block buffered の場合、文
-字の読み書きはブロック単位でいっぺんに行われる。line buffered の場合、 新しい行が出力されるか、ターミナルデバイスに接続しているストリーム
-(通常、\fIstdin\fP) から新しい行が入力されるまで文字がたくわえられる。 ブロックを強制的に出力するには \fBfflush\fP(3) 関数を使う。
-(\fBfclose\fP(3) を参照のこと) 通常、ファイルはすべて block buffered である。ファイルに対して 初めて入出力処理を行うと
-\fBmalloc\fP(3) が呼び出されバッファが獲得される。もし ストリームが (通常、 \fIstdout\fP がそうであるように)
-ã\82¿ã\83¼ã\83\9fã\83\8aã\83«ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ line buffered ã\81¨ ã\81ªã\82\8bã\80\82æ¨\99æº\96ã\82¨ã\83©ã\83¼å\87ºå\8a\9b \fIstderr\fP ã\81¯ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯å¸¸ã\81«
-unbuffered である。
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81«ã\81¯ unbuffered, block buffered, line buffered ã\81®3ã\81¤のタイプが
+ある。出力ストリームのタイプが unbuffered の場合、データを書き込むとすぐに出 力先ファイルに書き込まれるかターミナルに表示される。block
+buffered の場合、文 字の読み書きはブロック単位でいっぺんに行われる。line buffered の場合、
+新しい行が出力されるか、ターミナルデバイスに接続しているストリーム (通常、\fIstdin\fP) から新しい行が入力されるまで文字がたくわえられる。
+ブロックを強制的に出力するには \fBfflush\fP(3) 関数を使う。 (\fBfclose\fP(3) を参照のこと) 通常、ファイルはすべて
+block buffered である。ファイルに対して 初めて入出力処理を行うと \fBmalloc\fP(3) が呼び出されバッファーが獲得される。もし
+ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81\8c (é\80\9a常ã\80\81 \fIstdout\fP ã\81\8cã\81\9dã\81\86ã\81§ã\81\82ã\82\8bã\82\88ã\81\86ã\81«) ã\82¿ã\83¼ã\83\9fã\83\8aã\83«ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ line buffered ã\81¨
+なる。標準エラー出力 \fIstderr\fP はデフォルトでは常に unbuffered である。
.PP
-\fBsetvbuf\fP() 関数は、オープンしている任意のストリームに対してバッファを変更できる。 引き数 \fImode\fP は、次の 3
+\fBsetvbuf\fP() é\96¢æ\95°ã\81¯ã\80\81ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81¦ã\81\84ã\82\8bä»»æ\84\8fã\81®ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81«å¯¾ã\81\97ã\81¦ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92å¤\89æ\9b´ã\81§ã\81\8dã\82\8bã\80\82 å¼\95ã\81\8dæ\95° \fImode\fP ã\81¯ã\80\81次ã\81® 3
つのマクロのうちいずれかである:
.RS
.TP
.RE
.PP
unbuffered のファイルを除き、 \fIbuf\fP 引数は \fIsize\fP
-ã\83\90ã\82¤ã\83\88以ä¸\8aã\81®å¤§ã\81\8dã\81\95ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92æ\8c\87ã\81\97ã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\81¯ç\8f¾å\9c¨ã\81® ã\83\90ã\83\83ã\83\95ã\82¡の代わりに用いられる。もし、引数 \fIbuf\fP が NULL
-ã\81ªã\82\89ã\81°ã\80\81ã\83¢ã\83¼ã\83\89ã\81 ã\81\91ã\81\8cå¤\89æ\9b´ã\81\95ã\82\8cã\82\8bã\80\82 æ\96°ã\81\97ã\81\84ã\83\90ã\83\83ã\83\95ã\82¡ã\81¯æ¬¡ã\81«èªã\81¿æ\9b¸ã\81\8dã\81\97ã\81\9fé\9a\9bã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\82\8bã\80\82 \fBsetvbuf\fP() é\96¢æ\95°ã\81¯ã\80\81ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81\9få¾\8cã\80\81
-そのストリームに対して何らかの操作をする前にのみ使用できる。
+ã\83\90ã\82¤ã\83\88以ä¸\8aã\81®å¤§ã\81\8dã\81\95ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92æ\8c\87ã\81\97ã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82ã\81\93ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯ç\8f¾å\9c¨ã\81® ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼の代わりに用いられる。もし、引数 \fIbuf\fP が NULL
+ã\81ªã\82\89ã\81°ã\80\81ã\83¢ã\83¼ã\83\89ã\81 ã\81\91ã\81\8cå¤\89æ\9b´ã\81\95ã\82\8cã\82\8bã\80\82 æ\96°ã\81\97ã\81\84ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯æ¬¡ã\81«èªã\81¿æ\9b¸ã\81\8dã\81\97ã\81\9fé\9a\9bã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\82\8bã\80\82 \fBsetvbuf\fP()
+関数は、ストリームをオープンした後、 そのストリームに対して何らかの操作をする前にのみ使用できる。
.PP
他の 3 つの関数は \fBsetvbuf\fP() の呼び出しに単純に置き換えることができる。 \fBsetbuf\fP() 関数は、
.PP
setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ);
.in
.PP
-ã\81¨å\85¨ã\81\8få\90\8cç\89ã\81 ã\81\97ã\80\81 \fBsetbuffer\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\82µã\82¤ã\82ºã\81\8cã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ \fBBUFSIZ\fP ã\81§ã\81¯ã\81ªã\81\8få¼\95æ\95°ã\81§ä¸\8eã\81\88ã\82\89ã\82\8cã\82\8bç\82¹ä»¥å¤\96ã\81¯å\90\8cã\81\98ã\81§ã\81\82ã\82\8bã\80\82
-\fBsetlinebuf\fP() 関数は以下と同じである。
+ã\81¨å\85¨ã\81\8få\90\8cç\89ã\81 ã\81\97ã\80\81 \fBsetbuffer\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\81\8cã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ \fBBUFSIZ\fP
+ではなく引数で与えられる点以外は同じである。 \fBsetlinebuf\fP() 関数は以下と同じである。
.PP
.in +4n
setvbuf(stream, NULL, _IOLBF, 0);
\fIname\fP が NULL であるか、長さが 0 の文字列を指しているか、 \(aq=\(aq 文字が含まれている。
.TP
\fBENOMEM\fP
-環境に新しい変数を追加するのに十分なメモリがない。
+ç\92°å¢\83ã\81«æ\96°ã\81\97ã\81\84å¤\89æ\95°ã\82\92追å\8a ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.SH 準拠
4.3BSD, POSIX.1\-2001.
.SH 注意
LC_TIME 日付と時刻の表示方法
.TE
.PP
-上の表でアスタリスクが付い ているたカテゴリは GNU 拡張である。 ロケールのカテゴリーの詳細な情報は \fBlocale\fP(7) を参照。
+ä¸\8aã\81®è¡¨ã\81§ã\82¢ã\82¹ã\82¿ã\83ªã\82¹ã\82¯ã\81\8cä»\98ã\81\84 ã\81¦ã\81\84ã\82\8bã\81\9fã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81¯ GNU æ\8b¡å¼µã\81§ã\81\82ã\82\8bã\80\82 ã\83ã\82±ã\83¼ã\83«ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®è©³ç´°ã\81ªæ\83\85å ±ã\81¯ \fBlocale\fP(7) ã\82\92å\8f\82ç\85§ã\80\82
.PP
引き数 \fIlocale\fP は \fIcategory\fP に設定する文字列へのポインターである。 この文字列はよく知られた定数である "C" や
"da_DK" などでも良いし (以下を参照)、他のときに \fBsetlocale\fP() を呼び出した際に返された、内部用の文字列でも良い。
.PP
\fIlocale\fP が空文字列 \fB""\fP の場合、ロケールの各部分の設定には環境変数が参照される。 その詳細は実装依存である。 glibc
-の場合、まず最初に (どんな \fIcategory\fP に対しても) 環境変数 \fBLC_ALL\fP が検査される。 次にカテゴリ (category)
+の場合、まず最初に (どんな \fIcategory\fP に対しても) 環境変数 \fBLC_ALL\fP が検査される。 次にカテゴリー (category)
と同じ名前の環境変数 (上記の表を参照) が検査され、最後に環境変数 \fBLANG\fP が検査される。 最初に見つかった環境変数を使用する。
その値がロケール指定として正しくなければ、ロケールは変更されず、 \fBsetlocale\fP() は NULL を返す。
.PP
\fBstrxfrm\fP(3), \fBwcsxfrm\fP(3) を用いる。
.SH 返り値
\fBsetlocale\fP() の呼び出しに成功すると、 そのロケール集合に対応する内部文字列 (opaque string) を返す。
-この文字列は静的な記憶域に割り当てられているかもしれない。 この返って来た文字列を、カテゴリ指定と共に、 のちの setlocale
+この文字列は静的な記憶域に割り当てられているかもしれない。 この返って来た文字列を、カテゴリー指定と共に、 のちの setlocale
の呼び出しに指定すれば、 プロセスのその部分のロケールが復元される。 設定に失敗した場合には、返り値は NULL になる。
.SH 準拠
C89, C99, POSIX.1\-2001.
.TH SETNETGRENT 3 2014\-05\-28 GNU "Linux Programmer's Manual"
.SH 名前
setnetgrent, endnetgrent, getnetgrent, getnetgrent_r, innetgr \-
-ネットワークグループのエントリを操作する
+ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82°ã\83«ã\83¼ã\83\97ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92æ\93\8dä½\9cã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <netdb.h>\fP
\fBinnetgr\fP(): _BSD_SOURCE || _SVID_SOURCE
.ad b
.SH 説明
-\fInetgroup\fP は SunOS で考案されたものである。ネットグループのデータベースの エントリは、 3 つの文字列のリスト
+\fInetgroup\fP ã\81¯ SunOS ã\81§è\80\83æ¡\88ã\81\95ã\82\8cã\81\9fã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82ã\83\8dã\83\83ã\83\88ã\82°ã\83«ã\83¼ã\83\97ã\81®ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81® ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ã\80\81 3 ã\81¤ã\81®æ\96\87å\97å\88\97ã\81®ã\83ªã\82¹ã\83\88
(\fIhostname\fP, \fIusername\fP, \fIdomainname\fP) もしくはネットグループ名である。
前記のリストの各要素は空であってもよい。 空は何とでも一致することを意味する。 本ページで説明する関数を使うことで、ネットグループのデータベースに
アクセスすることができる。どのデータベースが検索されるかは \fI/etc/nsswitch.conf\fP ファイルで定義されている。
.PP
\fBsetnetgrent\fP() コールは、この後で呼ばれる \fBgetnetgrent\fP() コールが検索するネットグループを定める。
-\fBgetnetgrent\fP() 関数はネットグループの次のエントリを取得し、 \fIhost\fP, \fIuser\fP, \fIdomain\fP
-ã\81«ã\83\9dã\82¤ã\83³ã\82¿ã\82\92å\85¥ã\82\8cã\81¦è¿\94ã\82\8bã\80\82ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\81¯ã\80\81対å¿\9cã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªがどんな文字列とも一致することを意味する。
-得られたポインタは、ネットグループ関係の関数のいずれかが呼ばれるまでの 間だけ有効である。この問題を避けるためには GNU 拡張の関数
-\fBgetnetgrent_r\fP() ã\82\92使ã\81\86ã\81¨ã\82\88ã\81\84ã\80\82ã\81\93ã\81®é\96¢æ\95°ã\81¯å\91¼ã\81³å\87ºã\81\97å\81´ã\81\8cç\94¨æ\84\8fã\81\97ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\81« æ\96\87å\97å\88\97ã\82\92æ ¼ç´\8dã\81\99ã\82\8bã\80\82å\89²ã\82\8aå½\93ã\81¦æ¸\88ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92å\85¨ã\81¦è§£æ\94¾ã\81\99ã\82\8bã\81«ã\81¯
-\fBendnetgrent\fP() を使用する。
+\fBgetnetgrent\fP() é\96¢æ\95°ã\81¯ã\83\8dã\83\83ã\83\88ã\82°ã\83«ã\83¼ã\83\97ã\81®æ¬¡ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\96å¾\97ã\81\97ã\80\81 \fIhost\fP, \fIuser\fP, \fIdomain\fP
+ã\81«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å\85¥ã\82\8cã\81¦è¿\94ã\82\8bã\80\82ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ã\80\81対å¿\9cã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼がどんな文字列とも一致することを意味する。
+å¾\97ã\82\89ã\82\8cã\81\9fã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ã\80\81ã\83\8dã\83\83ã\83\88ã\82°ã\83«ã\83¼ã\83\97é\96¢ä¿\82ã\81®é\96¢æ\95°ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81\8cå\91¼ã\81°ã\82\8cã\82\8bã\81¾ã\81§ã\81® é\96\93ã\81 ã\81\91æ\9c\89å\8a¹ã\81§ã\81\82ã\82\8bã\80\82ã\81\93ã\81®å\95\8fé¡\8cã\82\92é\81¿ã\81\91ã\82\8bã\81\9fã\82\81ã\81«ã\81¯ GNU æ\8b¡å¼µã\81®é\96¢æ\95°
+\fBgetnetgrent_r\fP() ã\82\92使ã\81\86ã\81¨ã\82\88ã\81\84ã\80\82ã\81\93ã\81®é\96¢æ\95°ã\81¯å\91¼ã\81³å\87ºã\81\97å\81´ã\81\8cç\94¨æ\84\8fã\81\97ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«
+文字列を格納する。割り当て済のバッファーを全て解放するには \fBendnetgrent\fP() を使用する。
.PP
ほとんどの場合、 (\fIhostname\fP, \fIusername\fP, \fIdomainname\fP)
の3要素の組がネットグループのメンバーかどうかを確認したいだけであろう。 \fBinnetgr\fP()
-関数を使うと、上記の3つの関数を呼び出さずにこの目的を達成できる。 もう一度書いておくが、NULL ポインタはワイルドカードであり、
+é\96¢æ\95°ã\82\92使ã\81\86ã\81¨ã\80\81ä¸\8aè¨\98ã\81®3ã\81¤ã\81®é\96¢æ\95°ã\82\92å\91¼ã\81³å\87ºã\81\95ã\81\9aã\81«ã\81\93ã\81®ç\9b®ç\9a\84ã\82\92é\81\94æ\88\90ã\81§ã\81\8dã\82\8bã\80\82 ã\82\82ã\81\86ä¸\80度æ\9b¸ã\81\84ã\81¦ã\81\8aã\81\8fã\81\8cã\80\81NULL ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ã\83¯ã\82¤ã\83«ã\83\89ã\82«ã\83¼ã\83\89ã\81§ã\81\82ã\82\8aã\80\81
あらゆる文字列と一致する。この関数はスレッドセーフである。
.SH 返り値
これらの関数は成功すると 1 を、失敗すると 0 を返す。
.\"
.TH SHM_OPEN 3 2015\-01\-22 Linux "Linux Programmer's Manual"
.SH 名前
-shm_open, shm_unlink \- POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトの作成/オープン/削除を行う
+shm_open, shm_unlink \- POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトの作成/オープン/削除を行う
.SH 書式
\fB#include <sys/mman.h>\fP
.br
.sp
\fI\-lrt\fP でリンクする。
.SH 説明
-\fBshm_open\fP() ã\81¯ã\80\81POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトを新規に作成/オープンしたり、 すでに存在するオブジェクトをオープンしたりする。
-POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¯ã\80\81å®\9fé\9a\9bã\81«ã\81¯ã\80\81é\96¢ä¿\82ã\81®ã\81ªã\81\84ã\83\97ã\83ã\82»ã\82¹ã\81\8c å\85±æ\9c\89ã\83¡ã\83¢ã\83ªの同じ領域を \fBmmap\fP(2)
+\fBshm_open\fP() ã\81¯ã\80\81POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトを新規に作成/オープンしたり、 すでに存在するオブジェクトをオープンしたりする。
+POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¯ã\80\81å®\9fé\9a\9bã\81«ã\81¯ã\80\81é\96¢ä¿\82ã\81®ã\81ªã\81\84ã\83\97ã\83ã\82»ã\82¹ã\81\8c å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼の同じ領域を \fBmmap\fP(2)
するために使用することができる手段である。 \fBshm_unlink\fP() は、逆の操作、つまり以前に \fBshm_open\fP()
で作成されたオブジェクトの削除を行う。
.LP
.\" required permissions if a user wants to create a shared memory
.\" object in that subdirectory.
\fBshm_open\fP() の動作は \fBopen\fP(2) とよく似ている。 \fIname\fP
-ã\81§ä½\9cæ\88\90ã\81\97ã\81\9fã\82\8aã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 移æ¤\8dæ\80§ã\82\92æ\8c\81ã\81\9fã\81\9bã\82\8bã\81\9fã\82\81ã\81«ã\81¯ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトは \fI/somename\fP
+ã\81§ä½\9cæ\88\90ã\81\97ã\81\9fã\82\8aã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 移æ¤\8dæ\80§ã\82\92æ\8c\81ã\81\9fã\81\9bã\82\8bã\81\9fã\82\81ã\81«ã\81¯ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトは \fI/somename\fP
という形式の名前で識別し、 その名前は、最大で \fBNAME_MAX\fP (すなわち 255) 文字のヌル終端された文字列で、
スラッシュで始まり、スラッシュ以外の文字が 1 文字以上続く形式 にすべきである。
.LP
を指定する。
.TP 1.1i
\fBO_RDONLY\fP
-èªã\81¿å\87ºã\81\97ã\82¢ã\82¯ã\82»ã\82¹ç\94¨ã\81«ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトは、 読み出し (\fBPROT_READ\fP)
+èªã\81¿å\87ºã\81\97ã\82¢ã\82¯ã\82»ã\82¹ç\94¨ã\81«ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトは、 読み出し (\fBPROT_READ\fP)
アクセスでのみ \fBmmap\fP(2) することができる。
.TP
\fBO_RDWR\fP
\fBO_CREAT\fP
.\" In truth it is actually the filesystem IDs on Linux, but these
.\" are nearly always the same as the effective IDs. (MTK, Jul 05)
-å\98å\9c¨ã\81\97ã\81ªã\81\84å ´å\90\88ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82 ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\83¦ã\83¼ã\82¶とグループの所有権は、 呼び出し元プロセスの対応する実効 ID が使われ、
+å\98å\9c¨ã\81\97ã\81ªã\81\84å ´å\90\88ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82 ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\83¦ã\83¼ã\82¶ã\83¼とグループの所有権は、 呼び出し元プロセスの対応する実効 ID が使われ、
オブジェクトの許可ビットは \fImode\fP の下位 9 ビットに基づいて設定される。ただし、 ファイルモード作成マスク (\fBumask\fP(2)
参照) に設定されている値は、新規オブジェクトに関してはクリアされる。 \fImode\fP を定義するために使用できるマクロ定数(群)は
\fBopen\fP(2) に記載されている (これらの定数のシンボル定義は \fI<sys/stat.h>\fP
のインクルードにより得られる)。
.sp
-æ\96°è¦\8fã\81«ä½\9cæ\88\90ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトは長さ 0 で初期化される。 オブジェクトの大きさは \fBftruncate\fP(2) を使って設定できる。
-å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトとして新規に確保されたバイトは自動的に 0 に初期化される。
+æ\96°è¦\8fã\81«ä½\9cæ\88\90ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトは長さ 0 で初期化される。 オブジェクトの大きさは \fBftruncate\fP(2) を使って設定できる。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトとして新規に確保されたバイトは自動的に 0 に初期化される。
.TP
\fBO_EXCL\fP
-\fBO_CREAT\fP ã\81\8cä¸\80ç·\92ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81 \fIname\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトが既に存在した場合、 エラーを返す。
+\fBO_CREAT\fP ã\81\8cä¸\80ç·\92ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81 \fIname\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトが既に存在した場合、 エラーを返す。
オブジェクトの存在確認と、存在しなかった場合のオブジェクト作成は、 必ず一連の操作として実行される (performed atomically)。
.TP
\fBO_TRUNC\fP
-å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトがすでに存在した場合、 そのオブジェクトを 0 バイトに切り詰める。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトがすでに存在した場合、 そのオブジェクトを 0 バイトに切り詰める。
.LP
これらのフラグ値の定義は \fI<fcntl.h>\fP のインクルードにより得られる。
.LP
-æ\88\90å\8a\9fã\81\97ã\81¦å®\8cäº\86ã\81\97ã\81\9få ´å\90\88ã\80\81 \fBshm_open\fP() ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bæ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を返す。
-ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹å\86\85ã\81§é\81\8eå\8e»ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84 ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿の中で最も小さな数になることが保証される。
-\fBFD_CLOEXEC\fP ã\83\95ã\83©ã\82° (\fBfcntl\fP(2) ã\82\92å\8f\82ç\85§) ã\81\8cã\80\81ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿に設定される。
+æ\88\90å\8a\9fã\81\97ã\81¦å®\8cäº\86ã\81\97ã\81\9få ´å\90\88ã\80\81 \fBshm_open\fP() ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bæ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を返す。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹å\86\85ã\81§é\81\8eå\8e»ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼の中で最も小さな数になることが保証される。
+\fBFD_CLOEXEC\fP ã\83\95ã\83©ã\82° (\fBfcntl\fP(2) ã\82\92å\8f\82ç\85§) ã\81\8cã\80\81ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼に設定される。
-é\80\9a常ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は、この後続けて実行される \fBftruncate\fP(2) (新規に作成されたオブジェクトの場合のみ) と
-\fBmmap\fP(2) ã\81®å\91¼ã\81³å\87ºã\81\97ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 \fBmmap\fP(2) ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9få¾\8cã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿をクローズしてもよく、
-ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\81¦ã\82\82ã\83¡ã\83¢ã\83ªã\83»マッピングに影響を与えることはない。
+é\80\9a常ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は、この後続けて実行される \fBftruncate\fP(2) (新規に作成されたオブジェクトの場合のみ) と
+\fBmmap\fP(2) ã\81®å\91¼ã\81³å\87ºã\81\97ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 \fBmmap\fP(2) ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9få¾\8cã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼をクローズしてもよく、
+ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\81¦ã\82\82ã\83¡ã\83¢ã\83ªã\83¼マッピングに影響を与えることはない。
\fBshm_unlink\fP() の動作は \fBunlink\fP(2) とよく似ている:
-å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクト名を削除し、すべてのプロセスが処理対象の オブジェクトをアンマップした時点でオブジェクトの割り当てを解除し、
-対応するメモリ領域の内容を破棄する。 \fBshm_unlink\fP() が成功した後で、同じ \fIname\fP を持つオブジェクトに対して
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクト名を削除し、すべてのプロセスが処理対象の オブジェクトをアンマップした時点でオブジェクトの割り当てを解除し、
+対応するメモリー領域の内容を破棄する。 \fBshm_unlink\fP() が成功した後で、同じ \fIname\fP を持つオブジェクトに対して
\fBshm_open\fP() を行うと、 (\fBO_CREAT\fP が指定されていない場合) 失敗する。 (\fBO_CREAT\fP
が指定されている場合、新しく別のオブジェクトが作成される)。
.SH 返り値
-æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 \fBshm_open\fP() ã\81¯é\9d\9eè² ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を返す。 失敗した場合、 \fBshm_open\fP() は \-1 を返す。
+æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 \fBshm_open\fP() ã\81¯é\9d\9eè² ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を返す。 失敗した場合、 \fBshm_open\fP() は \-1 を返す。
\fBshm_unlink\fP() は、成功した場合 0 を、エラーが起こった場合 \-1 を返す。
.SH エラー
失敗した場合、エラーの原因を示すため \fIerrno\fP が設定される。 \fIerrno\fP に設定される値は以下の通りである:
.TP
\fBEACCES\fP
-共有メモリオブジェクトを \fBshm_unlink\fP() する権限がなかった。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92 \fBshm_unlink\fP() ã\81\99ã\82\8b権é\99\90ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBEACCES\fP
指定された \fImode\fP で \fIname\fP を \fBshm_open\fP() する権限がなかった。もしくは、 \fBO_TRUNC\fP
.TP
\fBEEXIST\fP
\fBO_CREAT\fP と \fBO_EXCL\fP の両方が \fBshm_open\fP() に指定されたが、 \fIname\fP
-ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトが既に存在した。
+ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトが既に存在した。
.TP
\fBEINVAL\fP
\fBshm_open\fP() に与えられた \fIname\fP 引き数が不正であった。
.SH 準拠
POSIX.1\-2001.
.LP
-POSIX.1\-2001 には、新規に作成される共有メモリオブジェクトのグループ所有権は、 呼び出し元プロセスの実効グループ ID か
+POSIX.1\-2001 ã\81«ã\81¯ã\80\81æ\96°è¦\8fã\81«ä½\9cæ\88\90ã\81\95ã\82\8cã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\82°ã\83«ã\83¼ã\83\97æ\89\80æ\9c\89権ã\81¯ã\80\81 å\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83ã\82»ã\82¹ã\81®å®\9få\8a¹ã\82°ã\83«ã\83¼ã\83\97 ID ã\81\8b
「システムのデフォルトのグループ ID」 のどちらかに設定される、と書かれている。
.SH 注意
.LP
POSIX は \fBO_RDONLY\fP と \fBO_TRUNC\fP が一緒に指定された場合の動作を未定義にしている。Linux では、
-æ\97¢å\98ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトに対する切り詰め (truncate) は成功する。 しかし、他の UNIX システムでも同じであるとは限らない。
+æ\97¢å\98ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトに対する切り詰め (truncate) は成功する。 しかし、他の UNIX システムでも同じであるとは限らない。
.LP
-Linux 2.4 ã\81«ã\81\8aã\81\91ã\82\8b POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトの実装は 専用のファイルシステムを使用する。そのファイルシステムは通常
+Linux 2.4 ã\81«ã\81\8aã\81\91ã\82\8b POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトの実装は 専用のファイルシステムを使用する。そのファイルシステムは通常
\fI/dev/shm\fP にマウントされる。
.SH 関連項目
\fBclose\fP(2), \fBfchmod\fP(2), \fBfchown\fP(2), \fBfcntl\fP(2), \fBfstat\fP(2),
.\"
.TH SIGINTERRUPT 3 2014\-06\-13 "" "Linux Programmer's Manual"
.SH 名前
-siginterrupt \- ã\82·ã\82°ã\83\8aã\83«ã\81§ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81«å\89²ã\82\8aè¾¼ã\82\80ã\81\93ã\81¨ã\82\92許ã\81\99
+siginterrupt \- シグナルでシステムコールに割り込むことを許す
.SH 書式
.nf
\fB#include <signal.h>\fP
.RE
.ad
.SH 説明
-\fBsiginterrupt\fP() é\96¢æ\95°ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81\8cã\82·ã\82°ã\83\8aã\83« \fIsig\fP ã\81«ã\82\88ã\81£ã\81¦å\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9få¾\8cã\80\81å\86\8då®\9fè¡\8cã\81®é\9a\9bã\81®æ\8c¯ã\82\8bè\88\9eã\81\84ã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82
-\fIflag\fP å¼\95ã\81\8dæ\95°ã\81\8cå\81½ (0) ã\81ªã\82\89ã\81°ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81\8cæ\8c\87å®\9aã\81\97ã\81\9f ã\82·ã\82°ã\83\8aã\83« \fIsig\fP ã\81«ã\82\88ã\81£ã\81¦å\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9få¾\8cã\81«ã\80\81ã\81\9dã\81®ã\82·ã\82¹ã\83\86ã\83 ã\83»コールは
+\fBsiginterrupt\fP() 関数は、システムコールがシグナル \fIsig\fP によって割り込まれた後、再実行の際の振る舞いを変更する。
+\fIflag\fP å¼\95ã\81\8dæ\95°ã\81\8cå\81½ (0) ã\81ªã\82\89ã\81°ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8cæ\8c\87å®\9aã\81\97ã\81\9f ã\82·ã\82°ã\83\8aã\83« \fIsig\fP ã\81«ã\82\88ã\81£ã\81¦å\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9få¾\8cã\81«ã\80\81ã\81\9dã\81®ã\82·ã\82¹ã\83\86ã\83 コールは
再実行される。これは Linux においてデフォルトの動作である。
.PP
-\fIflag\fP å¼\95ã\81\8dæ\95°ã\81\8cç\9c\9f (1) ã\81§ã\83\87ã\83¼ã\82¿ã\81®è»¢é\80\81ã\81\8cå\85¨ã\81\8fè¡\8cã\81ªã\82\8fã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\81ªã\82\89ã\81°ã\80\81 ã\82·ã\82°ã\83\8aã\83« \fIsig\fP ã\81§ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81¯ä¸æ\96ã\81\95ã\82\8cã\81¦ã\80\81\-1
-が返され、 \fIerrno\fP に \fBEINTR\fP が設定される。
+\fIflag\fP å¼\95ã\81\8dæ\95°ã\81\8cç\9c\9f (1) ã\81§ã\83\87ã\83¼ã\82¿ã\81®è»¢é\80\81ã\81\8cå\85¨ã\81\8fè¡\8cã\81ªã\82\8fã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\81ªã\82\89ã\81°ã\80\81 ã\82·ã\82°ã\83\8aã\83« \fIsig\fP ã\81§ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ä¸æ\96ã\81\95ã\82\8cã\81¦ã\80\81\-1 ã\81\8cè¿\94ã\81\95ã\82\8cã\80\81
+\fIerrno\fP に \fBEINTR\fP が設定される。
.PP
-\fIflag\fP å¼\95ã\81\8dæ\95°ã\81\8cç\9c\9f (1) ã\81§ã\83\87ã\83¼ã\82¿ã\81®è»¢é\80\81ã\81\8cé\96\8bå§\8bã\81\95ã\82\8cã\81¦ã\81\84ã\82\8cã\81°ã\80\81 ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82³ã\83¼ã\83«ã\81¯ä¸æ\96ã\81\95ã\82\8cã\80\81ã\81\9dã\82\8cã\81¾ã\81§ã\81«å®\9fé\9a\9bã\81«è»¢é\80\81ã\81\95ã\82\8cã\81\9fã\83\87ã\83¼ã\82¿ ã\81®é\87\8fã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82
+\fIflag\fP 引き数が真 (1) でデータの転送が開始されていれば、 システムコールは中断され、それまでに実際に転送されたデータ の量が返される。
.SH 返り値
\fBsiginterrupt\fP() 関数は成功した場合 0 を返す。 シグナル番号 \fIsig\fP が不正な場合、 \-1 を返し、 \fIerrno\fP
にエラーの原因を示す値を設定する。
をプロセスのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数があるという不幸な事態は、 \fB\%sigsuspend\fP(2)
関数によって解消された。 この関数は (\fIint\fP の代わりに) \fBsigset_t\ *\fP 引き数をとる。
.SS "Linux での注意"
-Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ システムコールとなっている。
+Linux ã\81§ã\81¯ã\80\81ã\81\93ã\81®ã\83«ã\83¼ã\83\81ã\83³ã\81¯ Sparc (sparc64) ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81®ã\81¿ ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¨ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\80\82
.\" Libc4 and libc5 know only about the BSD version.
.\"
\fBsigqueue\fP(): _POSIX_C_SOURCE\ >=\ 199309L
.SH 説明
\fBsigqueue\fP() は \fIsig\fP で指定されたシグナルを、PID が \fIpid\fP であるプロセスに送る。 シグナルを送るのに必要な権限は
-\fBkill\fP(2) ã\81¨å\90\8cã\81\98ã\81§ã\81\82ã\82\8bã\80\82 \fBkill\fP(2) ã\81¨å\90\8cæ§\98ã\81«ã\80\81ã\83\8cã\83«ã\83»ã\82·ã\82°ã\83\8aã\83« (0) ã\82\92使ã\81£ã\81¦ æ\8c\87å®\9aã\81\97ã\81\9f PID
+\fBkill\fP(2) と同じである。 \fBkill\fP(2) と同様に、ヌルシグナル (0) を使って 指定した PID
のプロセスが存在するかをチェックすることができる。
.PP
-\fIvalue\fP 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 \fIvalue\fP は (整数またはポインタの値であり)
+\fIvalue\fP å¼\95ã\81\8dæ\95°ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\81¨ä¸\80ç·\92ã\81«é\80\81ã\82\8bã\83\87ã\83¼ã\82¿ã\81®ä»\98å±\9eã\82¢ã\82¤ã\83\86ã\83 ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 \fIvalue\fP ã\81¯ (æ\95´æ\95°ã\81¾ã\81\9fã\81¯ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®å\80¤ã\81§ã\81\82ã\82\8a)
以下のような型である。
.sp
.in +4n
.fi
.in
-受取先のプロセスに、このシグナルに対するハンドラを (\fBsigaction\fP(2) に \fBSA_SIGINFO\fP を指定して)
-インストールしておくと、 そのハンドラの第 2 引き数に渡される \fIsiginfo_t\fP 構造体の \fIsi_value\fP
+å\8f\97å\8f\96å\85\88ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«ã\80\81ã\81\93ã\81®ã\82·ã\82°ã\83\8aã\83«ã\81«å¯¾ã\81\99ã\82\8bã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92 (\fBsigaction\fP(2) ã\81« \fBSA_SIGINFO\fP ã\82\92æ\8c\87å®\9aã\81\97ã\81¦)
+ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\97ã\81¦ã\81\8aã\81\8fã\81¨ã\80\81 ã\81\9dã\81®ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®ç¬¬ 2 å¼\95ã\81\8dæ\95°ã\81«æ¸¡ã\81\95ã\82\8cã\82\8b \fIsiginfo_t\fP æ§\8bé\80 ä½\93ã\81® \fIsi_value\fP
フィールドによって、このデータを取得できる。 さらに、この構造体の \fIsi_code\fP フィールドは \fBSI_QUEUE\fP に設定される。
.SH 返り値
成功した場合、 \fBsigqueue\fP() は 0 を返す。 これは受け取り側プロセスの待ち行列に シグナルが正しく入れられたことを示す。
Linux では、この関数は \fBrt_sigqueueinfo\fP(2) システムコールを使って実装されている。 両者には 3
番目の引き数に違いがあり、 \fBrt_sigqueueinfo\fP(2) では 3 番目の引き数は \fIsiginfo_t\fP 構造体である。
-\fIsiginfo_t\fP 構造体は、シグナルを受信するプロセスのシグナルハンドラに渡されたり、 シグナル受信プロセスの
+\fIsiginfo_t\fP æ§\8bé\80 ä½\93ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\82\92å\8f\97ä¿¡ã\81\99ã\82\8bã\83\97ã\83ã\82»ã\82¹ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«æ¸¡ã\81\95ã\82\8cã\81\9fã\82\8aã\80\81 ã\82·ã\82°ã\83\8aã\83«å\8f\97ä¿¡ã\83\97ã\83ã\82»ã\82¹ã\81®
\fBsigtimedwait\fP(2) システムコールから返されたりする。 glibc の \fBsigqueue\fP() ラッパー関数内部では、
この引き数 \fIuinfo\fP は以下のように初期化される。
.in +4n
.RE
.ad
.SH 説明
-これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム に対して互換性のあるインタフェースを glibc
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\80\81æ\98\94ã\81ªã\81\8cã\82\89ã\81® System V ç\89\88ã\82·ã\82°ã\83\8aã\83« API ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bã\83\97ã\83ã\82°ã\83©ã\83 ã\81«å¯¾ã\81\97ã\81¦äº\92æ\8f\9bæ\80§ã\81®ã\81\82ã\82\8bã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92 glibc
で提供するものである。 この API は過去のものであり、新しいアプリケーションでは POSIX シグナル API (\fBsigaction\fP(2),
\fBsigprocmask\fP(2) など) を使用すべきである。
-関数 \fBsigset\fP() はシグナル \fIsig\fP のシグナルハンドラの動作を変更する。 \fIdisp\fP
-引き数には、シグナルハンドラ関数のアドレスか、 以下の定数のいずれか一つを指定できる。
+é\96¢æ\95° \fBsigset\fP() ã\81¯ã\82·ã\82°ã\83\8aã\83« \fIsig\fP ã\81®ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®å\8b\95ä½\9cã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82 \fIdisp\fP
+引き数には、シグナルハンドラー関数のアドレスか、 以下の定数のいずれか一つを指定できる。
.TP
\fBSIG_DFL\fP
\fIsig\fP の動作をデフォルトにリセットする。
\fBSIG_HOLD\fP
そのプロセスのシグナルマスクに \fIsig\fP を追加するが、 \fIsig\fP の動作は変更しない。
.PP
-\fIdisp\fP にシグナルハンドラのアドレスが指定された場合、 シグナルハンドラの実行中は、そのプロセスのシグナルマスクに \fIsig\fP が追加される。
+\fIdisp\fP にシグナルハンドラーのアドレスが指定された場合、 シグナルハンドラーの実行中は、そのプロセスのシグナルマスクに \fIsig\fP
+が追加される。
.PP
\fIdisp\fP に \fBSIG_HOLD\fP 以外の値が指定された場合、 そのプロセスのシグナルマスクから \fIsig\fP が削除される。
.PP
.sp
上記の全ての関数: _BSD_SOURCE
.SH 説明
-これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対して互換性のあるインタフェースを glibc
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\80\81æ\98\94ã\81ªã\81\8cã\82\89ã\81® BSD ç\89\88ã\82·ã\82°ã\83\8aã\83« API ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bã\83\97ã\83ã\82°ã\83©ã\83 ã\81«å¯¾ã\81\97ã\81¦äº\92æ\8f\9bæ\80§ã\81®ã\81\82ã\82\8bã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92 glibc
で提供するものである。 この API は過去のものであり、新しいアプリケーションでは POSIX シグナル API (\fBsigaction\fP(2),
\fBsigprocmask\fP(2) など) を使用すべきである。
関数 \fBsigvec\fP() は、(POSIX の \fBsigaction\fP(2) と同様に) シグナル \fIsig\fP の動作の設定・取得を行う。
-\fIvec\fP は、NULL 以外の場合、 \fIsig\fP の新しい動作を定義した \fIsigvec\fP 構造体へのポインタである。 \fIovec\fP
-は、NULL 以外の場合、 \fIsig\fP の変更前の動作を返すために使用される \fIsigvec\fP 構造体へのポインタである。 \fIsig\fP
-の動作を変更せずに現在の動作を取得するためには、 \fIvec\fP に NULL を指定し、 \fIovec\fP に NULL でないポインタを指定すればよい。
+\fIvec\fP は、NULL 以外の場合、 \fIsig\fP の新しい動作を定義した \fIsigvec\fP 構造体へのポインターである。 \fIovec\fP
+は、NULL 以外の場合、 \fIsig\fP の変更前の動作を返すために使用される \fIsigvec\fP 構造体へのポインターである。 \fIsig\fP
+の動作を変更せずに現在の動作を取得するためには、 \fIvec\fP に NULL を指定し、 \fIovec\fP に NULL
+でないポインターを指定すればよい。
シグナル \fBSIGKILL\fP と \fBSIGSTOP\fP に対する動作は変更できない。
.fi
.in
-\fIsv_handler\fP フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関数のアドレスか、 \fBSIG_DFL\fP と
+\fIsv_handler\fP フィールドはシグナルの動作を指定するもので、 シグナルハンドラー関数のアドレスか、 \fBSIG_DFL\fP と
\fBSIG_IGN\fP のいずれかを指定できる。 \fBSIG_DFL\fP はシグナルに適用されるデフォルトの動作を意味し、 \fBSIG_IGN\fP
はシグナルを無視することを意味する。
-\fIsv_handler\fP にシグナルハンドラのアドレスを指定した場合、 \fIsv_mask\fP
-ã\81¯ã\83\8fã\83³ã\83\89ã\83©ã\81\8cå®\9fè¡\8cä¸ã\81«ã\83\96ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bã\81¹ã\81\8dã\82·ã\82°ã\83\8aã\83«ã\81®ã\83\9eã\82¹ã\82¯ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 ã\81¾ã\81\9fã\80\81ã\83\8fã\83³ã\83\89ã\83©を起動したシグナル自身はブロックされる。 \fBSIGKILL\fP か
+\fIsv_handler\fP ã\81«ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92æ\8c\87å®\9aã\81\97ã\81\9få ´å\90\88ã\80\81 \fIsv_mask\fP
+ã\81¯ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cå®\9fè¡\8cä¸ã\81«ã\83\96ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bã\81¹ã\81\8dã\82·ã\82°ã\83\8aã\83«ã\81®ã\83\9eã\82¹ã\82¯ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 ã\81¾ã\81\9fã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\83¼を起動したシグナル自身はブロックされる。 \fBSIGKILL\fP か
\fBSIGSTOP\fP をブロックしようとした場合には、黙って無視される。
-\fIsv_handler\fP にシグナルハンドラのアドレスを指定した場合、 \fIsv_flags\fP
-フィールドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドには、0 か、以下のフラグを 1個以上指定できる:
+\fIsv_handler\fP ã\81«ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92æ\8c\87å®\9aã\81\97ã\81\9få ´å\90\88ã\80\81 \fIsv_flags\fP
+ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cå\91¼ã\81°ã\82\8cã\81\9fé\9a\9bã\81®æ\8c\99å\8b\95ã\82\92å\88¶å¾¡ã\81\99ã\82\8bã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ã\81¯ã\80\810 ã\81\8bã\80\81以ä¸\8bã\81®ã\83\95ã\83©ã\82°ã\82\92 1å\80\8b以ä¸\8aæ\8c\87å®\9aã\81§ã\81\8dã\82\8b:
.TP
\fBSV_INTERRUPT\fP
-ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81\8cå\81\9cæ¢ä¸ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\92ä¸æ\96ã\81\97ã\81\9få ´å\90\88ã\80\81 ã\83\8fã\83³ã\83\89ã\83©ã\81\8bã\82\89復帰ã\81\97ã\81¦ã\82\82ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯å\86\8dé\96\8bã\81\95ã\82\8cã\81\9aã\80\81 ã\82¨ã\83©ã\83¼ \fBEINTR\fP ã\81§å¤±æ\95\97ã\81\99ã\82\8bã\80\82
-このフラグを指定しなかった場合、システムコールは デフォルトで再開される。
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cå\81\9cæ¢ä¸ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\92ä¸æ\96ã\81\97ã\81\9få ´å\90\88ã\80\81 ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8bã\82\89復帰ã\81\97ã\81¦ã\82\82ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯å\86\8dé\96\8bã\81\95ã\82\8cã\81\9aã\80\81 ã\82¨ã\83©ã\83¼ \fBEINTR\fP
+ã\81§å¤±æ\95\97ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\97ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81¯ ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§å\86\8dé\96\8bã\81\95ã\82\8cã\82\8bã\80\82
.TP
\fBSV_RESETHAND\fP
-シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 このフラグを指定しなかった場合、もう一度 \fBsigvec\fP()
-を呼び出して明示的に削除されるか、プロセスが \fBexecve\fP(2) を実行するまで、ハンドラは設定されたままとなる。
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92å\91¼ã\81³å\87ºã\81\99å\89\8dã\81«ã\82·ã\82°ã\83\8aã\83«ã\81®å\8b\95ä½\9cã\82\92 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81«ã\83ªã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\97ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\80\81ã\82\82ã\81\86ä¸\80度 \fBsigvec\fP()
+ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81¦æ\98\8e示ç\9a\84ã\81«å\89\8aé\99¤ã\81\95ã\82\8cã\82\8bã\81\8bã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81\8c \fBexecve\fP(2) ã\82\92å®\9fè¡\8cã\81\99ã\82\8bã\81¾ã\81§ã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯è¨å®\9aã\81\95ã\82\8cã\81\9fã\81¾ã\81¾ã\81¨ã\81ªã\82\8bã\80\82
.TP
\fBSV_ONSTACK\fP
-代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シグナルスタックは廃止された関数 \fBsigstack\fP()
+代æ\9b¿ã\82·ã\82°ã\83\8aã\83«ã\82¹ã\82¿ã\83\83ã\82¯ä¸\8aã\81§ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92å®\9fè¡\8cã\81\99ã\82\8b (æ´å\8f²ç\9a\84ã\81«ã\80\81BSD ã\81§ã\81¯ä»£æ\9b¿ã\82·ã\82°ã\83\8aã\83«ã\82¹ã\82¿ã\83\83ã\82¯ã\81¯å»\83æ¢ã\81\95ã\82\8cã\81\9fé\96¢æ\95° \fBsigstack\fP()
を使って設定する。POSIX では、代わりに \fBsigaltstack\fP(2) を使用する)。
.PP
マクロ \fBsigmask\fP() は \fIsignum\fP に対する「シグナルマスク」を構成して返す。 例えば、以下のようなコードを使うと、
.SH バージョン
バージョン 2.21 以降では、 GNU C ライブラリはもはや \fBsigvec\fP() 関数を ABI の一部として公開しなくなった。
(後方互換性を保証するために、glibc のシンボルのバージョン付け機構により、
-古いバージョンのライブラリとリンクされたバイナリに対してはこのインタフェースが引き続き公開されている。)
+å\8f¤ã\81\84ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81®ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81¨ã\83ªã\83³ã\82¯ã\81\95ã\82\8cã\81\9fã\83\90ã\82¤ã\83\8aã\83ªã\81«å¯¾ã\81\97ã\81¦ã\81¯ã\81\93ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81\8cå¼\95ã\81\8dç¶\9aã\81\8då\85¬é\96\8bã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82)
.SH 準拠
これらの関数のうち \fBsiggetmask\fP() 以外の全ては 4.3BSD にあった。 \fBsiggetmask\fP() の出自ははっきりしない。
これらの関数は廃止予定であり、新しいプログラムでは使用しないこと。
\fBsockatmark\fP(): _POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600
.ad b
.SH 説明
-\fBsockatmark\fP() はファイルディスクリプタ \fIsockfd\fP で参照されるソケットに帯域外マークが付けられているか否かを返す。
+\fBsockatmark\fP() はファイルディスクリプター \fIsockfd\fP で参照されるソケットに帯域外マークが付けられているか否かを返す。
ソケットにマークが付けられている場合は、1 が返される。 ソケットにマークが付けられていない場合は、0 が返される。
この関数は帯域外マークを削除しない。
.SH 返り値
.SH エラー
.TP
\fBEBADF\fP
-\fIsockfd\fP が有効なファイルディスクリプタでない。
+\fIsockfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
.\" POSIX.1 says ENOTTY for this case
-\fIsockfd\fP は \fBsockatmark\fP() が適用できないファイルディスクリプタである。
+\fIsockfd\fP ã\81¯ \fBsockatmark\fP() ã\81\8cé\81©ç\94¨ã\81§ã\81\8dã\81ªã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.SH バージョン
\fBsockatmark\fP() は glibc バージョン 2.2.4 で追加された。
.SH 属性
帯域外データは、いくつかのストリームソケットプロトコルでしか サポートされていない。
-\fBsockatmark\fP() は \fBSIGURG\fP シグナルのハンドラから安全に呼び出すことができる。
+\fBsockatmark\fP() ã\81¯ \fBSIGURG\fP ã\82·ã\82°ã\83\8aã\83«ã\81®ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8bã\82\89å®\89å\85¨ã\81«å\91¼ã\81³å\87ºã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
\fBsockatmark\fP() は \fBSIOCATMARK\fP \fBioctl\fP(2) 操作を使って実装されている。
.SH バグ
.SH 説明
関数 \fBstatvfs\fP() はマウントされたファイルシステムについての情報を返す。 \fIpath\fP
はマウントされたファイルシステム中の任意のファイルのパス名である。 \fIbuf\fP は、だいたい以下のように定義されている \fIstatvfs\fP
-構造体へのポインタである:
+æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8b:
.in +4n
.nf
unsigned long f_frsize; /* フラグメントサイズ */
fsblkcnt_t f_blocks; /* ファイルシステムのサイズ (f_frsize 単位) */
fsblkcnt_t f_bfree; /* 解放されているブロック数 */
- fsblkcnt_t f_bafvail; /* 非特権ユーザ用に解放されているブロック数 */
+ fsblkcnt_t f_bafvail; /* 非特権ユーザー用に解放されているブロック数 */
fsfilcnt_t f_files; /* inode 数 */
fsfilcnt_t f_ffree; /* 解放されている inode の数 */
- fsfilcnt_t f_favail; /* 非特権ユーザ用に解放されている inode の数 */
+ fsfilcnt_t f_favail; /* 非特権ユーザー用に解放されている inode の数 */
unsigned long f_fsid; /* ファイルシステム ID */
unsigned long f_flag; /* マウントフラグ */
unsigned long f_namemax; /* ファイル名の長さの最大値 */
.LP
返された構造体の全てのメンバが全てのファイルシステムで 意味のある値であるか否かは、指定されていない。
-\fBfstatvfs\fP() は、ディスクリプタ \fIfd\fP で参照されるオープンされたファイルについて、同じ情報を返す。
+\fBfstatvfs\fP() は、ディスクリプター \fIfd\fP で参照されるオープンされたファイルについて、同じ情報を返す。
.SH 返り値
成功した場合、0 が返される。 失敗した場合、 \-1 が返され、 \fIerrno\fP に適切な値がセットされる。
.SH エラー
も参照すること)。
.TP
\fBEBADF\fP
-(\fBfstatvfs\fP() の場合) \fIfd\fP が有効なオープンファイルディスクリプタではない。
+(\fBfstatvfs\fP() ã\81®å ´å\90\88) \fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBEFAULT\fP
\fIbuf\fP または \fIpath\fP が無効なアドレスを指している。
(\fBstatvfs\fP() の場合) \fIpath\fP で参照されるファイルが存在しない。
.TP
\fBENOMEM\fP
-十分なカーネルメモリがない。
+å\8d\81å\88\86ã\81ªã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.TP
\fBENOSYS\fP
ファイルシステムがこの呼び出しをサポートしていない。
.PP
引き数 \fIlast\fP は引き数リストのうち、可変な部分の直前に置かれる引き数の名前であ る。つまり呼び出された関数が型を知っている最後の引き数である。
.PP
-この引き数はレジスタ変数や関数、配列として 宣言してはならない。この引き数のアドレスが \fBva_start\fP()
+この引き数はレジスター変数や関数、配列として 宣言してはならない。この引き数のアドレスが \fBva_start\fP()
マクロで用いられるかもしれないからである。
.SS va_arg()
\fBva_arg\fP() マクロは、呼び出し時に指定された引き数のうち、 次の位置にあるものを指定した型 \fItype\fP の値として取得する。 引き数
\fIap\fP は \fIva_list\fP \fIap\fP で、 \fBva_start\fP() によって初期化されている必要がある。 \fBva_arg\fP()
を呼び出すごとに \fIap\fP は変更され、次回の呼び出しの際に、さらに次の引き数を返すようになる。 引き数 \fItype\fP は型の名前である。
-\fItype\fP の前に * を付ければ、オブジェクトへの型付きポインタが得られる。
+\fItype\fP ã\81®å\89\8dã\81« * ã\82\92ä»\98ã\81\91ã\82\8cã\81°ã\80\81ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¸ã\81®å\9e\8bä»\98ã\81\8dã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cå¾\97ã\82\89ã\82\8cã\82\8bã\80\82
.PP
\fBva_start\fP() マクロの直後に \fBva_arg\fP() を最初に実行すると、 \fIlast\fP
の次の引き数が返る。続けて実行すると、残りの引き数がそれぞれ返る。
が現在の状態に達するまでに呼び出したのと同じ回数だけ \fBva_arg\fP() を呼び出す、のと同じことを行う。
.\" Proposal from clive@demon.net, 1997-02-28
-すぐ分かる \fIva_list\fP の実装は、variadic な関数のスタックフレームのポインタである。 このような場合(ほとんどはそうである)、
+ã\81\99ã\81\90å\88\86ã\81\8bã\82\8b \fIva_list\fP ã\81®å®\9fè£\85ã\81¯ã\80\81variadic ã\81ªé\96¢æ\95°ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\83\95ã\83¬ã\83¼ã\83 ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\82\88ã\81\86ã\81ªå ´å\90\88(ã\81»ã\81¨ã\82\93ã\81©ã\81¯ã\81\9dã\81\86ã\81§ã\81\82ã\82\8b)ã\80\81
単に以下のようにすればいいように思える。
.in +4n
.nf
.fi
.in
-残念ながら、(長さ 1の)ポインタの配列として扱うシステムもある。 そのような場合、以下のようにする必要がある。
+æ®\8b念ã\81ªã\81\8cã\82\89ã\80\81(é\95·ã\81\95 1ã\81®)ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®é\85\8då\88\97ã\81¨ã\81\97ã\81¦æ\89±ã\81\86ã\82·ã\82¹ã\83\86ã\83 ã\82\82ã\81\82ã\82\8bã\80\82 ã\81\9dã\81®ã\82\88ã\81\86ã\81ªå ´å\90\88ã\80\81以ä¸\8bã\81®ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82
.in +4n
.nf
.fi
.in
-æ\9c\80å¾\8cã\81«ã\80\81å¼\95ã\81\8dæ\95°ã\82\92ã\83¬ã\82¸ã\82¹ã\82¿ã\81§æ¸¡ã\81\99ã\82·ã\82¹ã\83\86ã\83 ã\81®å ´å\90\88ã\80\81 \fBva_start\fP() ã\81§ã\83¡ã\83¢ã\83ªを割り当て、引き数を格納し、
+æ\9c\80å¾\8cã\81«ã\80\81å¼\95ã\81\8dæ\95°ã\82\92ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81§æ¸¡ã\81\99ã\82·ã\82¹ã\83\86ã\83 ã\81®å ´å\90\88ã\80\81 \fBva_start\fP() ã\81§ã\83¡ã\83¢ã\83ªã\83¼を割り当て、引き数を格納し、
次の引き数がどれかを指し示すようにする必要がある。 そして \fBva_arg\fP() でリストを順番にたどり、 \fBva_end\fP()
-で割り当てたメモリを開放する。 このような状況に対応するため、C99 では \fBva_copy\fP() マクロを追加し、
+ã\81§å\89²ã\82\8aå½\93ã\81¦ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\92é\96\8bæ\94¾ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\82\88ã\81\86ã\81ªç\8a¶æ³\81ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\81\9fã\82\81ã\80\81C99 ã\81§ã\81¯ \fBva_copy\fP() ã\83\9eã\82¯ã\83ã\82\92追å\8a ã\81\97ã\80\81
前述のような割り当ては以下のように置き換えられるようにした。
.in +4n
.nf
.fi
.SH 説明
標準の環境では、 UNIX プログラムは起動時に、オープンされているストリー ムを 3 つ与えられる。それぞれ入力用、出力用、診断メッセージやエラーメッ
-セージの表示用のものである。これらは通常ユーザの端末 (\fBtty\fP(4) を見よ) に接続されているが、親プロセスでの選択・設定によってファイル
+ã\82»ã\83¼ã\82¸ã\81®è¡¨ç¤ºç\94¨ã\81®ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82ã\81\93ã\82\8cã\82\89ã\81¯é\80\9a常ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ç«¯æ\9c« (\fBtty\fP(4) ã\82\92è¦\8bã\82\88) ã\81«æ\8e¥ç¶\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8cã\80\81親ã\83\97ã\83ã\82»ã\82¹ã\81§ã\81®é\81¸æ\8a\9eã\83»è¨å®\9aã\81«ã\82\88ã\81£ã\81¦ã\83\95ã\82¡ã\82¤ã\83«
や他のデバイスに関連づけられていることもある (\fBsh\fP(1) の「リダイレクション」セクションも参照のこと)。
.PP
入力ストリームは "standard input" と呼ばれる。出力ストリームは "standard output"、エラーストリームは
"standard error" と呼ばれる。 これらの用語を短縮したものがそれぞれのファイルを示すシンボルとなる。つ まり \fIstdin\fP,
\fIstdout\fP, \fIstderr\fP である。
-これらのシンボルは \fBstdio\fP(3) のマクロで、 FILE へのポインタ型である。したがって \fBfprintf\fP(3) や
+これらのシンボルは \fBstdio\fP(3) のマクロで、 FILE へのポインター型である。したがって \fBfprintf\fP(3) や
\fBfread\fP(3) などの関数とともに用いることができる。
.PP
-\fIFILE\fP ã\81¯ UNIX ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81«ã\83\90ã\83\83ã\83\95ã\82¡æ©\9fè\83½ã\82\92追å\8a ã\81\97ã\81\9fã\83©ã\83\83ã\83\91ã\83¼ ã\81§ã\81\82ã\82\8bã\81\8bã\82\89ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\9eã\82¯ã\83ã\81«ã\82\82対å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81\8cã\81\82ã\82\8aã\80\81 UNIX
-の raw ファ イルインタフェース (\fBread\fP(2) や \fBlseek\fP(2) など) によってアクセスすることもできる。
+\fIFILE\fP ã\81¯ UNIX ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼æ©\9fè\83½ã\82\92追å\8a ã\81\97ã\81\9fã\83©ã\83\83ã\83\91ã\83¼ ã\81§ã\81\82ã\82\8bã\81\8bã\82\89ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\9eã\82¯ã\83ã\81«ã\82\82対å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81\8cã\81\82ã\82\8aã\80\81
+UNIX の raw ファ イルインターフェース (\fBread\fP(2) や \fBlseek\fP(2) など) によってアクセスすることもできる。
.PP
-プログラムの起動時には、 ストリーム \fIstdin\fP, \fIstdout\fP, \fIstderr\fP に結びつけられているファイルディスクリプタの番号は、
-それぞれ 0, 1, 2 である。 プリプロセッサシンボル \fBSTDIN_FILENO\fP, \fBSTDOUT_FILENO\fP,
-\fBSTDERR_FILENO\fP は \fI<unistd.h>\fP 中でそれぞれこれらの値に定義されている。 (これらのストリームに対して
-\fBfreopen\fP(3) を適用することで、そのストリームに関連付けられたファイルディスクリプタ の番号を変更することができる。)
+プログラムの起動時には、 ストリーム \fIstdin\fP, \fIstdout\fP, \fIstderr\fP
+に結びつけられているファイルディスクリプターの番号は、 それぞれ 0, 1, 2 である。 プリプロセッサシンボル \fBSTDIN_FILENO\fP,
+\fBSTDOUT_FILENO\fP, \fBSTDERR_FILENO\fP は \fI<unistd.h>\fP
+中でそれぞれこれらの値に定義されている。 (これらのストリームに対して \fBfreopen\fP(3)
+を適用することで、そのストリームに関連付けられたファイルディスクリプター の番号を変更することができる。)
.PP
-\fIFILE\fP と raw なファイルディスクリプタの併用は、予期できない結果を生じ ることがあるので、通常は避けるべきである。
+\fIFILE\fP ã\81¨ raw ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ä½µç\94¨ã\81¯ã\80\81äº\88æ\9c\9fã\81§ã\81\8dã\81ªã\81\84çµ\90æ\9e\9cã\82\92ç\94\9fã\81\98 ã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\81®ã\81§ã\80\81é\80\9a常ã\81¯é\81¿ã\81\91ã\82\8bã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82
(マゾヒスティックな人に: POSIX.1 のセクション 8.2.3 には、この混用で動作がどのようになりそう かが詳しく記述されている。)
-一般的なルールは以下の通り: ファイルディスクリプタはカーネルによって 扱われ、 stdio は単にライブラリによって扱われるのである。すなわち例えば
-\fBexec\fP(3) の後には、子プロセスはオープンされているファイルディスクリプタ
+ä¸\80è\88¬ç\9a\84ã\81ªã\83«ã\83¼ã\83«ã\81¯ä»¥ä¸\8bã\81®é\80\9aã\82\8a: ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82\88ã\81£ã\81¦ æ\89±ã\82\8fã\82\8cã\80\81 stdio ã\81¯å\8d\98ã\81«ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81«ã\82\88ã\81£ã\81¦æ\89±ã\82\8fã\82\8cã\82\8bã\81®ã\81§ã\81\82ã\82\8bã\80\82ã\81\99ã\81ªã\82\8fã\81¡ä¾\8bã\81\88ã\81°
+\fBexec\fP(3) の後には、子プロセスはオープンされているファイルディスクリプター
をすべて継承するが、親からのストリームはすべてアクセス不可となる。
.PP
シンボル \fIstdin\fP, \fIstdout\fP, \fIstderr\fP はすべてマクロとして定義されているので、これらへの代入
\fIstdin\fP, \fIstdout\fP, \fIstderr\fP マクロは C89 に準拠している。 また C89 では、これら 3
つのストリームがプログラム の起動時にオープンされているべきであることが規定されている。
.SH 注意
-\fIstderr\fP ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82 \fIstdout\fP ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81¯ã\80\81端æ\9c«ã\81«æ\8e¥ç¶\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81¨ã\81\8dã\81«ã\81¯è¡\8cå\8d\98ä½\8dã\81§ã\83\90ã\83\83ã\83\95ã\82¡リング
+\fIstderr\fP ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82 \fIstdout\fP ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81¯ã\80\81端æ\9c«ã\81«æ\8e¥ç¶\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81¨ã\81\8dã\81«ã\81¯è¡\8cå\8d\98ä½\8dã\81§ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼リング
されている。一行に満たない内容は、 \fBfflush\fP(3) か \fBexit\fP(3)
が呼び出されるか、改行文字が印字されるまで表示されない。これは、 特にデバッグ時において、予期しない結果を生じる原因となるかもしれない。
-標準ストリームの (あるいは他のすべてのストリームの) バッファリングモードは、 \fBsetbuf\fP(3) または \fBsetvbuf\fP(3)
-を呼び出すことによって変更できる。 ただし、 \fIstdin\fP が端末に接続されているときは、端末のドライバでバッファリングされている
-可能性がある点にも注意すること。これは stdio のバッファリングとは全く 関係なく存在しうる。 (実際、通常だと端末入力はカーネルによって行単位
-でバッファリングされている。) このカーネルによる入力の扱いは \fBtcsetattr\fP(3) などの呼び出しによって変更することができる。
+æ¨\99æº\96ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81® (ã\81\82ã\82\8bã\81\84ã\81¯ä»\96ã\81®ã\81\99ã\81¹ã\81¦ã\81®ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®) ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\83¢ã\83¼ã\83\89ã\81¯ã\80\81 \fBsetbuf\fP(3) ã\81¾ã\81\9fã\81¯ \fBsetvbuf\fP(3)
+ã\82\92å\91¼ã\81³å\87ºã\81\99ã\81\93ã\81¨ã\81«ã\82\88ã\81£ã\81¦å¤\89æ\9b´ã\81§ã\81\8dã\82\8bã\80\82 ã\81\9fã\81 ã\81\97ã\80\81 \fIstdin\fP ã\81\8c端æ\9c«ã\81«æ\8e¥ç¶\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81¨ã\81\8dã\81¯ã\80\81端æ\9c«ã\81®ã\83\89ã\83©ã\82¤ã\83\90ã\81§ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b
+å\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bç\82¹ã\81«ã\82\82注æ\84\8fã\81\99ã\82\8bã\81\93ã\81¨ã\80\82ã\81\93ã\82\8cã\81¯ stdio ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81¨ã\81¯å\85¨ã\81\8f é\96¢ä¿\82ã\81ªã\81\8få\98å\9c¨ã\81\97ã\81\86ã\82\8bã\80\82 (å®\9fé\9a\9bã\80\81é\80\9a常ã\81 ã\81¨ç«¯æ\9c«å\85¥å\8a\9bã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82\88ã\81£ã\81¦è¡\8cå\8d\98ä½\8d
+ã\81§ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82) ã\81\93ã\81®ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82\88ã\82\8bå\85¥å\8a\9bã\81®æ\89±ã\81\84ã\81¯ \fBtcsetattr\fP(3) ã\81ªã\81©ã\81®å\91¼ã\81³å\87ºã\81\97ã\81«ã\82\88ã\81£ã\81¦å¤\89æ\9b´ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
\fBstty\fP(1) と \fBtermios\fP(3) も参照すること。
.SH 関連項目
\fBcsh\fP(1), \fBsh\fP(1), \fBopen\fP(2), \fBfopen\fP(3), \fBstdio\fP(3)
.br
\fBFILE *\fP\fIstderr\fP\fB;\fP
.SH 説明
-標準入出力ライブラリは、簡単かつ効果のよい、 バッファリングされたストリーム入出力インターフェースを提供する。
+æ¨\99æº\96å\85¥å\87ºå\8a\9bã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81¯ã\80\81ç°¡å\8d\98ã\81\8bã\81¤å\8a¹æ\9e\9cã\81®ã\82\88ã\81\84ã\80\81 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\81\9fã\82¹ã\83\88ã\83ªã\83¼ã\83 å\85¥å\87ºå\8a\9bã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\80\82
入力と出力は論理データストリームに割り付けられ、 入出力の物理的な特徴は隠蔽される。 このライブラリに属する関数とマクロを以下に挙げる。
より詳しい情報は個々の man ページから得ることができる。
.PP
関数を次々に呼び出して文字を書き込んだかのように行われる。
.PP
ファイルを \fIクローズ (close) する\fP ことによって、そのファイルはストリームから切り離される。
-出力ストリームは、そのストリームがファイルから切り離される前にフラッシュされる (書き込まれていないすべてのバッファの内容がホスト環境に転送される)。
-\fIFILE\fP オブジェクトへのポインタの値は、 ファイルを閉じた後では不確定になる (ゴミになってしまう)。
+å\87ºå\8a\9bã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81¯ã\80\81ã\81\9dã\81®ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81\8cã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89å\88\87ã\82\8aé\9b¢ã\81\95ã\82\8cã\82\8bå\89\8dã\81«ã\83\95ã\83©ã\83\83ã\82·ã\83¥ã\81\95ã\82\8cã\82\8b (æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\81\99ã\81¹ã\81¦ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å\86\85容ã\81\8cã\83\9bã\82¹ã\83\88ç\92°å¢\83ã\81«è»¢é\80\81ã\81\95ã\82\8cã\82\8b)ã\80\82
+\fIFILE\fP ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®å\80¤ã\81¯ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\82\92é\96\89ã\81\98ã\81\9få¾\8cã\81§ã\81¯ä¸\8d確å®\9aã\81«ã\81ªã\82\8b (ã\82´ã\83\9fã\81«ã\81ªã\81£ã\81¦ã\81\97ã\81¾ã\81\86)ã\80\82
.PP
ファイルはその後 (同じまたは別のプログラムによって) 再びオープンされることもあり、 その内容が修正されたり変更されたりする
(そのファイルで先頭への位置移動が可能であれば)。 main 関数がもとの呼び出し側に返ったり、 \fBexit\fP(3) 関数が呼ばれた場合、
プログラムの起動時に 3 個のテキストストリームが予め定義されており、 それらは明示的に開く必要がない。 \fI標準入力 (standard
input)\fP (通常の入力を読み取るのに使う)、 \fI標準出力 (standard output)\fP (通常の出力を書き込むのに使う)、
\fI標準エラー出力 (standard error)\fP (診断出力を書き込むのに使う) である。 これらのストリームは \fIstdin\fP,
-\fIstdout\fP, \fIstderr\fP と短縮して表現される。 オープンされたときには、 標準エラーストリームは 完全にはバッファリングされていない。
-標準入力ストリームと標準出力ストリームは、 ストリームがインタラクティブなデバイスを参照していなければ、 完全にバッファリングされている。
+\fIstdout\fP, \fIstderr\fP と短縮して表現される。 オープンされたときには、 標準エラーストリームは
+完全にはバッファーリングされていない。 標準入力ストリームと標準出力ストリームは、 ストリームがインタラクティブなデバイスを参照していなければ、
+完全にバッファーリングされている。
.PP
-端末デバイスを参照する出力ストリームは、 デフォルトでは常に行単位でバッファリングされている。 ただしそのようなストリームにおけるバッファ内の出力は、
-端末デバイスを参照している入力ストリームからの読み込みがあるたびに、 自動的に書き込まれる。 出力端末に行の一部を書き込んだ後で大量の計算を行う場合、
-出力が表示されるように、計算に取りかかる前に標準出力に対して \fBfflush\fP(3) を実行する必要がある。
+端末デバイスを参照する出力ストリームは、 デフォルトでは常に行単位でバッファーリングされている。
+ただしそのようなストリームにおけるバッファー内の出力は、 端末デバイスを参照している入力ストリームからの読み込みがあるたびに、 自動的に書き込まれる。
+出力端末に行の一部を書き込んだ後で大量の計算を行う場合、 出力が表示されるように、計算に取りかかる前に標準出力に対して \fBfflush\fP(3)
+を実行する必要がある。
.PP
\fIstdio\fP ライブラリは \fBlibc\fP ライブラリの一部であり、ルーチンは コンパイラー \fBcc\fP(1) と \fBpc\fP(1)
によって必要な時に自動的に読み込まれる。 後述する man ページ中の「書式」の節には、 どのインクルードファイルを使用しなければならないか、
fgetc 次の文字または語を入力ストリームから獲得する
fgetpos ストリームの位置を取得する
fgets ストリームから行を取得する
-fileno 引き数であるストリームの整数値のディスクリプタを返す
+fileno å¼\95ã\81\8dæ\95°ã\81§ã\81\82ã\82\8bã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®æ\95´æ\95°å\80¤ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99
fopen ストリームをオープンする
fprintf 書式付き出力変換
fpurge ストリームをフラッシュする
putchar 文字または語をストリームに出力する
puts 行をストリームに出力する
putw 文字または語をストリームに出力する
-remove ディレクトリエントリを削除する
+remove ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\89\8aé\99¤ã\81\99ã\82\8b
rewind ストリームの位置指示子を移動する
scanf 書式付き入力変換
-setbuf ストリームのバッファリングの操作
-setbuffer ストリームのバッファリングの操作
-setlinebuf ストリームのバッファリングの操作
-setvbuf ストリームのバッファリングの操作
+setbuf ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81®æ\93\8dä½\9c
+setbuffer ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81®æ\93\8dä½\9c
+setlinebuf ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81®æ\93\8dä½\9c
+setvbuf ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81®æ\93\8dä½\9c
sprintf 書式付き出力変換
sscanf 書式付き入力変換
strerror システムエラーメッセージ
.TH STDIO_EXT 3 2013\-06\-21 "" "Linux Programmer's Manual"
.SH 名前
__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading,
-__fsetlocking, __fwritable, __fwriting, _flushlbf \- 標準入出力ファイル構造体へのインタフェース
+__fsetlocking, __fwritable, __fwriting, _flushlbf \- æ¨\99æº\96å\85¥å\87ºå\8a\9bã\83\95ã\82¡ã\82¤ã\83«æ§\8bé\80 ä½\93ã\81¸ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹
.SH 書式
\fB#include <stdio.h>\fP
.br
Solaris では、 \fIFILE\fP 構造体の内部へポータブルなかたちで アクセスできる手段が導入されており、これらは glibc
でも実装されている。
.LP
-\fB__fbufsize\fP() 関数は、指定されたストリームが使用しているバッファサイズを返す。
+\fB__fbufsize\fP() é\96¢æ\95°ã\81¯ã\80\81æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81\8c使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\82\92è¿\94ã\81\99ã\80\82
.LP
-\fB__fpending\fP() 関数は、出力バッファに入っているデータのバイト数を返す。
-ã\83¯ã\82¤ã\83\89ã\82ã\83£ã\83©ã\82¯ã\82¿ã\82\92æ\89±ã\81\86ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®å ´å\90\88ã\80\81ã\83¯ã\82¤ã\83\89ã\82ã\83£ã\83©ã\82¯ã\82¿å\8d\98ä½\8dã\81§è¨\88ç®\97ã\81\95ã\82\8cã\82\8bã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡が読み出しモードの場合や読み出し専用で開かれている場合の
+\fB__fpending\fP() é\96¢æ\95°ã\81¯ã\80\81å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\85¥ã\81£ã\81¦ã\81\84ã\82\8bã\83\87ã\83¼ã\82¿ã\81®ã\83\90ã\82¤ã\83\88æ\95°ã\82\92è¿\94ã\81\99ã\80\82
+ã\83¯ã\82¤ã\83\89ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\82\92æ\89±ã\81\86ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®å ´å\90\88ã\80\81ã\83¯ã\82¤ã\83\89ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼å\8d\98ä½\8dã\81§è¨\88ç®\97ã\81\95ã\82\8cã\82\8bã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼が読み出しモードの場合や読み出し専用で開かれている場合の
この関数の振舞いは未定義である。
.LP
-\fB__flbf\fP() 関数は、ストリームがラインバッファの場合は 0 以外を、 それ以外の場合は 0 を返す。
+\fB__flbf\fP() é\96¢æ\95°ã\81¯ã\80\81ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81\8cã\83©ã\82¤ã\83³ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å ´å\90\88ã\81¯ 0 以å¤\96ã\82\92ã\80\81 ã\81\9dã\82\8c以å¤\96ã\81®å ´å\90\88ã\81¯ 0 ã\82\92è¿\94ã\81\99ã\80\82
.LP
\fB__freadable\fP() 関数は、ストリームが読み出し可能な場合は 0 以外を、 それ以外の場合は 0 を返す。
.LP
\fBFSETLOCKING_QUERY\fP
ロック形式の変更を行わない。(現在の形式を返すだけである)
.LP
-\fB_flushlbf\fP() 関数は、すべてのラインバッファ (line\-buffered) タイプのストリームの 内容を出力(フラッシュ)する。
+\fB_flushlbf\fP() 関数は、すべてのラインバッファー (line\-buffered) タイプのストリームの 内容を出力(フラッシュ)する。
(当然ながら、端末への出力が強制的に行われることになるので、 キーボードからの入力を読みこむ前にこの関数を呼んだ方がいいだろう)
.LP
-\fB__fpurge\fP() 関数は、ストリームのバッファの内容を廃棄する。
+\fB__fpurge\fP() é\96¢æ\95°ã\81¯ã\80\81ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å\86\85容ã\82\92å»\83æ£\84ã\81\99ã\82\8bã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
関数 \fB__fbufsize\fP(), \fB__fpending\fP(), \fB__fpurge\fP(), \fB__fsetlocking\fP() は、
.\"
.TH STPCPY 3 2014\-05\-10 GNU "Linux Programmer's Manual"
.SH 名前
-stpcpy \- 文字列をコピーし、コピーした文字列の終りへのポインタを返す
+stpcpy \- æ\96\87å\97å\88\97ã\82\92ã\82³ã\83\94ã\83¼ã\81\97ã\80\81ã\82³ã\83\94ã\83¼ã\81\97ã\81\9fæ\96\87å\97å\88\97ã\81®çµ\82ã\82\8aã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99
.SH 書式
.nf
\fB#include <string.h>\fP
\fBstpcpy\fP() 関数は、\fIsrc\fP で指された文字列を (文字列を終端するヌルバイト (\(aq\e0\(aq) を含めて) \fIdest\fP
で指された配列にコピーする。 文字列は重複してはならず、コピー先の文字列 \fIdest\fP はコピーを受け取る のに十分大きくなくてはならない。
.SH 返り値
-\fBstpcpy\fP() は、文字列 \fIdest\fP の始まりではなく \fB終り\fPを指すポインタ (すなわち、文字列を終端するヌルバイト) を返す。
+\fBstpcpy\fP() は、文字列 \fIdest\fP の始まりではなく \fB終り\fPを指すポインター (すなわち、文字列を終端するヌルバイト) を返す。
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBstpcpy\fP() 関数はスレッドセーフである。
年時点ではそうであった。 その後、 1989 年に GNU fileutils と GNU textutils に登場し、 1992 年までには GNU
C ライブラリにも存在していた。 この関数は BSD 系にも存在する。
.SH バグ
-この関数はバッファ \fIdest\fP の範囲を行き過ぎてしまう可能性がある。
+この関数はバッファー \fIdest\fP の範囲を行き過ぎてしまう可能性がある。
.SH 例
例として、このプログラムは \fBfoo\fP と \fBbar\fP を連結して \fBfoobar\fP を作るために \fBstpcpy\fP()
を使用し、その後表示する。
の最後にある終端のヌルバイト (\(aq\e0\(aq) は上書きされ、新たに生成された文字列の末尾に終端のヌルバイトが付与される。 二つの文字列
\fIsrc\fP と \fIdest\fP は重なってはならない。 また、文字列 \fIdest\fP は、連結後の結果を格納するのに 十分な大きさでなければならない。
\fIdest\fP が十分な大きさでない場合、プログラムがどのような動作をするか分からない。
-バッファオーバーランはセキュアなプログラムを攻撃する際に好んで使われる方法である。
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82ªã\83¼ã\83\90ã\83¼ã\83©ã\83³ã\81¯ã\82»ã\82ã\83¥ã\82¢ã\81ªã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92æ\94»æ\92\83ã\81\99ã\82\8bé\9a\9bã\81«å¥½ã\82\93ã\81§ä½¿ã\82\8fã\82\8cã\82\8bæ\96¹æ³\95ã\81§ã\81\82ã\82\8bã\80\82
.PP
\fBstrncat\fP() も同様だが、以下の点が異なる。
.IP * 3
.fi
.in
.SH 返り値
-\fBstrcat\fP() 関数と \fBstrncat\fP() 関数は、結果としてできる文字列 \fIdest\fP へのポインタを返す。
+\fBstrcat\fP() é\96¢æ\95°ã\81¨ \fBstrncat\fP() é\96¢æ\95°ã\81¯ã\80\81çµ\90æ\9e\9cã\81¨ã\81\97ã\81¦ã\81§ã\81\8dã\82\8bæ\96\87å\97å\88\97 \fIdest\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
関数 \fBstrcat\fP() と \fBstrncat\fP() はスレッドセーフである。
.\" https://lwn.net/Articles/506530/
この関数は、ヌル終端された文字列 \fIsrc\fP を文字列 \fIdest\fP に追加する。 具体例には、 \fIsize\fP が \fIstrlen(dest)\fP
より大きい場合には最大で \fIsize\-strlen(dest)\-1\fP バイトを \fIsrc\fP からコピーし、 結果の末尾に終端のヌルバイトを追加する。
-この関数では \fBstrcat\fP() のバッファオーバーランが発生するという問題が修正されているが、 \fIsize\fP
+ã\81\93ã\81®é\96¢æ\95°ã\81§ã\81¯ \fBstrcat\fP() ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82ªã\83¼ã\83\90ã\83¼ã\83©ã\83³ã\81\8cç\99ºç\94\9fã\81\99ã\82\8bã\81¨ã\81\84ã\81\86å\95\8fé¡\8cã\81\8cä¿®æ£ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8cã\80\81 \fIsize\fP
が小さすぎた場合にはデータが失われる問題には、 依然として呼び出し側で対処する必要がある。 この関数は \fBstrlcat\fP()
が作成しようとした文字列の長さを返す。 返り値が \fIsize\fP 以上の場合、 データロスが発生している。 データロスが問題となる場合は、
呼び出し側で、 呼び出し前に引き数をチェックするか、 この関数の返り値を検査するかのいずれかをしなければならない。 \fBstrlcat\fP() は
\fBchar *strchrnul(const char *\fP\fIs\fP\fB, int \fP\fIc\fP\fB);\fP
.fi
.SH 説明
-\fBstrchr\fP() 関数は、文字列 \fIs\fP 中に最初に文字 \fIc\fP が現れた位置へのポインタを返す。
+\fBstrchr\fP() é\96¢æ\95°ã\81¯ã\80\81æ\96\87å\97å\88\97 \fIs\fP ä¸ã\81«æ\9c\80å\88\9dã\81«æ\96\87å\97 \fIc\fP ã\81\8cç\8f¾ã\82\8cã\81\9fä½\8dç½®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.PP
-\fBstrrchr\fP() 関数は、文字列 \fIs\fP 中に最後に文字 \fIc\fP が現れた位置へのポインタを返す。
+\fBstrrchr\fP() é\96¢æ\95°ã\81¯ã\80\81æ\96\87å\97å\88\97 \fIs\fP ä¸ã\81«æ\9c\80å¾\8cã\81«æ\96\87å\97 \fIc\fP ã\81\8cç\8f¾ã\82\8cã\81\9fä½\8dç½®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.PP
\fBstrchrnul\fP() 関数は \fBstrchr\fP() と同様だが、 \fIc\fP が \fIs\fP 中に見つからなかった場合に、返り値として
-NULL でなく、\fIs\fP の末尾のヌルバイトへのポインタを返す点が異なる。
+NULL ã\81§ã\81ªã\81\8fã\80\81\fIs\fP ã\81®æ\9c«å°¾ã\81®ã\83\8cã\83«ã\83\90ã\82¤ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ç\82¹ã\81\8cç\95°ã\81ªã\82\8bã\80\82
.PP
ここでいう「文字」は「バイト」の意味なので、 これらの関数はワイド文字やマルチバイト文字では動作しない。
.SH 返り値
-\fBstrchr\fP() と \fBstrrchr\fP() 関数は一致した文字へのポインタを返し、もし
+\fBstrchr\fP() ã\81¨ \fBstrrchr\fP() é\96¢æ\95°ã\81¯ä¸\80è\87´ã\81\97ã\81\9fæ\96\87å\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\97ã\80\81ã\82\82ã\81\97
文字が見つからない場合は NULL を返す。終端のヌルバイトは文字列の一部と
みなされ、\fIc\fP に \(aq\e0\(aq が指定された場合には、これらの関数は
-終端のヌルバイトへのポインタを返す。
+çµ\82端ã\81®ã\83\8cã\83«ã\83\90ã\82¤ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
-\fBstrchrnul\fP() é\96¢æ\95°ã\81¯ä¸\80è\87´ã\81\97ã\81\9fæ\96\87å\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 æ\96\87å\97ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81\fIs\fP ã\81®æ\9c«å°¾ã\81®ã\83\8cã\83«ã\83\90ã\82¤ã\83\88ã\81¸ã\81® ã\83\9dã\82¤ã\83³ã\82¿ (ã\81¤ã\81¾ã\82\8a
-\fIs+strlen(s)\fP) を返す。
+\fBstrchrnul\fP() é\96¢æ\95°ã\81¯ä¸\80è\87´ã\81\97ã\81\9fæ\96\87å\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 æ\96\87å\97ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81\fIs\fP ã\81®æ\9c«å°¾ã\81®ã\83\8cã\83«ã\83\90ã\82¤ã\83\88ã\81¸ã\81® ã\83\9dã\82¤ã\83³ã\82¿ã\83¼
+(つまり \fIs+strlen(s)\fP) を返す。
.SH バージョン
\fBstrchrnul\fP() は glibc バージョン 2.1.1 で初めて登場した。
.SH 属性
.SH 説明
\fBstrcoll\fP() 関数は二つの文字列 \fIs1\fP と \fIs2\fP を比較する。 この関数は、\fIs1\fP が \fIs2\fP
よりも小さいか、等しいか、大きいかによって それぞれ負の整数、0、正の整数を返す。 比較は、プログラムの現在のロケールの \fBLC_COLLATE\fP
-カテゴリに応じて 解釈された文字列に基づいて行われる (\fBsetlocale\fP(3) 参照)。
+ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«å¿\9cã\81\98ã\81¦ 解é\87\88ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81«å\9fºã\81¥ã\81\84ã\81¦è¡\8cã\82\8fã\82\8cã\82\8b (\fBsetlocale\fP(3) å\8f\82ç\85§)ã\80\82
.SH 返り値
\fBstrcoll\fP() 関数は、\fIs1\fP が \fIs2\fP よりも小さいか、等しいか、 大きいかによって、それぞれ負の整数、0、正の整数を返す。
どちらの文字列も現在のロケールに応じて解釈されたものが使用される。
.fi
.SH 説明
\fBstrcpy\fP() 関数は \fIsrc\fP が指す文字列を末尾のヌルバイト (\(aq\e0\(aq) も含めて \fIdest\fP
-ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\81«ã\82³ã\83\94ã\83¼ã\81\99ã\82\8bã\80\82 äº\8cã\81¤ã\81®æ\96\87å\97å\88\97ã\81¯é\87\8dã\81ªã\81£ã\81¦ã\81¯ã\81ªã\82\89ã\81ªã\81\84ã\80\82å\8f\97ã\81\91å\81´ã\81®æ\96\87å\97å\88\97 \fIdest\fP ã\81¯ ã\82³ã\83\94ã\83¼ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªå¤§ã\81\8dã\81\95ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
-\fIバッファオーバーランに気を付けること!\fP (「バグ」の節を参照)
+ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\82³ã\83\94ã\83¼ã\81\99ã\82\8bã\80\82 äº\8cã\81¤ã\81®æ\96\87å\97å\88\97ã\81¯é\87\8dã\81ªã\81£ã\81¦ã\81¯ã\81ªã\82\89ã\81ªã\81\84ã\80\82å\8f\97ã\81\91å\81´ã\81®æ\96\87å\97å\88\97 \fIdest\fP ã\81¯
+コピーを受け取るのに十分な大きさでなければならない。 \fIバッファーオーバーランに気を付けること!\fP (「バグ」の節を参照)
.PP
\fBstrncpy\fP() 関数も同様だが、 \fIsrc\fP のうち最大でも \fIn\fP バイトしかコピーされない点が異なる。 \fB警告\fP: \fIsrc\fP
の最初の \fIn\fP バイトの中にヌルバイトがない場合、 \fIdest\fP に格納される文字列はヌルで終端されないことになる。
.fi
.in
.SH 返り値
-\fBstrcpy\fP() 関数と \fBstrncpy\fP() 関数は 受け側の文字列\fIdest\fPへのポインタを返す。
+\fBstrcpy\fP() é\96¢æ\95°ã\81¨ \fBstrncpy\fP() é\96¢æ\95°ã\81¯ å\8f\97ã\81\91å\81´ã\81®æ\96\87å\97å\88\97\fIdest\fPã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
関数 \fBstrcpy\fP() と \fBstrncpy\fP() はスレッドセーフである。
\fBstrncpy\fP() は効率的でなく間違いを起こしやすいと考えるプログラマもいるだろう。 プログラマが \fIdest\fP の大きさが \fIsrc\fP
の長さよりも 大きいことを知っている (つまり、そのことをチェックするコードを 書いている) 場合は、 \fBstrcpy()\fP を使うことができる。
-\fBstrncpy\fP() ã\81®æ£ã\81\97ã\81\84 (ã\81\8bã\81¤æ\84\8få\9b³ã\81\95ã\82\8cã\81\9f) ç\94¨é\80\94ã\81¯ã\80\81 C æ\96\87å\97å\88\97ã\81®å\9bºå®\9aé\95·ã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\82³ã\83\94ã\83¼ã\82\92ã\80\81 ã\83\90ã\83\83ã\83\95ã\82¡がオーバーフローしないことと、
-å®\9bå\85\88ã\83\90ã\83\83ã\83\95ã\82¡ã\81®æ\9cªä½¿ç\94¨ã\83\90ã\82¤ã\83\88ã\81\8c 0 ã\81§å\9f\8bã\82\81ã\82\89ã\82\8cã\82\8bã\81\93ã\81¨ã\81®ä¸¡æ\96¹ã\82\92ä¿\9d証ã\81\97ã\81¤ã\81¤è¡\8cã\81\86ã\81\93ã\81¨ã\81§ã\81\82ã\82\8bã\80\82 (å®\9bå\85\88ã\83\90ã\83\83ã\83\95ã\82¡を 0 で埋めるのは、 たいていの場合、
-バッファを媒体に書き込んだり、別のプロセスにプロセス間通信を用いて送信したりした場合に情報洩れを防ぐためである)。
+\fBstrncpy\fP() ã\81®æ£ã\81\97ã\81\84 (ã\81\8bã\81¤æ\84\8få\9b³ã\81\95ã\82\8cã\81\9f) ç\94¨é\80\94ã\81¯ã\80\81 C æ\96\87å\97å\88\97ã\81®å\9bºå®\9aé\95·ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\82³ã\83\94ã\83¼ã\82\92ã\80\81 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼がオーバーフローしないことと、
+å®\9bå\85\88ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\9cªä½¿ç\94¨ã\83\90ã\82¤ã\83\88ã\81\8c 0 ã\81§å\9f\8bã\82\81ã\82\89ã\82\8cã\82\8bã\81\93ã\81¨ã\81®ä¸¡æ\96¹ã\82\92ä¿\9d証ã\81\97ã\81¤ã\81¤è¡\8cã\81\86ã\81\93ã\81¨ã\81§ã\81\82ã\82\8bã\80\82 (å®\9bå\85\88ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼を 0 で埋めるのは、 たいていの場合、
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92åª\92ä½\93ã\81«æ\9b¸ã\81\8dè¾¼ã\82\93ã\81 ã\82\8aã\80\81å\88¥ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«ã\83\97ã\83ã\82»ã\82¹é\96\93é\80\9aä¿¡ã\82\92ç\94¨ã\81\84ã\81¦é\80\81ä¿¡ã\81\97ã\81\9fã\82\8aã\81\97ã\81\9få ´å\90\88ã\81«æ\83\85å ±æ´©ã\82\8cã\82\92é\98²ã\81\90ã\81\9fã\82\81ã\81§ã\81\82ã\82\8b)ã\80\82
\fIsrc\fP の最初の \fIn\fP バイトに終端のヌルバイトがない場合、 \fBstrncpy\fP() は \fIdest\fP
に終端されていない文字列を生成する。 \fIbuf\fP の長さが \fIbuflen\fP の場合、以下のようにして強制的に終端することができる。
.\" 1999 USENIX Annual Technical Conference
.\" https://lwn.net/Articles/506530/
この関数は \fBstrncpy\fP() と同様だが、 最大でも \fIsize\-1\fP バイトしか \fIdest\fP にコピーをせず、
-末尾への終端のヌルバイトの追加が必ず行われ、 宛先バッファ (の未使用部分) へのヌルバイトの書き込みが行われない。 この関数では
+末尾への終端のヌルバイトの追加が必ず行われ、 宛先バッファー (の未使用部分) へのヌルバイトの書き込みが行われない。 この関数では
\fBstrcpy\fP() や \fBstrncpy\fP() の持つ問題のいくつかが修正されているが、 \fIsize\fP
が小さすぎた場合にはデータが失われる問題には、 依然として呼び出し側で対処する必要がある。 この関数の返り値は \fIsrc\fP の長さである。
これにより、 末尾の切り詰めが行われたかを簡単に検出することができる。 返り値が \fIsize\fP 以上の場合には、 末尾の切り詰めが発生している。
.SH バグ
\fBstrcpy\fP() の受け側の文字列が十分な大きさでない場合、何が起こるかわからない。
固定長文字列を溢れさせるのは、マシンの制御を掌中に収めるために クラッカーが好んで使うテクニックである。
-プログラムでデータをバッファに読み込んだりコピーしたりする場合には、 必ずまず最初に十分な大きさがあるかどうかをチェックする必要がある。
+ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\83\87ã\83¼ã\82¿ã\82\92ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«èªã\81¿è¾¼ã\82\93ã\81 ã\82\8aã\82³ã\83\94ã\83¼ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81 å¿\85ã\81\9aã\81¾ã\81\9aæ\9c\80å\88\9dã\81«å\8d\81å\88\86ã\81ªå¤§ã\81\8dã\81\95ã\81\8cã\81\82ã\82\8bã\81\8bã\81©ã\81\86ã\81\8bã\82\92ã\83\81ã\82§ã\83\83ã\82¯ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82
プログラマがオーバーフローが不可能だと示せる場合には このチェックは不要かもしれないが、十分注意すること。
長い間には、不可能だったことが可能になるような方法でプログラムが 変更されることもあるからだ。
.SH 関連項目
.ad
.PD
.SH 説明
-\fBstrdup\fP() é\96¢æ\95°ã\81¯ã\80\81æ\96\87å\97å\88\97 \fIs\fPã\81®è¤\87製ã\81§ã\81\82ã\82\8b æ\96°ã\81\97ã\81\84æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 æ\96°ã\81\97ã\81\84æ\96\87å\97å\88\97ã\81®ã\81\9fã\82\81ã\81®ã\83¡ã\83¢ã\83ªã\81¯ \fBmalloc\fP(3)
-で得ている。 そして、 \fBfree\fP(3) で解放することができる。
+\fBstrdup\fP() é\96¢æ\95°ã\81¯ã\80\81æ\96\87å\97å\88\97 \fIs\fPã\81®è¤\87製ã\81§ã\81\82ã\82\8b æ\96°ã\81\97ã\81\84æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 æ\96°ã\81\97ã\81\84æ\96\87å\97å\88\97ã\81®ã\81\9fã\82\81ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81¯
+\fBmalloc\fP(3) で得ている。 そして、 \fBfree\fP(3) で解放することができる。
\fBstrndup\fP() 関数は同様であるが、最大で \fIn\fP バイトを複製する。
\fIs\fP が \fIn\fP よりも長い場合、\fIn\fP バイトだけが複製され、
終端のヌルバイト (\(aq\e0\(aq)) が追加される。
-\fBstrdupa\fP() と \fBstrndupa\fP() も同様だが、バッファの確保に
+\fBstrdupa\fP() ã\81¨ \fBstrndupa\fP() ã\82\82å\90\8cæ§\98ã\81 ã\81\8cã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ç¢ºä¿\9dã\81«
\fBalloca\fP(3) を使用する点が異なる。
これらが使用できるのは GNU GCC ツール群を使う場合だけであり、
\fBalloca\fP(3) で説明されているのと同じ制限がある。
.SH 返り値
-æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 \fBstrdup\fP() é\96¢æ\95°ã\81¯è¤\87製ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªが確保できなかった場合には、 NULL を返し、
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 \fBstrdup\fP() é\96¢æ\95°ã\81¯è¤\87製ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼が確保できなかった場合には、 NULL を返し、
\fIerrno\fP にエラーの原因を示す値を設定する。
.SH エラー
.TP
\fBENOMEM\fP
-複製された文字列を割り当てる十分なメモリが確保できなかった。
+è¤\87製ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bå\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8c確ä¿\9dã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9fã\80\82
.SH 準拠
.\" 4.3BSD-Reno, not (first) 4.3BSD.
\fBstrdup\fP() は SVr4, 4.3BSD, POSIX.1\-2001 準拠である。 \fBstrndup\fP() は
.ad
.SH 説明
.\"
-\fBstrerror\fP() 関数は、引き数 \fIerrnum\fP で渡されたエラーコードについての説明が入った文字列へのポインタを返す。
+\fBstrerror\fP() é\96¢æ\95°ã\81¯ã\80\81å¼\95ã\81\8dæ\95° \fIerrnum\fP ã\81§æ¸¡ã\81\95ã\82\8cã\81\9fã\82¨ã\83©ã\83¼ã\82³ã\83¼ã\83\89ã\81«ã\81¤ã\81\84ã\81¦ã\81®èª¬æ\98\8eã\81\8cå\85¥ã\81£ã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
可能であるならば、適切な言語を選択するために、 現在のロケールの \fBLC_MESSAGES\fP を使う。(例えば、 \fIerrnum\fP が
\fBEINVAL\fP の場合、説明として "Invalid argument" が返される。) この文字列は、アプリケーションで変更してはならないが、
これ以降に行われる \fBstrerror\fP() や \fBstrerror_l\fP() の呼び出しで変更されても構わない。 \fBperror\fP(3)
XSI 準拠のバージョンの \fBstrerror_r\fP() がデフォルトで提供される。
移植性が必要なアプリケーションでは、 XSI 準拠の \fBstrerror_r\fP() を使う方がよい。 この関数は、ユーザーから提供される長さ
-\fIbuflen\fP のバッファ \fIbuf\fP にエラー文字列を返す。
+\fIbuflen\fP のバッファー \fIbuf\fP にエラー文字列を返す。
.\"
-GNU 仕様の \fBstrerror_r\fP() は、 エラーメッセージを格納した文字列へのポインタを返す。 返り値は、 この関数が \fIbuf\fP
-ã\81«æ ¼ç´\8dã\81\97ã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8bã\80\81 ä½\95ã\82\89ã\81\8bã\81® (ä¸\8då¤\89ã\81ª) é\9d\99ç\9a\84ã\81ªæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\80\81 ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81¨ã\81ªã\82\8b (å¾\8cè\80\85ã\81®å ´å\90\88ã\81¯ \fIbuf\fP ã\81¯ä½¿ç\94¨ã\81\95ã\82\8cã\81ªã\81\84)ã\80\82
-\fIbuf\fP に文字列が格納される場合は、 最大で \fIbuflen\fP バイトが格納される (\fIbuflen\fP
+GNU ä»\95æ§\98ã\81® \fBstrerror_r\fP() ã\81¯ã\80\81 ã\82¨ã\83©ã\83¼ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 è¿\94ã\82\8aå\80¤ã\81¯ã\80\81 ã\81\93ã\81®é\96¢æ\95°ã\81\8c \fIbuf\fP
+ã\81«æ ¼ç´\8dã\81\97ã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8bã\80\81 ä½\95ã\82\89ã\81\8bã\81® (ä¸\8då¤\89ã\81ª) é\9d\99ç\9a\84ã\81ªæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\81 ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81¨ã\81ªã\82\8b (å¾\8cè\80\85ã\81®å ´å\90\88ã\81¯ \fIbuf\fP
+は使用されない)。 \fIbuf\fP に文字列が格納される場合は、 最大で \fIbuflen\fP バイトが格納される (\fIbuflen\fP
が小さ過ぎたときには文字列は切り詰められ、 \fIerrnum\fP は不定である)。 文字列には必ず終端ヌル文字 (\(aq\e0\(aq) が含まれる。
.SS strerror_l()
\fBstrerror_l\fP() は \fBstrerror\fP() と同様だが、 \fIerrnum\fP を \fIlocale\fP
\fBstrfry\fP() 関数は、文字列 \fIstring\fP の内容をランダムに並び換える。 並び換えは、 \fBrand\fP(3)
関数を用いて、文字列中の各文字を無作為に 交換することで実現される。結果は、文字列 \fIstring\fP のアナグラムである。
.SH 返り値
-\fBstrfry\fP() 関数は、ランダムに並び換えられた文字列へのポインタを返す。
+\fBstrfry\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83©ã\83³ã\83\80ã\83 ã\81«ä¸¦ã\81³æ\8f\9bã\81\88ã\82\89ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.SH 準拠
\fBstrfry\fP() 関数は GNU C ライブラリに特有である。
.SH 関連項目
文字列 \fIs1\fP と \fIs2\fP の最初の \fIn\fP 文字を、大文字小文字の違いを無視して比較する。
.TP
\fBchar *index(const char *\fP\fIs\fP\fB, int \fP\fIc\fP\fB);\fP
-文字列 \fIs\fP 中に最初に文字 \fIc\fP が 現れた位置へのポインタを返す。
+æ\96\87å\97å\88\97 \fIs\fP ä¸ã\81«æ\9c\80å\88\9dã\81«æ\96\87å\97 \fIc\fP ã\81\8c ç\8f¾ã\82\8cã\81\9fä½\8dç½®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.TP
\fBchar *rindex(const char *\fP\fIs\fP\fB, int \fP\fIc\fP\fB);\fP
-文字列 \fIs\fP 中に最後に文字 \fIc\fP が 現れた位置へのポインタを返す。
+æ\96\87å\97å\88\97 \fIs\fP ä¸ã\81«æ\9c\80å¾\8cã\81«æ\96\87å\97 \fIc\fP ã\81\8c ç\8f¾ã\82\8cã\81\9fä½\8dç½®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.TP
\fB#include <string.h>\fP
.TP
文字列 \fIsrc\fP を文字列 \fIdest\fP に追加し、 \fIdest\fP へのポインターを返す。
.TP
\fBchar *strchr(const char *\fP\fIs\fP\fB, int \fP\fIc\fP\fB);\fP
-文字列 \fIs\fP 中に最初に文字 \fIc\fP が 現れた位置へのポインタを返す。
+æ\96\87å\97å\88\97 \fIs\fP ä¸ã\81«æ\9c\80å\88\9dã\81«æ\96\87å\97 \fIc\fP ã\81\8c ç\8f¾ã\82\8cã\81\9fä½\8dç½®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.TP
\fBint strcmp(const char *\fP\fIs1\fP\fB, const char *\fP\fIs2\fP\fB);\fP
文字列 \fIs1\fP と \fIs2\fP を比較する。
現在のロケールを使用して、文字列 \fIs1\fP を \fIs2\fP と比較する
.TP
\fBchar *strcpy(char *\fP\fIdest\fP\fB, const char *\fP\fIsrc\fP\fB);\fP
-文字列 \fIsrc\fP を \fIdest\fP にコピーし、 \fIdest\fP の先頭へのポインタを返す。
+æ\96\87å\97å\88\97 \fIsrc\fP ã\82\92 \fIdest\fP ã\81«ã\82³ã\83\94ã\83¼ã\81\97ã\80\81 \fIdest\fP ã\81®å\85\88é ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.TP
\fBsize_t strcspn(const char *\fP\fIs\fP\fB, const char *\fP\fIreject\fP\fB);\fP
文字列 \fIs\fP の、文字列 \fIreject\fP に含まれないバイトだけで構成される最初の部分文字列の長さを計算する。
.TP
\fBchar *strdup(const char *\fP\fIs\fP\fB);\fP
-文字列 \fIs\fP を、\fBmalloc\fP(3) を使って確保したメモリに複製して返す。
+æ\96\87å\97å\88\97 \fIs\fP ã\82\92ã\80\81\fBmalloc\fP(3) ã\82\92使ã\81£ã\81¦ç¢ºä¿\9dã\81\97ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81«è¤\87製ã\81\97ã\81¦è¿\94ã\81\99ã\80\82
.TP
\fBchar *strfry(char *\fP\fIstring\fP\fB);\fP
\fIstring\fP 中の文字をランダムに並び替える。
文字列 \fIaccept\fP に含まれるバイトのいずれかが、文字列 \fIs\fP 内で最初に現れる位置を特定する。
.TP
\fBchar *strrchr(const char *\fP\fIs\fP\fB, int \fP\fIc\fP\fB);\fP
-文字列 \fIs\fP 中に最後に文字 \fIc\fP が 現れた位置へのポインタを返す。
+æ\96\87å\97å\88\97 \fIs\fP ä¸ã\81«æ\9c\80å¾\8cã\81«æ\96\87å\97 \fIc\fP ã\81\8c ç\8f¾ã\82\8cã\81\9fä½\8dç½®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.TP
\fBchar *strsep(char **\fP\fIstringp\fP\fB, const char *\fP\fIdelim\fP\fB);\fP
文字列 \fIs\fP から、\fIdelim\fP のいずれかのバイトで区切った最初のトークンを取り出す。
文字列 \fIs\fP 内で最初に現れる位置を特定する。
.SH 返り値
\fBstrpbrk\fP() 関数は、\fIs\fP 内のバイトで、\fIaccept\fP に含まれる
-バイトのいずれかに一致したバイトへのポインタを返す。
+ã\83\90ã\82¤ã\83\88ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81«ä¸\80è\87´ã\81\97ã\81\9fã\83\90ã\82¤ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
\fIaccept\fP に含まれるバイトが見つからなかった場合は NULL を返す。
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBchar *strptime(const char *\fP\fIs\fP\fB, const char *\fP\fIformat\fP\fB,\fP \fBstruct tm
*\fP\fItm\fP\fB);\fP
.SH 説明
-\fBstrptime\fP() 関数は \fBstrftime\fP(3) の逆関数である。 ポインタ \fIs\fP が指す文字列を \fIformat\fP
+\fBstrptime\fP() 関数は \fBstrftime\fP(3) の逆関数である。 ポインター \fIs\fP が指す文字列を \fIformat\fP
で指定されたフォーマットを使って「要素別の時刻」に変換し、\fItm\fP が指す構造体に格納する。
要素別の時刻構造体 \fItm\fP は \fI<time.h>\fP 内で以下の様に定義されている。
\fB%Y\fP
年。世紀の部分を含む (例: 1991)。
.LP
-E や O という修飾子を使うことで変更できるフィールドディスクリプタもある。 これらの修飾子は、別のフォーマットや仕様を使うことを指示する。
-別のフォーマットや仕様が現在のロケールに存在しないときは、 変更していないフィールドディスクリプタが使われる。
+E ã\82\84 O ã\81¨ã\81\84ã\81\86修飾å\90ã\82\92使ã\81\86ã\81\93ã\81¨ã\81§å¤\89æ\9b´ã\81§ã\81\8dã\82\8bã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\82ã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ä¿®é£¾å\90ã\81¯ã\80\81å\88¥ã\81®ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\82\84ä»\95æ§\98ã\82\92使ã\81\86ã\81\93ã\81¨ã\82\92æ\8c\87示ã\81\99ã\82\8bã\80\82
+å\88¥ã\81®ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\82\84ä»\95æ§\98ã\81\8cç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81«å\98å\9c¨ã\81\97ã\81ªã\81\84ã\81¨ã\81\8dã\81¯ã\80\81 å¤\89æ\9b´ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c使ã\82\8fã\82\8cã\82\8bã\80\82
.LP
E 修飾子は、ロケールに依存した日付と時刻の別の表現形式が 入力文字列に含まれていることを指定する。
.TP
\fB%Oy\fP
年 (\fB%C\fP からのオフセット)。ロケールに依存した別の数値シンボルを使う。
.SH 返り値
-この関数の返り値は、関数の中で処理されなかった最初の文字へのポインタである。 フォーマット文字列が必要する以上の文字が入力文字列に含まれている場合、
+ã\81\93ã\81®é\96¢æ\95°ã\81®è¿\94ã\82\8aå\80¤ã\81¯ã\80\81é\96¢æ\95°ã\81®ä¸ã\81§å\87¦ç\90\86ã\81\95ã\82\8cã\81ªã\81\8bã\81£ã\81\9fæ\9c\80å\88\9dã\81®æ\96\87å\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88æ\96\87å\97å\88\97ã\81\8cå¿\85è¦\81ã\81\99ã\82\8b以ä¸\8aã\81®æ\96\87å\97ã\81\8cå\85¥å\8a\9bæ\96\87å\97å\88\97ã\81«å\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81
返り値は最後に処理された入力文字の次の文字を指す。 すべての入力文字列が処理された場合、 返り値は文字列末尾のヌルバイトを指す。
-\fBstrptime\fP() がフォーマット文字列のすべての比較に失敗し、 エラーが起こった場合、関数はヌルポインタを返す。
+\fBstrptime\fP() ã\81\8cã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88æ\96\87å\97å\88\97ã\81®ã\81\99ã\81¹ã\81¦ã\81®æ¯\94è¼\83ã\81«å¤±æ\95\97ã\81\97ã\80\81 ã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9få ´å\90\88ã\80\81é\96¢æ\95°ã\81¯ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.SH 準拠
SUSv2, POSIX.1\-2001.
.SH 注意
(\(aq\e0\(aq) で上書きすることで 終端される。 \fI*stringp\fP は切り出されたトークンの次の位置を示すように更新される。
区切り文字が見つからない場合、\fI*stringp\fP 文字列全体がトークンとして 扱われ、\fI*stringp\fP は NULL となる。
.SH 返り値
-\fBstrsep\fP() 関数は、トークンへのポインタを返す。 つまり、元の \fI*stringp\fP の値を返す。
+\fBstrsep\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\88ã\83¼ã\82¯ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81¤ã\81¾ã\82\8aã\80\81å\85\83ã\81® \fI*stringp\fP ã\81®å\80¤ã\82\92è¿\94ã\81\99ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBstrsep\fP() 関数はスレッドセーフである。
\fBstrcasestr\fP() 関数は \fBstrstr\fP() 関数と同様だが、 両方の引数に対して大文字小文字を無視する。
.SH 返り値
-これらの関数は、見つかった部分文字列の開始を指すポインタを返し、 もし部分文字列が見つからない場合は NULL を返す。
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\80\81è¦\8bã\81¤ã\81\8bã\81£ã\81\9fé\83¨å\88\86æ\96\87å\97å\88\97ã\81®é\96\8bå§\8bã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\97ã\80\81 ã\82\82ã\81\97é\83¨å\88\86æ\96\87å\97å\88\97ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\84å ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBstrstr\fP() 関数はスレッドセーフである。
\fIdelim\fP に違う文字列を指定してもよい。
\fBstrtok\fP() のそれぞれの呼び出しでは、次のトークンを格納したヌル終端
-された文字列へのポインタが返される。この文字列には区切りバイトは含まれ
+ã\81\95ã\82\8cã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82ã\81\93ã\81®æ\96\87å\97å\88\97ã\81«ã\81¯å\8cºå\88\87ã\82\8aã\83\90ã\82¤ã\83\88ã\81¯å\90«ã\81¾ã\82\8c
ない。これ以上トークンが見つからなかった場合には、NULL が返される。
-å\90\8cã\81\98æ\96\87å\97å\88\97ã\81«å¯¾ã\81\97ã\81¦æ\93\8dä½\9cã\82\92è¡\8cã\81\86 \fBstrtok\fP() ã\82\92é\80£ç¶\9aã\81\97ã\81¦å\91¼ã\81³å\87ºã\81\99å ´å\90\88ã\80\81 次ã\81®ã\83\88ã\83¼ã\82¯ã\83³ã\82\92æ\8e¢ã\81\97å§\8bã\82\81ã\82\8bä½\8dç½®ã\82\92決ã\82\81ã\82\8bã\81\9fã\82\81ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8cä¿\9dæ\8c\81ã\81\95ã\82\8cã\82\8bã\80\82 æ\9c\80å\88\9dã\81®
-\fBstrtok\fP の呼び出しでは、 このポインタは対象の文字列の最初のバイトにセットされる。 次のトークンの先頭は、 \fIstr\fP
+å\90\8cã\81\98æ\96\87å\97å\88\97ã\81«å¯¾ã\81\97ã\81¦æ\93\8dä½\9cã\82\92è¡\8cã\81\86 \fBstrtok\fP() ã\82\92é\80£ç¶\9aã\81\97ã\81¦å\91¼ã\81³å\87ºã\81\99å ´å\90\88ã\80\81 次ã\81®ã\83\88ã\83¼ã\82¯ã\83³ã\82\92æ\8e¢ã\81\97å§\8bã\82\81ã\82\8bä½\8dç½®ã\82\92決ã\82\81ã\82\8bã\81\9fã\82\81ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cä¿\9dæ\8c\81ã\81\95ã\82\8cã\82\8bã\80\82
+最初の \fBstrtok\fP の呼び出しでは、 このポインターは対象の文字列の最初のバイトにセットされる。 次のトークンの先頭は、 \fIstr\fP
内で次の区切りバイト以外のバイトを前方に検索して決定される。 区切りバイト以外のバイトが見つからなかった場合は、 トークンはこれ以上なく、
\fBstrtok\fP() は NULL を返す (したがって、 空の文字列や区切りバイトだけを含む文字列の場合には、 最初の \fBstrtok\fP()
の呼び出しで NULL が返ることになる)。
各トークンの末尾は、次の区切りバイトが見つかるか、終端のヌルバイト (\(aq\e0\(aq) に達するまで文字列を前方に検索することで見つかる。
区切りバイトが見つかった場合には、 現在のトークンの終わりを示すために、 見つかった区切りバイトがヌルバイトで上書きされ、 \fBstrtok\fP()
-ã\81¯ã\83\9dã\82¤ã\83³ã\82¿ã\82\92次ã\81®ã\83\90ã\82¤ã\83\88ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿は、次のトークンを検索する際の開始点として使用される。 この場合、 \fBstrtok\fP()
-は見つかったトークンの先頭へのポインタを返す。
+ã\81¯ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92次ã\81®ã\83\90ã\82¤ã\83\88ã\81«è¨å®\9aã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼は、次のトークンを検索する際の開始点として使用される。 この場合、 \fBstrtok\fP()
+ã\81¯è¦\8bã\81¤ã\81\8bã\81£ã\81\9fã\83\88ã\83¼ã\82¯ã\83³ã\81®å\85\88é ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
上記の説明の通り、 解析対象の文字列に 2 つ以上の区切りバイトが連続している場合には、 一つの区切りバイトとみなされ、
文字列の先頭や末尾にある区切りバイトは無視される。 言い換えると、 \fBstrtok\fP() が返すトークンは必ず空でない文字列となる。
したがって、例えば "\fIaaa;;bbb,\fP" という文字列が与えられたとすると、 区切り文字列 "\fI;,\fP" を指定した一連の
-\fBstrtok\fP() の呼び出しでは、 "\fIaaa\fP" と \fIbbb\fP" が返り、その次にヌルポインタが返る。
+\fBstrtok\fP() ã\81®å\91¼ã\81³å\87ºã\81\97ã\81§ã\81¯ã\80\81 "\fIaaa\fP" ã\81¨ \fIbbb\fP" ã\81\8cè¿\94ã\82\8aã\80\81ã\81\9dã\81®æ¬¡ã\81«ã\83\8cã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cè¿\94ã\82\8bã\80\82
\fBstrtok_r\fP() 関数は \fBstrtok\fP() のリエントラント版である。 \fIsaveptr\fP 引き数は \fIchar\ *\fP
-変数へのポインタであり、 同じ文字列の解析を行う \fBstrtok_r\fP() の呼び出し間で処理状況を保存するために \fBstrtok_r\fP()
+å¤\89æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8aã\80\81 å\90\8cã\81\98æ\96\87å\97å\88\97ã\81®è§£æ\9e\90ã\82\92è¡\8cã\81\86 \fBstrtok_r\fP() ã\81®å\91¼ã\81³å\87ºã\81\97é\96\93ã\81§å\87¦ç\90\86ç\8a¶æ³\81ã\82\92ä¿\9då\98ã\81\99ã\82\8bã\81\9fã\82\81ã\81« \fBstrtok_r\fP()
内部で使用される。
\fBstrtok_r\fP() を最初に呼び出す際には、 \fIstr\fP は解析対象の文字列を指していなければならず、 \fIsaveptr\fP
\fBstrtok_r\fP() の呼び出し時に異なる \fIsaveptr\fP 引き数を指定することで、 異なる文字列の解析を同時に行うことができる。
.SH 返り値
-\fBstrtok\fP() と \fBstrtok_r\fP() は次のトークンへのポインタか、 トークンがなければ NULL を返す。
+\fBstrtok\fP() ã\81¨ \fBstrtok_r\fP() ã\81¯æ¬¡ã\81®ã\83\88ã\83¼ã\82¯ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8bã\80\81 ã\83\88ã\83¼ã\82¯ã\83³ã\81\8cã\81ªã\81\91ã\82\8cã\81° NULL ã\82\92è¿\94ã\81\99ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
The \fBstrtok\fP() 関数はスレッドセーフではない。
.IP *
区切りバイト自体は失われてしまう。
.IP *
-\fBstrtok\fP() 関数は文字列の解析に静的バッファを用いるので、スレッドセーフでない。 これが問題になる場合は \fBstrtok_r\fP()
+\fBstrtok\fP() é\96¢æ\95°ã\81¯æ\96\87å\97å\88\97ã\81®è§£æ\9e\90ã\81«é\9d\99ç\9a\84ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92ç\94¨ã\81\84ã\82\8bã\81®ã\81§ã\80\81ã\82¹ã\83¬ã\83\83ã\83\89ã\82»ã\83¼ã\83\95ã\81§ã\81ªã\81\84ã\80\82 ã\81\93ã\82\8cã\81\8cå\95\8fé¡\8cã\81«ã\81ªã\82\8bå ´å\90\88ã\81¯ \fBstrtok_r\fP()
を用いること。
.SH 例
以下のプログラムは、 \fBstrtok_r\fP() を利用するループを入れ子にして使用し、
.sp
.in
.fi
-という完全に同様の定義を持つ関数がある。 使用中のアーキテクチャのワード長次第であるが、この関数は \fBstrtoll\fP() か
+ã\81¨ã\81\84ã\81\86å®\8cå\85¨ã\81«å\90\8cæ§\98ã\81®å®\9a義ã\82\92æ\8c\81ã\81¤é\96¢æ\95°ã\81\8cã\81\82ã\82\8bã\80\82 使ç\94¨ä¸ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81®ã\83¯ã\83¼ã\83\89é\95·æ¬¡ç¬¬ã\81§ã\81\82ã\82\8bã\81\8cã\80\81ã\81\93ã\81®é\96¢æ\95°ã\81¯ \fBstrtoll\fP() ã\81\8b
\fBstrtol\fP() と等価となることもある。
.SH 例
以下のプログラムは \fBstrtol\fP() の使用例である。 最初のコマンドライン引き数には \fBstrtol\fP()
が数字として解釈する文字列を指定する。 (省略可能な) 二番目の引き数には 変換に使用される基数を指定する (この引き数は \fBatoi\fP(3)
-を使って数値に変換される。 \fBatoi\fP(3) は \fBstrtol\fP() よりも簡単なインタフェースを持つ関数で、
+ã\82\92使ã\81£ã\81¦æ\95°å\80¤ã\81«å¤\89æ\8f\9bã\81\95ã\82\8cã\82\8bã\80\82 \fBatoi\fP(3) ã\81¯ \fBstrtol\fP() ã\82\88ã\82\8aã\82\82ç°¡å\8d\98ã\81ªã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92æ\8c\81ã\81¤é\96¢æ\95°ã\81§ã\80\81
その中ではエラーチェックは行われない)。 このプログラムの実行例をいくつか以下に示す:
.in +4n
.nf
.sp
.in -4n
.fi
-という完全に同様の定義を持つ関数がある。 使用中のアーキテクチャのワード長次第であるが、この関数は \fBstrtoull\fP() や
+ã\81¨ã\81\84ã\81\86å®\8cå\85¨ã\81«å\90\8cæ§\98ã\81®å®\9a義ã\82\92æ\8c\81ã\81¤é\96¢æ\95°ã\81\8cã\81\82ã\82\8bã\80\82 使ç\94¨ä¸ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81®ã\83¯ã\83¼ã\83\89é\95·æ¬¡ç¬¬ã\81§ã\81\82ã\82\8bã\81\8cã\80\81ã\81\93ã\81®é\96¢æ\95°ã\81¯ \fBstrtoull\fP() ã\82\84
\fBstroul\fP() と等価な場合もありえる。
負の値も正当な入力とみなされ、エラーもなく、 対応する \fIunsigned long int\fP 型の値に変換される。
\fBversionsort\fP(3) を使って実装されているが、この中で \fBstrverscmp\fP() が使用されている。
このように \fBstrverscmp\fP() の役目は2つの文字列を比較して「正しい」順序を探すことである。 これに対して \fBstrcmp\fP(3)
-は辞書順だけで比較した結果を返す。 関数 \fBstrverscmp\fP() はロケールのカテゴリである \fBLC_COLLATE\fP を使用しない。
+ã\81¯è¾\9eæ\9b¸é \86ã\81 ã\81\91ã\81§æ¯\94è¼\83ã\81\97ã\81\9fçµ\90æ\9e\9cã\82\92è¿\94ã\81\99ã\80\82 é\96¢æ\95° \fBstrverscmp\fP() ã\81¯ã\83ã\82±ã\83¼ã\83«ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81§ã\81\82ã\82\8b \fBLC_COLLATE\fP ã\82\92使ç\94¨ã\81\97ã\81ªã\81\84ã\80\82
このことから、この関数が主にアスキー文字から成る文字列を 想定していることが分かる。
この関数の動作は以下の通りである。 両方の文字列が等しい場合、0 を返す。 それ以外の場合、その直前までは両方の文字列が等しく、
した文字列に対して \fBstrcmp\fP(3) を行った結果が、
変換を行わずに\fBstrcoll\fP(3) を行った結果と同じとなるように行う。
変換された文字列の先頭から \fIn\fP バイト分が \fIdest\fP に代入される。
-変換は、プログラムの現在のロケールのカテゴリ \fBLC_COLLATE\fP に
+変換は、プログラムの現在のロケールのカテゴリー \fBLC_COLLATE\fP に
基づいて行われる (\fBsetlocale\fP(3) を参照)。
.SH 返り値
\fBstrxfrm\fP() 関数は、変換された文字列を \fIdest\fP に代入するときに 必要なバイト数から、終端のヌルバイト
.\" standard. (?)
オプションを確認できるように、たいていは \fI<unistd.h>\fP で定数 \fB_POSIX_FOO\fP が定義されている。
定義されていないときは、実行時に問い合わせを行う必要がある。 その値が \-1 に定義されているときは、そのオプションはサポートされていない。 0
-に定義されているときは、関連する関数やヘッダファイルが存在するが、 どの程度サポートされているかは実行時に確認しなければならない。 \-1 でも 0
+ã\81«å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81¨ã\81\8dã\81¯ã\80\81é\96¢é\80£ã\81\99ã\82\8bé\96¢æ\95°ã\82\84ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\81\8cã\80\81 ã\81©ã\81®ç¨\8b度ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8bã\81¯å®\9fè¡\8cæ\99\82ã\81«ç¢ºèª\8dã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 \-1 ã\81§ã\82\82 0
でもない値に定義されているときは、そのオプションがサポート されている。通常は、そのオプションについて記載した POSIX の改訂年月
を示す値になっている (例えば 200112L)。 glibc では 1 が設定されていると、そのオプションはサポートされているが、 POSIX
の改訂版がまだ発行されていないことを示す。 \fBsysconf\fP() の引き数には \fB_SC_FOO\fP を指定する。 オプションのリストについては
アプリケーションがシステム毎に変化する値を利用したい場合には、 \fBsysconf\fP() を呼び出すことで実現できる。 \fBsysconf\fP()
の引き数には \fB_SC_FOO\fP を指定する。
.SS "POSIX.1 変数"
-変数名、その値を取得するのに使われる \fBsysconf\fP() のパラメータ名、簡単な説明を以下に示す。
+変数名、その値を取得するのに使われる \fBsysconf\fP() のパラメーター名、簡単な説明を以下に示す。
.LP
.\" [for the moment: only the things that are unconditionally present]
.\" .TP
\fBexec\fP(3) 関数群の引き数の最大長。 \fB_POSIX_ARG_MAX\fP (4096) 未満であってはならない。
.TP
\fBCHILD_MAX\fP \- \fB_SC_CHILD_MAX\fP
-ユーザID あたりの同時に存在できるプロセスの最大数。 \fB_POSIX_CHILD_MAX\fP (25) 未満であってはならない。
+ユーザーID あたりの同時に存在できるプロセスの最大数。 \fB_POSIX_CHILD_MAX\fP (25) 未満であってはならない。
.TP
\fBHOST_NAME_MAX\fP \- \fB_SC_HOST_NAME_MAX\fP
\fBgethostname\fP(2) で返されるホスト名の最大長。末尾のヌルバイトは長さに含まれない。 \fB_POSIX_HOST_NAME_MAX\fP
\fBbc\fP(1) で許容される文字列の最大長。
.TP
\fBCOLL_WEIGHTS_MAX\fP \- \fB_SC_COLL_WEIGHTS_MAX\fP
-ロケール定義ファイル中の \fBLC_COLLATE order\fP キーワードのエントリに割り当て可能な重みの最大値。
+ã\83ã\82±ã\83¼ã\83«å®\9a義ã\83\95ã\82¡ã\82¤ã\83«ä¸ã\81® \fBLC_COLLATE order\fP ã\82ã\83¼ã\83¯ã\83¼ã\83\89ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81«å\89²ã\82\8aå½\93ã\81¦å\8f¯è\83½ã\81ªé\87\8dã\81¿ã\81®æ\9c\80大å\80¤ã\80\82
.TP
\fBEXPR_NEST_MAX\fP \- \fB_SC_EXPR_NEST_MAX\fP
\fBexpr\fP(1) において、括弧で入れ子にできる式の最大数。
以下の値も存在するが、標準には含まれていない。
.TP
\- \fB_SC_PHYS_PAGES\fP
-物理メモリのページ数。 この値と \fB_SC_PAGESIZE\fP 値の積は桁溢れする可能性があるので注意すること。
+ç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83\9aã\83¼ã\82¸æ\95°ã\80\82 ã\81\93ã\81®å\80¤ã\81¨ \fB_SC_PAGESIZE\fP å\80¤ã\81®ç©\8dã\81¯æ¡\81溢ã\82\8cã\81\99ã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\81®ã\81§æ³¨æ\84\8fã\81\99ã\82\8bã\81\93ã\81¨ã\80\82
.TP
\- \fB_SC_AVPHYS_PAGES\fP
-現在利用可能な物理メモリのページ数。
+ç\8f¾å\9c¨å\88©ç\94¨å\8f¯è\83½ã\81ªç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83\9aã\83¼ã\82¸æ\95°ã\80\82
.TP
\- \fB_SC_NPROCESSORS_CONF\fP
設定されたプロセッサ数。
POSIX.1\-2001.
.SH バグ
\fBARG_MAX\fP を使うのは難しい、なぜなら、 \fBexec\fP(3) の引き数領域 (argument space) のうちどれくらいが
-ユーザの環境変数によって使われるかは分からないからである。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ç\92°å¢\83å¤\89æ\95°ã\81«ã\82\88ã\81£ã\81¦ä½¿ã\82\8fã\82\8cã\82\8bã\81\8bã\81¯å\88\86ã\81\8bã\82\89ã\81ªã\81\84ã\81\8bã\82\89ã\81§ã\81\82ã\82\8bã\80\82
.PP
-いくつかの返り値はとても大きくなることがある。これらを使って メモリの割り当てを行うのは適当ではない。
+ã\81\84ã\81\8fã\81¤ã\81\8bã\81®è¿\94ã\82\8aå\80¤ã\81¯ã\81¨ã\81¦ã\82\82大ã\81\8dã\81\8fã\81ªã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\80\82ã\81\93ã\82\8cã\82\89ã\82\92使ã\81£ã\81¦ ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\89²ã\82\8aå½\93ã\81¦ã\82\92è¡\8cã\81\86ã\81®ã\81¯é\81©å½\93ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.SH 関連項目
\fBbc\fP(1), \fBexpr\fP(1), \fBgetconf\fP(1), \fBlocale\fP(1), \fBconfstr\fP(3),
\fBfpathconf\fP(3), \fBpathconf\fP(3), \fBposixoptions\fP(7)
指定された引き数は、 \fBstdarg\fP(3) 可変引き数リストマクロを用いて取得される。
以下のサブセクションでは、 \fIoption\fP と \fIfacility\fP と \fIpriority\fP
-の値を設定するのに使用されるパラメータを説明する。
+ã\81®å\80¤ã\82\92è¨å®\9aã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92説æ\98\8eã\81\99ã\82\8bã\80\82
.SS option
下記の値を OR したものが \fBopenlog\fP() の \fIoption\fP 引き数になる:
.TP 15
\fBLOG_KERN\fP
.\" LOG_KERN has the value 0; if used as a facility, zero translates to:
.\" "use the default facility".
-カーネルメッセージ (ユーザプロセスから生成することはできない)
+ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ (ã\83¦ã\83¼ã\82¶ã\83¼ã\83\97ã\83ã\82»ã\82¹ã\81\8bã\82\89ç\94\9fæ\88\90ã\81\99ã\82\8bã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81ªã\81\84)
.TP
\fBLOG_LOCAL0\fP から \fBLOG_LOCAL7\fP
ローカルな使用のためにリザーブされている
.TP
\fBLOG_LPR\fP
-ã\83©ã\82¤ã\83³ã\83\97ã\83ªã\83³ã\82¿ã\83»ã\82µã\83\96ã\82·ã\82¹ã\83\86ã\83
+ラインプリンタサブシステム
.TP
\fBLOG_MAIL\fP
-ã\83¡ã\83¼ã\83«ã\83»ã\82µã\83\96ã\82·ã\82¹ã\83\86ã\83
+メールサブシステム
.TP
\fBLOG_NEWS\fP
-USENET ã\83\8bã\83¥ã\83¼ã\82¹ã\83»ã\82µã\83\96ã\82·ã\82¹ã\83\86ã\83
+USENET ニュースサブシステム
.TP
\fBLOG_SYSLOG\fP
\fBsyslogd\fP(8) によって内部的に発行されるメッセージ
.TP
\fBLOG_USER\fP (デフォルト)
-一般的なユーザレベルメッセージ
+ä¸\80è\88¬ç\9a\84ã\81ªã\83¦ã\83¼ã\82¶ã\83¼ã\83¬ã\83\99ã\83«ã\83¡ã\83\83ã\82»ã\83¼ã\82¸
.TP
\fBLOG_UUCP\fP
UUCPサブシステム
(substitutions) と I/O リダイレクトを行う。 \fBsystem\fP() を使用することによる主なコストは非効率性である。
シェルを実行するプロセスを作成するためとそのシェルを実行するために、余計にシステムコールが必要となる。
-(「どの」ヘッダファイルをインクルードするよりも前に) 機能検査マクロ \fB_XOPEN_SOURCE\fP が定義された場合には、
+(ã\80\8cã\81©ã\81®ã\80\8dã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\99ã\82\8bã\82\88ã\82\8aã\82\82å\89\8dã\81«) æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83 \fB_XOPEN_SOURCE\fP ã\81\8cå®\9a義ã\81\95ã\82\8cã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81
\fBwaitpid\fP(2) で説明されているマクロ群 (\fBWEXITSTATUS\fP() 等) が \fI<stdlib.h>\fP
をインクルードすると利用可能になる。
.PP
\fBsysv_signal\fP() 関数は \fBsignal\fP(2) と同じ引き数をとり、同じ処理を実行する。
しかしながら、 \fBsysv_signal\fP() は System V の信頼性に欠けるシグナル処理方式を提供している。
-信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンドラが起動されると、シグナルの処理方法 (disposition) が
-ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81«ã\83ªã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\81 b) ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\81®å®\9fè¡\8cä¸ã\81¯ã\80\81ã\81\9dã\82\8c以é\99\8dã\81«ç\99ºç\94\9fã\81\97ã\81\9få\90\8cã\81\98ã\82·ã\82°ã\83\8aã\83«ã\81®é\85\8dé\80\81ã\81\8c ã\83\96ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81ªã\81\84ã\80\81 c) ã\83\8fã\83³ã\83\89ã\83©が停止中の
+ä¿¡é ¼æ\80§ã\81«æ¬ ã\81\91ã\82\8bã\82·ã\82°ã\83\8aã\83«å\87¦ç\90\86æ\96¹å¼\8fã\81¯ä»¥ä¸\8bã\81®ç\89¹å¾´ã\82\92æ\8c\81ã\81¤ã\80\82 a) ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cèµ·å\8b\95ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\81®å\87¦ç\90\86æ\96¹æ³\95 (disposition) ã\81\8c
+ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81«ã\83ªã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\81 b) ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®å®\9fè¡\8cä¸ã\81¯ã\80\81ã\81\9dã\82\8c以é\99\8dã\81«ç\99ºç\94\9fã\81\97ã\81\9få\90\8cã\81\98ã\82·ã\82°ã\83\8aã\83«ã\81®é\85\8dé\80\81ã\81\8c ã\83\96ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81ªã\81\84ã\80\81 c) ã\83\8fã\83³ã\83\89ã\83©ã\83¼が停止中の
(blocking している) システムコールを中断した場合、 自動的に再開されないシステムコールがある。
.SH 返り値
-\fBsysv_signal\fP() 関数はシグナルハンドラの直前の値を返す。 エラーの場合、 \fBSIG_ERR\fP を返す。
+\fBsysv_signal\fP() é\96¢æ\95°ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®ç\9b´å\89\8dã\81®å\80¤ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81 \fBSIG_ERR\fP ã\82\92è¿\94ã\81\99ã\80\82
.SH エラー
\fBsignal\fP(2) と同じ。
.SH 属性
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP が適切なファイルディスクリプタでない。
+\fIfd\fP ã\81\8cé\81©å\88\87ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
\fIpgrp\fP が無効な値である。
.sp
\fBpid_t tcgetsid(int \fP\fIfd\fP\fB);\fP
.SH 説明
-é\96¢æ\95° \fBtcgetsid\fP() ã\81¯ã\80\81å\88¶å¾¡ç«¯æ\9c«ã\81¨ã\81\97ã\81¦ \fIfd\fP ã\81«å¯¾å¿\9cã\81\99ã\82\8b端æ\9c«ã\82\92æ\8c\81ã\81¤ã\82«ã\83¬ã\83³ã\83\88ã\83»ã\82»ã\83\83ã\82·ã\83§ã\83³ã\81®ã\82»ã\83\83ã\82·ã\83§ã\83³ID ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®ç«¯æ\9c«ã\81¯
+関数 \fBtcgetsid\fP() は、制御端末として \fIfd\fP に対応する端末を持つカレントセッションのセッションID を返す。 この端末は
\fBtcgetsid\fP() の呼び出しを行うプロセスの制御端末で なければならない。
.SH 返り値
\fIfd\fP が呼び出しを行ったセッションの制御端末を参照している場合、 関数 \fBtcgetsid\fP() はこのセッションのセッションID を返す。
.SH エラー
.TP
\fBEBADF\fP
-\fIfd\fP が有効なファイルディスクリプタではない。
+\fIfd\fP ã\81\8cæ\9c\89å\8a¹ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.TP
\fBENOTTY\fP
呼び出しを行ったプロセスが制御端末を持っていない、もしくは 制御端末を持っているが \fIfd\fP で参照されるものとは異なる。
.SH エラー
.TP
\fBEBADF\fP
-ディレクトリストリームディスクリプタ \fIdirp\fP が無効である。
+ディレクトリストリームディスクリプター \fIdirp\fP が無効である。
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
\fBtelldir\fP() 関数はスレッドセーフである。
.SH 説明
\fI決してこの関数を使用しないこと。\fP 代わりに \fBmkstemp\fP(3) か \fBtmpfile\fP(3) を使うこと。
-\fBtempnam\fP() 関数はファイル名として正しい文字列へのポインタを返す。 このファイル名を持つファイルは、 \fBtempnam\fP()
+\fBtempnam\fP() é\96¢æ\95°ã\81¯ã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\81¨ã\81\97ã\81¦æ£ã\81\97ã\81\84æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\82\92æ\8c\81ã\81¤ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81 \fBtempnam\fP()
がチェックした時点においては存在しない (しなかった)。 \fIpfx\fP が NULL でない 5 バイト以内の文字列であれば、
生成されるパス名のうちのファイル名の部分は \fIpfx\fP から始まるものになる。 生成されるディレクトリの部分は、「適切」でなければならない
(大抵の場合、「適切」であるためにはまず少なくとも 書き込み可能でなければならない)。
.PP
\fBtempnam\fP() が返す文字列は \fBmalloc\fP(3) を使って確保される。そのため、 \fBfree\fP(3) で解放すべきである。
.SH 返り値
-成功すると \fBtempnam\fP() 関数は、一意なテンポラリファイル名へのポインタを返す。 一意な名前が生成できなければ NULL を返し、
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ \fBtempnam\fP() é\96¢æ\95°ã\81¯ã\80\81ä¸\80æ\84\8fã\81ªã\83\86ã\83³ã\83\9dã\83©ã\83ªã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ä¸\80æ\84\8fã\81ªå\90\8då\89\8dã\81\8cç\94\9fæ\88\90ã\81§ã\81\8dã\81ªã\81\91ã\82\8cã\81° NULL ã\82\92è¿\94ã\81\97ã\80\81
\fIerrno\fP にエラーの原因を示す値を設定する。
.SH エラー
.TP
されていない場合に限ってこれを用いる。 SVr4 では \fBd)\fP で使用されるディレクトリを \fI/tmp\fP と定めている (glibc
もこの通りである)。
.LP
-パス名を返すのに使用するメモリを動的に確保するので、 \fBtmpnam\fP(3) と違い、 \fBtempnam\fP()
+ã\83\91ã\82¹å\90\8dã\82\92è¿\94ã\81\99ã\81®ã\81«ä½¿ç\94¨ã\81\99ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\8b\95ç\9a\84ã\81«ç¢ºä¿\9dã\81\99ã\82\8bã\81®ã\81§ã\80\81 \fBtmpnam\fP(3) ã\81¨é\81\95ã\81\84ã\80\81 \fBtempnam\fP()
はリエントラントであり、スレッドセーフである。
.LP
\fBtempnam\fP() 関数は最大 \fBTMP_MAX\fP 回まで、呼び出される度に異なる文字列を作成する (\fBTMP_MAX\fP は
.sp
\fBcfsetspeed\fP(), \fBcfmakeraw\fP(): _BSD_SOURCE
.SH 説明
-termios 関数群は、非同期通信ポートを制御するための汎用 ターミナルインタフェースである。
+termios é\96¢æ\95°ç¾¤ã\81¯ã\80\81é\9d\9eå\90\8cæ\9c\9fé\80\9aä¿¡ã\83\9dã\83¼ã\83\88ã\82\92å\88¶å¾¡ã\81\99ã\82\8bã\81\9fã\82\81ã\81®æ±\8eç\94¨ ã\82¿ã\83¼ã\83\9fã\83\8aã\83«ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81§ã\81\82ã\82\8bã\80\82
.SS "termios 構造体"
.LP
-ここに示されている関数の多くは、引き数に \fItermios_p\fP を用いる。 この引き数は \fItermios\fP 構造体へのポインタである。
+ã\81\93ã\81\93ã\81«ç¤ºã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bé\96¢æ\95°ã\81®å¤\9aã\81\8fã\81¯ã\80\81å¼\95ã\81\8dæ\95°ã\81« \fItermios_p\fP ã\82\92ç\94¨ã\81\84ã\82\8bã\80\82 ã\81\93ã\81®å¼\95ã\81\8dæ\95°ã\81¯ \fItermios\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
この構造体には少なくとも以下に示すメンバが含まれる:
.sp
.in +4n
シンボルの一覧 (初期値) と意味は以下の通り。
.TP
\fBVDISCARD\fP
-(POSIX にはない; Linux では対応していない; 017, SI, Ctrl\-O) 未送信バッファの内容の破棄/保存を切り替える。
+(POSIX ã\81«ã\81¯ã\81ªã\81\84; Linux ã\81§ã\81¯å¯¾å¿\9cã\81\97ã\81¦ã\81\84ã\81ªã\81\84; 017, SI, Ctrl\-O) æ\9cªé\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å\86\85容ã\81®ç ´æ£\84/ä¿\9då\98ã\82\92å\88\87ã\82\8aæ\9b¿ã\81\88ã\82\8bã\80\82
\fBIEXTEN\fP がセットされている場合に認識し、入力には渡されない。
.TP
\fBVDSUSP\fP
.TP
\fBVEOF\fP
(004, EOT, Ctrl\-D) ファイル終端文字 (EOF)。
-より正確には、tty バッファの内容を行末を待たずにユーザープログラムに送る。
+ã\82\88ã\82\8aæ£ç¢ºã\81«ã\81¯ã\80\81tty ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å\86\85容ã\82\92è¡\8cæ\9c«ã\82\92å¾\85ã\81\9fã\81\9aã\81«ã\83¦ã\83¼ã\82¶ã\83¼ã\83\97ã\83ã\82°ã\83©ã\83 ã\81«é\80\81ã\82\8bã\80\82
これが行の最初の文字だった場合、ユーザープログラムの \fBread\fP(2) は 0 を 返し、
ファイル終端であることを知らせる。 \fBICANON\fP がセットされている場合に認識し、
入力には渡されない。
下記の非カノニカルモードの説明を参照のこと。
.SS 端末の設定の取得と変更
.PP
-\fBtcgetattr\fP() は \fIfd\fP に関するパラメータを取得し、\fItermios_p\fP が参照する構 造体 \fItermios\fP
+\fBtcgetattr\fP() ã\81¯ \fIfd\fP ã\81«é\96¢ã\81\99ã\82\8bã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92å\8f\96å¾\97ã\81\97ã\80\81\fItermios_p\fP ã\81\8cå\8f\82ç\85§ã\81\99ã\82\8bæ§\8b é\80 ä½\93 \fItermios\fP
に設定する。この関数はバックグラウンドプロセスから 呼ばれることもあるが、この場合、端末の属性はフォアグラウンドプロセス によって変化することもある。
.LP
-\fBtcsetattr\fP() は端末に関連したパラメータを設定する (ハードウェアの設定に必要で、ここで 設定できないものを除く)。設定には
+\fBtcsetattr\fP() ã\81¯ç«¯æ\9c«ã\81«é\96¢é\80£ã\81\97ã\81\9fã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8b (ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\81®è¨å®\9aã\81«å¿\85è¦\81ã\81§ã\80\81ã\81\93ã\81\93ã\81§ è¨å®\9aã\81§ã\81\8dã\81ªã\81\84ã\82\82ã\81®ã\82\92é\99¤ã\81\8f)ã\80\82è¨å®\9aã\81«ã\81¯
\fItermios_p\fP が参照する \fItermios\fP 構造体を用いる。 \fIoptional_actions\fP
には変更が有効となるタイミングを設定する:
.IP \fBTCSANOW\fP
ただちに変更が有効となる。
.IP \fBTCSADRAIN\fP
-\fIfd\fP への出力がすべて転送された後に変更が有効になる。このオプションは 出力に影響するパラメータを変更する時に使用するべきである。
+\fIfd\fP ã\81¸ã\81®å\87ºå\8a\9bã\81\8cã\81\99ã\81¹ã\81¦è»¢é\80\81ã\81\95ã\82\8cã\81\9få¾\8cã\81«å¤\89æ\9b´ã\81\8cæ\9c\89å\8a¹ã\81«ã\81ªã\82\8bã\80\82ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¯ å\87ºå\8a\9bã\81«å½±é\9f¿ã\81\99ã\82\8bã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92å¤\89æ\9b´ã\81\99ã\82\8bæ\99\82ã\81«ä½¿ç\94¨ã\81\99ã\82\8bã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82
.IP \fBTCSAFLUSH\fP
-パラメータを変更する前に、 \fIfd\fP への出力がすべて転送され、受信したがまだ読み込んでいないすべての 入力が破棄される。
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92å¤\89æ\9b´ã\81\99ã\82\8bå\89\8dã\81«ã\80\81 \fIfd\fP ã\81¸ã\81®å\87ºå\8a\9bã\81\8cã\81\99ã\81¹ã\81¦è»¢é\80\81ã\81\95ã\82\8cã\80\81å\8f\97ä¿¡ã\81\97ã\81\9fã\81\8cã\81¾ã\81 èªã\81¿è¾¼ã\82\93ã\81§ã\81\84ã\81ªã\81\84ã\81\99ã\81¹ã\81¦ã\81® å\85¥å\8a\9bã\81\8cç ´æ£\84ã\81\95ã\82\8cã\82\8bã\80\82
.SS カノニカルモードと非カノニカルモード
\fIc_lflag\fP の \fBICANON\fP フラグの設定により、端末がカノニカルモードで動作するかが決定される。 \fBICANON\fP
がセットされた場合、カノニカルモード (canonical mode) となり、 セットされない場合、非カノニカルモード (noncanonical
カノニカルモードでは、以下のような動作となる。
.IP * 2
入力は行単位に行われる。 行区切り文字が打ち込まれた時点で、入力行が利用可能となる。 行区切り文字は NL, EOL, EOL2 および行頭での EOF
-である。 EOF 以外の場合、 \fBread\fP(2) が返すバッファに行区切り文字も含められる。
+ã\81§ã\81\82ã\82\8bã\80\82 EOF 以å¤\96ã\81®å ´å\90\88ã\80\81 \fBread\fP(2) ã\81\8cè¿\94ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«è¡\8cå\8cºå\88\87ã\82\8aæ\96\87å\97ã\82\82å\90«ã\82\81ã\82\89ã\82\8cã\82\8bã\80\82
.IP * 2
行編集が有効となる (ERASE, KILL が効果を持つ。 \fBIEXTEN\fP フラグが設定された場合は、 WERASE, REPRINT,
LNEXT も効果を持つ)。 \fBread\fP(2) は最大でも 1行の入力しか返さない。 \fBread\fP(2)
が要求したバイト数が現在の入力行のバイト数よりも少ない場合、 要求したのと同じバイト数だけが読み込まれ、 残りの文字は次回の \fBread\fP(2)
で読み込まれる。
.PP
-非カノニカルモードでは、入力は即座に利用可能となり (ユーザは行区切り文字を打ち込む必要はない)、入力処理は実行されず、行編集は無効となる。 MIN
+é\9d\9eã\82«ã\83\8eã\83\8bã\82«ã\83«ã\83¢ã\83¼ã\83\89ã\81§ã\81¯ã\80\81å\85¥å\8a\9bã\81¯å\8d³åº§ã\81«å\88©ç\94¨å\8f¯è\83½ã\81¨ã\81ªã\82\8a (ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯è¡\8cå\8cºå\88\87ã\82\8aæ\96\87å\97ã\82\92æ\89\93ã\81¡è¾¼ã\82\80å¿\85è¦\81ã\81¯ã\81ªã\81\84)ã\80\81å\85¥å\8a\9bå\87¦ç\90\86ã\81¯å®\9fè¡\8cã\81\95ã\82\8cã\81\9aã\80\81è¡\8cç·¨é\9b\86ã\81¯ç\84¡å\8a¹ã\81¨ã\81ªã\82\8bã\80\82 MIN
(\fIc_cc[VMIN]\fP) と TIME (\fIc_cc[VTIME]\fP) の設定により、 \fBread\fP(2)
が完了する条件が決定される。4種類の場合がある:
.TP
\fBread\fP(2) は、利用可能なデータが MIN バイトに達するまで停止する。返り値は最大でも要求バイト数である。
.TP
MIN == 0, TIME > 0 (タイムアウト付きの読み込み)
-TIME ã\81¯ã\82¿ã\82¤ã\83\9eã\81®ä¸\8aé\99\90ã\82\92è¦\8få®\9aã\81\97ã\80\81å\8d\98ä½\8dã\81¯ 1/10 ç§\92ã\81§ã\81\82ã\82\8bã\80\82 ã\82¿ã\82¤ã\83\9eは \fBread\fP(2) が呼ばれた時点で開始される。 \fBread\fP(2)
-が返るのは、少なくとも 1バイトのデータが利用可能となった時点、 またはタイマが時間切れとなった時点である。
-入力が全くなくタイマが時間切れとなった場合、 \fBread\fP(2) は 0 を返す。 \fBread\fP(2)
+TIME ã\81¯ã\82¿ã\82¤ã\83\9eã\83¼ã\81®ä¸\8aé\99\90ã\82\92è¦\8få®\9aã\81\97ã\80\81å\8d\98ä½\8dã\81¯ 1/10 ç§\92ã\81§ã\81\82ã\82\8bã\80\82 ã\82¿ã\82¤ã\83\9eã\83¼は \fBread\fP(2) が呼ばれた時点で開始される。 \fBread\fP(2)
+ã\81\8cè¿\94ã\82\8bã\81®ã\81¯ã\80\81å°\91ã\81ªã\81\8fã\81¨ã\82\82 1ã\83\90ã\82¤ã\83\88ã\81®ã\83\87ã\83¼ã\82¿ã\81\8cå\88©ç\94¨å\8f¯è\83½ã\81¨ã\81ªã\81£ã\81\9fæ\99\82ç\82¹ã\80\81 ã\81¾ã\81\9fã\81¯ã\82¿ã\82¤ã\83\9eã\83¼ã\81\8cæ\99\82é\96\93å\88\87ã\82\8cã\81¨ã\81ªã\81£ã\81\9fæ\99\82ç\82¹ã\81§ã\81\82ã\82\8bã\80\82
+å\85¥å\8a\9bã\81\8cå\85¨ã\81\8fã\81ªã\81\8fã\82¿ã\82¤ã\83\9eã\83¼ã\81\8cæ\99\82é\96\93å\88\87ã\82\8cã\81¨ã\81ªã\81£ã\81\9få ´å\90\88ã\80\81 \fBread\fP(2) ã\81¯ 0 ã\82\92è¿\94ã\81\99ã\80\82 \fBread\fP(2)
の呼び出し時にすでに利用可能なデータがある場合、 その呼び出しは呼び出し直後にそのデータが到着したかのように振る舞う。
.TP
MIN > 0, TIME > 0 (バイト間のタイムアウト付きの読み出し)
-TIME はタイマの上限を規定し、単位は 1/10 秒である。 入力の最初のバイトが利用可能になった後は、 新たに
-1バイト受信する度にタイマがリセットされる。 \fBread\fP(2) は以下の条件のいずれかを満たした場合に返る。
+TIME ã\81¯ã\82¿ã\82¤ã\83\9eã\83¼ã\81®ä¸\8aé\99\90ã\82\92è¦\8få®\9aã\81\97ã\80\81å\8d\98ä½\8dã\81¯ 1/10 ç§\92ã\81§ã\81\82ã\82\8bã\80\82 å\85¥å\8a\9bã\81®æ\9c\80å\88\9dã\81®ã\83\90ã\82¤ã\83\88ã\81\8cå\88©ç\94¨å\8f¯è\83½ã\81«ã\81ªã\81£ã\81\9få¾\8cã\81¯ã\80\81 æ\96°ã\81\9fã\81«
+1ã\83\90ã\82¤ã\83\88å\8f\97ä¿¡ã\81\99ã\82\8b度ã\81«ã\82¿ã\82¤ã\83\9eã\83¼ã\81\8cã\83ªã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82 \fBread\fP(2) ã\81¯ä»¥ä¸\8bã\81®æ\9d¡ä»¶ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\82\92æº\80ã\81\9fã\81\97ã\81\9få ´å\90\88ã\81«è¿\94ã\82\8bã\80\82
.RS
.IP * 3
MIN バイトのデータを受信した。
\fBtmpfile\fP() 関数はユニークなテンポラリファイルを バイナリリードライトモード (w+b) でオープンする。
このファイルはクローズ時またはプログラムの終了時に自動的に削除される。
.SH 返り値
-\fBtmpfile\fP() 関数はファイルポインタを返すか、 ユニークなファイルが作れなかったかオープンできなかった場合は NULL を返す。
+\fBtmpfile\fP() é\96¢æ\95°ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\81\8bã\80\81 ã\83¦ã\83\8bã\83¼ã\82¯ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\81\8cä½\9cã\82\8cã\81ªã\81\8bã\81£ã\81\9fã\81\8bã\82ªã\83¼ã\83\97ã\83³ã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82
後者の場合、エラーを表す \fIerrno\fP を設定する。
.SH エラー
.TP
呼び出しがシグナルによって中断された。
.TP
\fBEMFILE\fP
-1 つのプロセスで使用可能なファイルディスクリプタ数を超過した。
+1 つのプロセスで使用可能なファイルディスクリプター数を超過した。
.TP
\fBENFILE\fP
システム全体でオープン可能なファイル数を超過した。
.SH 説明
\fB注意:\fP \fBtmpnam\fP() の使用は避けること。代わりに \fBmkstemp\fP(3) か \fBtmpfile\fP(3) を使うこと。
-\fBtmpnam\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\81«ä½¿ã\81\88ã\82\8bæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\81\82ã\82\8bæ\99\82ç\82¹ã\81§ã\81¯å\90\8cã\81\98å\90\8då\89\8dã\82\92æ\8c\81ã\81¤ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\84ã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\81®ã\81§ã\80\81
-幼稚なプログラマはこの文字列が一時ファイルのファイル名として 適していると考えるかもしれない。 引き数 \fIs\fP が NULL
-なら、この名前は内部の静的バッファに作成され、 次に \fBtmpnam\fP() 関数が呼び出された時に上書きされる。 \fIs\fP が NULL
-でなければ、ファイル名は \fIs\fP が指す (少なくとも \fIL_tmpnam\fP の長さを持つ) 文字配列にコピーされ、 成功した場合は \fIs\fP
-が返される。
+\fBtmpnam\fP() é\96¢æ\95°ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\81«ä½¿ã\81\88ã\82\8bæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
+ある時点では同じ名前を持つファイルが存在しないファイル名が返されるので、 幼稚なプログラマはこの文字列が一時ファイルのファイル名として
+適していると考えるかもしれない。 引き数 \fIs\fP が NULL なら、この名前は内部の静的バッファーに作成され、 次に \fBtmpnam\fP()
+関数が呼び出された時に上書きされる。 \fIs\fP が NULL でなければ、ファイル名は \fIs\fP が指す (少なくとも \fIL_tmpnam\fP
+ã\81®é\95·ã\81\95ã\82\92æ\8c\81ã\81¤) æ\96\87å\97é\85\8då\88\97ã\81«ã\82³ã\83\94ã\83¼ã\81\95ã\82\8cã\80\81 æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\81¯ \fIs\fP ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82
.LP
作成されるパス名は、ディレクトリの部分に \fIP_tmpdir\fP が使われる。 (\fIL_tmpnam\fP と \fIP_tmpdir\fP は、以下で説明する
\fBTMP_MAX\fP 同様 \fI<stdio.h>\fP で定義されている。)
.SH 返り値
-\fBtmpnam\fP() 関数は一意な一時ファイル名へのポインタを返す。 一意なファイル名が作成できなかった場合は NULL を返す。
+\fBtmpnam\fP() é\96¢æ\95°ã\81¯ä¸\80æ\84\8fã\81ªä¸\80æ\99\82ã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ä¸\80æ\84\8fã\81ªã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\81\8cä½\9cæ\88\90ã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82
.SH エラー
エラーは定義されていない。
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
-\fBtmpnam\fP() 関数は例外付きでスレッドセーフである。 NULL パラメータで呼び出された場合はスレッドセーフではない。
+\fBtmpnam\fP() é\96¢æ\95°ã\81¯ä¾\8bå¤\96ä»\98ã\81\8dã\81§ã\82¹ã\83¬ã\83\83ã\83\89ã\82»ã\83¼ã\83\95ã\81§ã\81\82ã\82\8bã\80\82 NULL ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81§å\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9få ´å\90\88ã\81¯ã\82¹ã\83¬ã\83\83ã\83\89ã\82»ã\83¼ã\83\95ã\81§ã\81¯ã\81ªã\81\84ã\80\82
.LP
\fBtmpnam_r\fP() 関数はスレッドセーフである。
.SH 準拠
.fi
.sp
数は少ないが、この関数を実装しているシステムもある。 この関数の glibc のプロトタイプを \fI<stdio.h>\fP から得るには、
-(「どの」ヘッダファイルをインクルードするよりも前に) \fB_SVID_SOURCE\fP か \fB_BSD_SOURCE\fP を定義しておく必要がある。
+(ã\80\8cã\81©ã\81®ã\80\8dã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\99ã\82\8bã\82\88ã\82\8aã\82\82å\89\8dã\81«) \fB_SVID_SOURCE\fP ã\81\8b \fB_BSD_SOURCE\fP ã\82\92å®\9a義ã\81\97ã\81¦ã\81\8aã\81\8få¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82
.SH バグ
決してこの関数を使ってはならない。代わりに \fBmkstemp\fP(3) か \fBtmpfile\fP(3) を使うこと。
.SH 関連項目
.SH 準拠
C99.
.SH 注意
-\fBtowctrans\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBtowctrans\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBtowlower\fP(3), \fBtowupper\fP(3), \fBwctrans\fP(3)
.SH この文書について
\fBtowlower_l\fP(): POSIX.1\-2008.
.SH 注意
-これらの関数の動作は、ロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81®å\8b\95ä½\9cã\81¯ã\80\81ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.PP
これらの関数で Unicode 文字を扱うのはあまり適切でない。 なぜなら、Unicode には、大文字 (upper case)・小文字 (lower
case)・ タイトル文字 (title case) という 3 つの "case" が含まれているからである。
\fBtowupper_l\fP(): POSIX.1\-2008.
.SH 注意
-これらの関数の動作は、ロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81®å\8b\95ä½\9cã\81¯ã\80\81ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.PP
これらの関数で Unicode 文字を扱うのはあまり適切でない。 なぜなら、Unicode には、大文字 (upper case)・小文字 (lower
case)・ タイトル文字 (title case) という 3 つの "case" が含まれているからである。
.fi
.SH 説明
\fBtsearch\fP(), \fBtfind\fP(), \fBtwalk\fP(), \fBtdelete\fP() は 二分木を操作する関数である。 これらの関数は
-Knuth (6.2.2) Algorithm T に基づいている。 木構造における各ノードの最初のフィールドは、対応するデータ・
-ã\82¢ã\82¤ã\83\86ã\83 ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81\82ã\82\8bã\80\82 (å\8f\82ç\85§å\85\88ã\81®ã\83\87ã\83¼ã\82¿ã\81¯ã\80\81å\91¼ã\81³å\87ºã\81\97ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ç\94¨æ\84\8fã\81\99ã\82\8bã\80\82) \fIcompar\fP ã\81¯æ¯\94è¼\83ã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿である。
-比較ルーチンは、アイテムへのポインタ 2 つを引き数に持つ。 比較ルーチンの返り値は、1 つ目のアイテムが 2 つ目のアイテムよりも
+Knuth (6.2.2) Algorithm T に基づいている。 木構造における各ノードの最初のフィールドは、対応するデータ
+ã\82¢ã\82¤ã\83\86ã\83 ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 (å\8f\82ç\85§å\85\88ã\81®ã\83\87ã\83¼ã\82¿ã\81¯ã\80\81å\91¼ã\81³å\87ºã\81\97ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ç\94¨æ\84\8fã\81\99ã\82\8bã\80\82) \fIcompar\fP ã\81¯æ¯\94è¼\83ã\83«ã\83¼ã\83\81ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼である。
+比較ルーチンは、アイテムへのポインター 2 つを引き数に持つ。 比較ルーチンの返り値は、1 つ目のアイテムが 2 つ目のアイテムよりも
「小さい、等しい、大きい」によって、 「負、0、正」の整数値でなければならない。
.PP
-\fBtsearch\fP() は、木構造からアイテムを検索する関数である。 \fIkey\fP は、検索するアイテムへのポインタである。 \fIrootp\fP
-ã\81¯æ\9c¨æ§\8bé\80 ã\81®æ ¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿である。 木構造がノードを含まない場合、\fIrootp\fP の参照している変数は NULL
-に設定されていなければならない。 木構造にアイテムが見つかった場合、 \fBtsearch\fP() はそのアイテムへのポインタを返す。
-見つからなかった場合は、アイテムを木構造に追加し、 追加したアイテムへのポインタを返す。
+\fBtsearch\fP() ã\81¯ã\80\81æ\9c¨æ§\8bé\80 ã\81\8bã\82\89ã\82¢ã\82¤ã\83\86ã\83 ã\82\92æ¤\9cç´¢ã\81\99ã\82\8bé\96¢æ\95°ã\81§ã\81\82ã\82\8bã\80\82 \fIkey\fP ã\81¯ã\80\81æ¤\9cç´¢ã\81\99ã\82\8bã\82¢ã\82¤ã\83\86ã\83 ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 \fIrootp\fP
+ã\81¯æ\9c¨æ§\8bé\80 ã\81®æ ¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼である。 木構造がノードを含まない場合、\fIrootp\fP の参照している変数は NULL
+ã\81«è¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 æ\9c¨æ§\8bé\80 ã\81«ã\82¢ã\82¤ã\83\86ã\83 ã\81\8cè¦\8bã\81¤ã\81\8bã\81£ã\81\9få ´å\90\88ã\80\81 \fBtsearch\fP() ã\81¯ã\81\9dã\81®ã\82¢ã\82¤ã\83\86ã\83 ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
+è¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ã\80\81ã\82¢ã\82¤ã\83\86ã\83 ã\82\92æ\9c¨æ§\8bé\80 ã\81«è¿½å\8a ã\81\97ã\80\81 追å\8a ã\81\97ã\81\9fã\82¢ã\82¤ã\83\86ã\83 ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.PP
\fBtfind\fP() は、 \fBtsearch\fP() に似ているが、 アイテムが見つからなかった場合 NULL を返す点が異なる。
.PP
\fBtdelete\fP() は木構造からアイテムを削除する。 引き数は \fBtsearch\fP() と同じである。
.PP
\fBtwalk\fP() は、二分木を深さ優先 (depth\-first) で、 左から右にたどっていく関数である。 \fIroot\fP
-は起点となるノードへのポインタである。 \fIroot\fP に根以外のノードを指定すると、部分木が対象となる。 \fBtwalk\fP()
-は、ノードを訪れる度にユーザ関数 \fIaction\fP を呼び出す (内部ノードに対しては 3 回、葉に対しては 1 回呼び出しが行われる)。
-\fIaction\fP には以下の順に 3 つの引き数が与えられる。 最初の引き数は訪れたノードへのポインタである。 ノードの構造体は規定されていないが、
-ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¦\81ç´ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81®ã\83\9dã\82¤ã\83³ã\82¿にキャストし、 ノードに格納された要素にアクセスすることができる。
+ã\81¯èµ·ç\82¹ã\81¨ã\81ªã\82\8bã\83\8eã\83¼ã\83\89ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 \fIroot\fP ã\81«æ ¹ä»¥å¤\96ã\81®ã\83\8eã\83¼ã\83\89ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81¨ã\80\81é\83¨å\88\86æ\9c¨ã\81\8c対象ã\81¨ã\81ªã\82\8bã\80\82 \fBtwalk\fP()
+は、ノードを訪れる度にユーザー関数 \fIaction\fP を呼び出す (内部ノードに対しては 3 回、葉に対しては 1 回呼び出しが行われる)。
+\fIaction\fP ã\81«ã\81¯ä»¥ä¸\8bã\81®é \86ã\81« 3 ã\81¤ã\81®å¼\95ã\81\8dæ\95°ã\81\8cä¸\8eã\81\88ã\82\89ã\82\8cã\82\8bã\80\82 æ\9c\80å\88\9dã\81®å¼\95ã\81\8dæ\95°ã\81¯è¨ªã\82\8cã\81\9fã\83\8eã\83¼ã\83\89ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\83\8eã\83¼ã\83\89ã\81®æ§\8bé\80 ä½\93ã\81¯è¦\8få®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\81\8cã\80\81
+ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¦\81ç´ ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼にキャストし、 ノードに格納された要素にアクセスすることができる。
アプリケーションは、この引き数が指す構造体を変更してはならない。 2 番目の引き数には、内部ノードの場合は訪問回数に応じて \fBpreorder\fP,
\fBpostorder\fP, \fBendorder\fP のいずれかの整数が、 葉を最初に訪れた場合は \fBleaf\fP の値が渡される (これらのシンボルは
\fI<search.h>\fP で定義されている)。 3 番目の引き数はノードの深さで、根の場合は深さ 0 である。
子要素を辿った後ということを表している。 よって \fBpost\%order\fP という名前を選ぶのは少し紛らわしい。)
.PP
\fBtdestroy\fP() は \fIroot\fP が指す木構造全体を削除し、 \fBtsearch\fP() 関数で確保されたリソースを全て解放する。
-木構造の各ノードについて、関数 \fIfree_node\fP が呼び出される。 データへのポインタがこの関数の引き数として渡される。
-そのような動作が必要でなければ、 \fIfree_node\fP は何もしない関数へのポインタでなければならない。
+æ\9c¨æ§\8bé\80 ã\81®å\90\84ã\83\8eã\83¼ã\83\89ã\81«ã\81¤ã\81\84ã\81¦ã\80\81é\96¢æ\95° \fIfree_node\fP ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\80\82 ã\83\87ã\83¼ã\82¿ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cã\81\93ã\81®é\96¢æ\95°ã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82
+ã\81\9dã\81®ã\82\88ã\81\86ã\81ªå\8b\95ä½\9cã\81\8cå¿\85è¦\81ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\80\81 \fIfree_node\fP ã\81¯ä½\95ã\82\82ã\81\97ã\81ªã\81\84é\96¢æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.SH 返り値
-\fBtsearch\fP() は、木構造に見つかったアイテムか、 新しく追加したアイテムへのポインタを返す。
-ã\83¡ã\83¢ã\83ªã\81®ä¸\8d足ã\81®ã\81\9fã\82\81ã\82¢ã\82¤ã\83\86ã\83 ã\82\92追å\8a ã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82 \fBtfind\fP() ã\81¯ã\80\81ã\82¢ã\82¤ã\83\86ã\83 ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す。
+\fBtsearch\fP() ã\81¯ã\80\81æ\9c¨æ§\8bé\80 ã\81«è¦\8bã\81¤ã\81\8bã\81£ã\81\9fã\82¢ã\82¤ã\83\86ã\83 ã\81\8bã\80\81 æ\96°ã\81\97ã\81\8f追å\8a ã\81\97ã\81\9fã\82¢ã\82¤ã\83\86ã\83 ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
+ã\83¡ã\83¢ã\83ªã\83¼ã\81®ä¸\8d足ã\81®ã\81\9fã\82\81ã\82¢ã\82¤ã\83\86ã\83 ã\82\92追å\8a ã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82 \fBtfind\fP() ã\81¯ã\80\81ã\82¢ã\82¤ã\83\86ã\83 ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す。
一致するアイテムが見つからない場合は NULL を返す。 検索条件に一致する要素が複数ある場合、返される値は不定である。
.PP
-\fBtdelete\fP() は削除したアイテムの親へのポインタを返す。 アイテムが見つからなかった場合は NULL を返す。
+\fBtdelete\fP() ã\81¯å\89\8aé\99¤ã\81\97ã\81\9fã\82¢ã\82¤ã\83\86ã\83 ã\81®è¦ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¢ã\82¤ã\83\86ã\83 ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82
.PP
\fIrootp\fP が NULL の場合、 \fBtsearch\fP(), \fBtfind\fP(), \fBtdelete\fP() は NULL を返す。
.SH 準拠
SVr4, POSIX.1\-2001. 関数 \fBtdestroy\fP() は GNU の拡張である。
.SH 注意
-\fBtwalk\fP() ã\81¯æ ¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92å¼\95ã\81\8dæ\95°ã\81«ã\81¨ã\82\8bã\81\8cã\80\81 ã\81»ã\81\8bã\81®é\96¢æ\95°ã\81¯æ ¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿である。
+\fBtwalk\fP() ã\81¯æ ¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å¼\95ã\81\8dæ\95°ã\81«ã\81¨ã\82\8bã\81\8cã\80\81 ã\81»ã\81\8bã\81®é\96¢æ\95°ã\81¯æ ¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼である。
.PP
-\fBtdelete\fP() は、削除したノードの使用していたメモリを解放するが、 ノードに対応するデータのメモリは、ユーザが解放しなければならない。
+\fBtdelete\fP() は、削除したノードの使用していたメモリーを解放するが、
+ノードに対応するデータのメモリーは、ユーザーが解放しなければならない。
.PP
-下のプログラム例は、ユーザ関数が "endorder" か "leaf" を引き数にして 呼び出されて以降は、 \fBtwalk\fP()
+下のプログラム例は、ユーザー関数が "endorder" か "leaf" を引き数にして 呼び出されて以降は、 \fBtwalk\fP()
がそのノードを参照しないことを前提としている。 これは GNU ライブラリの実装では機能するが、System V のマニュアルには存在しない。
.SH 例
以下のプログラムは 12 個の乱数を二分木に挿入した後、 挿入した数を順番に出力する (挿入の際、重複した乱数は 1 つにまとめられる)。
\fBint ttyname_r(int \fP\fIfd\fP\fB, char *\fP\fIbuf\fP\fB, size_t \fP\fIbuflen\fP\fB);\fP
.fi
.SH 説明
-\fBttyname\fP() 関数は、ファイルディスクリプタ \fIfd\fP がオープンしている端末デバイスの NULL 終端されたパス名へのポインタを返す。
-エラーが起きたならば NULL を返す (たとえば、\fIfd\fP が端末を参照していないとき)。
+\fBttyname\fP() 関数は、ファイルディスクリプター \fIfd\fP がオープンしている端末デバイスの NULL
+終端されたパス名へのポインターを返す。 エラーが起きたならば NULL を返す (たとえば、\fIfd\fP が端末を参照していないとき)。
返り値は静的データを指しているので、次の呼び出しで上書きされる可能性がある。 \fBttyname_r\fP() 関数は、このパス名を長さ
-\fIbuflen\fP のバッファ \fIbuf\fP に格納する。
+\fIbuflen\fP のバッファー \fIbuf\fP に格納する。
.SH 返り値
-\fBttyname\fP() 関数は、成功時はパス名へのポインタを返す。 エラー時は NULL を返し、 \fIerrno\fP が適切に設定される。
+\fBttyname\fP() é\96¢æ\95°ã\81¯ã\80\81æ\88\90å\8a\9fæ\99\82ã\81¯ã\83\91ã\82¹å\90\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼æ\99\82ã\81¯ NULL ã\82\92è¿\94ã\81\97ã\80\81 \fIerrno\fP ã\81\8cé\81©å\88\87ã\81«è¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82
\fBttyname_r\fP() 関数は、成功時には 0 を返し、エラー時にはエラー番号を返す。
.SH エラー
.TP
\fBEBADF\fP
-ファイルディスクリプタが不正。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cä¸\8dæ£ã\80\82
.TP
\fBENOTTY\fP
-ファイルディスクリプタが端末デバイスを示していない。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c端æ\9c«ã\83\87ã\83\90ã\82¤ã\82¹ã\82\92示ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.TP
\fBERANGE\fP
(\fBttyname_r\fP()) \fIbuflen\fP がパス名を格納するには短すぎる。
.\"
.TH TTYSLOT 3 2013\-07\-22 GNU "Linux Programmer's Manual"
.SH 名前
-ttyslot \- カレントユーザの端末のスロットをファイルから探す
+ttyslot \- ã\82«ã\83¬ã\83³ã\83\88ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ç«¯æ\9c«ã\81®ã\82¹ã\83ã\83\83ã\83\88ã\82\92ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89æ\8e¢ã\81\99
.SH 書式
\fB#include <unistd.h>\fP /* BSD 系のシステムと Linux の場合 */
.br
.RE
.ad b
.SH 説明
-ã\83¬ã\82¬ã\82·ã\83¼ã\81ªé\96¢æ\95° \fBttyslot\fP() ã\81¯ã\80\81ã\81\82ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81«æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\82«ã\83¬ã\83³ã\83\88ã\83¦ã\83¼ã\82¶ã\81®ã\82¨ã\83³ã\83\88ã\83ªのインデックスを返す。
+ã\83¬ã\82¬ã\82·ã\83¼ã\81ªé\96¢æ\95° \fBttyslot\fP() ã\81¯ã\80\81ã\81\82ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81«æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\82«ã\83¬ã\83³ã\83\88ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼のインデックスを返す。
.LP
「どのファイルなのか?」という質問があるだろう。 では、まず最初にその歴史を見てみよう。
.SS 大昔の歴史
\fBttyslot\fP() が呼ばれて、 \fI/etc/ttys\fP における行番号を見つける (行番号は 1 から数える)。
.SS "ttyslot の意味"
よって、関数 \fBttyslot\fP() は、ファイル \fI/etc/ttys\fP における呼び出し元のプロセスの制御端末のインデックスを返す。 これは
-\fI/etc/utmp\fP ã\81«ã\81\8aã\81\91ã\82\8bã\82«ã\83¬ã\83³ã\83\88ã\83¦ã\83¼ã\82¶ã\81®ã\82¨ã\83³ã\83\88ã\83ªのインデックスと (通常は) 等しい。 BSD には未だに \fI/etc/ttys\fP
+\fI/etc/utmp\fP ã\81«ã\81\8aã\81\91ã\82\8bã\82«ã\83¬ã\83³ã\83\88ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼のインデックスと (通常は) 等しい。 BSD には未だに \fI/etc/ttys\fP
ファイルがあるが、System V 系のシステムにはないので、 このファイルを参照することはできない。 よって、そのようなシステムでは
-ã\80\8c\fBttyslot\fP() ã\81¯ã\82«ã\83¬ã\83³ã\83\88ã\83¦ã\83¼ã\82¶ã\81®ã\83¦ã\83¼ã\82¶アカウントデータベースにおけるインデックスを返す」 とドキュメントに書かれている。
+ã\80\8c\fBttyslot\fP() ã\81¯ã\82«ã\83¬ã\83³ã\83\88ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83¦ã\83¼ã\82¶ã\83¼アカウントデータベースにおけるインデックスを返す」 とドキュメントに書かれている。
.SH 返り値
-成功した場合、この関数はスロット番号を返す。 エラーの場合 (例えば、ファイルディスクリプタ 0, 1, 2 の何れも
+成功した場合、この関数はスロット番号を返す。 エラーの場合 (例えば、ファイルディスクリプター 0, 1, 2 の何れも
データベースにある端末に関連づけられていない場合)、 UNIX\ V6, V7, BSD 系のシステムは 0 を返すが、 System V
系のシステムは \-1 を返す。
.SH 属性
\fBtimer_gettime\fP(2), \fBtimer_settime\fP(2), \fBusleep\fP(3)
のような他のタイマー関数との相互作用は規定されていない。
.LP
-この関数は廃止予定である。 代わりに \fBsetitimer\fP(2) もしくは POSIX インターバルタイマ (\fBtimer_create\fP(2)
-など) を使うこと。
+この関数は廃止予定である。 代わりに \fBsetitimer\fP(2) もしくは POSIX インターバルタイマー
+(\fBtimer_create\fP(2) など) を使うこと。
.SH 関連項目
\fBalarm\fP(2), \fBgetitimer\fP(2), \fBnanosleep\fP(2), \fBselect\fP(2),
\fBsetitimer\fP(2), \fBusleep\fP(3), \fBtime\fP(7)
.SH 準拠
C99.
.SH 注意
-\fBungetwc\fP() 関数の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
+\fBungetwc\fP() é\96¢æ\95°ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.SH 関連項目
\fBfgetwc\fP(3)
.SH この文書について
.SH エラー
.TP
\fBEBADF\fP
-å¼\95ã\81\8dæ\95° \fIfd\fP ã\81\8cæ\9b¸ã\81\8dè¾¼ã\81¿ç\94¨ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿でない。
+å¼\95ã\81\8dæ\95° \fIfd\fP ã\81\8cæ\9b¸ã\81\8dè¾¼ã\81¿ç\94¨ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼でない。
.TP
\fBEINVAL\fP
引き数 \fIfd\fP がマスタ擬似端末に対応するものではない。
.\"
.TH UPDWTMP 3 2014\-08\-19 GNU "Linux Programmer's Manual"
.SH 名前
-updwtmp, logwtmp \- wtmp ファイルにエントリを追加する
+updwtmp, logwtmp \- wtmp ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92追å\8a ã\81\99ã\82\8b
.SH 書式
.nf
\fB#include <utmp.h>\fP
.SH ファイル
.TP
\fI/var/log/wtmp\fP
-ユーザログインの履歴データベース
+ã\83¦ã\83¼ã\82¶ã\83¼ã\83ã\82°ã\82¤ã\83³ã\81®å±¥æ´ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹
.SH 準拠
POSIX.1\-2001 にはない。 Solaris, NetBSD に存在し、おそらく他のシステムにもあるだろう。
.SH 注意
.ad b
.SH 説明
\fBusleep\fP() 関数は (少なくとも) \fIusec\fPマイクロ秒の間、 呼び出し元スレッドの実行を延期する。
-システムの動作状況や呼び出しによる時間の消費やシステムタイマの粒度によって、 停止時間は設定した値よりも少し延ばされるかもしれない。
+ã\82·ã\82¹ã\83\86ã\83 ã\81®å\8b\95ä½\9cç\8a¶æ³\81ã\82\84å\91¼ã\81³å\87ºã\81\97ã\81«ã\82\88ã\82\8bæ\99\82é\96\93ã\81®æ¶\88è²»ã\82\84ã\82·ã\82¹ã\83\86ã\83 ã\82¿ã\82¤ã\83\9eã\83¼ã\81®ç²\92度ã\81«ã\82\88ã\81£ã\81¦ã\80\81 å\81\9cæ¢æ\99\82é\96\93ã\81¯è¨å®\9aã\81\97ã\81\9få\80¤ã\82\88ã\82\8aã\82\82å°\91ã\81\97延ã\81°ã\81\95ã\82\8cã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
.SH 返り値
\fBusleep\fP() 関数は成功すると 0 を返す。 エラーの場合、 \-1 が返され、 \fIerrno\fP にエラーの原因を示す値が設定される。
.SH エラー
.\"
.TH WCPCPY 3 2013\-12\-10 GNU "Linux Programmer's Manual"
.SH 名前
-wcpcpy \- ワイド文字文字列をコピーし、その末尾を指すポインタを返す
+wcpcpy \- ã\83¯ã\82¤ã\83\89æ\96\87å\97æ\96\87å\97å\88\97ã\82\92ã\82³ã\83\94ã\83¼ã\81\97ã\80\81ã\81\9dã\81®æ\9c«å°¾ã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99
.SH 書式
.nf
\fB#include <wchar.h>\fP
.PP
プログラマは、少なくとも \fIwcslen(src)+1\fP 文字のワイド文字 が入るだけの領域を \fIdest\fP に対して確保しなければならない。
.SH 返り値
-\fBwcpcpy\fP() は、ワイド文字文字列 \fIdest\fP の末尾、つまり終端のヌルワイド文字 を指すポインタを返す。
+\fBwcpcpy\fP() ã\81¯ã\80\81ã\83¯ã\82¤ã\83\89æ\96\87å\97æ\96\87å\97å\88\97 \fIdest\fP ã\81®æ\9c«å°¾ã\80\81ã\81¤ã\81¾ã\82\8açµ\82端ã\81®ã\83\8cã\83«ã\83¯ã\82¤ã\83\89æ\96\87å\97 ã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
関数 \fBwcpcpy\fP() はスレッドセーフである。
.\"
.TH WCPNCPY 3 2013\-12\-16 GNU "Linux Programmer's Manual"
.SH 名前
-wcpncpy \- 固定長のワイド文字文字列をコピーし、その末尾を指すポインタを返す
+wcpncpy \- å\9bºå®\9aé\95·ã\81®ã\83¯ã\82¤ã\83\89æ\96\87å\97æ\96\87å\97å\88\97ã\82\92ã\82³ã\83\94ã\83¼ã\81\97ã\80\81ã\81\9dã\81®æ\9c«å°¾ã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99
.SH 書式
.nf
\fB#include <wchar.h>\fP
.PP
プログラマは、少なくとも \fIn\fP 個のワイド文字が入る領域を \fIdest\fP に確保しなければならない。
.SH 返り値
-\fBwcpncpy\fP() は、最後に書き込まれたワイド文字へのポインタ、 すなわち \fIdest\fP+\fIn\fP\-1 を返す。
+\fBwcpncpy\fP() ã\81¯ã\80\81æ\9c\80å¾\8cã\81«æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\81\9fã\83¯ã\82¤ã\83\89æ\96\87å\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\81 ã\81\99ã\81ªã\82\8fã\81¡ \fIdest\fP+\fIn\fP\-1 ã\82\92è¿\94ã\81\99ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
関数 \fBwcpncpy\fP() はスレッドセーフである。
wcrtomb(buf, L\(aq\e0\(aq, ps)
-が返される。ここで、 \fIbuf\fP は内部的な無名バッファである。
+ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82ã\81\93ã\81\93ã\81§ã\80\81 \fIbuf\fP ã\81¯å\86\85é\83¨ç\9a\84ã\81ªç\84¡å\90\8dã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.PP
以上のいずれの場合も、\fIps\fP が NULL ならばシフト状態は用い られず、 \fBwcrtomb\fP()
関数だけが知っている静的な匿名の状態が使われる。
.SH 準拠
C99.
.SH 注意
-\fBwcrtomb\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBwcrtomb\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.PP
\fIps\fP に NULL を渡した際の動作はマルチスレッドセーフでない。
.SH 関連項目
\fBwcschr\fP() 関数は、 \fBstrchr\fP(3) 関数に対応するワイド文字関数である。 この関数は、\fIwcs\fP
が指すワイド文字文字列の中で最初に現われる \fIwc\fP を検索する。
.SH 返り値
-\fBwcschr\fP() 関数は、\fIwcs\fP が指すワイド文字文字列の中で最初に現われた \fIwc\fP へのポインタを返す。\fIwc\fP
+\fBwcschr\fP() é\96¢æ\95°ã\81¯ã\80\81\fIwcs\fP ã\81\8cæ\8c\87ã\81\99ã\83¯ã\82¤ã\83\89æ\96\87å\97æ\96\87å\97å\88\97ã\81®ä¸ã\81§æ\9c\80å\88\9dã\81«ç\8f¾ã\82\8fã\82\8cã\81\9f \fIwc\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82\fIwc\fP
が文字列中に現われなかった場合は NULL を返す。
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
.ad
.PD
.SH 説明
-\fBwcsdup\fP() 関数は、 \fBstrdup\fP(3) 関数のワイド文字版である。 この関数はポインタ \fIs\fP
+\fBwcsdup\fP() 関数は、 \fBstrdup\fP(3) 関数のワイド文字版である。 この関数はポインター \fIs\fP
が指し示すワイド文字文字列の複製を 新しい領域に割り当てて返す。
.PP
-新しいワイド文字文字列のためのメモリは \fBmalloc\fP(3) を使って割り当てられる。 この領域は \fBfree\fP(3)
+æ\96°ã\81\97ã\81\84ã\83¯ã\82¤ã\83\89æ\96\87å\97æ\96\87å\97å\88\97ã\81®ã\81\9fã\82\81ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81¯ \fBmalloc\fP(3) ã\82\92使ã\81£ã\81¦å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®é \98å\9f\9fã\81¯ \fBfree\fP(3)
を使って解放すべきである。
.SH 返り値
-成功すると、 \fBwcsdup\fP() 関数は、新しいワイド文字文字列へのポインタを返す。 エラーの場合、 \-1 が返り、 \fIerrno\fP
+æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 \fBwcsdup\fP() é\96¢æ\95°ã\81¯ã\80\81æ\96°ã\81\97ã\81\84ã\83¯ã\82¤ã\83\89æ\96\87å\97æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\80\81 \-1 ã\81\8cè¿\94ã\82\8aã\80\81 \fIerrno\fP
にエラーの原因を示す値が設定される。
.SH エラー
.TP
\fBENOMEM\fP
-複製文字列を割り当てるのに十分なメモリがない。
+è¤\87製æ\96\87å\97å\88\97ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.SH 準拠
.\" present in libc5 and glibc 2.0 and later
POSIX.1\-2008. この関数は POSIX.1\-2001 では規定されていないが、 Linux 以外の他のシステムで広く利用可能である。
.SH 準拠
POSIX.1\-2008. この関数は POSIX.1\-2001 では規定されていないが、 Linux 以外の他のシステムで広く利用可能である。
.SH 注意
-\fBwcsncasecmp\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBwcsncasecmp\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBstrncasecmp\fP(3), \fBwcsncmp\fP(3)
.SH この文書について
.SH 説明
\fBwcsnlen\fP() 関数は、 \fBstrnlen\fP(3) 関数に対応するワイド文字関数である。 この関数は、\fIs\fP
が指す文字列中のワイド文字の数を返すが、 返されるのはワイド文字で最大 \fImaxlen\fP 文字までである
-(このパラメータはバイト数ではない点に注意)。 また、終端のヌルワイド文字 (L\(aq\e0\(aq) は含まない。 これを行う際には、
+(ã\81\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\83\90ã\82¤ã\83\88æ\95°ã\81§ã\81¯ã\81ªã\81\84ç\82¹ã\81«æ³¨æ\84\8f)ã\80\82 ã\81¾ã\81\9fã\80\81çµ\82端ã\81®ã\83\8cã\83«ã\83¯ã\82¤ã\83\89æ\96\87å\97 (L\(aq\e0\(aq) ã\81¯å\90«ã\81¾ã\81ªã\81\84ã\80\82 ã\81\93ã\82\8cã\82\92è¡\8cã\81\86é\9a\9bã\81«ã\81¯ã\80\81
\fBwcsnlen\fP() は \fIs\fP が指すワイド文字列の最初の \fImaxlen\fP 文字しか見ず、決して \fIs+maxlen\fP
文字を超えて文字列を 参照することはない。
.SH 返り値
(終端のヌルバイト (\(aq\e0\(aq) は数えない)。
.PP
\fIdest\fP が NULL ならば \fIlen\fP は無視されて前述のように変換が行わ
-れるが、変換されたバイトデータはメモリに書き出されない点と、出力先の長 さの制限がない点が異なる。
+ã\82\8cã\82\8bã\81\8cã\80\81å¤\89æ\8f\9bã\81\95ã\82\8cã\81\9fã\83\90ã\82¤ã\83\88ã\83\87ã\83¼ã\82¿ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\81«æ\9b¸ã\81\8då\87ºã\81\95ã\82\8cã\81ªã\81\84ç\82¹ã\81¨ã\80\81å\87ºå\8a\9bå\85\88ã\81®é\95· ã\81\95ã\81®å\88¶é\99\90ã\81\8cã\81ªã\81\84ç\82¹ã\81\8cç\95°ã\81ªã\82\8bã\80\82
.PP
上記のいずれの場合も、\fIps\fP が NULL ならば、\fBwcsnrtombs\fP() 関数
だけが知っている静的な匿名の状態がシフト状態の代わりに用いられる。
.SH 準拠
POSIX.1\-2008.
.SH 注意
-\fBwcsnrtombs\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBwcsnrtombs\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.PP
\fIps\fP に NULL を渡した際の動作はマルチスレッドセーフでない。
.SH 関連項目
が指すワイド文字文字列において、\fIaccept\fP が 示すワイド文字文字列のいずれかの文字が最初に現われる位置を検索する。
.SH 返り値
\fBwcspbrk\fP() 関数は、\fIaccept\fP に列挙された文字のいずれかが \fIwcs\fP
-中に最初に現われた位置へのポインタを返す。このような文字が \fIwcs\fP に含まれない場合は、NULL が返される。
+ä¸ã\81«æ\9c\80å\88\9dã\81«ç\8f¾ã\82\8fã\82\8cã\81\9fä½\8dç½®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82ã\81\93ã\81®ã\82\88ã\81\86ã\81ªæ\96\87å\97ã\81\8c \fIwcs\fP ã\81«å\90«ã\81¾ã\82\8cã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81NULL ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
関数 \fBwcspbrk\fP() はスレッドセーフである。
(終端のヌルバイト (L\(aq\e0\(aq) は数えない)。
.PP
\fIdest\fP が NULL ならば \fIlen\fP は無視されて前述のように変換が行わ
-れるが、変換されたバイトデータはメモリに書き出されない点と、出力先の長 さの制限がない点が異なる。
+ã\82\8cã\82\8bã\81\8cã\80\81å¤\89æ\8f\9bã\81\95ã\82\8cã\81\9fã\83\90ã\82¤ã\83\88ã\83\87ã\83¼ã\82¿ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\81«æ\9b¸ã\81\8då\87ºã\81\95ã\82\8cã\81ªã\81\84ç\82¹ã\81¨ã\80\81å\87ºå\8a\9bå\85\88ã\81®é\95· ã\81\95ã\81®å\88¶é\99\90ã\81\8cã\81ªã\81\84ç\82¹ã\81\8cç\95°ã\81ªã\82\8bã\80\82
.PP
上記のいずれの場合も、\fIps\fP が NULL ならば、\fBwcsrtombs\fP() 関数
だけが知っている静的な匿名の状態がシフト状態の代わりに用いられる。
.SH 準拠
C99.
.SH 注意
-\fBwcsrtombs\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBwcsrtombs\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.PP
\fIps\fP に NULL を渡した際の動作はマルチスレッドセーフでない。
.SH 関連項目
ができる。ここで、トークンは \fIdelim\fP に列挙されている文字を含まな い部分文字列として定義される。
.PP
検索は \fIwcs\fP が NULL でなければ \fIwcs\fP から開始され、\fIwcs\fP が NULL ならば \fI*ptr\fP
-から開始される。まず、全ての区切りワイド文字 がスキップされる。つまり、\fIdelim\fP に含まれるワイド文字を超えるよう にポインタが前に進められる。
-ワイド文字文字列の終わりに達したら、 \fBwcstok\fP() は NULL を返して トークンが全く見つからなかったことを示し、この後に
-\fBwcstok\fP() を呼び 出しても NULL が返されるように \fI*ptr\fP に適切な値を設定する。それ 以外の場合には、
-\fBwcstok\fP() 関数はトークンの先頭を識別し、これを指す ポインタを返す。ただしこれを行う前に、トークンの後にある、\fIdelim\fP
-に含まれている文字をヌルワイド文字 (L\(aq\e0\(aq) に置き換えること によってトークンを 0 で終端させる。さらに \fI*ptr\fP
-を更新し、後で \fBwcstok\fP() を呼び出した 際に、識別されたトークンの続きから検索できるようにする。
+から開始される。まず、全ての区切りワイド文字 がスキップされる。つまり、\fIdelim\fP に含まれるワイド文字を超えるよう
+にポインターが前に進められる。 ワイド文字文字列の終わりに達したら、 \fBwcstok\fP() は NULL を返して
+トークンが全く見つからなかったことを示し、この後に \fBwcstok\fP() を呼び 出しても NULL が返されるように \fI*ptr\fP
+に適切な値を設定する。それ 以外の場合には、 \fBwcstok\fP() 関数はトークンの先頭を識別し、これを指す
+ポインターを返す。ただしこれを行う前に、トークンの後にある、\fIdelim\fP に含まれている文字をヌルワイド文字 (L\(aq\e0\(aq)
+に置き換えること によってトークンを 0 で終端させる。さらに \fI*ptr\fP を更新し、後で \fBwcstok\fP() を呼び出した
+際に、識別されたトークンの続きから検索できるようにする。
.SH 返り値
-\fBwcstok\fP() 関数は次のトークンへのポインタを返す。トークンが見つから なければ NULL を返す。
+\fBwcstok\fP() é\96¢æ\95°ã\81¯æ¬¡ã\81®ã\83\88ã\83¼ã\82¯ã\83³ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82ã\83\88ã\83¼ã\82¯ã\83³ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89 ã\81ªã\81\91ã\82\8cã\81° NULL ã\82\92è¿\94ã\81\99ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
関数 \fBwcstok\fP() はスレッドセーフである。
.PP
プログラマーは \fIdest\fP に最低でも \fIn\fP バイトの空きがあることを 保証しなければならない。
.PP
-\fIdest\fP が NULL の場合、\fIn\fP は無視される。上記と同様に変換が行 なわれるが変換結果のバイト列はメモリには書き込まれない。
+\fIdest\fP ã\81\8c NULL ã\81®å ´å\90\88ã\80\81\fIn\fP ã\81¯ç\84¡è¦\96ã\81\95ã\82\8cã\82\8bã\80\82ä¸\8aè¨\98ã\81¨å\90\8cæ§\98ã\81«å¤\89æ\8f\9bã\81\8cè¡\8c ã\81ªã\82\8fã\82\8cã\82\8bã\81\8cå¤\89æ\8f\9bçµ\90æ\9e\9cã\81®ã\83\90ã\82¤ã\83\88å\88\97ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\81¯æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\81ªã\81\84ã\80\82
また長さの上限が存在しない。
.PP
上記の 2. の場合を避けるために、プログラマーは \fIn\fP が \fIwcstombs(NULL,src,0)+1\fP
.SH 準拠
C99.
.SH 注意
-\fBwcstombs\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
+\fBwcstombs\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.PP
-\fBwcsrtombs\fP() é\96¢æ\95°ã\81¯å\90\8cã\81\98æ©\9fè\83½ã\81®ã\81\9fã\82\81ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82»ã\83¼ã\83\95ã\81ª ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\80\82
+\fBwcsrtombs\fP() 関数は同じ機能のためのスレッドセーフな インターフェースを提供する。
.SH 関連項目
\fBmblen\fP(3), \fBmbtowc\fP(3), \fBmbstowcs\fP(3), \fBwcsrtombs\fP(3) \fBwctom\fP(3)
.SH この文書について
.SH 準拠
POSIX.1\-2001.
.SH 注意
-\fBwcswidth\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBwcswidth\fP() ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBiswprint\fP(3), \fBwcwidth\fP(3)
.SH この文書について
.SH 準拠
C99.
.SH 注意
-\fBwctob\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBwctob\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.PP
この関数は決して使うべきではない。国際化プログラムでは、シングルバイト 文字とマルチバイト文字を区別してはならない。代わりに、 \fBwctomb\fP(3)
か、スレッドセーフな \fBwcrtomb\fP(3) を使うこと。
.SH 準拠
C99.
.SH 注意
-\fBwctomb\fP() 関数の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
+\fBwctomb\fP() é\96¢æ\95°ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.PP
-\fBwcrtomb\fP(3) 関数は同じ機能のより良いインタフェースを提供する。
+\fBwcrtomb\fP(3) é\96¢æ\95°ã\81¯å\90\8cã\81\98æ©\9fè\83½ã\81®ã\82\88ã\82\8aè\89¯ã\81\84ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBMB_CUR_MAX\fP(3), \fBmblen\fP(3), \fBmbstowcs\fP(3), \fBmbtowc\fP(3), \fBwcrtomb\fP(3),
\fBwcstombs\fP(3)
関数に渡すことによって、実際に ワイド文字の変換を実行させることができる。
.PP
\fBwctrans\fP() は、名前によって与えられるマッピングを返す。有効な名前の 集合は現在のロケールの \fBLC_CTYPE\fP
-カテゴリに依存するが、以下の名前は全てのロケールにおいて有効である。
+ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\81\8cã\80\81以ä¸\8bã\81®å\90\8då\89\8dã\81¯å\85¨ã\81¦ã\81®ã\83ã\82±ã\83¼ã\83«ã\81«ã\81\8aã\81\84ã\81¦æ\9c\89å\8a¹ã\81§ã\81\82ã\82\8bã\80\82
.nf
"tolower" \- \fBtolower\fP(3) のマッピングを実現する
"toupper" \- \fBtoupper\fP(3) のマッピングを実現する
.SH 準拠
C99.
.SH 注意
-\fBwctrans\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBwctrans\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBtowctrans\fP(3)
.SH この文書について
テストすることができる。
.PP
\fBwctype\fP() 関数は、名前によって与えられる属性を返す。有効な名前の集 合は現在のロケールの \fBLC_CTYPE\fP
-カテゴリに依存するが、以下の名前は全てのロケールで有効である。
+ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\81\8cã\80\81以ä¸\8bã\81®å\90\8då\89\8dã\81¯å\85¨ã\81¦ã\81®ã\83ã\82±ã\83¼ã\83«ã\81§æ\9c\89å\8a¹ã\81§ã\81\82ã\82\8bã\80\82
.nf
"alnum" \- クラス化関数 \fBisalnum\fP(3) を実現する
"alpha" \- クラス化関数 \fBisalpha\fP(3) を実現する
.SH 準拠
C99.
.SH 注意
-\fBwctype\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBwctype\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBiswctype\fP(3)
.SH この文書について
\fBint wcwidth(wint_t \fP\fIc\fP\fB);\fP
.fi
.SH 注意
-\fBwcwidth\fP() の動作は、現在のロケールの \fBLC_CTYPE\fP カテゴリに依存する。
+\fBwcwidth\fP() ã\81®å\8b\95ä½\9cã\81¯ã\80\81ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.SH 関連項目
\fBiswprint\fP(3), \fBwcswidth\fP(3), \fBfeature_test_macros\fP(7)
.SH この文書について
個のワイド文字の中から、最初 にワイド文字 \fIc\fP が現われる場所を探す。
.SH 返り値
\fBwmemchr\fP() 関数は、\fIs\fP を先頭とする \fIn\fP 個のワイド文字の中 において最初に \fIc\fP
-が現われる場所へのポインタを返す。\fIc\fP が現 われなかった場合には NULL を返す。
+ã\81\8cç\8f¾ã\82\8fã\82\8cã\82\8bå ´æ\89\80ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82\fIc\fP ã\81\8cç\8f¾ ã\82\8fã\82\8cã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\81«ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82
.SH 属性
.SS "マルチスレッディング (pthreads(7) 参照)"
関数 \fBwmemchr\fP() はスレッドセーフである。
は、 \fIwe_wordv\fP 配列にある初期要素のうちいくつが NULL で埋められるべきかを表すのに使われたりする (\fIflags\fP
により決定される。下記を参照。)。
.LP
-関数 \fBwordfree\fP() は割り当てたメモリを再度解放する。 より正確にいうと、この関数はその引き数を解放するのではなく、 配列
+é\96¢æ\95° \fBwordfree\fP() ã\81¯å\89²ã\82\8aå½\93ã\81¦ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\86\8d度解æ\94¾ã\81\99ã\82\8bã\80\82 ã\82\88ã\82\8aæ£ç¢ºã\81«ã\81\84ã\81\86ã\81¨ã\80\81ã\81\93ã\81®é\96¢æ\95°ã\81¯ã\81\9dã\81®å¼\95ã\81\8dæ\95°ã\82\92解æ\94¾ã\81\99ã\82\8bã\81®ã\81§ã\81¯ã\81ªã\81\8fã\80\81 é\85\8då\88\97
\fIwe_wordv\fP とそれが指し示す文字列を解放する。
.SS 文字列引き数
-この展開はシェルによるコマンドのパラメータの展開 (\fBsh\fP(1) を参照) と同じであるので、文字列 \fIs\fP
-はシェルコマンドパラメータで不正とされる文字を含んではならない。 特にエスケープされていない改行、|, &, ;, <, >, (,
-), {, } 文字を コマンド置換やパラメータ置換の場面以外に含めてはならない。
+ã\81\93ã\81®å±\95é\96\8bã\81¯ã\82·ã\82§ã\83«ã\81«ã\82\88ã\82\8bã\82³ã\83\9eã\83³ã\83\89ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®å±\95é\96\8b (\fBsh\fP(1) ã\82\92å\8f\82ç\85§) ã\81¨å\90\8cã\81\98ã\81§ã\81\82ã\82\8bã\81®ã\81§ã\80\81æ\96\87å\97å\88\97 \fIs\fP
+ã\81¯ã\82·ã\82§ã\83«ã\82³ã\83\9eã\83³ã\83\89ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81§ä¸\8dæ£ã\81¨ã\81\95ã\82\8cã\82\8bæ\96\87å\97ã\82\92å\90«ã\82\93ã\81§ã\81¯ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ç\89¹ã\81«ã\82¨ã\82¹ã\82±ã\83¼ã\83\97ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84æ\94¹è¡\8cã\80\81|, &, ;, <, >, (,
+), {, } 文字を コマンド置換やパラメーター置換の場面以外に含めてはならない。
.LP
引き数 \fIs\fP にクォートしていないコメント文字 # で始まる単語が含まれている場合には、 その単語とそれ以降の単語が無視されるか、 それとも #
がコメント文字として扱わないかは、規定されていない。
を環境変数 FOO の値に置き換える)、 コマンド展開 ($(command) または \`command\` を command
の出力で置き換える)、 算術展開、フィールド分割、ワイルドカード展開、クォートの除去。
.LP
-特殊なパラメータ ($@, $*, $#, $?, $\-, $$, $!, $0) の 展開結果は規定されていない。
+特殊なパラメーター ($@, $*, $#, $?, $\-, $$, $!, $0) の 展開結果は規定されていない。
.LP
フィールド分割は環境変数 $IFS を用いて行われる。 この環境変数が設定されていない場合、 フィールド区切り文字はスペース・タブ・改行である。
.SS 出力される配列
コマンド置換が要求されたが、 \fBWRDE_NOCMD\fP フラグでこれをエラーとして扱うように指示されていた。
.TP
\fBWRDE_NOSPACE\fP
-メモリが足りない。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\80\82
.TP
\fBWRDE_SYNTAX\fP
対応する括弧がない、クォートが合致しないといった、 シェルの書式エラー。
.TP
\fBs\fP
もし \fBl\fP 修飾子が存在しない場合、 \fIconst\ char\ *\fP 引き数は初期状態より始まるマルチバイト文字列を含んだ char
-型の配列へのポインタ(文字列へのポインタ)とみなされる。 配列の文字は(最初のバイト前に初期状態で変換を開始し、それぞれの文字を
+型の配列へのポインター(文字列へのポインター)とみなされる。 配列の文字は(最初のバイト前に初期状態で変換を開始し、それぞれの文字を
\fBmbrtowc\fP(3) 関数によって)ワイド文字へと変換される。結果のワイド文字は終端の ナルワイド文字 (L\(aq\e0\(aq)
の手前までが書き込まれる。精度(precision)が指定された 場合、指定された数字を超えるワイド文字は書き込まれない。精度は 書き込まれる
\fIバイト\fP 数や \fI画面上の位置\fP ではなく \fIワイド文字\fP の数を指定することに注意すること。 精度がない場合には配列の終端にナルバイト
(\(aq\e0\(aq) を含む必要がある。 精度を指定する場合には、配列の最後に到着する前に変換されたワイド文字の
数がそれに到達するよう、精度は十分に小さな数でなければならない。 もし \fBl\fP 修飾子が存在する場合、 \fIconst\ wchar_t\ *\fP
-引き数はワイド文字の配列へのポインタとみなされる。 配列のワイド文字列は終端のナルワイド文字の手間まで出力される。
+å¼\95ã\81\8dæ\95°ã\81¯ã\83¯ã\82¤ã\83\89æ\96\87å\97ã\81®é\85\8då\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\81¿ã\81ªã\81\95ã\82\8cã\82\8bã\80\82 é\85\8då\88\97ã\81®ã\83¯ã\82¤ã\83\89æ\96\87å\97å\88\97ã\81¯çµ\82端ã\81®ã\83\8aã\83«ã\83¯ã\82¤ã\83\89æ\96\87å\97ã\81®æ\89\8bé\96\93ã\81¾ã\81§å\87ºå\8a\9bã\81\95ã\82\8cã\82\8bã\80\82
もし精度が指定された場合には指定された精度以上の文字は出力されない。 精度を指定しない場合には終端のナルワイド文字を含む必要がある。
精度を指定する場合にはそれはワイド文字の配列の大きさよりも小さくな ければならない。
.SH 返り値
.SH 準拠
C99.
.SH 注意
-\fBwprintf\fP() 等の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
+\fBwprintf\fP() ç\89ã\81®å\8b\95ä½\9cã\81¯ç\8f¾å\9c¨ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ä¾\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.PP
-\fIformat\fP 文字列が ASCII 以外のワイド文字を含んでいる場合、 実行時のロケールの \fBLC_CTYPE\fP カテゴリがコンパイル時の
-\fBLC_CTYPE\fP カテゴリと 一致している場合にのみプログラムは正常に動作する。これは \fIwchar_t\fP
+\fIformat\fP æ\96\87å\97å\88\97ã\81\8c ASCII 以å¤\96ã\81®ã\83¯ã\82¤ã\83\89æ\96\87å\97ã\82\92å\90«ã\82\93ã\81§ã\81\84ã\82\8bå ´å\90\88ã\80\81 å®\9fè¡\8cæ\99\82ã\81®ã\83ã\82±ã\83¼ã\83«ã\81® \fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81\8cã\82³ã\83³ã\83\91ã\82¤ã\83«æ\99\82ã\81®
+\fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81¨ ä¸\80è\87´ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«ã\81®ã\81¿ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯æ£å¸¸ã\81«å\8b\95ä½\9cã\81\99ã\82\8bã\80\82ã\81\93ã\82\8cã\81¯ \fIwchar_t\fP
の表現がロケールやプラットホームに依存していることに原因がある。 (glibc ではワイド文字として Unicode (ISO\-10646)
のコードポイントを 使用している。他のプラットホームではそうではない。同様に ISO C99 の \eunnnn
形式の汎用文字名称はこの問題を解決しない。) このため国際化されたプログラムでは \fIformat\fP 文字列を ASCII ワイド
.\"
.TH XDR 3 2007\-12\-30 "" "Linux Programmer's Manual"
.SH 名前
-xdr \- å¤\96é\83¨ã\83\87ã\83¼ã\82¿è¡¨ç\8f¾(XDR)ã\81®ã\81\9fã\82\81ã\81®ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\83»ã\83«ã\83¼ã\83\86ã\82£ã\83³
+xdr \- 外部データ表現(XDR)のためのライブラリルーティン
.SH 書式と説明
.LP
これらのルーティンは C プログラマーがマシン非依存な形式で 任意のデータ構造体を記述することを可能にする。
-ã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83\97ã\83ã\82·ã\82¸ã\83£ã\83»コールのためのデータはこれらのルーティンを 使用して送信される。
+ã\83ªã\83¢ã\83¼ã\83\88ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼コールのためのデータはこれらのルーティンを 使用して送信される。
以下に示すプロトタイプ宣言は \fI<rpc/xdr.h>\fP で行われており、その中では次の型が使用される。
.in +4n
.fi
.IP
このマクロは XDR ストリーム \fIxdrs\fP に関連付けられた位置取得ルーティンを呼び出す。 このルーティンは XDR
-ã\83\90ã\82¤ã\83\88ã\83»ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ä½\8dç½®ã\82\92æ\8c\87示ã\81\99ã\82\8b符å\8f·ç\84¡ã\81\97æ\95´æ\95°ã\82\92è¿\94ã\81\99ã\80\82 XDR ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®æ©\9fè\83½ã\81¨ã\81\97ã\81¦ã\81\93ã\81®æ\95°å\80¤ã\81§å\8d\98ç´\94ã\81ªç®\97è¡\93ä½\9cæ¥ã\81\8cã\81§ã\81\8dã\82\8bã\81\93ã\81¨ã\81\8c
+バイトストリームの位置を指示する符号無し整数を返す。 XDR ストリームの機能としてこの数値で単純な算術作業ができることが
期待されてるいる。しかしながら XDR ストリームの実体はこれを保証する必要はない。
.LP
.nf
\fB enum xdr_op \fP\fIop\fP\fB);\fP
.fi
.IP
-ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯ \fIxdrs\fP ã\81«ã\82\88ã\81£ã\81¦æ\8c\87ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b XDR ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\83»ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92å\88\9dæ\9c\9få\8c\96ã\81\99ã\82\8bã\80\82 ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ã\83\87ã\83¼ã\82¿ã\81¯ \fIaddr\fP
+このルーティンは \fIxdrs\fP によって指されている XDR ストリームオブジェクトを初期化する。 ストリームのデータは \fIaddr\fP
位置にあるメモリーの塊から読み書きされる。 その長さはバイト単位で \fIsize\fP 超えてはいけない。 \fIop\fP は XDR
ストリームの変換方向を決定する (\fBXDR_ENCODE\fP, \fBXDR_DECODE\fP, \fBXDR_FREE\fP のどれか)。
.LP
\fB int (*\fP\fIwriteit\fP\fB) (char *, char *, int));\fP
.fi
.IP
-ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯ \fIxdrs\fP ã\81§æ\8c\87ã\81\95ã\82\8cã\81\9f XDR ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\83»ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92å\88\9dæ\9c\9få\8c\96ã\81\99ã\82\8bã\80\82 ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ã\83\87ã\83¼ã\82¿ã\81¯å¤§ã\81\8dã\81\95 \fIsendsize\fP
-のバッファへ書き込まれる。 \fIsendsize\fP をゼロにすると、システムに適切なデフォルトを使用するように指示する。 ストリームのデータは大きさ
-\fIrecvsize\fP のバッファから読み込まれる。これもゼロを渡すことで適切なデフォルトに 設定することができる。
-ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\81\8cä¸\80æ\9d¯ã\81®å ´å\90\88ã\81¯ \fIwriteit\fP ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\80\82å\90\8cæ§\98ã\81«ã\82¹ã\83\88ã\83ªã\83¼ã\83 å\85¥å\8a\9bã\83\90ã\83\83ã\83\95ã\82¡が空の場合には \fIreadit\fP
+このルーティンは \fIxdrs\fP で指された XDR ストリームオブジェクトを初期化する。 ストリームのデータは大きさ \fIsendsize\fP
+ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\82\8bã\80\82 \fIsendsize\fP ã\82\92ã\82¼ã\83ã\81«ã\81\99ã\82\8bã\81¨ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81«é\81©å\88\87ã\81ªã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\82\92使ç\94¨ã\81\99ã\82\8bã\82\88ã\81\86ã\81«æ\8c\87示ã\81\99ã\82\8bã\80\82 ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®ã\83\87ã\83¼ã\82¿ã\81¯å¤§ã\81\8dã\81\95
+\fIrecvsize\fP ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8bã\82\89èªã\81¿è¾¼ã\81¾ã\82\8cã\82\8bã\80\82ã\81\93ã\82\8cã\82\82ã\82¼ã\83ã\82\92渡ã\81\99ã\81\93ã\81¨ã\81§é\81©å\88\87ã\81ªã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81« è¨å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
+ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81®å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cä¸\80æ\9d¯ã\81®å ´å\90\88ã\81¯ \fIwriteit\fP ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\80\82å\90\8cæ§\98ã\81«ã\82¹ã\83\88ã\83ªã\83¼ã\83 å\85¥å\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼が空の場合には \fIreadit\fP
が呼び出される。これらの二つのルーティンの動作はシステムコールの \fBread\fP(2) や \fBwrite\fP(2)
と似ているが、前者のルーティンは最初の引き数として \fIhandle\fP が渡される点で異なっている。 注意: XDR ストリームの \fIop\fP
は呼び出し側で設定しなければならない。
.IP
-è¦å\91\8a: ã\81\93ã\81® XDR ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81¯ä¸é\96\93ã\83¬ã\82³ã\83¼ã\83\89ã\83»ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\82\92å®\9fè£\85ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ã\83¬ã\82³ã\83¼ã\83\89å¢\83ç\95\8cã\81®æ\83\85å ±ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81«ã\81¯ä½\99å\88\86ã\81ªã\83\90ã\82¤ã\83\88ã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\80\82
+警告: この XDR ストリームは中間レコードストリームを実装している。 レコード境界の情報を提供するためにストリームには余分なバイトが存在する。
.LP
.nf
\fBbool_t xdrrec_endofrecord(XDR *\fP\fIxdrs\fP\fB, int \fP\fIsendnow\fP\fB);\fP
.fi
.IP
このルーティンは \fBxdrrec_create\fP() によって作成されたストリームに対してのみ呼び出すことができる。
-å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\81®ã\83\87ã\83¼ã\82¿ã\81¯å®\8cå\85¨ã\81ªã\83¬ã\82³ã\83¼ã\83\89ã\81¨ã\81\97ã\81¦å\8d°ã\81\95ã\82\8cã\80\81 \fIsendnow\fP ã\81\8cã\82¼ã\83ã\81§ã\81ªã\81\84å ´å\90\88ã\81«ã\81¯å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡は書き出される。
+å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\87ã\83¼ã\82¿ã\81¯å®\8cå\85¨ã\81ªã\83¬ã\82³ã\83¼ã\83\89ã\81¨ã\81\97ã\81¦å\8d°ã\81\95ã\82\8cã\80\81 \fIsendnow\fP ã\81\8cã\82¼ã\83ã\81§ã\81ªã\81\84å ´å\90\88ã\81«ã\81¯å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼は書き出される。
このルーティンは成功した場合は 1 を返す。失敗した場合はゼロを返す。
.LP
.nf
.fi
.IP
構造体へのポインター追跡を提供する基本ルーティン。 引き数 \fIpp\fP はポインターのアドレスである。 \fIsize\fP は \fI*pp\fP
-ã\81\8cæ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bæ§\8bé\80 ä½\93ã\81® \fIsizeof\fP ã\81§ã\81\82ã\82\8bã\80\82 \fIproc\fP ã\81¯ã\81\9dã\81®æ§\8bé\80 ä½\93ã\81® C å½¢å¼\8fã\81¨å¤\96é\83¨è¡¨ç\8f¾ã\81¨ã\81®å¤\89æ\8f\9bã\82\92è¡\8cã\81ªã\81\86 XDR ã\83\97ã\83ã\82·ã\82¸ã\83£である。
+ã\81\8cæ\8c\87ã\81\97ã\81¦ã\81\84ã\82\8bæ§\8bé\80 ä½\93ã\81® \fIsizeof\fP ã\81§ã\81\82ã\82\8bã\80\82 \fIproc\fP ã\81¯ã\81\9dã\81®æ§\8bé\80 ä½\93ã\81® C å½¢å¼\8fã\81¨å¤\96é\83¨è¡¨ç\8f¾ã\81¨ã\81®å¤\89æ\8f\9bã\82\92è¡\8cã\81ªã\81\86 XDR ã\83\97ã\83ã\82·ã\83¼ã\82¸ã\83£ã\83¼である。
このルーティンは成功した場合 1 を返す。 失敗した場合はゼロを返す。
.IP
警告: このルーティンはヌルポインターを理解することができない。かわりに \fBxdr_pointer\fP() を使用すること。
\fBvoid xdrstdio_create(XDR *\fP\fIxdrs\fP\fB, FILE *\fP\fIfile\fP\fB, enum xdr_op \fP\fIop\fP\fB);\fP
.fi
.IP
-ã\81\93ã\81®ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\81¯ \fIxdrs\fP ã\81§æ\8c\87ã\81\95ã\82\8cã\81\9f XDR ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\83»ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92å\88\9dæ\9c\9få\8c\96ã\81\99ã\82\8bã\80\82 XDR ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81«èªã\81¿æ\9b¸ã\81\8dã\82\8cã\81\9fã\83\87ã\83¼ã\82¿ã\81¯ \fIstdio\fP
+このルーティンは \fIxdrs\fP で指された XDR ストリームオブジェクトを初期化する。 XDR ストリームに読み書きれたデータは \fIstdio\fP
ストリーム \fIfile\fP が使用される。 \fIop\fP 引き数は XDR ストリームの変換方向を決定する (\fBXDR_ENCODE\fP,
\fBXDR_DECODE\fP, \fBXDR_FREE\fP のどれか)。
.IP
コンソールを切り替える一般的な方法は: (a)コンソール \fIn\fP に切り替える ために Alt+F\fIn\fP または Ctrl+Alt+F\fIn\fP
を使う。 AltGr+F\fIn\fP を使うと、おそらくコンソール \fIn\fP+12 に切り替わる [ここでの Alt と AltGr はそれぞれ左右の
Alt キーを示す]。 (b) 現在割り当てられているコンソールを循環するために Alt + 右矢印キー または Alt + 左矢印キーを使う。(c)
-\fBchvt\fP(1) プログラムを使う (キーマッピングはユーザがセットできる、 \fBloadkeys\fP(1) を見よ。
+\fBchvt\fP(1) ã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92使ã\81\86 (ã\82ã\83¼ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81¯ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\82»ã\83\83ã\83\88ã\81§ã\81\8dã\82\8bã\80\81 \fBloadkeys\fP(1) ã\82\92è¦\8bã\82\88ã\80\82
上で述べたキーバインドはデフォルトの設定によるものである)。
.LP
\fBdeallocvt\fP(1) コマンド(以前は \fBdisalloc\fP という名前だった)は、 プロセスに結びつけられていないコンソールの
-スクリーンバッファ (screen buffer) のために使われているメモリを解放する。
+スクリーンバッファー (screen buffer) のために使われているメモリーを解放する。
.SS 特性
コンソールは多くの状態をもっている。 私は、それについていつかドキュメントにしたいと考えている。 もっとも重要な事実はコンソールは vt100
端末を真似ている (シミュレートしている) ということである。 コンソールは ESC c という二つの文字を印字する事によって、
バイトは現在の(各バイトを Unicode の値に変換する)マッピングテーブルに
従って変換される。これに関しては下のキャラクターセット(Charcter Sets) 節を参照のこと。
.LP
-通常、Unicode の値はフォントインデックス(font index) に変換され、 ビデオメモリに蓄えられる。そして(ビデオ ROM
+é\80\9a常ã\80\81Unicode ã\81®å\80¤ã\81¯ã\83\95ã\82©ã\83³ã\83\88ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹(font index) ã\81«å¤\89æ\8f\9bã\81\95ã\82\8cã\80\81 ã\83\93ã\83\87ã\82ªã\83¡ã\83¢ã\83ªã\83¼ã\81«è\93\84ã\81\88ã\82\89ã\82\8cã\82\8bã\80\82ã\81\9dã\81\97ã\81¦(ã\83\93ã\83\87ã\82ª ROM
中に見付けられる) 対応するグリフ(glyph)が画面に現れる。 Unicode を用いると、(PC 互換機の設計では) 512 の異なった
グリフを同時に利用できるようになる。
.LP
ESC ( G0 文字集合を定義するシーケンスを開始する。
ESC ( B \0\0\0 デフォルト(ISO 8859\-1 マッピング)を選択する。
ESC ( 0 \0\0\0 VT100 グラフィクスマッピングを選択する。
-ESC ( U \0\0\0 ヌルマッピングを選択する \- キャラクタ ROM から直接マッピングする。
+ESC ( U \0\0\0 ヌルマッピングを選択する \- キャラクター ROM から直接マッピングする。
ESC ( K \0\0\0 ユーザー定義のマッピングを選択する \- そのマップ
\0\0\0 は \fBmapscrn\fP(8) ユーティリティーによってロードされる。
ESC ) G1 を定義するシーケンスを開始する。
ESC ] OSC T{
("Operating system command"のことだろう)
ESC ] P \fInrrggbb\fP: 最後の P のあとの 7 つの 16 進数を
-パラメータとして :\-( パレットをセットする。
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¨ã\81\97ã\81¦ :\-( ã\83\91ã\83¬ã\83\83ã\83\88ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\80\82
ここで、\fIn\fPは色 (0\-15)、\fIrrggbb\fPは赤/緑/青の値
(0\-255)を意味する。
ESC ] R: パレットをリセットする。
.PP
\fBECMA\-48 CSI シーケンス\fP
.sp
-CSI (または ESC [ ) のあとに、最大で NPAR (16) 個のセミコロンで区切られた 10 進数のパラメータシーケンスが続く。
-空ã\81§ã\81\82ã\82\8bã\81\8bã\81\9dã\81\93ã\81«ã\81ªã\81\84ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81¯ 0 ã\81¨ã\81\95ã\82\8cã\82\8bã\80\82 ã\83\91ã\83©ã\83¡ã\83¼ã\82¿シーケンスの前にはひとつのクエスチョンマークがつくことがある。
+CSI (ã\81¾ã\81\9fã\81¯ ESC [ ) ã\81®ã\81\82ã\81¨ã\81«ã\80\81æ\9c\80大ã\81§ NPAR (16) å\80\8bã\81®ã\82»ã\83\9fã\82³ã\83ã\83³ã\81§å\8cºå\88\87ã\82\89ã\82\8cã\81\9f 10 é\80²æ\95°ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82·ã\83¼ã\82±ã\83³ã\82¹ã\81\8cç¶\9aã\81\8fã\80\82
+空ã\81§ã\81\82ã\82\8bã\81\8bã\81\9dã\81\93ã\81«ã\81ªã\81\84ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ 0 ã\81¨ã\81\95ã\82\8cã\82\8bã\80\82 ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼シーケンスの前にはひとつのクエスチョンマークがつくことがある。
.PP
しかし、CSI [ (または ESC [ [ ) の後では、一文字が読まれ、このすべての
-パラメータシーケンスが無視される(要するにファンクションキーのエコーは 無視されるということである)。
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82·ã\83¼ã\82±ã\83³ã\82¹ã\81\8cç\84¡è¦\96ã\81\95ã\82\8cã\82\8b(è¦\81ã\81\99ã\82\8bã\81«ã\83\95ã\82¡ã\83³ã\82¯ã\82·ã\83§ã\83³ã\82ã\83¼ã\81®ã\82¨ã\82³ã\83¼ã\81¯ ç\84¡è¦\96ã\81\95ã\82\8cã\82\8bã\81¨ã\81\84ã\81\86ã\81\93ã\81¨ã\81§ã\81\82ã\82\8b)ã\80\82
.PP
CSI シーケンスの動作は、その最後の文字によって決まる。
.TS
J ED ディスプレイの消去(デフォルト: カーソルからディスプレイの最後まで)。
ESC [ 1 J: 最初からカーソルまでの消去。
ESC [ 2 J: ディスプレイ全体の消去。
- ESC [ 3 J: スクロールバッファも含めたディスプレイ全体の
+ ESC [ 3 J: ã\82¹ã\82¯ã\83ã\83¼ã\83«ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\82å\90«ã\82\81ã\81\9fã\83\87ã\82£ã\82¹ã\83\97ã\83¬ã\82¤å\85¨ä½\93ã\81®
消去 (Linux 3.0 以降)。
.\" ESC [ 3 J: commit f8df13e0a901fe55631fed66562369b4dba40f8b
K EL 行の消去(デフォルト: カーソルから行末まで)。
d VPA カーソルを指示された行の現在の桁に移動する。
e VPR カーソルを指示された行数だけ下に移動する。
f HVP カーソルを指示された行、桁に移動する。
-g TBC パラメータなしの時: 現在位置のタブストップを削除する。
+g TBC ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81ªã\81\97ã\81®æ\99\82: ç\8f¾å\9c¨ä½\8dç½®ã\81®ã\82¿ã\83\96ã\82¹ã\83\88ã\83\83ã\83\97ã\82\92å\89\8aé\99¤ã\81\99ã\82\8bã\80\82
ESC [ 3 g: すべてのタブストップを削除する。
h SM モードのセット(後述)。
l RM モードのリセット(後述)。
ESC [ 1 q: スクロールロック LED を点灯。
ESC [ 2 q: ナンバーロック LED を点灯。
ESC [ 3 q: キャピタルロック LED を点灯。
-r DECSTBM スクロールの範囲のセット; パラメータは一番上の行と一番下の行。
+r DECSTBM ã\82¹ã\82¯ã\83ã\83¼ã\83«ã\81®ç¯\84å\9b²ã\81®ã\82»ã\83\83ã\83\88; ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ä¸\80ç\95ªä¸\8aã\81®è¡\8cã\81¨ä¸\80ç\95ªä¸\8bã\81®è¡\8cã\80\82
s ? カーソル位置の保存。
u ? カーソル位置の復帰。
\` HPA カーソルを現在の行の指示された桁に移動する。
.PP
\fBECMA\-48 グラフィクスレンディション(Graphics Rendition)の設定\fP
.sp
-ECMA\-48 SGR シーケンス ESC [ <パラメータ> m は表示属性を設定する。
+ECMA\-48 SGR シーケンス ESC [ <パラメーター> m は表示属性を設定する。
セミコロンで区切ることで、同じシーケンスでいくつかの属性を設定できる。
-空パラメータ(セミコロンか文字列開始文字か文字列終端文字の間)はゼロと解釈される。
+空パラメーター(セミコロンか文字列開始文字か文字列終端文字の間)はゼロと解釈される。
.TS
l l.
-パラメータ 結果
+パラメーター 結果
0 すべての属性をデフォルトにリセットする。
1 ボールド(bold)をセット。
2 ハーフブライト(half\-bright)(カラーディスプレイでは色で代用)をセット。
ESC [ ? 3 h
DECCOLM (デフォルトはオフ = 80 桁): 80/132 の桁モード切替え。 ドライバーのソースの注釈には、これだけでは十分でなく
\fBresizecons\fP(8) のようなユーザーモードのユーティリティーで、コンソールビデオカードの
-ハードウェアレジスタを変える必要があると書かれている。
+ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\82\92å¤\89ã\81\88ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\81¨æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
.TP
ESC [ ? 5 h
DECSCNM (デフォルトはオフ): 反転表示モードのセット。
.TP
ESC [ ? 7 h
DECAWM(デフォルトはオン): オートラップを設定。このモードの時は、80 桁 (DECCOLM がオンのときは 132
-桁)を超えたグラフィックキャラクタは、 強制的に次の行の先頭に折り返されて表示される。
+æ¡\81)ã\82\92è¶\85ã\81\88ã\81\9fã\82°ã\83©ã\83\95ã\82£ã\83\83ã\82¯ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\81¯ã\80\81 å¼·å\88¶ç\9a\84ã\81«æ¬¡ã\81®è¡\8cã\81®å\85\88é ã\81«æ\8a\98ã\82\8aè¿\94ã\81\95ã\82\8cã\81¦è¡¨ç¤ºã\81\95ã\82\8cã\82\8bã\80\82
.TP
ESC [ ? 8 h
DECARM(デフォルトはオン): キーボードのオートリピートをオンにセット。
.sp
.\"
以下のシーケンスは ECMA\-48 のものでも本来の VT102 のものでもでもなく、 Linuxコンソールドライバーに固有なシーケンスである。色は
-SGR パラメータで 表現される: 0 = 黒, 1= 赤, 2 = 緑, 3 = 茶, 4 = 青, 5 = マゼンタ, 6 = シアン, 7 = 白
+SGR パラメーターで 表現される: 0 = 黒, 1= 赤, 2 = 緑, 3 = 茶, 4 = 青, 5 = マゼンタ, 6 = シアン, 7 =
+白
.TS
l l.
ESC [ 1 ; \fIn\fP ] 下線の色を\fIn\fP にセットする。
エントリーが正しい(かつ rs1=\eEc のエントリーが ある)ならば、"tput reset"でも同じ効果がある。
.PP
ユーザー定義のマッピングテーブルは \fBmapscrn\fP(8) を使って定義できる。 マッピングの結果、シンボル c が印字されるとシンボル s =
-map[c] が ビデオメモリに送られる。s に対応するビットマップはキャラクター ROM にあり、 \fBsetfont\fP(8)
+map[c] ã\81\8c ã\83\93ã\83\87ã\82ªã\83¡ã\83¢ã\83ªã\83¼ã\81«é\80\81ã\82\89ã\82\8cã\82\8bã\80\82s ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83\93ã\83\83ã\83\88ã\83\9eã\83\83ã\83\97ã\81¯ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ ROM ã\81«ã\81\82ã\82\8aã\80\81 \fBsetfont\fP(8)
により変更可能である。
.SS マウストラッキング
マウストラッキング機能は、 \fBxterm\fP(1)\-互換の マウスステータスリポート(mouse status
ないので、仮想ターミナルドライバーがマウス更新の ioctl を受け取った時だけ、 マウスステータスリポートがコンソールの入力ストリームに送られる。
この ioctl は、 \fBgpm\fP(8) デーモンのようなマウス対応のユーザーモード アプリケーションが発生しなければならない。
.PP
-\fBxterm\fP(1) によって生成される全てのマウス追跡エスケープシーケンスのための パラメータは、数値を \fIvalue\fP+040
+\fBxterm\fP(1) ã\81«ã\82\88ã\81£ã\81¦ç\94\9fæ\88\90ã\81\95ã\82\8cã\82\8bå\85¨ã\81¦ã\81®ã\83\9eã\82¦ã\82¹è¿½è·¡ã\82¨ã\82¹ã\82±ã\83¼ã\83\97ã\82·ã\83¼ã\82±ã\83³ã\82¹ã\81®ã\81\9fã\82\81ã\81® ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\80\81æ\95°å\80¤ã\82\92 \fIvalue\fP+040
のように符号化し、一つの文字として あらわす。 例えば、\(aq!\(aq は 1 になる。スクリーン座標は 1 をベースにする。
.PP
X10 互換モードでは、ボタンが押された時にマウスの位置と押されたマウスの ボタンとをエンコードしたエスケープシーケンスを送る。 この機能は ESC [
l l l.
ESC F カーソルをスクリーンの左下に移動する。
(\fBxterm\fP(1) の \fBhpLowerleftBugCompat\fPリソースにより有効な時)
-ESC l (HP ターミナル毎に)メモリロック。
- カーソルより上のメモリをロックする。
-ESC m (HP ターミナル毎に)メモリロックを解除する。
+ESC l (HP ã\82¿ã\83¼ã\83\9fã\83\8aã\83«æ¯\8eã\81«)ã\83¡ã\83¢ã\83ªã\83¼ã\83ã\83\83ã\82¯ã\80\82
+ ã\82«ã\83¼ã\82½ã\83«ã\82\88ã\82\8aä¸\8aã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92ã\83ã\83\83ã\82¯ã\81\99ã\82\8bã\80\82
+ESC m (HP ã\82¿ã\83¼ã\83\9fã\83\8aã\83«æ¯\8eã\81«)ã\83¡ã\83¢ã\83ªã\83¼ã\83ã\83\83ã\82¯ã\82\92解é\99¤ã\81\99ã\82\8bã\80\82
ESC n LS2 G2 文字集合の呼び出し。
ESC o LS3 G3 文字集合の呼び出し。
ESC | LS3R G3 文字集合を GR として呼び出す。
\fBGIO_FONTX\fP
スクリーンフォントとそれに関連した情報を取得する。 \fIargp\fP は構造体 consolefontdesc (\fBPIO_FONTX\fP
を参照のこと)を指す。 関数呼び出しのときには、\fIcharcount\fP には、\fIchardata\fP が指す
-バッファにおさまる最大の文字数をセットしなければならない。 関数呼び出しから戻った時には \fIcharcount\fP と \fIcharheight\fP
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81\8aã\81\95ã\81¾ã\82\8bæ\9c\80大ã\81®æ\96\87å\97æ\95°ã\82\92ã\82»ã\83\83ã\83\88ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 é\96¢æ\95°å\91¼ã\81³å\87ºã\81\97ã\81\8bã\82\89æ\88»ã\81£ã\81\9fæ\99\82ã\81«ã\81¯ \fIcharcount\fP ã\81¨ \fIcharheight\fP
には、 現在ロードされているフォントの該当するデータが収められている。 配列 \fIchardata\fP には、最初に \fIcharcount\fP
-にいれた値によって フォントを収めるのに十分なスペースがあるとわかればフォントデータが収められる。 そうでない時には、バッファは変更されず、
+ã\81«ã\81\84ã\82\8cã\81\9få\80¤ã\81«ã\82\88ã\81£ã\81¦ ã\83\95ã\82©ã\83³ã\83\88ã\82\92å\8f\8eã\82\81ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\82¹ã\83\9aã\83¼ã\82¹ã\81\8cã\81\82ã\82\8bã\81¨ã\82\8fã\81\8bã\82\8cã\81°ã\83\95ã\82©ã\83³ã\83\88ã\83\87ã\83¼ã\82¿ã\81\8cå\8f\8eã\82\81ã\82\89ã\82\8cã\82\8bã\80\82 ã\81\9dã\81\86ã\81§ã\81ªã\81\84æ\99\82ã\81«ã\81¯ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯å¤\89æ\9b´ã\81\95ã\82\8cã\81\9aã\80\81
\fIerrno\fP に \fBENOMEM\fP が セットされる(カーネル 1.3.1 以降)。
.TP
\fBPIO_FONT\fP
.fi
.in
-という構造体を指すポインタであり、 アクティブな vt のモードがセットされる。 \fImode\fP は次のどれかに設定される。
+ã\81¨ã\81\84ã\81\86æ§\8bé\80 ä½\93ã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8aã\80\81 ã\82¢ã\82¯ã\83\86ã\82£ã\83\96ã\81ª vt ã\81®ã\83¢ã\83¼ã\83\89ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82 \fImode\fP ã\81¯æ¬¡ã\81®ã\81©ã\82\8cã\81\8bã\81«è¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82
.TS
l l.
へのポインターである。 これはビデオモードを変更しない事に注意。 \fBresizecons\fP(8) を見よ(カーネル 1.1.54 以降)。
.TP
\fBVT_RESIZEX\fP
-カーネルが認識する各種のスクリーンパラメータを設定する。\fIargp\fP は、 以下の構造体へのポインターである。
+ã\82«ã\83¼ã\83\8dã\83«ã\81\8cèª\8dè\98ã\81\99ã\82\8bå\90\84種ã\81®ã\82¹ã\82¯ã\83ªã\83¼ã\83³ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82\fIargp\fP ã\81¯ã\80\81 以ä¸\8bã\81®æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.in +4n
.nf
.fi
.in
-ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81¯ã\82¼ã\83ã\81§ã\81\82ã\81£ã\81¦ã\82\82ã\82\88ã\81\84ã\80\82ã\81\9dã\81®ã\81¨ã\81\8dã\81¯ã\80\8cå¤\89æ\9b´ã\81\97ã\81ªã\81\84ã\81\93ã\81¨ã\80\8dã\82\92 æ\84\8få\91³ã\81\99ã\82\8bã\81\8cã\80\81è¤\87æ\95°ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿が設定された時にはそれらの間で矛盾が
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\82¼ã\83ã\81§ã\81\82ã\81£ã\81¦ã\82\82ã\82\88ã\81\84ã\80\82ã\81\9dã\81®ã\81¨ã\81\8dã\81¯ã\80\8cå¤\89æ\9b´ã\81\97ã\81ªã\81\84ã\81\93ã\81¨ã\80\8dã\82\92 æ\84\8få\91³ã\81\99ã\82\8bã\81\8cã\80\81è¤\87æ\95°ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼が設定された時にはそれらの間で矛盾が
ないようにしなければならない。 この関数呼び出しによってもビデオモードは変更されない事に注意。 \fBresizecons\fP(8) を参照の事(カーネル
1.3.3 以降)。
.PP
\fIdevices/char/console.c\fP の 静的配列 sel_buffer に保存される。
.TP
\fBTIOCLINUX, subcode=3\fP
-選択したものをペーストする。 選択バッファ中の文字 が \fIfd\fP に書き出される。
+選択したものをペーストする。 選択バッファー中の文字 が \fIfd\fP に書き出される。
.TP
\fBTIOCLINUX, subcode=4\fP
スクリーンをアンブランク(unblank)する。
語毎の選択のための「語」中の文字を規定している 256 ビットのルックアップ テーブルの内容を設定する(カーネル 1.1.32 以降)。
.TP
\fBTIOCLINUX, subcode=6\fP
-\fIargp\fP は文字変数を指すポインタで、その内容がカーネル変数 \fIshift_state\fPの値に設定される(カーネル 1.1.32 以降)。
+\fIargp\fP ã\81¯æ\96\87å\97å¤\89æ\95°ã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\80\81ã\81\9dã\81®å\86\85容ã\81\8cã\82«ã\83¼ã\83\8dã\83«å¤\89æ\95° \fIshift_state\fPã\81®å\80¤ã\81«è¨å®\9aã\81\95ã\82\8cã\82\8b(ã\82«ã\83¼ã\83\8dã\83« 1.1.32 以é\99\8d)ã\80\82
.TP
\fBTIOCLINUX, subcode=7\fP
-\fIargp\fP は文字変数を指すポインタで、その内容がカーネル変数 \fIreport_mouse\fP の値に設定される(カーネル 1.1.33 以降)。
+\fIargp\fP ã\81¯æ\96\87å\97å¤\89æ\95°ã\82\92æ\8c\87ã\81\99ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\80\81ã\81\9dã\81®å\86\85容ã\81\8cã\82«ã\83¼ã\83\8dã\83«å¤\89æ\95° \fIreport_mouse\fP ã\81®å\80¤ã\81«è¨å®\9aã\81\95ã\82\8cã\82\8b(ã\82«ã\83¼ã\83\8dã\83« 1.1.33 以é\99\8d)ã\80\82
.TP
\fBTIOCLINUX, subcode=8\fP
スクリーン幅、スクリーン高さ、カーソル位置、全ての文字属性の組をダンプする (カーネル 1.1.67 から 1.1.91までのみ。 カーネル
.IP 0: 3
スクリーンブランキングなし。
.IP 1:
-ç\8f¾å\9c¨ã\81®ã\83\93ã\83\87ã\82ªã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\83¬ã\82¸ã\82¹ã\82¿ã\81\8cä¿\9då\98ã\81\95ã\82\8cã\81\9fã\81\82ã\81¨ã\80\81 ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©は垂直同期パルスをオフにするようプログラムされる。 これにより
-モニターは「スタンバイ」モードに入る。 モニターに Off_Mode タイマが備わっておれば、 最終的にはモニターが自分で電源を落とす。
+ç\8f¾å\9c¨ã\81®ã\83\93ã\83\87ã\82ªã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81\8cä¿\9då\98ã\81\95ã\82\8cã\81\9fã\81\82ã\81¨ã\80\81 ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼は垂直同期パルスをオフにするようプログラムされる。 これにより
+ã\83¢ã\83\8bã\82¿ã\83¼ã\81¯ã\80\8cã\82¹ã\82¿ã\83³ã\83\90ã\82¤ã\80\8dã\83¢ã\83¼ã\83\89ã\81«å\85¥ã\82\8bã\80\82 ã\83¢ã\83\8bã\82¿ã\83¼ã\81« Off_Mode ã\82¿ã\82¤ã\83\9eã\83¼ã\81\8cå\82\99ã\82\8fã\81£ã\81¦ã\81\8aã\82\8cã\81°ã\80\81 æ\9c\80çµ\82ç\9a\84ã\81«ã\81¯ã\83¢ã\83\8bã\82¿ã\83¼ã\81\8cè\87ªå\88\86ã\81§é\9b»æº\90ã\82\92è\90½ã\81¨ã\81\99ã\80\82
.IP 2:
現在の設定を保存した後、垂直、水平同期パルスがオフになる。 これによりモニターは「オフ」モードになる。 モニターに Off_Mode
タイマーがない時、または、blank_timer がタイムアウトしたらすぐにモニターの電源を落したいときにこの選択肢を選ぶ。
\fIerrno\fP は次のような値をとる:
.TP
\fBEBADF\fP
-ファイルディスクリプタが無効。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cç\84¡å\8a¹ã\80\82
.TP
\fBENOTTY\fP
-ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cã\82ã\83£ã\83©ã\82¯ã\82¿ã\83»スペシャルデバイスと関連付けられて いない。または、要求されたものがそれに当てはまらない。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼スペシャルデバイスと関連付けられて いない。または、要求されたものがそれに当てはまらない。
.TP
\fBEINVAL\fP
-ファイルディスクリプタまたは \fIargp\fP が無効。
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¾ã\81\9fã\81¯ \fIargp\fP ã\81\8cç\84¡å\8a¹ã\80\82
.TP
\fBEPERM\fP
権限が不十分。
.\"
.TH DSP56K 4 2012\-08\-05 Linux "Linux Programmer's Manual"
.SH 名前
-dsp56k \- DSP56001 ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\83»ã\83\87ã\83\90ã\82¤ã\82¹
+dsp56k \- DSP56001 のインターフェースデバイス
.SH 書式
.nf
#include <asm/dsp56k.h>
\fBint ioctl(int \fP\fIfd\fP\fB, DSP56K_HOST_CMD, int \fP\fIcmd\fP\fB);\fP
.fi
.SH 設定
-dsp56k ã\83\87ã\83\90ã\82¤ã\82¹ã\81¯ã\80\81ã\83¡ã\82¸ã\83£ã\83¼ç\95ªå\8f· 55ã\80\81ã\83\9eã\82¤ã\83\8aã\83¼ç\95ªå\8f· 0 ã\81® ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\83»ã\83\87ã\83\90ã\82¤ã\82¹ã\81§ã\81\82ã\82\8bã\80\82
+dsp56k デバイスは、メジャー番号 55、マイナー番号 0 の キャラクターデバイスである。
.SH 説明
Motorola DSP56001 は、Atari Falcon030 互換のコンピュータで使われている フルプログラマブルな 24
ビットのデジタルシグナルプロセッサーである。 スペシャルファイル \fIdsp56k\fP は、DSP56001 の制御と
次の \fBioctl\fP(2) コールが \fIdsp56k\fP デバイスを制御するために使われる。
.IP \fBDSP56K_UPLOAD\fP
DSP56001 をリセットし、プログラムをアップロードする。 \fBioctl\fP(2) の 3 番目の引き数は、 構造体 \fIstruct
-dsp56k_binary\fP へのポインタでなければならない。 構造体のメンバー \fIbin\fP は DSP56001 バイナリプログラムを指し、
+dsp56k_binary\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 æ§\8bé\80 ä½\93ã\81®ã\83¡ã\83³ã\83\90ã\83¼ \fIbin\fP ã\81¯ DSP56001 ã\83\90ã\82¤ã\83\8aã\83ªã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92æ\8c\87ã\81\97ã\80\81
構造体のメンバー \fIlen\fP は 24 ビットワードで数えた プログラムの長さに設定されていなければならない。
.IP \fBDSP56K_SET_TX_WSIZE\fP
送信ワードサイズを設定する。 設定できる値は 1 〜 4 の範囲で、このバイト数分だけ 1 度に DSP56001 に送信する。
によって書き込むことができる。
ホストフラグにアクセスするためには、 \fBioctl\fP(2) の 3 番目の引き数が 構造体 \fIstruct dsp56k_host_flags\fP
-へのポインタでなければならない。 この構造体のメンバー \fIdir\fP のビット 0 または 1 が設定されると、 メンバー \fIout\fP
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81®ã\83¡ã\83³ã\83\90ã\83¼ \fIdir\fP ã\81®ã\83\93ã\83\83ã\83\88 0 ã\81¾ã\81\9fã\81¯ 1 ã\81\8cè¨å®\9aã\81\95ã\82\8cã\82\8bã\81¨ã\80\81 ã\83¡ã\83³ã\83\90ã\83¼ \fIout\fP
の対応するビットの値がホストフラグに書き込まれる。 すべてのホストフラグの状態は、構造体のメンバー \fIstatus\fP の 下から 4
ビットとして返される。
.IP \fBDSP56K_HOST_CMD\fP
の組合せである) は、ベースとなるマイナーナンバーを持っている。このベースナンバーにその
コントローラー上のドライブナンバーを加える。もし、そのドライブが 2 番目の コントローラーに接続されているなら、さらに 128 を加える。次のデバイス
テーブルでは、 \fIn\fP はドライブ番号を表す。 [訳注] 以下のテーブルに用いられる用語は表の整形の関係から原文のままとなっている。 Name
-(名前)、Capac. (容量)、Cyl. (シリンダ数)、Sect. (セクター数)、 Heads. (ヘッダ数)、Base minor #
+(名前)、Capac. (容量)、Cyl. (シリンダ数)、Sect. (セクター数)、 Heads. (ヘッダー数)、Base minor #
(ベースマイナーナンバー)。
.PP
\fB警告: ドライブがサポートしているよりも多くのトラックを持つように フォーマットした場合、ドライブに機械的なダメージを与えることになる
かもしれない。\fP 通常の 40/80 よりも多くのトラックがサポートされているかどうかを 一度試すだけではドライブにダメージを与えることはないはずだが、
-ã\83\80ã\83¡ã\83¼ã\82¸ã\82\92ä¸\8eã\81\88ã\81ªã\81\84ã\81¨ã\81\84ã\81\86ä¿\9d証ã\81¯ã\81ªã\81\84ã\80\82 確信ã\81\8cã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81ã\81\9dã\81®ã\82\88ã\81\86ã\81ªä½¿ã\81\84æ\96¹ã\81\8cè¡\8cã\82\8fã\82\8cã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\80\81 ã\81\9dã\81\86ã\81\97ã\81\9fã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\81®ã\83\89ã\83©ã\82¤ã\83\96ã\83»ã\82¨ã\83³ã\83\88ã\83ªを作成しないこと。
+ã\83\80ã\83¡ã\83¼ã\82¸ã\82\92ä¸\8eã\81\88ã\81ªã\81\84ã\81¨ã\81\84ã\81\86ä¿\9d証ã\81¯ã\81ªã\81\84ã\80\82 確信ã\81\8cã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81ã\81\9dã\81®ã\82\88ã\81\86ã\81ªä½¿ã\81\84æ\96¹ã\81\8cè¡\8cã\82\8fã\82\8cã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\80\81 ã\81\9dã\81\86ã\81\97ã\81\9fã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\81®ã\83\89ã\83©ã\82¤ã\83\96ã\82¨ã\83³ã\83\88ã\83ªã\83¼を作成しないこと。
.PP
メディアのフォーマットと容量を自動的に検出する ドライブ非依存のデバイスファイル:
.TS
ドライブのタイプ(名前引数)を返す。それぞれのドライブタイプに適合するよ うにフォーマットを行うため、\fBFDGETDRVTYP\fP
はフォーマットをサポート する最も古いドライブタイプのために適切な名前を返す。
.IP \fBFDFLUSH\fP
-与えられたドライブのバッファキャッシュを無効にする。
+ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fã\83\89ã\83©ã\82¤ã\83\96ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82ã\83£ã\83\83ã\82·ã\83¥ã\82\92ç\84¡å\8a¹ã\81«ã\81\99ã\82\8bã\80\82
.IP \fBFDSETMAXERRS\fP
エラーの報告、操作の中止、再試行、リセット、セクター毎の読み込みのため のエラー閾値をセットする。
.IP \fBFDSETMAXERRS\fP
.IP \fBFDTWADDLE\fP
数ミリ秒の間ドライブのモーターのスイッチを切る。これはディスクのセクター 同士が接近しすぎているディスクのアクセスのために必要であろう。
.IP \fBFDSETDRVPRM\fP
-ドライブの様々なパラメータをセットする。
+ã\83\89ã\83©ã\82¤ã\83\96ã\81®æ§\98ã\80\85ã\81ªã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\80\82
.IP \fBFDGETDRVPRM\fP
-(\fBFDSETDRVPRM\fP を使ってセットした)パラメータを読みだす。
+(\fBFDSETDRVPRM\fP ã\82\92使ã\81£ã\81¦ã\82»ã\83\83ã\83\88ã\81\97ã\81\9f)ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92èªã\81¿ã\81 ã\81\99ã\80\82
.IP \fBFDGETDRVSTAT\fP
キャッシュされているドライブの状態(ディスクの交換、ライトプロテクトな ど)を得る。
.IP \fBFDPOLLDRVSTAT\fP
/dev/fd*
.SH 注意
様々なディスクのタイプで様々な種類のフォーマットの読み書きが許されている。 しかし、小さすぎるセクター間ギャップでフォーマットされたフロッピーでは、
-ã\83\88ã\83©ã\83\83ã\82¯å\85¨ä½\93ã\81®ã\82¢ã\82¯ã\82»ã\82¹ã\81«æ\95°ç§\92å¿\85è¦\81ã\81«ã\81ªã\82\8bã\81\9fã\82\81ã\80\81æ\80§è\83½ã\81\8cä½\8eä¸\8bã\81\99ã\82\8bã\81\93ã\81¨ã\81 ã\82\8dã\81\86ã\80\82 ã\81\93ã\82\8cã\82\92é\98²ã\81\90ã\81\9fã\82\81ã\81«ã\81¯ã\80\81ã\82¤ã\83³ã\82¿ã\83¼ã\83ªã\83¼ã\83\96ã\83\89ã\83»ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88 (interleaved
+トラック全体のアクセスに数秒必要になるため、性能が低下することだろう。 これを防ぐためには、インターリーブドフォーマット (interleaved
format) を用いればよい。
Apple II や Macintosh コンピュータで使用されている、 GCR (group code recording)
hd \- MFM/IDE ハードディスクデバイス
.SH 説明
\fBhd*\fP デバイスは MFM/IDE ハードディスクドライブにローモード (raw mode) でアクセスするためのブロックデバイス (block
-device) である。プライマリ (primary) IDE コントローラ (メジャーナンバー 3) の マスタードライブ (mater drive)
-は \fBhda\fP、スレーブドライブ (slave drive) は \fBhdb\fP である。また、セカンドコントローラ (メジャーナンバー 22)
-のマスター ドライブは \fBhdc\fP スレーブは \fBhdd\fP である。
+device) である。プライマリ (primary) IDE コントローラー (メジャーナンバー 3) の マスタードライブ (mater
+drive) は \fBhda\fP、スレーブドライブ (slave drive) は \fBhdb\fP である。また、セカンドコントローラー (メジャーナンバー
+22) のマスター ドライブは \fBhdc\fP スレーブは \fBhdd\fP である。
.LP
一般的な IDE ブロックデバイスの名前は \fBhd\fP\fIX\fPまたは、 \fBhd\fP\fIXP\fPという形態をとる。この、 \fIX\fP
の部分は物理的なドライブを表す文字で、 \fIP\fP の部分はその物理的なドライブ上のパーティション (partition) を表す数字で
.\"
.TH INITRD 4 2010\-09\-04 Linux "Linux Programmer's Manual"
.SH 名前
-initrd \- ブートローダによって初期化された RAM ディスク
+initrd \- ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83¼ã\81«ã\82\88ã\81£ã\81¦å\88\9dæ\9c\9få\8c\96ã\81\95ã\82\8cã\81\9f RAM ã\83\87ã\82£ã\82¹ã\82¯
.SH 設定
\fI/dev/initrd\fP は、メジャー番号 1、マイナー番号 250 が割り当てられた 読み込み専用のブロックデバイスである。 普通、
\fI/dev/initrd\fP の所有者は \fIroot.disk\fP であり、モードは 400 (root のみが読み出し可能) である。
\fBCONFIG_BLK_DEV_INITRD=y\fP とする)。 \fI/dev/initrd\fP を使用する場合には、RAM
ディスクドライバをモジュールとして ロードすることはできない。
.SH 説明
-\fI/dev/initrd\fP スペシャルファイルは読み込み専用のブロックデバイスである。 このデバイスはカーネルが起動される前にブートローダ (boot
-loader) によって初期化 (例えば、ロード) される RAM ディスクである。 その後、カーネルは \fI/dev/initrd\fP
+\fI/dev/initrd\fP スペシャルファイルは読み込み専用のブロックデバイスである。 このデバイスはカーネルが起動される前にブートローダー
+(boot loader) によって初期化 (例えば、ロード) される RAM ディスクである。 その後、カーネルは \fI/dev/initrd\fP
の内容を二段階のシステム起動 (two\-phase system boot\-up) で利用することができる。
.PP
.\"
.\"
.\"
-最初のブートアップ段階 (first boot\-up phase) では、カーネルは (例えば、ブートローダによって初期化された RAM disk
+æ\9c\80å\88\9dã\81®ã\83\96ã\83¼ã\83\88ã\82¢ã\83\83ã\83\97段é\9a\8e (first boot\-up phase) ã\81§ã\81¯ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81¯ (ä¾\8bã\81\88ã\81°ã\80\81ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83¼ã\81«ã\82\88ã\81£ã\81¦å\88\9dæ\9c\9få\8c\96ã\81\95ã\82\8cã\81\9f RAM disk
である) \fI/dev/initrd\fP の内容を初期ルートファイルシステム (root file\-system) としてマウント して起動する。
第二段階では初期ルートデバイスに含まれているものから、追加のドライ バやその他のモジュールがロードされる。
追加のモジュールがロードされた後、新しいルートファイルシステム (すなわち、通常時のルートファイルシステム) が別のデバイスからマウントされる。
.SS ブートアップ作業
\fBinitrd\fP を利用した時は、システムは次のようにブートする:
.IP 1. 3
-ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¨ \fI/dev/initrd\fP ã\81®å\86\85容ã\82\92ã\83¡ã\83¢ã\83ªにロードする。
+ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83¼ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¨ \fI/dev/initrd\fP ã\81®å\86\85容ã\82\92ã\83¡ã\83¢ã\83ªã\83¼にロードする。
.IP 2.
カーネル起動時、カーネルは \fI/dev/initrd\fP デバイスの内容を展開 (uncompress) し、 \fI/dev/ram0\fP
-にコピーする。さらに、 \fI/dev/initrd\fP の使っていたメモリを解放する。
+ã\81«ã\82³ã\83\94ã\83¼ã\81\99ã\82\8bã\80\82ã\81\95ã\82\89ã\81«ã\80\81 \fI/dev/initrd\fP ã\81®ä½¿ã\81£ã\81¦ã\81\84ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\92解æ\94¾ã\81\99ã\82\8bã\80\82
.IP 3.
カーネルは \fI/dev/ram0\fP デバイスを初期のルートファイルシステムとして読み書き可能な形式でマウン トする。
.IP 4.
.\"
普通のブートシーケンス (例えば、 \fI/sbin/init\fP の起動) が通常時ルートファイルシステム上で行われる。
.SS オプション
-\fBinitrd\fP ã\82\92ç\94¨ã\81\84ã\82\8bå ´å\90\88ã\81«ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83\96ã\83¼ã\83\88ã\82¢ã\83\83ã\83\97æ\93\8dä½\9cã\81«å½±é\9f¿ã\82\92ä¸\8eã\81\88ã\82\8b ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83»オプションは次のようなものがある、
+\fBinitrd\fP ã\82\92ç\94¨ã\81\84ã\82\8bå ´å\90\88ã\81«ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83\96ã\83¼ã\83\88ã\82¢ã\83\83ã\83\97æ\93\8dä½\9cã\81«å½±é\9f¿ã\82\92ä¸\8eã\81\88ã\82\8b ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83¼オプションは次のようなものがある、
.TP
\fBinitrd=\fP\fIfilename\fP
\fI/dev/initrd\fP の内容としてロードするファイルを指定する。 \fBLOADLIN\fP では、これはコマンドラインオプションである。
.TP
\fBnoinitrd\fP
この起動オプションは二段階の起動操作を無効にする。 カーネルは \fI/dev/initrd\fP
-ã\81\8cå\88\9dæ\9c\9få\8c\96ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\81¨å\90\8cæ§\98ã\81®ã\80\81é\80\9a常ã\81®ã\83\96ã\83¼ã\83\88ã\82¢ã\83\83ã\83\97å\8b\95ä½\9cã\82\92è¡\8cã\81\86ã\80\82 ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92ç\94¨ã\81\84ã\82\8bã\81¨ã\80\81ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\81«ã\82\88ã\81£ã\81¦ã\83¡ã\83¢ã\83ª上にロードされた
+ã\81\8cå\88\9dæ\9c\9få\8c\96ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\81¨å\90\8cæ§\98ã\81®ã\80\81é\80\9a常ã\81®ã\83\96ã\83¼ã\83\88ã\82¢ã\83\83ã\83\97å\8b\95ä½\9cã\82\92è¡\8cã\81\86ã\80\82 ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92ç\94¨ã\81\84ã\82\8bã\81¨ã\80\81ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83¼ã\81«ã\82\88ã\81£ã\81¦ã\83¡ã\83¢ã\83ªã\83¼上にロードされた
\fI/dev/initrd\fP の内容はそのまま保存される。 つまり、このオプションを用いることによって、 \fI/dev/initrd\fP の内容を
(ブート以外の目的に) 利用することが可能になる。また、その内容は ファイルシステムイメージに限定されない。 しかし、 \fI/dev/initrd\fP
デバイスは読みだしのみ可能であり、システムの起動後 1 度しか読み出す事 ができない。
このオプションで指定されるデバイスは、適切なルートファイルシステムとし てマウント可能なデバイスでなければならない。
.SS 通常時ルートファイルシステムの変更
デフォルトでは、カーネルの設定 (例えば、 \fBrdev\fP(8) を用いてカーネルファイル内にセットされたもの、または、コンパイル時にカー
-ã\83\8dã\83«ã\83\95ã\82¡ã\82¤ã\83«å\86\85ã\81«å\9f\8bã\82\81è¾¼ã\81¾ã\82\8cã\81\9fã\82\82ã\81®)ã\80\81 ã\81¾ã\81\9fã\81¯ã\80\81ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³è¨å®\9aã\81«ã\82\88ã\81£ã\81¦æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82\82ã\81®ã\81\8cé\80\9a常æ\99\82ã\83«ã\83¼ ã\83\88ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81¨ã\81\97ã\81¦ä½¿ã\82\8fã\82\8cã\82\8bã\80\82 NFS
-マウントされた通常時ルートファイルシステムを利用する場合、 \fBnfs_root_name\fP と \fBnfs_root_addrs\fP
+ã\83\8dã\83«ã\83\95ã\82¡ã\82¤ã\83«å\86\85ã\81«å\9f\8bã\82\81è¾¼ã\81¾ã\82\8cã\81\9fã\82\82ã\81®)ã\80\81 ã\81¾ã\81\9fã\81¯ã\80\81ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83¼ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³è¨å®\9aã\81«ã\82\88ã\81£ã\81¦æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\82\82ã\81®ã\81\8cé\80\9a常æ\99\82ã\83«ã\83¼ ã\83\88ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81¨ã\81\97ã\81¦ä½¿ã\82\8fã\82\8cã\82\8bã\80\82
+NFS マウントされた通常時ルートファイルシステムを利用する場合、 \fBnfs_root_name\fP と \fBnfs_root_addrs\fP
ブートオプションを使って NFS の設定を与えなければならない。 NFS マウントされたルート (ファイルシステム) についての
より詳しい情報は、カーネルのドキュメントファイル \fBDocumentation/filesystems/nfsroot.txt\fP を参照のこと。
ルートファイルシステムの設定についてのより詳しい情報は、 \fBLILO\fP と \fBLOADLIN\fP のドキュメントも参照のこと。
.PP
次のような流れのシステムインストールが可能になる:
.IP 1. 3
-ã\83ã\83¼ã\83\80ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\80\81ã\83\95ã\83ã\83\83ã\83\94ã\83¼ã\82\84ã\81\9dã\81®ä»\96ã\81®ã\83¡ã\83\87ã\82£ã\82¢ã\81\8bã\82\89ã\80\81 æ\9c\80å°\8fé\99\90ã\81®ã\82«ã\83¼ã\83\8dã\83« (ä¾\8bã\81\88ã\81°ã\80\81 \fI/dev/ram\fP, \fI/dev/initrd\fP, ext2
-ファイルシステムのみのサポートしたカーネル) をブートし、 gzip 圧縮された初期ファイルシステムイメージを \fI/dev/initrd\fP
+ã\83ã\83¼ã\83\80ã\83¼ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\80\81ã\83\95ã\83ã\83\83ã\83\94ã\83¼ã\82\84ã\81\9dã\81®ä»\96ã\81®ã\83¡ã\83\87ã\82£ã\82¢ã\81\8bã\82\89ã\80\81 æ\9c\80å°\8fé\99\90ã\81®ã\82«ã\83¼ã\83\8dã\83« (ä¾\8bã\81\88ã\81°ã\80\81 \fI/dev/ram\fP, \fI/dev/initrd\fP,
+ext2 ファイルシステムのみのサポートしたカーネル) をブートし、 gzip 圧縮された初期ファイルシステムイメージを \fI/dev/initrd\fP
にロードする。
.IP 2.
実行ファイル \fI/linuxrc\fP は、(1) 通常時ルートファイルシステムのマウントに何が必要か
(すなわち、デバイスタイプ、デバイスドライバ、ファイルシステム)、 (2) 配布メディアに何が必要か (例えば、CD\-ROM,
-ネットワーク、テープなど) を決定する。決定は、ユーザへの問い合わせ、自動検出、あるいはその両者の 方法を組み合わせて行われる。
+ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\80\81ã\83\86ã\83¼ã\83\97ã\81ªã\81©) ã\82\92決å®\9aã\81\99ã\82\8bã\80\82決å®\9aã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81¸ã\81®å\95\8fã\81\84å\90\88ã\82\8fã\81\9bã\80\81è\87ªå\8b\95æ¤\9cå\87ºã\80\81ã\81\82ã\82\8bã\81\84ã\81¯ã\81\9dã\81®ä¸¡è\80\85ã\81® æ\96¹æ³\95ã\82\92çµ\84ã\81¿å\90\88ã\82\8fã\81\9bã\81¦è¡\8cã\82\8fã\82\8cã\82\8bã\80\82
.IP 3.
実行ファイル \fI/linuxrc\fP は、初期ルートファイルシステムから必要なモジュールをロードする。
.IP 4.
.IP 6.
次に、カーネルは、通常時ルートファイルシステムをマウントする。
.IP 7.
-この段階で、ファイルシステムは全く変更が行われていない状態で、 アクセスできる状態になる。 また、ブートローダをインストールすることができる。
+ã\81\93ã\81®æ®µé\9a\8eã\81§ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81¯å\85¨ã\81\8få¤\89æ\9b´ã\81\8cè¡\8cã\82\8fã\82\8cã\81¦ã\81\84ã\81ªã\81\84ç\8a¶æ\85\8bã\81§ã\80\81 ã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8dã\82\8bç\8a¶æ\85\8bã\81«ã\81ªã\82\8bã\80\82 ã\81¾ã\81\9fã\80\81ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83¼ã\82\92ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
.IP 8.
-ブートローダを設定し、システム起動時に使用されるカーネルモジュールのセッ トを含んだファイルシステムを \fI/dev/initrd\fP にロードする
+ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83¼ã\82\92è¨å®\9aã\81\97ã\80\81ã\82·ã\82¹ã\83\86ã\83 èµ·å\8b\95æ\99\82ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\82«ã\83¼ã\83\8dã\83«ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81®ã\82»ã\83\83 ã\83\88ã\82\92å\90«ã\82\93ã\81 ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\82\92 \fI/dev/initrd\fP ã\81«ã\83ã\83¼ã\83\89ã\81\99ã\82\8b
(例えば、 \fI/dev/ram0\fP デバイスの内容を修正し、アンマウントする。最後に、 \fI/dev/ram0\fP のイメージをファイルに書き出す)。
.IP 9.
これで、システムがブート可能になる。この後、さらにその他のインストール の作業を実行できる。
そして、 \fI/linuxrc\fP ファイル、または、 \fI/linuxrc\fP から実行されるファイルのみを異なったものにしておく。
.PP
3 番目のケースは、より便利な復旧用ディスクを作る場合である。 ルートファイルシステムのパーティションの位置といった情報は ブート時に必要ないため、
-\fI/dev/initrd\fP からロードされたシステムは、 必要な正常性チェックを行った後で、ユーザへの問い合わせや自動検出 (もしくはその両方)
+\fI/dev/initrd\fP ã\81\8bã\82\89ã\83ã\83¼ã\83\89ã\81\95ã\82\8cã\81\9fã\82·ã\82¹ã\83\86ã\83 ã\81¯ã\80\81 å¿\85è¦\81ã\81ªæ£å¸¸æ\80§ã\83\81ã\82§ã\83\83ã\82¯ã\82\92è¡\8cã\81£ã\81\9få¾\8cã\81§ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81¸ã\81®å\95\8fã\81\84å\90\88ã\82\8fã\81\9bã\82\84è\87ªå\8b\95æ¤\9cå\87º (ã\82\82ã\81\97ã\81\8fã\81¯ã\81\9dã\81®ä¸¡æ\96¹)
を行うことができるようになる。
.PP
.\"
.IP 1. 3
現在のカーネルでは、 \fI/dev/ram0\fP が \fI/\fP から \fI/initrd\fP
に移動された際に、移動時にマウントされていたファイルシステムは、 その後も継続的にアクセス可能である。しかし、 \fI/proc/mounts\fP
-のエントリは更新されない。
+ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯æ\9b´æ\96°ã\81\95ã\82\8cã\81ªã\81\84ã\80\82
.IP 2.
現在のカーネルでは、ディレクトリ \fI/initrd\fP が存在しない場合、 \fI/dev/ram0\fP
を何らかのプロセスが利用していたり、何らかのファイルシステムが \fI/dev/ram0\fP 上にマウントされていると、 \fI/dev/ram0\fP
は完全にはアンマウント「されない」。 \fI/dev/ram0\fP が、完全にアンマウント「されなければ」、 \fI/dev/ram0\fP
-はメモリ上に残ってしまうはずである。
+はメモリー上に残ってしまうはずである。
.IP 3.
.\"
.\"
/dev/* \(em デバイスファイル
.SH 注意
.SS 著者と著作権
-著者と著作権に関しては各マニュアルページのソースのヘッダを参照すること。 これらはページごとに異なる可能性があることに注意してほしい。
+è\91\97è\80\85ã\81¨è\91\97ä½\9c権ã\81«é\96¢ã\81\97ã\81¦ã\81¯å\90\84ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81®ã\82½ã\83¼ã\82¹ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82 ã\81\93ã\82\8cã\82\89ã\81¯ã\83\9aã\83¼ã\82¸ã\81\94ã\81¨ã\81«ç\95°ã\81ªã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\80\82
.SH 関連項目
\fBstandards\fP(7)
.SH この文書について
.SH 書式
\fB#include <linux/lp.h>\fP
.SH 設定
-\fBlp\fP[0\(en2] はパラレルプリンターのためのキャラクタデバイスでメジャー ナンバー 6 マイナーナンバー 0\(en2
+\fBlp\fP[0\(en2] ã\81¯ã\83\91ã\83©ã\83¬ã\83«ã\83\97ã\83ªã\83³ã\82¿ã\83¼ã\81®ã\81\9fã\82\81ã\81®ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\83\87ã\83\90ã\82¤ã\82¹ã\81§ã\83¡ã\82¸ã\83£ã\83¼ ã\83\8aã\83³ã\83\90ã\83¼ 6 ã\83\9eã\82¤ã\83\8aã\83¼ã\83\8aã\83³ã\83\90ã\83¼ 0\(en2
を持つ。マイナーナンバーは、ベース アドレス 0x03bc, 0x0378, 0x0278 のそれぞれのプリンターポートに対応する
通常、このデバイスファイルはモード 220 オーナー root グループ lp となっ
ている。プリンターポートはポーリング(polling)または割り込み (interrupts) のどちらを用いても利用できる。割り込みの利用は、高負荷が
.SH 説明
次の \fBioctl\fP(2) コールがサポートされている。
.IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPTIME, int \fP\fIarg\fP\fB)\fP"
-プリンターのバッファ( buffer ) がいっぱいになった時、ドライバがプリンター を再チェックするまでに休止する時間を \fIarg\fP
+プリンターのバッファー( buffer ) がいっぱいになった時、ドライバがプリンター を再チェックするまでに休止する時間を \fIarg\fP
とする。高速なプリンター の時はこれを減らし、遅いプリンターの時には増やす。単位は1秒の100分の1
で、デフォルトの2は0.02秒にあたる。ポーリングドライバ( polling driver )のみに影響する。
.IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPCHAR, int \fP\fIarg\fP\fB)\fP"
を再びオフにするまでの待ちの繰り返しの回数を \fIarg\fPに設定 する。仕様によればこの時間は 0.5 マイクロ秒とするべきだが、経験によれば
このコードによって生じる遅れで十分である。そのため、デフォルトでは 0 で ある。これは、ポーリングと割り込みドライバの両方で使われる。
.IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPSETIRQ, int \fP\fIarg\fP\fB)\fP"
-この \fBioctl\fP(2) を使うには、スーパーユーザの権限が必要である。新しいIRQを示す \fIint\fP
+ã\81\93ã\81® \fBioctl\fP(2) ã\82\92使ã\81\86ã\81«ã\81¯ã\80\81ã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\83¼ã\81®æ¨©é\99\90ã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\82\8bã\80\82æ\96°ã\81\97ã\81\84IRQã\82\92示ã\81\99 \fIint\fP
を引数としてとる。また、副作用としてプリンターはリセットされる。 \fIarg\fPが0の時またはデフォルトの動作では、ポーリングドライバーが使わ れる。
.IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPGETIRQ, int *\fP\fIarg\fP\fB)\fP"
現在使われているIRQを\fIarg\fPにいれる。
.\"
.TH MEM 4 2015\-01\-02 Linux "Linux Programmer's Manual"
.SH 名前
-mem, kmem, port \- システムメモリ(system memory)、カーネルメモリ (kernel
+mem, kmem, port \- システムメモリー(system memory)、カーネルメモリー (kernel
memory)、システムポート(sysmem ports)
.SH 説明
-\fBmem\fP はコンピュータのメインメモリイメージのキャラクターデバイスファ イル(character device
+\fBmem\fP ã\81¯ã\82³ã\83³ã\83\94ã\83¥ã\83¼ã\82¿ã\81®ã\83¡ã\82¤ã\83³ã\83¡ã\83¢ã\83ªã\83¼ã\82¤ã\83¡ã\83¼ã\82¸ã\81®ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\83\87ã\83\90ã\82¤ã\82¹ã\83\95ã\82¡ ã\82¤ã\83«(character device
file)である。このデバイスは、例えば、システムを 検査するため(また、パッチ(patch)をあてるため)に使われるだろう。
.LP
-\fBmem\fP のバイトアドレス(byte address)は 物理メモリアドレスとして解釈される。 存在していない場所への参照はエラーが返される。
+\fBmem\fP ã\81®ã\83\90ã\82¤ã\83\88ã\82¢ã\83\89ã\83¬ã\82¹(byte address)ã\81¯ ç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\81¨ã\81\97ã\81¦è§£é\87\88ã\81\95ã\82\8cã\82\8bã\80\82 å\98å\9c¨ã\81\97ã\81¦ã\81\84ã\81ªã\81\84å ´æ\89\80ã\81¸ã\81®å\8f\82ç\85§ã\81¯ã\82¨ã\83©ã\83¼ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82
.LP
読み込み専用(read\-only)あるいは書き込み専用(write\-only)のビットへの検 査あるいはパッチ当ては予期せぬ結果をもたらすことがある。
.LP
Linux 2.6.26 以降では、 アーキテクチャーによっては、 カーネル設定オプション \fBCONFIG_STRICT_DEVMEM\fP
-によりこのファイル経由でアクセスできる領域が制限される。 例えば、 x86 では、 RAM アクセスは許可されないが、メモリマップ PCI
+ã\81«ã\82\88ã\82\8aã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«çµ\8cç\94±ã\81§ã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8dã\82\8bé \98å\9f\9fã\81\8cå\88¶é\99\90ã\81\95ã\82\8cã\82\8bã\80\82 ä¾\8bã\81\88ã\81°ã\80\81 x86 ã\81§ã\81¯ã\80\81 RAM ã\82¢ã\82¯ã\82»ã\82¹ã\81¯è¨±å\8f¯ã\81\95ã\82\8cã\81ªã\81\84ã\81\8cã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\97 PCI
領域へのアクセスは許可される。
.LP
典型的には次のようにして作られる。:
chown root:kmem /dev/mem
.RE
.LP
-\fBkmem\fP ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ \fBmem\fP ã\81¨å\90\8cã\81\98ã\81 ã\81\8cã\80\81 ç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81¯ã\81ªã\81\8fã\80\81ã\82«ã\83¼ã\83\8dã\83«(kernel)ã\81®ä»®æ\83³ ã\83¡ã\83¢ã\83ª(virtual
+\fBkmem\fP ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ \fBmem\fP ã\81¨å\90\8cã\81\98ã\81 ã\81\8cã\80\81 ç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\83¼ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81¯ã\81ªã\81\8fã\80\81ã\82«ã\83¼ã\83\8dã\83«(kernel)ã\81®ä»®æ\83³ ã\83¡ã\83¢ã\83ªã\83¼(virtual
memory)へのアクセスである点が異なる。 Linux 2.6.26 以降では、 このファイルが利用できるのは、 カーネル設定オプション
\fBCONFIG_DEVKMEM\fP が有効になっている場合だけである。
.LP
.SH 名前
msr \- x86 CPU MSR へアクセスするためのデバイス
.SH 説明
-\fI/dev/cpu/CPUNUM/msr\fP は x86 CPU の モデル固有レジスタ (model\-specific registers;
+\fI/dev/cpu/CPUNUM/msr\fP は x86 CPU の モデル固有レジスター (model\-specific registers;
MSRs) の読み書きインターフェースを提供する。 \fICPUNUM\fP はアクセスする CPU の番号で、 \fI/proc/cpuinfo\fP
に表示される値である。
-ã\83¬ã\82¸ã\82¹ã\82¿ã\82¢ã\82¯ã\82»ã\82¹ã\81¯ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81 MSR ç\95ªå\8f·å\88\86ã\81 ã\81\91ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\82\92å¤\89æ\9b´ã\81\97ã\80\81 8 ã\83\90ã\82¤ã\83\88å\8d\98ä½\8dã\81§ã\81®èªã\81¿æ\9b¸ã\81\8dã\82\92è¡\8cã\81\86å½¢ã\81§è¡\8cã\82\8fã\82\8cã\82\8bã\80\82 ã\81¤ã\81¾ã\82\8aã\80\81
-8 バイトを超える I/O 転送は、同じレジスタに対する複数回の読み書きとなる。
+ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\82¢ã\82¯ã\82»ã\82¹ã\81¯ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81 MSR ç\95ªå\8f·å\88\86ã\81 ã\81\91ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\82\92å¤\89æ\9b´ã\81\97ã\80\81 8 ã\83\90ã\82¤ã\83\88å\8d\98ä½\8dã\81§ã\81®èªã\81¿æ\9b¸ã\81\8dã\82\92è¡\8cã\81\86å½¢ã\81§è¡\8cã\82\8fã\82\8cã\82\8bã\80\82
+つまり、 8 バイトを超える I/O 転送は、同じレジスターに対する複数回の読み書きとなる。
-このファイルは保護されており、 \fIroot\fP ユーザ、もしくは \fIroot\fP グループのメンバだけが読み書きできる。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ä¿\9dè·ã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81 \fIroot\fP ã\83¦ã\83¼ã\82¶ã\83¼ã\80\81ã\82\82ã\81\97ã\81\8fã\81¯ \fIroot\fP ã\82°ã\83«ã\83¼ã\83\97ã\81®ã\83¡ã\83³ã\83\90ã\81 ã\81\91ã\81\8cèªã\81¿æ\9b¸ã\81\8dã\81§ã\81\8dã\82\8bã\80\82
.SH 注意
\fImsr\fP ドライバは自動ではロードされない。 モジュールが有効になったカーネルでは、 以下のコマンドを使って、
使用する前に明示的にドライバをロードする必要があるだろう。
.br
\fI/dev/zero\fP
.SH 注意
-これらのデバイスが全てのユーザに対して読み書き可能でない場合、 多くのプログラムの動作がおかしくなるだろう。
+ã\81\93ã\82\8cã\82\89ã\81®ã\83\87ã\83\90ã\82¤ã\82¹ã\81\8cå\85¨ã\81¦ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81«å¯¾ã\81\97ã\81¦èªã\81¿æ\9b¸ã\81\8då\8f¯è\83½ã\81§ã\81ªã\81\84å ´å\90\88ã\80\81 å¤\9aã\81\8fã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®å\8b\95ä½\9cã\81\8cã\81\8aã\81\8bã\81\97ã\81\8fã\81ªã\82\8bã\81 ã\82\8dã\81\86ã\80\82
.SH 関連項目
\fBchown\fP(1), \fBmknod\fP(1), \fBfull\fP(4)
.SH この文書について
ptmx, pts \- 擬似端末のマスタとスレーブ
.SH 説明
ファイル \fI/dev/ptmx\fP は、メジャーナンバー (major number) 5、 マイナーナンバー (minor number) 2
-ã\82\92æ\8c\81ã\81¤ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83»ファイルであり、 通常、モードは 0666 で、所有者.グループは root.root である。 このファイルは、擬似端末
+ã\82\92æ\8c\81ã\81¤ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ファイルであり、 通常、モードは 0666 で、所有者.グループは root.root である。 このファイルは、擬似端末
(pseudoterminal) のマスタとスレーブの ペアを作成するために使用される。
.PP
プロセスが \fI/dev/ptmx\fP をオープンすると、そのプロセスには 擬似端末マスタ (pseudoterminal master; PTM)
-へのファイル・ ディスクリプタが返され、 \fI/dev/pts\fP ディレクトリに擬似端末スレーブ (pseudoterminal slave; PTS)
-ã\83\87ã\83\90ã\82¤ã\82¹ã\81\8cä½\9cæ\88\90ã\81\95ã\82\8cã\82\8bã\80\82 \fI/dev/ptmx\fP ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81¦å¾\97ã\82\89ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は それぞれ独立の PTM であり、対応する PTS
-ã\82\92å\90\84ã\80\85æ\8c\81ã\81¤ã\80\82 PTS ã\81®ã\83\91ã\82¹å\90\8dã\81¯ã\80\81PTM ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を \fBptsname\fP(3) に渡すと知ることができる。
+へのファイル ディスクリプターが返され、 \fI/dev/pts\fP ディレクトリに擬似端末スレーブ (pseudoterminal slave; PTS)
+ã\83\87ã\83\90ã\82¤ã\82¹ã\81\8cä½\9cæ\88\90ã\81\95ã\82\8cã\82\8bã\80\82 \fI/dev/ptmx\fP ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81¦å¾\97ã\82\89ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は それぞれ独立の PTM であり、対応する PTS
+ã\82\92å\90\84ã\80\85æ\8c\81ã\81¤ã\80\82 PTS ã\81®ã\83\91ã\82¹å\90\8dã\81¯ã\80\81PTM ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を \fBptsname\fP(3) に渡すと知ることができる。
.PP
-æ\93¬ä¼¼ç«¯æ\9c«ã\82¹ã\83¬ã\83¼ã\83\96ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8bå\89\8dã\81«ã\80\81å¿\85ã\81\9aã\80\81ã\83\9eã\82¹ã\82¿ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を 引き数として \fBgrantpt\fP(3) と
+æ\93¬ä¼¼ç«¯æ\9c«ã\82¹ã\83¬ã\83¼ã\83\96ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8bå\89\8dã\81«ã\80\81å¿\85ã\81\9aã\80\81ã\83\9eã\82¹ã\82¿ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を 引き数として \fBgrantpt\fP(3) と
\fBunlockpt\fP(3) を呼び出さなければならない。
.PP
擬似端末のマスタとスレーブの両方がオープンされた後は、スレーブは、 プロセスに対して、実端末 (real terminal)
-と全く同じインタフェースを提供する。
+ã\81¨å\85¨ã\81\8få\90\8cã\81\98ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\80\82
.PP
-ã\82¹ã\83¬ã\83¼ã\83\96ã\81«æ\9b¸ã\81\8bã\82\8cã\81\9fã\83\87ã\83¼ã\82¿ã\81¯ã\83\9eã\82¹ã\82¿ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿に対する入力として扱われ、 マスタに書かれたデータはスレーブに対する入力として扱われる。
+ã\82¹ã\83¬ã\83¼ã\83\96ã\81«æ\9b¸ã\81\8bã\82\8cã\81\9fã\83\87ã\83¼ã\82¿ã\81¯ã\83\9eã\82¹ã\82¿ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼に対する入力として扱われ、 マスタに書かれたデータはスレーブに対する入力として扱われる。
.PP
実例をあげると、擬似端末は \fBxterm\fP(1) のような端末エミュレータを実装するのに使用されている。
端末エミュレータでは、擬似端末のマスタから読み込まれたデータは、 アプリケーションにとって実端末のデータと全く同じもののように見える。 また、
-\fBsshd\fP(8) ã\81®ã\82\88ã\81\86ã\81ªã\83ªã\83¢ã\83¼ã\83\88ã\83»ã\83ã\82°ã\82¤ã\83³ç\94¨ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®å®\9fè£\85ã\81§ã\81¯ã\80\81 æ\93¬ä¼¼ç«¯æ\9c«ã\83\9eã\82¹ã\82¿ã\81\8bã\82\89èªã\81¿è¾¼ã\81¾ã\82\8cã\81\9fã\83\87ã\83¼ã\82¿ã\81¯ã\80\81ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82\92çµ\8cç\94±ã\81\97ã\81¦ã\80\81
-端æ\9c«ã\82\84端æ\9c«ã\82¨ã\83\9fã\83¥ã\83¬ã\83¼ã\82¿ã\81«æ\8e¥ç¶\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 ã\81«é\80\81ä¿¡ã\81\95ã\82\8cã\82\8bã\80\82
+\fBsshd\fP(8) のようなリモートログイン用のプログラムの実装では、 擬似端末マスタから読み込まれたデータは、ネットワークを経由して、
+端末や端末エミュレータに接続されているクライアントプログラムに送信される。
.PP
擬似端末は、 (\fBsu\fP(1) や \fBpasswd\fP(1) のような) 通常はパイプからの入力を拒否するプログラムに、
入力を送信するためにも使用できる。
にマウントされるはずの \fIdevpts\fP ファイルシステムを通して実現されている、
.LP
この UNIX 98 スキームが導入される前は、マスタ擬似端末は \fI/dev/ptyp0\fP, ... 、スレーブ擬似端末は
-\fI/dev/ttyp0\fP, ... ã\81¨å\91¼ã\81°ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81ã\81\82ã\82\89ã\81\8bã\81\98ã\82\81ã\81\9fã\81\8fã\81\95ã\82\93ã\81®ã\83\87ã\83\90ã\82¤ã\82¹ã\83»ã\83\8eã\83¼ã\83\89ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\81¦ ã\81\8aã\81\8få¿\85è¦\81ã\81\8cã\81\82ã\81£ã\81\9fã\80\82
+\fI/dev/ttyp0\fP, ... と呼ばれており、あらかじめたくさんのデバイスノードを割り当てて おく必要があった。
.SH 関連項目
\fBgetpt\fP(3), \fBgrantpt\fP(3), \fBptsname\fP(3), \fBunlockpt\fP(3), \fBpty\fP(7)
.SH この文書について
.sp
\fBint ioctl(\fP\fIfd\fP\fB, RND\fP\fIrequest\fP\fB, \fP\fIparam\fP\fB);\fP
.SH 説明
-(Linux 1.3.30 から提供されている) \fI/dev/random\fP 、 \fI/dev/urandom\fP キャラクタスペシャルファイルは
-ã\82«ã\83¼ã\83\8dã\83«ä¹±æ\95°ã\82¸ã\82§ã\83\8dã\83¬ã\83¼ã\82¿ã\81¸ã\81®ã\82¤ã\83³ã\82¿フェースを提供する。 \fI/dev/random\fP ファイルはメジャーデバイス番号 1 マイナーデバイス番号 8
+(Linux 1.3.30 ã\81\8bã\82\89æ\8f\90ä¾\9bã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b) \fI/dev/random\fP ã\80\81 \fI/dev/urandom\fP ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\82¹ã\83\9aã\82·ã\83£ã\83«ã\83\95ã\82¡ã\82¤ã\83«ã\81¯
+ã\82«ã\83¼ã\83\8dã\83«ä¹±æ\95°ã\82¸ã\82§ã\83\8dã\83¬ã\83¼ã\82¿ã\83¼ã\81¸ã\81®ã\82¤ã\83³ã\82¿ã\83¼フェースを提供する。 \fI/dev/random\fP ファイルはメジャーデバイス番号 1 マイナーデバイス番号 8
である。 \fI/dev/urandom\fP はメジャーデバイス番号 1 マイナーデバイス番号 9 である。
.LP
-ä¹±æ\95°ã\82¸ã\82§ã\83\8dã\83¬ã\83¼ã\82¿ã\81¯ã\83\87ã\83\90ã\82¤ã\82¹ã\83\89ã\83©ã\82¤ã\83\90ã\82\84ã\81\9dã\81®ä»\96ã\81®æº\90ã\81\8bã\82\89ã\81®ç\92°å¢\83ã\83\8eã\82¤ã\82ºã\82\92 ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»プールへ集める。
-ã\81¾ã\81\9fã\80\81ã\82¸ã\82§ã\83\8dã\83¬ã\83¼ã\82¿ã\81¯ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\83\97ã\83¼ã\83«å\86\85ã\81®ã\83\8eã\82¤ã\82ºã\81®ã\83\93ã\83\83ã\83\88æ\95°ã\81®æ\8e¨å®\9aå\80¤ã\82\92 ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»プールから乱数が生成される。
+ä¹±æ\95°ã\82¸ã\82§ã\83\8dã\83¬ã\83¼ã\82¿ã\83¼ã\81¯ã\83\87ã\83\90ã\82¤ã\82¹ã\83\89ã\83©ã\82¤ã\83\90ã\82\84ã\81\9dã\81®ä»\96ã\81®æº\90ã\81\8bã\82\89ã\81®ç\92°å¢\83ã\83\8eã\82¤ã\82ºã\82\92 ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼プールへ集める。
+ã\81¾ã\81\9fã\80\81ã\82¸ã\82§ã\83\8dã\83¬ã\83¼ã\82¿ã\83¼ã\81¯ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83\97ã\83¼ã\83«å\86\85ã\81®ã\83\8eã\82¤ã\82ºã\81®ã\83\93ã\83\83ã\83\88æ\95°ã\81®æ\8e¨å®\9aå\80¤ã\82\92 ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼プールから乱数が生成される。
.LP
-èªã\81¿è¾¼ã\81¿ã\81\8cè¡\8cã\82\8fã\82\8cã\82\8bã\81¨ã\80\81 \fI/dev/random\fP ã\83\87ã\83\90ã\82¤ã\82¹ã\81¯ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\83\97ã\83¼ã\83«ã\81®ã\83\8eã\82¤ã\82ºã\83\93ã\83\83ã\83\88ã\81®æ\95°ã\81®æ\8e¨å®\9aå\80¤ã\81®ã\81\86ã\81¡ã\80\81 ã\83©ã\83³ã\83\80ã\83 ã\83\90ã\82¤ã\83\88ã\81®ã\81¿ã\82\92è¿\94ã\81\99ã\80\82
+読み込みが行われると、 \fI/dev/random\fP デバイスはエントロピープールのノイズビットの数の推定値のうち、 ランダムバイトのみを返す。
\fI/dev/random\fP はワンタイムパッド (one\-time pad) や鍵の生成のような
-é\9d\9e常ã\81«é«\98ã\81\84å\93\81質ã\82\92æ\8c\81ã\81£ã\81\9fç\84¡ä½\9cç\82ºæ\80§ã\81\8cå¿\85è¦\81ã\81«ã\81ªã\82\8bç\94¨é\80\94ã\81«å\90\91ã\81\84ã\81¦ã\81\84ã\82\8bã\81 ã\82\8dã\81\86ã\80\82 ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\83\97ã\83¼ã\83«ã\81\8c空ã\81®æ\99\82ã\81¯ã\80\81\fI/dev/random\fP ã\81\8bã\82\89ã\81®èªã\81¿å\87ºã\81\97ã\81¯ã\80\81
+非常に高い品質を持った無作為性が必要になる用途に向いているだろう。 エントロピープールが空の時は、\fI/dev/random\fP からの読み出しは、
更なる環境ノイズが得られるまで、ブロックされる。 \fBopen\fP(2) が \fI/dev/random\fP に対して \fBO_NONBLOCK\fP
フラグ付きで呼ばれると、 それ以降の \fBread\fP(2) は要求したバイト数のデータが利用可能になるまで停止しない。 その代わり、
利用可能なデータが返される。 利用可能なバイトが全くない場合、 \fBread\fP(2) は \-1 を返し、 \fIerrno\fP に \fBEAGAIN\fP
\fI/dev/urandom\fP をオープンする際には効果がない。 デバイス \fI/dev/urandom\fP に対して \fBread\fP(2)
を呼び出した際、 要求されたランダムバイトが生成されるまでシグナルは処理されない。
.LP
-\fI/dev/random\fP ã\82\84 \fI/dev/urandom\fP ã\81«æ\9b¸ã\81\8dè¾¼ã\81¿ã\82\92è¡\8cã\81\86ã\81¨ã\80\81 æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\81\9fã\83\87ã\83¼ã\82¿ã\81§ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\83\97ã\83¼ã\83«ã\81\8cæ\9b´æ\96°ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81
-ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\82«ã\82¦ã\83³ã\83\88ã\81\8cå¢\97ã\81\88ã\82\8bã\82\8fã\81\91ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81¤ã\81¾ã\82\8aã\80\81 \fI/dev/random\fP ã\81¨ \fI/dev/urandom\fP
+\fI/dev/random\fP や \fI/dev/urandom\fP に書き込みを行うと、 書き込まれたデータでエントロピープールが更新される。 しかし、
+エントロピーカウントが増えるわけではない。 つまり、 \fI/dev/random\fP と \fI/dev/urandom\fP
の両方のファイルから読み出される内容に影響があるが、 \fI/dev/random\fP からの読み出しが早くなるわけではないということだ。
.SS 使い方
\fI/dev/random\fP と \fI/dev/urandom\fP のどちらを使うべきか迷った場合、たいていは \fI/dev/urandom\fP
下記で推奨しているように再起動の前後で乱数種ファイルが保存される場合 (全ての主な Linux のディストリビューションは少なくとも 2000 年以降は
乱数種を保存するようになっている)、起動シーケンスにおいて乱数種が 再ロードされた直後から、その出力はローカルのルートアクセスができない
攻撃者に対して暗号的に安全なものとなり、ネットワーク暗号化のセッションキー として使うには完全に最適なものとなる。 \fI/dev/random\fP
-からの読み出しは停止 (block) する可能性があるので、ユーザは普通 このファイルを非停止 (nonblocking) モードで開こうとし
+ã\81\8bã\82\89ã\81®èªã\81¿å\87ºã\81\97ã\81¯å\81\9cæ¢ (block) ã\81\99ã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\81®ã\81§ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯æ\99®é\80\9a ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92é\9d\9eå\81\9cæ¢ (nonblocking) ã\83¢ã\83¼ã\83\89ã\81§é\96\8bã\81\93ã\81\86ã\81¨ã\81\97
(もしくはタイムアウトを指定して読み出しを実行し)、希望するレベルの エントロピーはすぐには利用できない場合には、何らかの通知を行うことだろう。
-ã\82«ã\83¼ã\83\8dã\83«ã\81®ä¹±æ\95°ã\82¸ã\82§ã\83\8dã\83¬ã\83¼ã\82¿ã\81¯ã\80\81æ\9a\97å\8f·ç\96\91似乱æ\95°ã\82¸ã\82§ã\83\8dã\83¬ã\83¼ã\82¿ (Cryptographic pseudo\-random number generator;
+ã\82«ã\83¼ã\83\8dã\83«ã\81®ä¹±æ\95°ã\82¸ã\82§ã\83\8dã\83¬ã\83¼ã\82¿ã\83¼ã\81¯ã\80\81æ\9a\97å\8f·ç\96\91似乱æ\95°ã\82¸ã\82§ã\83\8dã\83¬ã\83¼ã\82¿ã\83¼ (Cryptographic pseudo\-random number generator;
CPRNG) の種として使用できる 高品質な乱数種の材料を少し生成するために設計されている。 これは速度ではなく安全性を重視して設計されており、
-ランダムなデータを大量に生成するのには全くもって適していない。 ユーザは \fI/dev/urandom\fP (と \fI/dev/random\fP)
+ã\83©ã\83³ã\83\80ã\83 ã\81ªã\83\87ã\83¼ã\82¿ã\82\92大é\87\8fã\81«ç\94\9fæ\88\90ã\81\99ã\82\8bã\81®ã\81«ã\81¯å\85¨ã\81\8fã\82\82ã\81£ã\81¦é\81©ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\80\82 ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ \fI/dev/urandom\fP (ã\81¨ \fI/dev/random\fP)
から読み出す乱数種の材料の量をできるだけ節約すべきである。 このデバイスから不必要に大量のデータを読み出すと、このデバイスを使う
-他のユーザにマイナスの影響を与えてしまうだろう。
+ä»\96ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81«ã\83\9eã\82¤ã\83\8aã\82¹ã\81®å½±é\9f¿ã\82\92ä¸\8eã\81\88ã\81¦ã\81\97ã\81¾ã\81\86ã\81 ã\82\8dã\81\86ã\80\82
暗号鍵を生成するのに必要な乱数種の材料の量は、鍵の実効サイズと同じである。 例えば、3072 ビットの RSA および Diffie\-Hellman
の秘密鍵の実効サイズは 128 ビット (この秘密鍵を破るには 2^128 回の操作が必要ということ) であり、 そのため鍵生成器が
chown root:root /dev/random /dev/urandom
.fi
-ã\82ªã\83\9aã\83¬ã\83¼ã\82¿ã\81®æ\93\8dä½\9cã\81ªã\81\97ã\81« Linux ã\82·ã\82¹ã\83\86ã\83 ã\81\8cèµ·å\8b\95ã\81\97ã\81\9fç\9b´å¾\8cã\81¯ã\80\81 ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\83\97ã\83¼ã\83«ã\81¯æ\84\8få¤\96æ\80§ã\81®ä¹\8fã\81\97ã\81\84å\9d\87ä¸\80ã\81ªç\8a¶æ\85\8bã\81«ã\81\82ã\82\8bã\81 ã\82\8dã\81\86ã\80\82
-ã\81\93ã\82\8cã\81«ã\82\88ã\82\8aã\80\81ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\83\97ã\83¼ã\83«ã\81®å®\9fé\9a\9bã\81®ã\83\8eã\82¤ã\82ºé\87\8fã\81¯è©\95価å\80¤ã\82\88ã\82\8aå°\91ã\81ªã\81\8fã\81ªã\82\8bã\80\82 ã\81\93ã\81®å\8a¹æ\9e\9cã\82\92æ\89\93ã\81¡æ¶\88ã\81\99ã\81\9fã\82\81ã\81«ã\80\81ã\82·ã\83£ã\83\83ã\83\88ã\83\80ã\82¦ã\83³ã\81\8bã\82\89 (次ã\81®) èµ·å\8b\95æ\99\82ã\81¾ã\81§æ\8c\81ã\81¡è¶\8aã\81\97ã\81\9f
-ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\83\97ã\83¼ã\83«ã\81®æ\83\85å ±ã\81\8cå\8a©ã\81\91ã\81«ã\81ªã\82\8bã\80\82 ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»プールを持ち越すためには、 Linux システムの起動時に実行される適切なスクリプトに、
+オペレータの操作なしに Linux システムが起動した直後は、 エントロピープールは意外性の乏しい均一な状態にあるだろう。
+これにより、エントロピープールの実際のノイズ量は評価値より少なくなる。 この効果を打ち消すために、シャットダウンから (次の) 起動時まで持ち越した
+ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83\97ã\83¼ã\83«ã\81®æ\83\85å ±ã\81\8cå\8a©ã\81\91ã\81«ã\81ªã\82\8bã\80\82 ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼プールを持ち越すためには、 Linux システムの起動時に実行される適切なスクリプトに、
以下の行を追加すればよい:
.nf
echo "Initializing random number generator..."
random_seed=/var/run/random\-seed
# 乱数種を今回のスタートアップから次回のスタートアップまで持ち越す。
- # ã\83ã\83¼ã\83\89ã\82\92è¡\8cã\81\84ã\80\81ã\81\9dã\81®å¾\8cã\80\81å\85¨ã\81¦ã\81®ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\83\97ã\83¼ã\83«ã\82\92ä¿\9då\98ã\81\99ã\82\8bã\80\82
+ # ロードを行い、その後、全てのエントロピープールを保存する。
if [ \-f $random_seed ]; then
cat $random_seed >/dev/urandom
else
.nf
# 乱数種を今回のシャットダウンから次回のスタートアップまで持ち越す。
- # å\85¨ã\81¦ã\81®ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\83\97ã\83¼ã\83«ã\82\92ä¿\9då\98ã\81\99ã\82\8bã\80\82
+ # 全てのエントロピープールを保存する。
echo "Saving random seed..."
random_seed=/var/run/random\-seed
touch $random_seed
[ \-r $poolfile ] && bytes=\`cat $poolfile\` || bytes=512
dd if=/dev/urandom of=$random_seed count=1 bs=$bytes
.fi
-.SS "/proc インタフェース"
+.SS "/proc ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹"
ディレクトリ \fI/proc/sys/kernel/random\fP にあるファイル (2.3.16 から存在する) は、 \fI/dev/random\fP
-デバイスへのその他のインタフェースを提供する。
+ã\83\87ã\83\90ã\82¤ã\82¹ã\81¸ã\81®ã\81\9dã\81®ä»\96ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\80\82
.LP
読み込み専用のファイル \fIentropy_avail\fP は使用可能なエントロピーを表す。 通常、これは 4096 (ビット)
-ã\81«ã\81ªã\82\8aã\80\81ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\83\97ã\83¼ã\83«ã\81\8cæº\80æ\9d¯ã\81®ç\8a¶æ\85\8bã\81§ã\81\82ã\82\8bã\80\82
+になり、エントロピープールが満杯の状態である。
.LP
-ã\83\95ã\82¡ã\82¤ã\83« \fIpoolsize\fP ã\81¯ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\83\97ã\83¼ã\83«ã\81®ã\82µã\82¤ã\82ºã\82\92表ã\81\99ã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ\84\8få\91³ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81«ã\82\88ã\82\8aç\95°ã\81ªã\82\8bã\80\82
+ファイル \fIpoolsize\fP はエントロピープールのサイズを表す。 このファイルの意味はカーネルバージョンにより異なる。
.RS
.TP 12
Linux 2.4:
-ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\83\97ã\83¼ã\83«ã\81®ã\82µã\82¤ã\82ºã\82\92ã\80\8cã\83\90ã\82¤ã\83\88ã\80\8då\8d\98ä½\8dã\81§è¦\8få®\9aã\81\99ã\82\8bã\80\82 é\80\9a常ã\80\81ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\80¤ã\81¯ 512 ã\81«ã\81ªã\82\8bã\81\8cã\80\81æ\9b¸ã\81\8dè¾¼ã\81¿å\8f¯è\83½ã\81§ã\81\82ã\82\8aã\80\81
+このファイルはエントロピープールのサイズを「バイト」単位で規定する。 通常、このファイルの値は 512 になるが、書き込み可能であり、
アルゴリズムで利用可能な任意の値に変更できる。 選択可能な値は 32, 64, 128, 256, 512, 1024, 2048 である。
.TP
Linux 2.6:
-ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯èªã\81¿å\87ºã\81\97å°\82ç\94¨ã\81§ã\81\82ã\82\8aã\80\81 ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\83\97ã\83¼ã\83«ã\81®ã\82µã\82¤ã\82ºã\82\92ã\80\8cã\83\93ã\83\83ã\83\88ã\80\8då\8d\98ä½\8dã\81§è¦\8få®\9aã\81\99ã\82\8bã\80\82 å\80¤ã\81¯ 4096 ã\81§ã\81\82ã\82\8bã\80\82
+このファイルは読み出し専用であり、 エントロピープールのサイズを「ビット」単位で規定する。 値は 4096 である。
.RE
.LP
ファイル \fIread_wakeup_threshold\fP は \fI/dev/random\fP
.LP
読み込み専用のファイル \fIuuid\fP と \fIboot_id\fP は 6fd5a44b\-35f4\-4ad4\-a9b9\-6b9be13e1fe9 のような
ランダムな文字列を保持している。 前者は読み込みの度に新たに生成され、 後者は 1 度だけ生成される。
-.SS "ioctl(2) インタフェース"
+.SS "ioctl(2) ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹"
以下の \fBioctl\fP(2) 要求が \fI/dev/random\fP や \fI/dev/urandom\fP
-ã\81«æ\8e¥ç¶\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81«å¯¾ã\81\97ã\81¦å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 å®\9fè¡\8cã\81\95ã\82\8cã\81\9fã\81\99ã\81¹ã\81¦ã\81®è¦\81æ±\82ã\81¯ã\80\81 \fI/dev/random\fP ã\81¨ \fI/dev/urandom\fP
-に影響を与える入力エントロピー・プールとやり取りを行う。 \fBRNDGETENTCNT\fP 以外のすべての要求には \fBCAP_SYS_ADMIN\fP
-ケーパビリティが必要である。
+ã\81«æ\8e¥ç¶\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 å®\9fè¡\8cã\81\95ã\82\8cã\81\9fã\81\99ã\81¹ã\81¦ã\81®è¦\81æ±\82ã\81¯ã\80\81 \fI/dev/random\fP ã\81¨
+\fI/dev/urandom\fP に影響を与える入力エントロピープールとやり取りを行う。 \fBRNDGETENTCNT\fP 以外のすべての要求には
+\fBCAP_SYS_ADMIN\fP ケーパビリティが必要である。
.TP
\fBRNDGETENTCNT\fP
-å\85¥å\8a\9bã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\83\97ã\83¼ã\83«ã\81®ã\82«ã\82¦ã\83³ã\83\88ã\82\92å\8f\96å¾\97ã\81\99ã\82\8bã\80\82 å\8f\96å¾\97ã\81\95ã\82\8cã\82\8bå\86\85容ã\81¯ proc ã\81® \fIentropy_avail\fP ã\83\95ã\82¡ã\82¤ã\83«ã\81¨å\90\8cã\81\98ã\81§ã\81\82ã\82\8bã\80\82
+入力エントロピープールのカウントを取得する。 取得される内容は proc の \fIentropy_avail\fP ファイルと同じである。
結果は引き数が指す整数 (int) に格納される。
.TP
\fBRNDADDTOENTCNT\fP
-å\85¥å\8a\9bã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\83\97ã\83¼ã\83«ã\81®ã\82«ã\82¦ã\83³ã\83\88ã\82\92å¼\95ã\81\8dæ\95°ã\81\8cæ\8c\87ã\81\99å\80¤ã\81 ã\81\91å\8a ç®\97ã\81¾ã\81\9fã\81¯æ¸\9bç®\97ã\81\99ã\82\8bã\80\82
+入力エントロピープールのカウントを引き数が指す値だけ加算または減算する。
.TP
\fBRNDGETPOOL\fP
Linux 2.6.9 で削除された。
.TP
\fBRNDADDENTROPY\fP
-å\85¥å\8a\9bã\83\97ã\83¼ã\83«ã\81«è¿½å\8a ã\81®ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\82\92追å\8a ã\81\97ã\80\81ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\82«ã\82¦ã\83³ã\83\88ã\82\92å¢\97ã\82\84ã\81\99ã\80\82 ã\81\93ã\81®è¦\81æ±\82ã\81¯ \fI/dev/random\fP ã\82\84 \fI/dev/urandom\fP
+入力プールに追加のエントロピーを追加し、エントロピーカウントを増やす。 この要求は \fI/dev/random\fP や \fI/dev/urandom\fP
への書き込みとは異なる。 \fI/dev/random\fP や \fI/dev/urandom\fP への書き込みでは、 何らかのデータが追加されるだけで、
-ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\82«ã\82¦ã\83³ã\83\88ã\81¯å¢\97ã\82\84ã\81\95ã\82\8cã\81ªã\81\84ã\80\82 以ä¸\8bã\81®æ§\8bé\80 ä½\93ã\81\8c使ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82
+エントロピーカウントは増やされない。 以下の構造体が使用される。
.IP
.nf
struct rand_pool_info {
};
.fi
.IP
-\fIentropy_count\fP ã\81¯ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\82«ã\82¦ã\83³ã\83\88ã\81«å\8a ç®\97 (ã\81¾ã\81\9fã\81¯æ¸\9bç®\97) ã\81\99ã\82\8bå\80¤ã\81§ã\81\82ã\82\8bã\80\82 \fIbuf\fP ã\81¯å¤§ã\81\8dã\81\95ã\81\8c \fIbuf_size\fP
-ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\81§ã\80\81ã\81\93ã\81®å\86\85容ã\81\8cã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»プールに追加される。
+\fIentropy_count\fP はエントロピーカウントに加算 (または減算) する値である。 \fIbuf\fP は大きさが \fIbuf_size\fP
+ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81§ã\80\81ã\81\93ã\81®å\86\85容ã\81\8cã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼プールに追加される。
.TP
\fBRNDZAPENTCNT\fP, \fBRNDCLEARPOOL\fP
-ã\81\99ã\81¹ã\81¦ã\81®ã\83\97ã\83¼ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ã\83\94ã\83¼ã\83»ã\82«ã\82¦ã\83³ã\83\88ã\82\92 0 ã\81«ã\81\97ã\80\81ä½\95ã\82\89ã\81\8bã\81®ã\82·ã\82¹ã\83\86ã\83 ã\83\87ã\83¼ã\82¿ (ç\8f¾å\9c¨ã\81®æ\99\82å\88»ã\81ªã\81©) ã\82\92ã\83\97ã\83¼ã\83«ã\81«è¿½å\8a ã\81\99ã\82\8bã\80\82
+すべてのプールのエントロピーカウントを 0 にし、何らかのシステムデータ (現在の時刻など) をプールに追加する。
.SH ファイル
/dev/random
.br
.sp
\fBint ioctl(\fP\fIfd\fP\fB, RTC_\fP\fIrequest\fP\fB, \fP\fIparam\fP\fB);\fP
.SH 説明
-これはリアルタイムクロック (RTC) のドライバのインタフェースである。
+ã\81\93ã\82\8cã\81¯ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\82¯ã\83ã\83\83ã\82¯ (RTC) ã\81®ã\83\89ã\83©ã\82¤ã\83\90ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81§ã\81\82ã\82\8bã\80\82
多くのコンピュータは、現在の「壁時計」時刻 ("wall clock" time) を記録する、 ハードウェアクロックを 1 個以上持っている。
これらは「リアルタイムクロック」(RTC) と呼ばれる。 これらの時計のうち 1 つは、通常は電池でバックアップして駆動されるので、
からの割り込みを受け取るまで停止 (block) される。 割り込みの後、プロセスは long 型整数を読み出すことができる。
この整数の最下位バイトは発生した割り込みの種別を コード化したビットマスクであり、 残りの 3 バイトは最後の \fBread\fP(2)
以降に発生した割り込みの回数である。
-.SS "ioctl(2) インタフェース"
-以下の \fBioctl\fP(2) リクエストが RTC デバイスの接続された ファイルディスクリプタに対して定義されている:
+.SS "ioctl(2) ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹"
+以ä¸\8bã\81® \fBioctl\fP(2) ã\83ªã\82¯ã\82¨ã\82¹ã\83\88ã\81\8c RTC ã\83\87ã\83\90ã\82¤ã\82¹ã\81®æ\8e¥ç¶\9aã\81\95ã\82\8cã\81\9f ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b:
.TP
\fBRTC_RD_TIME\fP
RTC の時刻を以下の構造体で返す:
.in
.IP
この構造体のフィールドは \fBgmtime\fP(3) で説明されている \fItm\fP 構造体のフィールドと同じ意味で同じ範囲である。
-この構造体へのポインタを \fBioctl\fP(2) の第 3 引き数として渡す。
+ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92 \fBioctl\fP(2) ã\81®ç¬¬ 3 å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦æ¸¡ã\81\99ã\80\82
.TP
\fBRTC_SET_TIME\fP
\fBioctl\fP(2) の第 3 引き数が指す \fIrtc_time\fP 構造体の値を RTC 時刻に設定する。 RTC
\fBRTC_ALM_READ\fP, \fBRTC_ALM_SET\fP
アラームがサポートされている RTC に対して、 アラーム時刻の読み込みと設定を行う。 アラーム割り込みは、 \fBRTC_AIE_ON\fP,
\fBRTC_AIE_OFF\fP を使って、これとは別に有効または無効にしなければならない。 \fBioctl\fP(2) の第 3 引き数は、
-\fIrtc_time\fP 構造体へのポインタでなければならない。 この構造体の \fItm_sec\fP, \fItm_min\fP, \fItm_hour\fP
+\fIrtc_time\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81® \fItm_sec\fP, \fItm_min\fP, \fItm_hour\fP
フィールドのみが使用される。
.TP
\fBRTC_IRQP_READ\fP, \fBRTC_IRQP_SET\fP
\fI/proc/sys/dev/rtc/max\-user\-freq\fP に周期が上記の値に指定されている場合に、 周期的な割り込みを有効にできる。
.TP
\fBRTC_EPOCH_READ\fP, \fBRTC_EPOCH_SET\fP
-å¤\9aã\81\8fã\81® RTC ã\81¯å¹´ã\82\92 8 ã\83\93ã\83\83ã\83\88ã\81®ã\83¬ã\82¸ã\82¹ã\82¿ã\81«ã\82³ã\83¼ã\83\89å\8c\96ã\81\99ã\82\8bã\80\82 å¹´ã\81¯ 8 ã\83\93ã\83\83ã\83\88ã\81®ã\83\90ã\82¤ã\83\8aã\83ªæ\95°ã\81¾ã\81\9fã\81¯ BCD æ\95°ã\81«å¤\89æ\8f\9bã\81\95ã\82\8cã\82\8bã\80\82 ã\81©ã\81¡ã\82\89ã\81®å ´å\90\88ã\81§ã\82\82ã\80\81ã\81\9dã\81®æ\95°å\80¤ã\81¯
-RTC の紀元から相対値に変換される。 多くのシステムでは RTC の紀元は 1900 に初期化されるが、 Alpha と MIPS では、RTC
-レジスタの年の値に応じて、 1952, 1980, 2000 の何れかに初期化される。 これらの操作でそれぞれ RTC の紀元の読み込みと設定が可能な
-RTC もある。 \fBioctl\fP(2) の第 3 引き数は、それぞれ \fIunsigned long\ *\fP と \fIunsigned long\fP
-である。 返される値 (または指定される値) は紀元である。 RTC の紀元を設定する場合、プロセスは特権 (つまり \fBCAP_SYS_TIME\fP
-ケーパビリティ) を持たなければならない。
+å¤\9aã\81\8fã\81® RTC ã\81¯å¹´ã\82\92 8 ã\83\93ã\83\83ã\83\88ã\81®ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81«ã\82³ã\83¼ã\83\89å\8c\96ã\81\99ã\82\8bã\80\82 å¹´ã\81¯ 8 ã\83\93ã\83\83ã\83\88ã\81®ã\83\90ã\82¤ã\83\8aã\83ªæ\95°ã\81¾ã\81\9fã\81¯ BCD æ\95°ã\81«å¤\89æ\8f\9bã\81\95ã\82\8cã\82\8bã\80\82
+どちらの場合でも、その数値は RTC の紀元から相対値に変換される。 多くのシステムでは RTC の紀元は 1900 に初期化されるが、 Alpha と
+MIPS では、RTC レジスターの年の値に応じて、 1952, 1980, 2000 の何れかに初期化される。 これらの操作でそれぞれ RTC
+の紀元の読み込みと設定が可能な RTC もある。 \fBioctl\fP(2) の第 3 引き数は、それぞれ \fIunsigned long\ *\fP と
+\fIunsigned long\fP である。 返される値 (または指定される値) は紀元である。 RTC の紀元を設定する場合、プロセスは特権 (つまり
+\fBCAP_SYS_TIME\fP ケーパビリティ) を持たなければならない。
.TP
\fBRTC_WKALM_RD\fP, \fBRTC_WKALM_SET\fP
-RTC の中にはより強力なアラームインタフェースをサポートするものもあり、 これらの ioctl を使うことで、以下のような構造体で RTC
+RTC ã\81®ä¸ã\81«ã\81¯ã\82\88ã\82\8aå¼·å\8a\9bã\81ªã\82¢ã\83©ã\83¼ã\83 ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92ã\82µã\83\9dã\83¼ã\83\88ã\81\99ã\82\8bã\82\82ã\81®ã\82\82ã\81\82ã\82\8aã\80\81 ã\81\93ã\82\8cã\82\89ã\81® ioctl ã\82\92使ã\81\86ã\81\93ã\81¨ã\81§ã\80\81以ä¸\8bã\81®ã\82\88ã\81\86ã\81ªæ§\8bé\80 ä½\93ã\81§ RTC
のアラーム時刻を (それぞれ) 読み書きできる:
.PP
.RS
\fBRTC_AIE_ON\fP と \fBRTC_AIE_OFF\fP は使用されない。 \fIpending\fP フラグは \fBRTC_WKALM_RD\fP
で使用され、処理待ちの割り込みを表示する (EFI ファームウェアで管理される RTC と通信するとき以外、 Linux ではほとんど役に立たない)。
\fItime\fP フィールドは \fBRTC_ALM_READ\fP や \fBRTC_ALM_SET\fP の場合と同じように使用されるが、 \fItm_mday\fP,
-\fItm_mon\fP, \fItm_year\fP フィールドも有効であるという点が異なる。 この構造体へのポインタを \fBioctl\fP(2) の第 3
+\fItm_mon\fP, \fItm_year\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\82\82æ\9c\89å\8a¹ã\81§ã\81\82ã\82\8bã\81¨ã\81\84ã\81\86ç\82¹ã\81\8cç\95°ã\81ªã\82\8bã\80\82 ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92 \fBioctl\fP(2) ã\81®ç¬¬ 3
引き数として渡さなければならない。
.SH ファイル
\fI/dev/rtc\fP, \fI/dev/rtc0\fP, \fI/dev/rtc1\fP など: RTC 特殊キャラクターデバイスファイル
RTC の紀元は、システムクロックでのみ使用される POSIX の紀元とは何の関係もない。
-RTC の紀元と年のレジスタに基づく年が 1970 未満である場合、 100 年後、つまり 2000 から 2069 であると仮定される。
+RTC ã\81®ç´\80å\85\83ã\81¨å¹´ã\81®ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81«å\9fºã\81¥ã\81\8få¹´ã\81\8c 1970 æ\9cªæº\80ã\81§ã\81\82ã\82\8bå ´å\90\88ã\80\81 100 å¹´å¾\8cã\80\81ã\81¤ã\81¾ã\82\8a 2000 ã\81\8bã\82\89 2069 ã\81§ã\81\82ã\82\8bã\81¨ä»®å®\9aã\81\95ã\82\8cã\82\8bã\80\82
RTC の中にはアラームフィールドに 「ワイルドカード」の値をサポートするものもあり、 毎時 15
分や各月の初日など、定期的なアラームを行うシナリオをサポートする。 このような使い方は移植性がない。
-移植性の高いユーザ空間コードでは、単独のアラーム割り込みだけを想定し、 割り込みの受信後にアラームを無効または再初期化すべきである。
+移植性の高いユーザー空間コードでは、単独のアラーム割り込みだけを想定し、 割り込みの受信後にアラームを無効または再初期化すべきである。
以下の機能をサポートする RTC もある。 1 秒の分数ではなく、1 秒の倍数を周期とする周期的な割り込み。 複数のアラーム。
-プログラム可能な出力クロックシグナル。 不揮発性 (nonvolatile) メモリ。 この API で現在提供していない、その他のハードウェア機能。
+ã\83\97ã\83ã\82°ã\83©ã\83 å\8f¯è\83½ã\81ªå\87ºå\8a\9bã\82¯ã\83ã\83\83ã\82¯ã\82·ã\82°ã\83\8aã\83«ã\80\82 ä¸\8dæ\8f®ç\99ºæ\80§ (nonvolatile) ã\83¡ã\83¢ã\83ªã\83¼ã\80\82 ã\81\93ã\81® API ã\81§ç\8f¾å\9c¨æ\8f\90ä¾\9bã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\80\81ã\81\9dã\81®ä»\96ã\81®ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢æ©\9fè\83½ã\80\82
.SH 関連項目
\fBdate\fP(1), \fBadjtimex\fP(2), \fBgettimeofday\fP(2), \fBsettimeofday\fP(2),
\fBstime\fP(2), \fBtime\fP(2), \fBgmtime\fP(3), \fBtime\fP(7), \fBhwclock\fP(8)
\fI/dev/sdb3\fP はメジャーナンバー 8 マイナーナンバー 19 を持ち、システムの二つ目の SCSI ドライブの三番目の DOS "基本"
パーティションを参照する。
-ç\8f¾å\9c¨ã\81¯ã\80\81ã\83\96ã\83ã\83\83ã\82¯ã\83\87ã\83\90ã\82¤ã\82¹ã\81 ã\81\91ã\81\8cæ\8f\90ä¾\9bã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82ã\83ã\83¼ã\83»ã\83\87ã\83\90ã\82¤ã\82¹ (raw device) ã\81¯ã\81¾ã\81 å®\9fè£\85ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82
+現在は、ブロックデバイスだけが提供されている。ローデバイス (raw device) はまだ実装されていない。
.SH 説明
次の \fIioctl\fP が提供されている:
.TP
\fBHDIO_GETGEO\fP
.RS
-次のような構造体を用いて BIOS のディスクパラメータを返す:
+次ã\81®ã\82\88ã\81\86ã\81ªæ§\8bé\80 ä½\93ã\82\92ç\94¨ã\81\84ã\81¦ BIOS ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92è¿\94ã\81\99:
.in +4n
.nf
.fi
.in
-ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8c \fBioctl\fP(2) ã\81¸ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿として渡される。
+ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8c \fBioctl\fP(2) ã\81¸ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼として渡される。
-このパラメータに入れられて返される情報は、 \fIDOS によって理解されるような\fP ドライブのジオメトリである。
+ã\81\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81«å\85¥ã\82\8cã\82\89ã\82\8cã\81¦è¿\94ã\81\95ã\82\8cã\82\8bæ\83\85å ±ã\81¯ã\80\81 \fIDOS ã\81«ã\82\88ã\81£ã\81¦ç\90\86解ã\81\95ã\82\8cã\82\8bã\82\88ã\81\86ã\81ª\fP ã\83\89ã\83©ã\82¤ã\83\96ã\81®ã\82¸ã\82ªã\83¡ã\83\88ã\83ªã\81§ã\81\82ã\82\8bã\80\82
このジオメトリは、ドライブの物理的なジオメトリ \fIではない。\fP この情報はドライブのパーティションテーブルを作成する時に用いられる、 また、
\fBfdisk\fP(1), \fBefdisk\fP(1), \fBlilo\fP(1) の適切な操作に必要である。
もし、ジオメトリの情報が得られなければ、それぞれの値全てにゼロが入れ られて返される。
.RE
.TP
\fBBLKGETSIZE\fP
-ã\82»ã\82¯ã\82¿ã\81®æ\95°ã\81§è¡¨ã\81\97ã\81\9fã\83\87ã\83\90ã\82¤ã\82¹ã\81®ã\82µã\82¤ã\82ºã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82 \fBioctl\fP(2) ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81¯ã\80\81 \fIlong\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿でなければならない。
+ã\82»ã\82¯ã\82¿ã\81®æ\95°ã\81§è¡¨ã\81\97ã\81\9fã\83\87ã\83\90ã\82¤ã\82¹ã\81®ã\82µã\82¤ã\82ºã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82 \fBioctl\fP(2) ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\80\81 \fIlong\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼でなければならない。
.TP
\fBBLKRRPART\fP
-強制的に、SCSI ディスクのパーティションテーブルの再読み込みを行う。 パラメータは必要ない。
+å¼·å\88¶ç\9a\84ã\81«ã\80\81SCSI ã\83\87ã\82£ã\82¹ã\82¯ã\81®ã\83\91ã\83¼ã\83\86ã\82£ã\82·ã\83§ã\83³ã\83\86ã\83¼ã\83\96ã\83«ã\81®å\86\8dèªã\81¿è¾¼ã\81¿ã\82\92è¡\8cã\81\86ã\80\82 ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯å¿\85è¦\81ã\81ªã\81\84ã\80\82
SCSI の \fBioctl\fP(2) 操作も同様にサポートされる。 \fBioctl\fP(2) の
-ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81\8cå¿\85è¦\81ã\81§ã\80\81ã\81\9dã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿が NULL の場合は、
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8cå¿\85è¦\81ã\81§ã\80\81ã\81\9dã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼が NULL の場合は、
\fBioctl\fP(2) はエラー \fBEINVAL\fP で失敗する。
.SH ファイル
/dev/sd[a\-h]: ドライブ全体
.hy 0
\fB注意\fP: この時代遅れのドライバはカーネル 2.6.26 で削除された。
-\fBsk98lin\fP は Marvell と SysKonnect のネットワークアダプタカードの ギガビットイーサネットドライバである。 これは
-SysKonnect SK\-98xx/SK\-95xx 互換のギガビットイーサネットアダプタと Yukon 互換のチップセットをサポートしている。
+\fBsk98lin\fP ã\81¯ Marvell ã\81¨ SysKonnect ã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81® ã\82®ã\82¬ã\83\93ã\83\83ã\83\88ã\82¤ã\83¼ã\82µã\83\8dã\83\83ã\83\88ã\83\89ã\83©ã\82¤ã\83\90ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯
+SysKonnect SK\-98xx/SK\-95xx äº\92æ\8f\9bã\81®ã\82®ã\82¬ã\83\93ã\83\83ã\83\88ã\82¤ã\83¼ã\82µã\83\8dã\83\83ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81¨ Yukon äº\92æ\8f\9bã\81®ã\83\81ã\83\83ã\83\97ã\82»ã\83\83ã\83\88ã\82\92ã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
-insmod ã\82\92使ã\81£ã\81¦ã\83\89ã\83©ã\82¤ã\83\90ã\82\92ã\83ã\83¼ã\83\89ã\81\99ã\82\8bé\9a\9bã\80\81 ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¢ã\83\80ã\83\97ã\82¿ã\82«ã\83¼ã\83\89ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\82\92 ã\82³ã\83³ã\83\9eã\81§å\8cºå\88\87ã\82\89ã\82\8cã\81\9fã\82³ã\83\9eã\83³ã\83\89ã\81®å\88\97ã\81¨ã\81\97ã\81¦æ\8c\87å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 2
-つのネットワークアダプタが取り付けられている時に、 例えば、1 つ目のアダプタのポート A の自動ネゴシエーションは ON にするが、 2
-つ目のアダプタのポート A は OFF にする場合は、 以下のように入力すればよい:
+insmod ã\82\92使ã\81£ã\81¦ã\83\89ã\83©ã\82¤ã\83\90ã\82\92ã\83ã\83¼ã\83\89ã\81\99ã\82\8bé\9a\9bã\80\81 ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92 ã\82³ã\83³ã\83\9eã\81§å\8cºå\88\87ã\82\89ã\82\8cã\81\9fã\82³ã\83\9eã\83³ã\83\89ã\81®å\88\97ã\81¨ã\81\97ã\81¦æ\8c\87å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
+2 つのネットワークアダプターが取り付けられている時に、 例えば、1 つ目のアダプターのポート A の自動ネゴシエーションは ON にするが、 2
+ã\81¤ç\9b®ã\81®ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81®ã\83\9dã\83¼ã\83\88 A ã\81¯ OFF ã\81«ã\81\99ã\82\8bå ´å\90\88ã\81¯ã\80\81 以ä¸\8bã\81®ã\82\88ã\81\86ã\81«å\85¥å\8a\9bã\81\99ã\82\8cã\81°ã\82\88ã\81\84:
insmod sk98lin.o AutoNeg_A=On,Off
-\fBsk98lin\fP ã\81\8c 1 ã\81¤ä»¥ä¸\8aã\81®ã\82¢ã\83\80ã\83\97ã\82¿ã\82«ã\83¼ã\83\89ã\81«é\96¢é\80£ã\81¥ã\81\91ã\82\89ã\82\8cã\81¦ã\81\84ã\81¦ã\80\81 ã\81\8bã\81¤ \fI/proc\fP ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81\8cã\82·ã\82¹ã\83\86ã\83 ã\81«ã\83\9eã\82¦ã\83³ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81
-取り付けられているネットワークアダプタカードの全てのポートについて、 (ポート単位に) 専用の統計ファイルがフォルダ
-\fI/proc/net/sk98lin\fP に作られる。 これらのファイルは \fIeth[x]\fP という名前であり、 \fIx\fP
-はインタフェースの番号である。 この番号はシステムによってポート毎に割り当てられたものである。
+\fBsk98lin\fP ã\81\8c 1 ã\81¤ä»¥ä¸\8aã\81®ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81«é\96¢é\80£ã\81¥ã\81\91ã\82\89ã\82\8cã\81¦ã\81\84ã\81¦ã\80\81 ã\81\8bã\81¤ \fI/proc\fP
+ファイルシステムがシステムにマウントされている場合、 取り付けられているネットワークアダプターカードの全てのポートについて、 (ポート単位に)
+専用の統計ファイルがフォルダ \fI/proc/net/sk98lin\fP に作られる。 これらのファイルは \fIeth[x]\fP という名前であり、
+\fIx\fP はインターフェースの番号である。 この番号はシステムによってポート毎に割り当てられたものである。
-ロードが完了すると、 \fBifconfig\fP(8) コマンドを使って、各 \fIeth[x]\fP インタフェースに希望する IP
-アドレスを割り当てることができる。 これによりアダプタがイーサネットに接続され、 コンソールに状態メッセージが表示される。 このメッセージでは、
-"ethx: network connection up using port y" の後に 設定されたり検出された接続パラメータが表示される。
+ã\83ã\83¼ã\83\89ã\81\8cå®\8cäº\86ã\81\99ã\82\8bã\81¨ã\80\81 \fBifconfig\fP(8) ã\82³ã\83\9eã\83³ã\83\89ã\82\92使ã\81£ã\81¦ã\80\81å\90\84 \fIeth[x]\fP ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«å¸\8cæ\9c\9bã\81\99ã\82\8b IP
+ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\82\8cã\81«ã\82\88ã\82\8aã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81\8cã\82¤ã\83¼ã\82µã\83\8dã\83\83ã\83\88ã\81«æ\8e¥ç¶\9aã\81\95ã\82\8cã\80\81 ã\82³ã\83³ã\82½ã\83¼ã\83«ã\81«ç\8a¶æ\85\8bã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81\8c表示ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81§ã\81¯ã\80\81
+"ethx: network connection up using port y" ã\81®å¾\8cã\81« è¨å®\9aã\81\95ã\82\8cã\81\9fã\82\8aæ¤\9cå\87ºã\81\95ã\82\8cã\81\9fæ\8e¥ç¶\9aã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8c表示ã\81\95ã\82\8cã\82\8bã\80\82
\fBsk98lin\fP はラージフレーム (ジャンボフレームとも呼ばれる) もサポートする。 ジャンボフレームを使うと、大量のデータを転送する際に、
-ã\82¹ã\83«ã\83¼ã\83\97ã\83\83ã\83\88ã\82\92大å¹\85ã\81«å\90\91ä¸\8aã\81\95ã\81\9bã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\83©ã\83¼ã\82¸ã\83\95ã\83¬ã\83¼ã\83 ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81«ã\81¯ã\80\81 ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81® MTU (maximum transfer unit,
-最大転送単位) サイズを 大きな値に設定すればよい。 デフォルトの MTU サイズは 1500 であり、 最大で 9000 (バイト)
-まで設定することができる。 MTU サイズを設定するのは、 インタフェースに IP アドレスを割り当てるときにもできるし、後から
+ã\82¹ã\83«ã\83¼ã\83\97ã\83\83ã\83\88ã\82\92大å¹\85ã\81«å\90\91ä¸\8aã\81\95ã\81\9bã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\83©ã\83¼ã\82¸ã\83\95ã\83¬ã\83¼ã\83 ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81«ã\81¯ã\80\81 ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81® MTU (maximum transfer
+unit, 最大転送単位) サイズを 大きな値に設定すればよい。 デフォルトの MTU サイズは 1500 であり、 最大で 9000 (バイト)
+ã\81¾ã\81§è¨å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 MTU ã\82µã\82¤ã\82ºã\82\92è¨å®\9aã\81\99ã\82\8bã\81®ã\81¯ã\80\81 ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81« IP ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81¨ã\81\8dã\81«ã\82\82ã\81§ã\81\8dã\82\8bã\81\97ã\80\81å¾\8cã\81\8bã\82\89
\fBifconfig\fP(8) コマンドに mtu 引き数を指定することで設定することもできる。 例えば、eth0 に IP アドレスとラージフレーム
MTU サイズを 割り当てたい場合、以下の 2 つのコマンドを実行すればよい:
ラージフレームを使用できるのは、ネットワーク環境全体で ラージフレームの使用が認められている場合のみである点に注意すること。
つまり、イーサネットで使われている全てのスイッチでも ラージフレームがサポートされていなければならない。
多くのスイッチがラージフレームをサポートしてはいるが、 設定を行う必要がある。 多くの場合、デフォルトの設定では標準フレーム (1500 バイトの
-MTU サイズ) だけしかサポートしない。 ネットワーク内のスイッチに加え、 使用される全てのネットワークアダプタでも
-ジャンボフレームが有効になっていなければならない。 アダプタがラージフレームを受け取るように設定されていない場合、
-アダプタはそのフレームを単純に捨ててしまう。
+MTU ã\82µã\82¤ã\82º) ã\81 ã\81\91ã\81\97ã\81\8bã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81ªã\81\84ã\80\82 ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯å\86\85ã\81®ã\82¹ã\82¤ã\83\83ã\83\81ã\81«å\8a ã\81\88ã\80\81 使ç\94¨ã\81\95ã\82\8cã\82\8bå\85¨ã\81¦ã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81§ã\82\82
+ã\82¸ã\83£ã\83³ã\83\9cã\83\95ã\83¬ã\83¼ã\83 ã\81\8cæ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81\8cã\83©ã\83¼ã\82¸ã\83\95ã\83¬ã\83¼ã\83 ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bã\82\88ã\81\86ã\81«è¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\80\81
+ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81¯ã\81\9dã\81®ã\83\95ã\83¬ã\83¼ã\83 ã\82\92å\8d\98ç´\94ã\81«æ\8d¨ã\81¦ã\81¦ã\81\97ã\81¾ã\81\86ã\80\82
標準のイーサネットフレームサイズに戻すのは、再び \fBifconfig\fP(8) コマンドを使えばよい:
.br
Marvell/SysKonnect は、これらのオープンソースモジュールに対するサポートは
行っておらず、これらを使った場合に生じるいかなる失敗や問題についても 責任を負わない点に注意すること。
-.SS パラメータ
+.SS パラメーター
.TP
\fBSpeed_A=\fP\fIi,j,...\fP
-ã\81\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81¯ã\82¢ã\83\80ã\83\97ã\82¿カードのポート A がサポートするリンク速度を 設定するのに使われる。これは Yukon copper
-アダプタでのみ有効である。 使用可能な値は以下の通り: \fI10\fP, \fI100\fP, \fI1000\fP, \fIAuto\fP。 デフォルトは \fIAuto\fP
+ã\81\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼カードのポート A がサポートするリンク速度を 設定するのに使われる。これは Yukon copper
+ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81§ã\81®ã\81¿æ\9c\89å\8a¹ã\81§ã\81\82ã\82\8bã\80\82 使ç\94¨å\8f¯è\83½ã\81ªå\80¤ã\81¯ä»¥ä¸\8bã\81®é\80\9aã\82\8a: \fI10\fP, \fI100\fP, \fI1000\fP, \fIAuto\fPã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81¯ \fIAuto\fP
である。 通常、リンク速度はリンクの確立時に 2 つのポートの間で自動設定される。 これに失敗した場合、ポートはこの引き数で指定された設定になる。
.TP
\fBSpeed_B=\fP\fIi,j,...\fP
-ã\81\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81¯ã\82¢ã\83\80ã\83\97ã\82¿カードのポート B がサポートするリンク速度を 設定するのに使われる。これは Yukon copper
-アダプタでのみ有効である。 使用可能な値は以下の通り: \fI10\fP, \fI100\fP, \fI1000\fP, \fIAuto\fP。 デフォルトは \fIAuto\fP
+ã\81\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼カードのポート B がサポートするリンク速度を 設定するのに使われる。これは Yukon copper
+ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81§ã\81®ã\81¿æ\9c\89å\8a¹ã\81§ã\81\82ã\82\8bã\80\82 使ç\94¨å\8f¯è\83½ã\81ªå\80¤ã\81¯ä»¥ä¸\8bã\81®é\80\9aã\82\8a: \fI10\fP, \fI100\fP, \fI1000\fP, \fIAuto\fPã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81¯ \fIAuto\fP
である。 通常、リンク速度はリンクの確立時に 2 つのポートの間で自動設定される。 これに失敗した場合、ポートはこの引き数で指定された設定になる。
.TP
\fBAutoNeg_A=\fP\fIi,j,...\fP
-アダプタカードのポート A の自動設定 (autonegotiation) の使用を 有効または無効にする。使用可能な値は以下の通り: \fIOn\fP,
+ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81®ã\83\9dã\83¼ã\83\88 A ã\81®è\87ªå\8b\95è¨å®\9a (autonegotiation) ã\81®ä½¿ç\94¨ã\82\92 æ\9c\89å\8a¹ã\81¾ã\81\9fã\81¯ç\84¡å\8a¹ã\81«ã\81\99ã\82\8bã\80\82使ç\94¨å\8f¯è\83½ã\81ªå\80¤ã\81¯ä»¥ä¸\8bã\81®é\80\9aã\82\8a: \fIOn\fP,
\fIOff\fP, \fISense\fP。 デフォルトは \fIOn\fP である。 \fISense\fP モードはリンクパートナが自動設定をサポートしているか否かを
自動的に検知する。
.TP
\fBAutoNeg_B=\fP\fIi,j,...\fP
-アダプタカードのポート B の自動設定 (autonegotiation) の使用を 有効または無効にする。使用可能な値は以下の通り: \fIOn\fP,
+ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81®ã\83\9dã\83¼ã\83\88 B ã\81®è\87ªå\8b\95è¨å®\9a (autonegotiation) ã\81®ä½¿ç\94¨ã\82\92 æ\9c\89å\8a¹ã\81¾ã\81\9fã\81¯ç\84¡å\8a¹ã\81«ã\81\99ã\82\8bã\80\82使ç\94¨å\8f¯è\83½ã\81ªå\80¤ã\81¯ä»¥ä¸\8bã\81®é\80\9aã\82\8a: \fIOn\fP,
\fIOff\fP, \fISense\fP。 デフォルトは \fIOn\fP である。 \fISense\fP モードはリンクパートナが自動設定をサポートしているか否かを
自動的に検知する。
.TP
\fBDupCap_A=\fP\fIi,j,...\fP
-ã\81\93ã\81®å¼\95ã\81\8dæ\95°ã\81¯ã\82¢ã\83\80ã\83\97ã\82¿ã\82«ã\83¼ã\83\89ã\81®ã\83\9dã\83¼ã\83\88 A ã\81§ä½¿ã\81\86äº\8cé\87\8dé\80\9aä¿¡ (duplex) ã\83¢ã\83¼ã\83\89ã\82\92示ã\81\99ã\80\82 使ç\94¨å\8f¯è\83½ã\81ªå\80¤ã\81¯ä»¥ä¸\8bã\81®é\80\9aã\82\8a: \fIHalf\fP, \fIFull\fP,
-\fIBoth\fP。 デフォルトは \fIBoth\fP である。 この引き数はポート A の AutoNeg_A が \fISense\fP
+ã\81\93ã\81®å¼\95ã\81\8dæ\95°ã\81¯ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81®ã\83\9dã\83¼ã\83\88 A ã\81§ä½¿ã\81\86äº\8cé\87\8dé\80\9aä¿¡ (duplex) ã\83¢ã\83¼ã\83\89ã\82\92示ã\81\99ã\80\82 使ç\94¨å\8f¯è\83½ã\81ªå\80¤ã\81¯ä»¥ä¸\8bã\81®é\80\9aã\82\8a: \fIHalf\fP,
+\fIFull\fP, \fIBoth\fP。 デフォルトは \fIBoth\fP である。 この引き数はポート A の AutoNeg_A が \fISense\fP
に設定されていない場合にのみ有効である。 AutoNeg_A が \fIOn\fP の場合、DupCap_A の 3 つの値 (\fIHalf\fP,
\fIFull\fP, \fIBoth\fP) のうちどれでも指定することができる。 AutoNeg_A が \fIOff\fP の場合、DupCap_A の値
\fIFull\fP と \fIHalf\fP のみを指定することができる。 この DupCap_A 引き数は、リンクパートナが全ての二重通信の組み合わせを
サポートしていない場合に役に立つ。
.TP
\fBDupCap_B=\fP\fIi,j,...\fP
-この引き数はアダプタカードのポート B で使う二重通信モードを示す。 使用可能な値は以下の通り: \fIHalf\fP, \fIFull\fP, \fIBoth\fP。
+ã\81\93ã\81®å¼\95ã\81\8dæ\95°ã\81¯ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81®ã\83\9dã\83¼ã\83\88 B ã\81§ä½¿ã\81\86äº\8cé\87\8dé\80\9aä¿¡ã\83¢ã\83¼ã\83\89ã\82\92示ã\81\99ã\80\82 使ç\94¨å\8f¯è\83½ã\81ªå\80¤ã\81¯ä»¥ä¸\8bã\81®é\80\9aã\82\8a: \fIHalf\fP, \fIFull\fP, \fIBoth\fPã\80\82
デフォルトは \fIBoth\fP である。 この引き数はポート B の AutoNeg_B が \fISense\fP に設定されていない場合にのみ有効である。
AutoNeg_B が \fIOn\fP の場合、DupCap_B の 3 つの値 (\fIHalf\fP, \fIFull\fP, \fIBoth\fP)
のうちどれでも指定することができる。 AutoNeg_B が \fIOff\fP の場合、DupCap_B の値 \fIFull\fP と \fIHalf\fP
= None
リンクパートナのどちらも PAUSE フレームを送ることはできない。
-このパラメータは AutoNeg_A が \fIOff\fP の場合には無視される点に注意すること。
+ã\81\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ AutoNeg_A ã\81\8c \fIOff\fP ã\81®å ´å\90\88ã\81«ã\81¯ç\84¡è¦\96ã\81\95ã\82\8cã\82\8bç\82¹ã\81«æ³¨æ\84\8fã\81\99ã\82\8bã\81\93ã\81¨ã\80\82
.TP
\fBFlowCtrl_B=\fP\fIi,j,...\fP
この引き数は自動設定時にポートが対向に伝える フロー制御機能を設定する。 使用可能な値は以下の通り: \fISym\fP, \fISymOrRem\fP,
リンクパートナのどちらも PAUSE フレームを送ることはできない。
.br
-このパラメータは AutoNeg_B が \fIOff\fP の場合には無視される点に注意すること。
+ã\81\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ AutoNeg_B ã\81\8c \fIOff\fP ã\81®å ´å\90\88ã\81«ã\81¯ç\84¡è¦\96ã\81\95ã\82\8cã\82\8bç\82¹ã\81«æ³¨æ\84\8fã\81\99ã\82\8bã\81\93ã\81¨ã\80\82
.TP
\fBRole_A=\fP\fIi,j,...\fP
-この引き数は 1000Base\-T アダプタカードでのみ有効である。 2 つの 1000Base\-T ポートが通信する場合、 片方が
+ã\81\93ã\81®å¼\95ã\81\8dæ\95°ã\81¯ 1000Base\-T ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81§ã\81®ã\81¿æ\9c\89å\8a¹ã\81§ã\81\82ã\82\8bã\80\82 2 ã\81¤ã\81® 1000Base\-T ã\83\9dã\83¼ã\83\88ã\81\8cé\80\9aä¿¡ã\81\99ã\82\8bå ´å\90\88ã\80\81 ç\89\87æ\96¹ã\81\8c
(タイミング情報を提供する) マスタの役割をしなければならず、 もう片方がスレーブにならなければならない。 使用可能な値は以下の通り: \fIAuto\fP,
\fIMaster\fP, \fISlave\fP。 デフォルトは \fIAuto\fP である。 通常、ポートの役割は 2
-つのポートでリンクを確立するときに自動設定される。 自動設定に失敗した場合、 アダプタカードのポート A はこの引き数で指定された設定になる。
+ã\81¤ã\81®ã\83\9dã\83¼ã\83\88ã\81§ã\83ªã\83³ã\82¯ã\82\92確ç«\8bã\81\99ã\82\8bã\81¨ã\81\8dã\81«è\87ªå\8b\95è¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82 è\87ªå\8b\95è¨å®\9aã\81«å¤±æ\95\97ã\81\97ã\81\9få ´å\90\88ã\80\81 ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81®ã\83\9dã\83¼ã\83\88 A ã\81¯ã\81\93ã\81®å¼\95ã\81\8dæ\95°ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fè¨å®\9aã\81«ã\81ªã\82\8bã\80\82
.TP
\fBRole_B=\fP\fIi,j,...\fP
-この引き数は 1000Base\-T アダプタカードでのみ有効である。 2 つの 1000Base\-T ポートが通信する場合、 片方が
+ã\81\93ã\81®å¼\95ã\81\8dæ\95°ã\81¯ 1000Base\-T ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81§ã\81®ã\81¿æ\9c\89å\8a¹ã\81§ã\81\82ã\82\8bã\80\82 2 ã\81¤ã\81® 1000Base\-T ã\83\9dã\83¼ã\83\88ã\81\8cé\80\9aä¿¡ã\81\99ã\82\8bå ´å\90\88ã\80\81 ç\89\87æ\96¹ã\81\8c
(タイミング情報を提供する) マスタの役割をしなければならず、 もう片方がスレーブにならなければならない。 使用可能な値は以下の通り: \fIAuto\fP,
\fIMaster\fP, \fISlave\fP。 デフォルトは \fIAuto\fP である。 通常、ポートの役割は 2
-つのポートでリンクを確立するときに自動設定される。 自動設定に失敗した場合、 アダプタカードのポート B はこの引き数で指定された設定になる。
+ã\81¤ã\81®ã\83\9dã\83¼ã\83\88ã\81§ã\83ªã\83³ã\82¯ã\82\92確ç«\8bã\81\99ã\82\8bã\81¨ã\81\8dã\81«è\87ªå\8b\95è¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82 è\87ªå\8b\95è¨å®\9aã\81«å¤±æ\95\97ã\81\97ã\81\9få ´å\90\88ã\80\81 ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81®ã\83\9dã\83¼ã\83\88 B ã\81¯ã\81\93ã\81®å¼\95ã\81\8dæ\95°ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fè¨å®\9aã\81«ã\81ªã\82\8bã\80\82
.TP
\fBConType=\fP\fIi,j,...\fP
-この引き数は、ポート毎に指定する、全部で 5 個の引き数の組み合わせを、 1 つの引き数にしたものである。 これによりアダプタカードの 2
+ã\81\93ã\81®å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\83\9dã\83¼ã\83\88æ¯\8eã\81«æ\8c\87å®\9aã\81\99ã\82\8bã\80\81å\85¨é\83¨ã\81§ 5 å\80\8bã\81®å¼\95ã\81\8dæ\95°ã\81®çµ\84ã\81¿å\90\88ã\82\8fã\81\9bã\82\92ã\80\81 1 ã\81¤ã\81®å¼\95ã\81\8dæ\95°ã\81«ã\81\97ã\81\9fã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\81«ã\82\88ã\82\8aã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81® 2
つのポートの設定を簡略化できる。 この変数のそれぞれの値は、 ポート引き数の最も意味のある組み合わせを反映したものである。
-使用可能な値とそれに対応するポート毎のパラメータの組み合わせは、 以下の通り:
+使ç\94¨å\8f¯è\83½ã\81ªå\80¤ã\81¨ã\81\9dã\82\8cã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83\9dã\83¼ã\83\88æ¯\8eã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®çµ\84ã\81¿å\90\88ã\82\8fã\81\9bã\81¯ã\80\81 以ä¸\8bã\81®é\80\9aã\82\8a:
.nf
ConType | DupCap AutoNeg FlowCtrl Role Speed
キューに入れられた割り込みがいつ処理されるかは、 以下で説明する \fIIntsPerSec\fP 引き数で決定される。 使用可能な調停モードは以下の通り:
\fINone\fP, \fIStatic\fP, \fIDynamic\fP。 デフォルトは \fINone\fP である。 それぞれのモードは以下の意味を持つ:
-\fINone\fP アダプタカードに対して割り込み調停を適用しない。 よって送信または受信割り込みは、
-アダプタカードの割り込み線に現れると直ぐに処理される。
+\fINone\fP ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81«å¯¾ã\81\97ã\81¦å\89²ã\82\8aè¾¼ã\81¿èª¿å\81\9cã\82\92é\81©ç\94¨ã\81\97ã\81ªã\81\84ã\80\82 ã\82\88ã\81£ã\81¦é\80\81ä¿¡ã\81¾ã\81\9fã\81¯å\8f\97ä¿¡å\89²ã\82\8aè¾¼ã\81¿ã\81¯ã\80\81
+ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81®å\89²ã\82\8aè¾¼ã\81¿ç·\9aã\81«ç\8f¾ã\82\8cã\82\8bã\81¨ç\9b´ã\81\90ã\81«å\87¦ç\90\86ã\81\95ã\82\8cã\82\8bã\80\82
.br
-\fIStatic\fP アダプタカードに対して割り込み調停が適用される。 全ての送信または受信割り込みは、調停間隔が完全に終わるまで キューに入れられる。
+\fIStatic\fP ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81«å¯¾ã\81\97ã\81¦å\89²ã\82\8aè¾¼ã\81¿èª¿å\81\9cã\81\8cé\81©ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 å\85¨ã\81¦ã\81®é\80\81ä¿¡ã\81¾ã\81\9fã\81¯å\8f\97ä¿¡å\89²ã\82\8aè¾¼ã\81¿ã\81¯ã\80\81調å\81\9cé\96\93é\9a\94ã\81\8cå®\8cå\85¨ã\81«çµ\82ã\82\8fã\82\8bã\81¾ã\81§ ã\82ã\83¥ã\83¼ã\81«å\85¥ã\82\8cã\82\89ã\82\8cã\82\8bã\80\82
この調停間隔が終わると、キューに入れられた全ての割り込みは、 1個の大きな塊として遅延なく処理される。 \fIStatic\fP
-という用語は、あるインタフェースに現在どれだけの ネットワーク負荷がかかっているかに関わらず、 割り込み調停が常に有効になることを表している。
+ã\81¨ã\81\84ã\81\86ç\94¨èª\9eã\81¯ã\80\81ã\81\82ã\82\8bã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«ç\8f¾å\9c¨ã\81©ã\82\8cã\81 ã\81\91ã\81® ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯è² è\8d·ã\81\8cã\81\8bã\81\8bã\81£ã\81¦ã\81\84ã\82\8bã\81\8bã\81«é\96¢ã\82\8fã\82\89ã\81\9aã\80\81 å\89²ã\82\8aè¾¼ã\81¿èª¿å\81\9cã\81\8c常ã\81«æ\9c\89å\8a¹ã\81«ã\81ªã\82\8bã\81\93ã\81¨ã\82\92表ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
さらに、調停間隔の時間は固定で、ドライバが動作している間は変化しない。
.br
-\fIDynamic\fP システムの負荷に応じて、アダプタカードに対して割り込み調停が適用される。 ドライバがシステムの負荷が高すぎると検出した場合、
+\fIDynamic\fP ã\82·ã\82¹ã\83\86ã\83 ã\81®è² è\8d·ã\81«å¿\9cã\81\98ã\81¦ã\80\81ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81«å¯¾ã\81\97ã\81¦å\89²ã\82\8aè¾¼ã\81¿èª¿å\81\9cã\81\8cé\81©ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 ã\83\89ã\83©ã\82¤ã\83\90ã\81\8cã\82·ã\82¹ã\83\86ã\83 ã\81®è² è\8d·ã\81\8cé«\98ã\81\99ã\81\8eã\82\8bã\81¨æ¤\9cå\87ºã\81\97ã\81\9få ´å\90\88ã\80\81
割り込み調停を有効にすることにより、 過剰なネットワーク負荷からシステムを保護しようとする。 \(emその後に\(emCPU 利用率が再び下がった場合
(またはネットワーク負荷が極わずかになった場合)、 割り込み調停は自動的に無効にされる。
-ドライバが扱わなければならないインタフェースのうち ネットワーク負荷が高いものが 1 つ以上あり、 \(emその結果\(emCPU
+ã\83\89ã\83©ã\82¤ã\83\90ã\81\8cæ\89±ã\82\8fã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®ã\81\86ã\81¡ ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯è² è\8d·ã\81\8cé«\98ã\81\84ã\82\82ã\81®ã\81\8c 1 ã\81¤ä»¥ä¸\8aã\81\82ã\82\8aã\80\81 \(emã\81\9dã\81®çµ\90æ\9e\9c\(emCPU
利用率が高くなっている場合、 割り込み調停を使うべきである。 ネットワーク負荷が高い状況で調停が適用されると、 遅いコンピュータでは CPU 負荷が
20\-30% 削減されるだろう。
一方で、とても短い調停時間を選ぶと、割り込み調停を使う意味がなくなってしまう。
.TP
\fBPrefPort=\fP\fIi,j,...\fP
-ã\81\93ã\81®å¼\95ã\81\8dæ\95°ã\81¯ (2 ã\83\9dã\83¼ã\83\88ã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¢ã\83\80ã\83\97ã\82¿ã\81§) å\84ªå\85\88 (preferred) ã\83\9dã\83¼ã\83\88ã\82\92 A ã\81¾ã\81\9fã\81¯ B ã\81®ã\81©ã\81¡ã\82\89ã\81«ã\81\99ã\82\8bã\81\8bã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81®ã\81«ä½¿ã\82\8fã\82\8cã\82\8bã\80\82
-優先ポートとは、A と B の両方のポートが完全に機能していると検知された場合に 使用されるポートである。 使用可能な値は以下の通り: \fIA\fP または
-\fIB\fP。 デフォルトは \fIA\fP である。
+ã\81\93ã\81®å¼\95ã\81\8dæ\95°ã\81¯ (2 ã\83\9dã\83¼ã\83\88ã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81§) å\84ªå\85\88 (preferred) ã\83\9dã\83¼ã\83\88ã\82\92 A ã\81¾ã\81\9fã\81¯ B
+のどちらにするかを指定するのに使われる。 優先ポートとは、A と B の両方のポートが完全に機能していると検知された場合に 使用されるポートである。
+使用可能な値は以下の通り: \fIA\fP または \fIB\fP。 デフォルトは \fIA\fP である。
.TP
\fBRlmtMode=\fP\fIi,j,...\fP
RLMT はポートの状態を監視する。 アクティブなポートのリンクが落ちた場合、 RLMT は即時に待機しているリンクに切り替える。 少なくとも 1
使用可能な値は以下の通り: \fICheckLinkState\fP, \fICheckLocalPort\fP, \fICheckSeg\fP, \fIDualNet\fP。
デフォルトは \fICheckLinkState\fP である。 各モードは以下のような意味を持つ。
-\fICheckLinkState\fP リンク状態のチェックのみ: RLMT は、各ポートについてアダプタハードウェアが報告するリンク状態を使い、
+\fICheckLinkState\fP ã\83ªã\83³ã\82¯ç\8a¶æ\85\8bã\81®ã\83\81ã\82§ã\83\83ã\82¯ã\81®ã\81¿: RLMT ã\81¯ã\80\81å\90\84ã\83\9dã\83¼ã\83\88ã\81«ã\81¤ã\81\84ã\81¦ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\81\8cå ±å\91\8aã\81\99ã\82\8bã\83ªã\83³ã\82¯ç\8a¶æ\85\8bã\82\92使ã\81\84ã\80\81
そのポートが全てのネットワークトラフィックを送受信するのに使用可能かを 決定する。
.br
-\fICheckLocalPort\fP このモードでは、RLMT はアダプタカードの 2 つのポートの間で 定期的にパケットを交換することにより、 2
+\fICheckLocalPort\fP ã\81\93ã\81®ã\83¢ã\83¼ã\83\89ã\81§ã\81¯ã\80\81RLMT ã\81¯ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81® 2 ã\81¤ã\81®ã\83\9dã\83¼ã\83\88ã\81®é\96\93ã\81§ å®\9aæ\9c\9fç\9a\84ã\81«ã\83\91ã\82±ã\83\83ã\83\88ã\82\92交æ\8f\9bã\81\99ã\82\8bã\81\93ã\81¨ã\81«ã\82\88ã\82\8aã\80\81 2
つのポートの間のネットワーク経路を監視する。 このモードでは 2 つのポートが互いに「見える」ような ネットワーク設定が必要である
-(つまり、ポート間にルータがあってはならない)。
+(ã\81¤ã\81¾ã\82\8aã\80\81ã\83\9dã\83¼ã\83\88é\96\93ã\81«ã\83«ã\83¼ã\82¿ã\83¼ã\81\8cã\81\82ã\81£ã\81¦ã\81¯ã\81ªã\82\89ã\81ªã\81\84)ã\80\82
.br
\fICheckSeg\fP ローカルポートとセグメントをチェックする。 このモードは CheckLocalPort モードと同じ機能を提供し、
protocol) を 使うように設定されたギガビットイーサネットスイッチが 設置されている場合にのみ使用できる。
.br
-\fIDualNet\fP このモードでは、ポート A と B が別々のデバイスとして使用される。 2 ポートのアダプタを持っている場合、ポート A を
+\fIDualNet\fP ã\81\93ã\81®ã\83¢ã\83¼ã\83\89ã\81§ã\81¯ã\80\81ã\83\9dã\83¼ã\83\88 A ã\81¨ B ã\81\8cå\88¥ã\80\85ã\81®ã\83\87ã\83\90ã\82¤ã\82¹ã\81¨ã\81\97ã\81¦ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 2 ã\83\9dã\83¼ã\83\88ã\81®ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82\92æ\8c\81ã\81£ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81ã\83\9dã\83¼ã\83\88 A ã\82\92
\fIeth[x]\fP に、ポート B を \fIeth[x+1]\fP に設定することができる。 2 つのポートは別々の IP
アドレスを付けて独立に使用することができる。 優先ポートの設定は使用されない。 RLMT は無効にされる。
RLMT モード \fICheckLocalPort\fP と \fICheckLinkState\fP は、1
-つのアダプタ上のポート間でネットワーク経路があるような設定で 動作するように設計されている。 さらに、このモードはアダプタ同士が直結
+つのアダプター上のポート間でネットワーク経路があるような設定で 動作するように設計されている。 さらに、このモードはアダプター同士が直結
(back\-to\-back) で 接続されている状態で動作するようには設計されていない。
.SH ファイル
.TP
\fI/proc/net/sk98lin/eth[x]\fP
.br
-ã\82¢ã\83\80ã\83\97ã\82¿ã\82«ã\83¼ã\83\89ã\81®ç\89¹å®\9aã\81®ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81®çµ±è¨\88ã\83\95ã\82¡ã\82¤ã\83«ã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81¯ã\80\81ã\82¢ã\83\80ã\83\97ã\82¿カードの一般的な情報と、
-全ての送信・受信カウンタの詳細な一覧が含まれる。
+ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82«ã\83¼ã\83\89ã\81®ç\89¹å®\9aã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®çµ±è¨\88ã\83\95ã\82¡ã\82¤ã\83«ã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81¯ã\80\81ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼カードの一般的な情報と、
+å\85¨ã\81¦ã\81®é\80\81ä¿¡ã\83»å\8f\97ä¿¡ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81®è©³ç´°ã\81ªä¸\80覧ã\81\8cå\90«ã\81¾ã\82\8cã\82\8bã\80\82
.TP
\fI/usr/src/linux/Documentation/networking/sk98lin.txt\fP
.br
.PP
これらには対応するブロックデバイスは存在しない。
.PP
-ドライバは内部バッファを使い、その大きさは少なくともテープの 1 ブロックを保持できるように取られる。 2.1.121 以前のカーネルでは、
-バッファは連続する一つのブロックとして割り当てられる。この方法だと、 ブロックサイズの最大値はカーネルの割り当て可能な連続メモリブロックに
-制限される。この制限は 32 ビットアーキテクチャでは 128 kB、 64 ビットアーキテクチャでは 256 kB である。これ以降のカーネルでは、
-ドライバは必要に応じていくつかにわかれたバッファを割り当てる。 デフォルトでは 16 個までの部分に分割できる。すなわち
-ブロックサイズの最大値は非常に大きい (128 kB のブロック 16 個の 割り当てに成功すれば 2 MB となる)。
+ドライバは内部バッファーを使い、その大きさは少なくともテープの 1 ブロックを保持できるように取られる。 2.1.121 以前のカーネルでは、
+バッファーは連続する一つのブロックとして割り当てられる。この方法だと、 ブロックサイズの最大値はカーネルの割り当て可能な連続メモリーブロックに
+制限される。この制限は 32 ビットアーキテクチャーでは 128 kB、 64 ビットアーキテクチャーでは 256 kB
+である。これ以降のカーネルでは、 ドライバは必要に応じていくつかにわかれたバッファーを割り当てる。 デフォルトでは 16
+個までの部分に分割できる。すなわち ブロックサイズの最大値は非常に大きい (128 kB のブロック 16 個の 割り当てに成功すれば 2 MB
+となる)。
.PP
-ドライバの内部バッファのサイズはコンパイル時の定数で定義される。 これはカーネルの起動時オプションによって上書き可能である。
-ã\81\95ã\82\89ã\81«ã\83\89ã\83©ã\82¤ã\83\90ã\81¯å®\9fè¡\8cæ\99\82ã\81«ã\82\82ã\80\81å¿\85è¦\81ã\81«å¿\9cã\81\98ã\81¦ã\82\88ã\82\8a大ã\81\8dã\81ªä¸\80æ\99\82ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92 å\89²ã\82\8aå½\93ã\81¦ã\82\88ã\81\86ã\81¨ã\81\99ã\82\8bã\80\82ã\81\97ã\81\8bã\81\97å®\9fè¡\8cæ\99\82ã\81«å¤§ã\81\8dã\81ªé\80£ç¶\9aã\83¡ã\83¢ã\83ªブロックを
-割り当てようとすると失敗することがあるので、 2.1.121 以前のカーネルでは、動的なバッファ割り当てはあまりあてにしないほうが良い (これは
+ã\83\89ã\83©ã\82¤ã\83\90ã\81®å\86\85é\83¨ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82µã\82¤ã\82ºã\81¯ã\82³ã\83³ã\83\91ã\82¤ã\83«æ\99\82ã\81®å®\9aæ\95°ã\81§å®\9a義ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\81®èµ·å\8b\95æ\99\82ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81«ã\82\88ã\81£ã\81¦ä¸\8aæ\9b¸ã\81\8då\8f¯è\83½ã\81§ã\81\82ã\82\8bã\80\82
+ã\81\95ã\82\89ã\81«ã\83\89ã\83©ã\82¤ã\83\90ã\81¯å®\9fè¡\8cæ\99\82ã\81«ã\82\82ã\80\81å¿\85è¦\81ã\81«å¿\9cã\81\98ã\81¦ã\82\88ã\82\8a大ã\81\8dã\81ªä¸\80æ\99\82ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92 å\89²ã\82\8aå½\93ã\81¦ã\82\88ã\81\86ã\81¨ã\81\99ã\82\8bã\80\82ã\81\97ã\81\8bã\81\97å®\9fè¡\8cæ\99\82ã\81«å¤§ã\81\8dã\81ªé\80£ç¶\9aã\83¡ã\83¢ã\83ªã\83¼ブロックを
+割り当てようとすると失敗することがあるので、 2.1.121 以前のカーネルでは、動的なバッファー割り当てはあまりあてにしないほうが良い (これは
kerneld や kmod によるドライバのデマンドロードに関しても当てはまる)。
.PP
ドライバはドライブのメーカやモデルを特定してサポートするわけではない。 システムが起動すると、テープデバイスのオプションがドライブの
通常、システムのデフォルトのテープデバイスに対するハードリンク またはソフトリンクとして、デバイス \fI/dev/tape\fP が作成される。
.PP
カーネル 2.6.2 以降では、このドライバは sysfs ディレクトリ \fI/sys/class/scsi_tape\fP
-に、アタッチしたデバイスとそのデバイスに割当てたパラメータをエクスポートする。
+ã\81«ã\80\81ã\82¢ã\82¿ã\83\83ã\83\81ã\81\97ã\81\9fã\83\87ã\83\90ã\82¤ã\82¹ã\81¨ã\81\9dã\81®ã\83\87ã\83\90ã\82¤ã\82¹ã\81«å\89²å½\93ã\81¦ã\81\9fã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ã\82¨ã\82¯ã\82¹ã\83\9dã\83¼ã\83\88ã\81\99ã\82\8bã\80\82
.SS データ転送
このドライバは固定長ブロックモードと可変長ブロックモードの 両方をサポートしている (ドライブがサポートしていれば)。
固定長ブロックモードでは、ドライブは決まったサイズのブロックを (複数個) 書き込む。このブロックサイズは write
大きければ、ドライバはそのデータを返し、関数は実際のブロックサイズを返す。 ブロックサイズがバイト数よりも大きければ、要求された分のデータが
ブロックの先頭から読み込まれて返され、ブロックの残りは破棄される。
.PP
-å\9bºå®\9aé\95·ã\83\96ã\83ã\83\83ã\82¯ã\83¢ã\83¼ã\83\89ã\81§ã\81¯ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83ªã\83³ã\82°ã\81\8cæ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8cã\81° èªã\81¿è¾¼ã\81¿ã\83\90ã\82¤ã\83\88æ\95°ã\81¯ä»»æ\84\8fã\81®å¤§ã\81\8dã\81\95ã\81§ã\82\88ã\81\84ã\80\82ã\83\90ã\83\83ã\83\95ã\82¡リングが無効の場合は、
-テープのブロックサイズの整数倍でなければならない。 2.1.121 以前の カーネルでは、バッファリングが有効な場合には
-任意のバイト数の書き込みができる。その他の場合すべて (2.1.121 以前のカーネルでバッファが無効な場合と、新しいカーネルの場合)
+å\9bºå®\9aé\95·ã\83\96ã\83ã\83\83ã\82¯ã\83¢ã\83¼ã\83\89ã\81§ã\81¯ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\8cæ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8cã\81° èªã\81¿è¾¼ã\81¿ã\83\90ã\82¤ã\83\88æ\95°ã\81¯ä»»æ\84\8fã\81®å¤§ã\81\8dã\81\95ã\81§ã\82\88ã\81\84ã\80\82ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼リングが無効の場合は、
+ã\83\86ã\83¼ã\83\97ã\81®ã\83\96ã\83ã\83\83ã\82¯ã\82µã\82¤ã\82ºã\81®æ\95´æ\95°å\80\8dã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 2.1.121 以å\89\8dã\81® ã\82«ã\83¼ã\83\8dã\83«ã\81§ã\81¯ã\80\81ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\8cæ\9c\89å\8a¹ã\81ªå ´å\90\88ã\81«ã\81¯
+ä»»æ\84\8fã\81®ã\83\90ã\82¤ã\83\88æ\95°ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿ã\81\8cã\81§ã\81\8dã\82\8bã\80\82ã\81\9dã\81®ä»\96ã\81®å ´å\90\88ã\81\99ã\81¹ã\81¦ (2.1.121 以å\89\8dã\81®ã\82«ã\83¼ã\83\8dã\83«ã\81§ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cç\84¡å\8a¹ã\81ªå ´å\90\88ã\81¨ã\80\81æ\96°ã\81\97ã\81\84ã\82«ã\83¼ã\83\8dã\83«ã\81®å ´å\90\88)
では、書き込みバイト数はテープブロックサイズの整数倍でなければならない。
.PP
-2.6 ã\82«ã\83¼ã\83\8dã\83«ã\81§ã\81¯ã\80\81ã\81\93ã\81®ã\83\89ã\83©ã\82¤ã\83\90ã\81¯ã\83¦ã\83¼ã\82¶ã\83\90ã\83\83ã\83\95ã\82¡とデバイス間で、 データの直接転送 (direct transfer) を試みる。
-ã\81\93ã\82\8cã\81\8cä¸\8då\8f¯è\83½ã\81ªå ´å\90\88ã\81¯ã\80\81ã\83\89ã\83©ã\82¤ã\83\90ã\81®å\86\85é\83¨ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92ç\94¨ã\81\84ã\82\8bã\80\82 ç\9b´æ\8e¥è»¢é\80\81ã\81\8cã\81§ã\81\8dã\81ªã\81\84ç\90\86ç\94±ã\81¨ã\81\97ã\81¦ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\83\90ã\83\83ã\83\95ã\82¡のアラインメントが適切でない (デフォルトは
-512 ã\83\90ã\82¤ã\83\88ã\81 ã\81\8c HBA ã\83\89ã\83©ã\82¤ã\83\90ã\81«ã\82\88ã\81£ã\81¦å¤\89æ\9b´ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8b)ã\80\81 ã\83¦ã\83¼ã\82¶ã\83\90ã\83\83ã\83\95ã\82¡ã\81®ã\83\9aã\83¼ã\82¸ã\81\8c SCSI ã\82¢ã\83\80ã\83\97ã\82¿から見えない、
+2.6 ã\82«ã\83¼ã\83\8dã\83«ã\81§ã\81¯ã\80\81ã\81\93ã\81®ã\83\89ã\83©ã\82¤ã\83\90ã\81¯ã\83¦ã\83¼ã\82¶ã\83¼ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼とデバイス間で、 データの直接転送 (direct transfer) を試みる。
+ã\81\93ã\82\8cã\81\8cä¸\8då\8f¯è\83½ã\81ªå ´å\90\88ã\81¯ã\80\81ã\83\89ã\83©ã\82¤ã\83\90ã\81®å\86\85é\83¨ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92ç\94¨ã\81\84ã\82\8bã\80\82 ç\9b´æ\8e¥è»¢é\80\81ã\81\8cã\81§ã\81\8dã\81ªã\81\84ç\90\86ç\94±ã\81¨ã\81\97ã\81¦ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼のアラインメントが適切でない (デフォルトは
+512 ã\83\90ã\82¤ã\83\88ã\81 ã\81\8c HBA ã\83\89ã\83©ã\82¤ã\83\90ã\81«ã\82\88ã\81£ã\81¦å¤\89æ\9b´ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8b)ã\80\81 ã\83¦ã\83¼ã\82¶ã\83¼ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\9aã\83¼ã\82¸ã\81\8c SCSI ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼から見えない、
などが考えられる。
.PP
テープをクローズする直前のテープ操作命令が書き込みであれば、 ファイルマークが自動的にテープへ書き込まれる。
.PP
-読み込み時にファイルマークに出会うと、以下が実行される。 ファイルマークが見付かったときにバッファにデータが残っていると、
-バッファのデータが返される。次の読み込み操作は 0 バイトを返す。 その次の読み込みは次のファイルからのデータを返す。
+èªã\81¿è¾¼ã\81¿æ\99\82ã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\83\9eã\83¼ã\82¯ã\81«å\87ºä¼\9aã\81\86ã\81¨ã\80\81以ä¸\8bã\81\8cå®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\83\9eã\83¼ã\82¯ã\81\8cè¦\8bä»\98ã\81\8bã\81£ã\81\9fã\81¨ã\81\8dã\81«ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\83\87ã\83¼ã\82¿ã\81\8cæ®\8bã\81£ã\81¦ã\81\84ã\82\8bã\81¨ã\80\81
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\87ã\83¼ã\82¿ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82次ã\81®èªã\81¿è¾¼ã\81¿æ\93\8dä½\9cã\81¯ 0 ã\83\90ã\82¤ã\83\88ã\82\92è¿\94ã\81\99ã\80\82 ã\81\9dã\81®æ¬¡ã\81®èªã\81¿è¾¼ã\81¿ã\81¯æ¬¡ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89ã\81®ã\83\87ã\83¼ã\82¿ã\82\92è¿\94ã\81\99ã\80\82
記録データの末尾は、読み込み操作が二回続けて 0 バイトを返して来るかたちで通知される。三回目の読み込みはエラーを返す。
.SS ioctl
ドライバは 3 つの \fBioctl\fP(2) 要求をサポートしている。 \fBst\fP ドライバによって認識されなかった要求は \fBSCSI\fP
\fImt_count\fP 個のセットマーク分の前方スペース。
.TP
\fBMTLOAD\fP
-SCSI ロードコマンドを実行する。 HP オートローダに限って利用できる。 \fImt_count\fP が定数
-\fBMT_ST_HPLOADER_OFFSET\fP とある数値の和である場合、 その数値がドライブに送られ、オートローダの制御に用いられる。
+SCSI ã\83ã\83¼ã\83\89ã\82³ã\83\9eã\83³ã\83\89ã\82\92å®\9fè¡\8cã\81\99ã\82\8bã\80\82 HP ã\82ªã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83¼ã\81«é\99\90ã\81£ã\81¦å\88©ç\94¨ã\81§ã\81\8dã\82\8bã\80\82 \fImt_count\fP ã\81\8cå®\9aæ\95°
+\fBMT_ST_HPLOADER_OFFSET\fP ã\81¨ã\81\82ã\82\8bæ\95°å\80¤ã\81®å\92\8cã\81§ã\81\82ã\82\8bå ´å\90\88ã\80\81 ã\81\9dã\81®æ\95°å\80¤ã\81\8cã\83\89ã\83©ã\82¤ã\83\96ã\81«é\80\81ã\82\89ã\82\8cã\80\81ã\82ªã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83¼ã\81®å\88¶å¾¡ã\81«ç\94¨ã\81\84ã\82\89ã\82\8cã\82\8bã\80\82
.TP
\fBMTLOCK\fP
テープドライブの扉をロックする。
このコマンドは、パーティションのサポートが有効にされた ドライブでなければ使えない (以下の \fBMT_ST_CAN_PARTITIONS\fP を見よ)。
.TP
\fBMTNOP\fP
-何も操作を行わない。\(em副次的な効果として、ドライバーのバッファ をフラッシュする。 \fBMTIOCGET\fP
+何も操作を行わない。\(em副次的な効果として、ドライバーのバッファー をフラッシュする。 \fBMTIOCGET\fP
を使って状態を読み出す前にはこの操作を行うべきである。
.TP
\fBMTOFFL\fP
\fBMTWSM\fP
\fImt_count\fP 個のセットマークを書き込む。
.PP
-デバイスオプションの設定のための (スーパーユーザによる) 磁気テープ操作:
+ã\83\87ã\83\90ã\82¤ã\82¹ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81®è¨å®\9aã\81®ã\81\9fã\82\81ã\81® (ã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\83¼ã\81«ã\82\88ã\82\8b) ç£\81æ°\97ã\83\86ã\83¼ã\83\97æ\93\8dä½\9c:
.TP 8
\fBMTSETDRVBUFFER\fP
いろいろなドライブとドライバーのオプションを \fImt_count\fP にエンコードされた各ビットに従って設定する。
-ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81«ã\81¯ã\80\81ã\83\89ã\83©ã\82¤ã\83\96ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83ªã\83³ã\82°ã\83¢ã\83¼ã\83\89ã\80\81 ã\83\96ã\83¼ã\83«å\80¤ã\81®ã\83\89ã\83©ã\82¤ã\83\90ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81®é\9b\86å\90\88ã\80\81 ã\83\90ã\83\83ã\83\95ã\82¡ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿é\96¾å\80¤ (ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81¯ã\83\96ã\83ã\83\83ã\82¯ã\82µã\82¤ã\82ºã\81¨å¯\86度)ã\80\81
-タイムアウト値が含まれる (カーネル 2.1 以降)。 一回の操作で変えられるのは、上記のリストのどれか一つだけである
-(複数のブール値はまとめて一つと勘定される)。
+ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81«ã\81¯ã\80\81ã\83\89ã\83©ã\82¤ã\83\96ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\83¢ã\83¼ã\83\89ã\80\81 ã\83\96ã\83¼ã\83«å\80¤ã\81®ã\83\89ã\83©ã\82¤ã\83\90ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81®é\9b\86å\90\88ã\80\81 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿é\96¾å\80¤
+(デフォルトはブロックサイズと密度)、 タイムアウト値が含まれる (カーネル 2.1 以降)。
+一回の操作で変えられるのは、上記のリストのどれか一つだけである (複数のブール値はまとめて一つと勘定される)。
.IP
-é«\98ä½\8dã\81®4ã\83\93ã\83\83ã\83\88ã\81\8cã\82¼ã\83ã\81§ã\81\82ã\82\8bå\80¤ã\81¯ã\80\81 ã\83\89ã\83©ã\82¤ã\83\96ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83ªã\83³ã\82°ã\83¢ã\83¼ã\83\89ã\81®è¨å®\9aã\81«ä½¿ã\82\8fã\82\8cã\82\8bã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡リングモードは以下の通り:
+é«\98ä½\8dã\81®4ã\83\93ã\83\83ã\83\88ã\81\8cã\82¼ã\83ã\81§ã\81\82ã\82\8bå\80¤ã\81¯ã\80\81 ã\83\89ã\83©ã\82¤ã\83\96ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\83¢ã\83¼ã\83\89ã\81®è¨å®\9aã\81«ä½¿ã\82\8fã\82\8cã\82\8bã\80\82 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼リングモードは以下の通り:
.RS 12
.IP 0 4
ドライブはライトコマンドに対し、 データブロックが実際に媒体に書き込まれるまで \fBGOOD\fP のステータスを返さない。
.IP 1
-ドライブはライトコマンドに対し、 すべてのデータがドライブの内部バッファに転送されるとすぐに、 \fBGOOD\fP のステータスを返すことができる。
+ã\83\89ã\83©ã\82¤ã\83\96ã\81¯ã\83©ã\82¤ã\83\88ã\82³ã\83\9eã\83³ã\83\89ã\81«å¯¾ã\81\97ã\80\81 ã\81\99ã\81¹ã\81¦ã\81®ã\83\87ã\83¼ã\82¿ã\81\8cã\83\89ã\83©ã\82¤ã\83\96ã\81®å\86\85é\83¨ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«è»¢é\80\81ã\81\95ã\82\8cã\82\8bã\81¨ã\81\99ã\81\90ã\81«ã\80\81 \fBGOOD\fP ã\81®ã\82¹ã\83\86ã\83¼ã\82¿ã\82¹ã\82\92è¿\94ã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
.IP 2
ライトコマンドに対し、以下の 2 つの条件がそろった場合、 ドライブはすぐに \fBGOOD\fP ステータスを返す事ができる。 (a)
-ã\81\99ã\81¹ã\81¦ã\81®ã\83\87ã\83¼ã\82¿ã\81\8cã\83\89ã\83©ã\82¤ã\83\96ã\81®å\86\85é\83¨ã\83\90ã\83\83ã\83\95ã\82¡ã\81«è»¢é\80\81ã\81\95ã\82\8cã\81\9fã\80\82 (b) å\88¥ã\80\85ã\81®ã\82¤ã\83\8bã\82·ã\82¨ã\83¼ã\82¿ã\83¼ã\81\8bã\82\89æ\9d¥ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡データが、 すべて媒体へ問題なく書き込まれた。
+ã\81\99ã\81¹ã\81¦ã\81®ã\83\87ã\83¼ã\82¿ã\81\8cã\83\89ã\83©ã\82¤ã\83\96ã\81®å\86\85é\83¨ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«è»¢é\80\81ã\81\95ã\82\8cã\81\9fã\80\82 (b) å\88¥ã\80\85ã\81®ã\82¤ã\83\8bã\82·ã\82¨ã\83¼ã\82¿ã\83¼ã\81\8bã\82\89æ\9d¥ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼データが、 すべて媒体へ問題なく書き込まれた。
.RE
.IP
書き込み閾値を制御するには、 \fImt_count\fP には、定数 \fBMT_ST_WRITE_THRESHOLD\fP とブロックカウントのビット毎の OR
をとった値を 下位の 28ビットに含まねばならない。 このブロックカウントは 1024 バイトブロックを単位としたもので、
-テープの物理ブロックサイズを単位としたものではない。 また、閾値はドライバの内部バッファ (上記の説明参照) のサイズを越える事はできない。
+テープの物理ブロックサイズを単位としたものではない。 また、閾値はドライバの内部バッファー (上記の説明参照) のサイズを越える事はできない。
.IP
ブール値のフラグを設定・解除するには、 \fImt_count\fP の値は \fBMT_ST_BOOLEANS\fP, \fBMT_ST_SETBOOLEANS\fP,
\fBMT_ST_CLEARBOOLEANS\fP, \fBMT_ST_DEFBOOLEANS\fP
.RS
.TP
\fBMT_ST_BUFFER_WRITES\fP (デフォルト: 真)
-固定長ブロックモードにおけるすべての書き込み操作をバッファリングする。 このオプションが偽であり、かつドライブが固定長ブロックサイズの時は、
+å\9bºå®\9aé\95·ã\83\96ã\83ã\83\83ã\82¯ã\83¢ã\83¼ã\83\89ã\81«ã\81\8aã\81\91ã\82\8bã\81\99ã\81¹ã\81¦ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿æ\93\8dä½\9cã\82\92ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cå\81½ã\81§ã\81\82ã\82\8aã\80\81ã\81\8bã\81¤ã\83\89ã\83©ã\82¤ã\83\96ã\81\8cå\9bºå®\9aé\95·ã\83\96ã\83ã\83\83ã\82¯ã\82µã\82¤ã\82ºã\81®æ\99\82ã\81¯ã\80\81
すべての書き込み操作はブロックサイズの倍数の大きさで行わなければならない。 信頼性のあるマルチボリュームアーカイブを書き込むためには、
このオプションは偽に設定されていなければならない。
.TP
\fBMT_ST_ASYNC_WRITES\fP (デフォルト: 真)
-このオプションが真の時には、データがドライバのバッファに収まる時には データがドライブに転送されるのを待たずに、すぐに書き込み操作が返って来る。
-バッファがどのくらい空いたら次の SCSI write コマンドを発行できるかは、 書き込み閾値によって決まる。
+ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cç\9c\9fã\81®æ\99\82ã\81«ã\81¯ã\80\81ã\83\87ã\83¼ã\82¿ã\81\8cã\83\89ã\83©ã\82¤ã\83\90ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\8f\8eã\81¾ã\82\8bæ\99\82ã\81«ã\81¯ ã\83\87ã\83¼ã\82¿ã\81\8cã\83\89ã\83©ã\82¤ã\83\96ã\81«è»¢é\80\81ã\81\95ã\82\8cã\82\8bã\81®ã\82\92å¾\85ã\81\9fã\81\9aã\81«ã\80\81ã\81\99ã\81\90ã\81«æ\9b¸ã\81\8dè¾¼ã\81¿æ\93\8dä½\9cã\81\8cè¿\94ã\81£ã\81¦æ\9d¥ã\82\8bã\80\82
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cã\81©ã\81®ã\81\8fã\82\89ã\81\84空ã\81\84ã\81\9fã\82\89次ã\81® SCSI write ã\82³ã\83\9eã\83³ã\83\89ã\82\92ç\99ºè¡\8cã\81§ã\81\8dã\82\8bã\81\8bã\81¯ã\80\81 æ\9b¸ã\81\8dè¾¼ã\81¿é\96¾å\80¤ã\81«ã\82\88ã\81£ã\81¦æ±ºã\81¾ã\82\8bã\80\82
ドライブが返すすべてのエラーは、次の操作まで保存される。 信頼性のあるマルチボリュームアーカイブを書き込むためには、
このオプションは偽に設定されていなければならない。
.TP
\fBMT_ST_READ_AHEAD\fP (デフォルト: 真)
-このオプションを指定すると、 ドライバは固定長ブロックモードで読み込みバッファリングと先読みをするようになる。
+ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81¨ã\80\81 ã\83\89ã\83©ã\82¤ã\83\90ã\81¯å\9bºå®\9aé\95·ã\83\96ã\83ã\83\83ã\82¯ã\83¢ã\83¼ã\83\89ã\81§èªã\81¿è¾¼ã\81¿ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81¨å\85\88èªã\81¿ã\82\92ã\81\99ã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\82\8bã\80\82
このオプションが偽であり、かつドライブが固定長ブロックサイズの時は、 すべての読み込み操作はブロックサイズの倍数の大きさで行わなければならない。
.TP
\fBMT_ST_TWO_FM\fP (デフォルト: 偽)
.RE
.IP ""
デバイスのデフォルトのブロックサイズは \fBMT_ST_DEF_BLKSIZE\fP によって設定でき、デフォルトの密度コードは
-\fBMT_ST_DEFDENSITY\fP によって設定できる。 これらのパラメータの値は操作コードと OR して与える。
+\fBMT_ST_DEFDENSITY\fP ã\81«ã\82\88ã\81£ã\81¦è¨å®\9aã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®å\80¤ã\81¯æ\93\8dä½\9cã\82³ã\83¼ã\83\89ã\81¨ OR ã\81\97ã\81¦ä¸\8eã\81\88ã\82\8bã\80\82
.IP ""
2.1.x 以降のカーネルでは、タイムアウト値の設定は、 サブコマンド \fBMT_ST_SET_TIMEOUT\fP に秒単位のタイムアウト値を OR
して与えることによって行える。 long タイムアウト (巻き戻しなど、長い時間がかかるコマンドに対して用いられる) は
.fi
.in
.IP \fImt_type\fP 11
-ヘッダファイル中には多くの \fImt_type\fP の値が定義されているが、現行のドライバは汎用のタイプである \fBMT_ISSCSI1\fP (汎用
+ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ä¸ã\81«ã\81¯å¤\9aã\81\8fã\81® \fImt_type\fP ã\81®å\80¤ã\81\8cå®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8cã\80\81ç\8f¾è¡\8cã\81®ã\83\89ã\83©ã\82¤ã\83\90ã\81¯æ±\8eç\94¨ã\81®ã\82¿ã\82¤ã\83\97ã\81§ã\81\82ã\82\8b \fBMT_ISSCSI1\fP (æ±\8eç\94¨
SCSI\-1 テープ) および \fBMT_ISSCSI2\fP (汎用 SCSI\-2 テープ) のみを返す。
.IP \fImt_resid\fP
現在のテープ位置番号。
\fBMT_ST_BLKSIZE_SHIFT\fP, \fBMT_ST_BLKSIZE_MASK\fP, \fBMT_ST_DENSITY_SHIFT\fP,
\fBMT_ST_DENSITY_MASK\fP で定義されている。
.IP \fImt_gstat\fP
-汎用の (デバイスに依存しない) ステータスを報告する。 これらのステータスビットをテストするためのマクロが ヘッダファイルで定義されている。
+æ±\8eç\94¨ã\81® (ã\83\87ã\83\90ã\82¤ã\82¹ã\81«ä¾\9då\98ã\81\97ã\81ªã\81\84) ã\82¹ã\83\86ã\83¼ã\82¿ã\82¹ã\82\92å ±å\91\8aã\81\99ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\82¹ã\83\86ã\83¼ã\82¿ã\82¹ã\83\93ã\83\83ã\83\88ã\82\92ã\83\86ã\82¹ã\83\88ã\81\99ã\82\8bã\81\9fã\82\81ã\81®ã\83\9eã\82¯ã\83ã\81\8c ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81§å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
.RS
.HP 4
\fBGMT_EOF\fP(\fIx\fP): テープはファイルマークの直後に位置している。 (\fBMTSEEK\fP 操作の後では常に偽)
\fBGMT_DR_OPEN\fP(\fIx\fP): ドライブにテープが入っていない。
.HP
\fBGMT_IM_REP_EN\fP(\fIx\fP): 即時報告モード。 write コールが戻ったとき、
-テープに対して物理的な書き込みが行われたかどうかを保証できない場合に、 このビットがセットされる。ドライバがデータをバッファリングせず、
-ドライブもデータをバッファリングしない場合に限って、 この値は 0 にセットされる。
+ã\83\86ã\83¼ã\83\97ã\81«å¯¾ã\81\97ã\81¦ç\89©ç\90\86ç\9a\84ã\81ªæ\9b¸ã\81\8dè¾¼ã\81¿ã\81\8cè¡\8cã\82\8fã\82\8cã\81\9fã\81\8bã\81©ã\81\86ã\81\8bã\82\92ä¿\9d証ã\81§ã\81\8dã\81ªã\81\84å ´å\90\88ã\81«ã\80\81 ã\81\93ã\81®ã\83\93ã\83\83ã\83\88ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82ã\83\89ã\83©ã\82¤ã\83\90ã\81\8cã\83\87ã\83¼ã\82¿ã\82\92ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\9bã\81\9aã\80\81
+ã\83\89ã\83©ã\82¤ã\83\96ã\82\82ã\83\87ã\83¼ã\82¿ã\82\92ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81\97ã\81ªã\81\84å ´å\90\88ã\81«é\99\90ã\81£ã\81¦ã\80\81 ã\81\93ã\81®å\80¤ã\81¯ 0 ã\81«ã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82
.HP
\fBGMT_CLN\fP(\fIx\fP): ドライブがクリーニングを要求している。 カーネル 2.4.19 および 2.5.43 以降で実装された。
.RE
書き込み保護されているテープに書き込みまたは消去を行おうとした。 (このエラーは \fBopen\fP(2) 中には検知されない。)
.TP
\fBEBUSY\fP
-デバイスがすでに使われているか、 ドライバがバッファを割当てられなかった。
+ã\83\87ã\83\90ã\82¤ã\82¹ã\81\8cã\81\99ã\81§ã\81«ä½¿ã\82\8fã\82\8cã\81¦ã\81\84ã\82\8bã\81\8bã\80\81 ã\83\89ã\83©ã\82¤ã\83\90ã\81\8cã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92å\89²å½\93ã\81¦ã\82\89ã\82\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBEFAULT\fP
-コマンドの引数が、 呼びだしプロセスに属していないメモリ位置を指している。
+コマンドの引数が、 呼びだしプロセスに属していないメモリー位置を指している。
.TP
\fBEINVAL\fP
\fBioctl\fP(2) の引数が不正であるか、要求したブロックサイズが不正。
オープンする時にテープデバイスが存在しなかった。
.TP
\fBEOVERFLOW\fP
-ドライバの内部バッファより大きいサイズの可変長ブロックを 読み書きしようとした。
+ã\83\89ã\83©ã\82¤ã\83\90ã\81®å\86\85é\83¨ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\88ã\82\8a大ã\81\8dã\81\84ã\82µã\82¤ã\82ºã\81®å\8f¯å¤\89é\95·ã\83\96ã\83ã\83\83ã\82¯ã\82\92 èªã\81¿æ\9b¸ã\81\8dã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\80\82
.TP
\fBEROFS\fP
ドライブに入っているテープがライトプロテクトされている場合に、 \fBO_WRONLY\fP または \fBO_RDWR\fP で open を行おうとした。
.SH 注意
.IP 1. 4
異なるシステムでデータを相互にやりとりする場合、 両方のシステムで物理的なテープブロックサイズを一致させる必要がある。
-起動直後のドライブのパラメータは、大多数の OS がそのデバイスに対して 用いている値と異なっていることもよくある。多くのシステムは、
+èµ·å\8b\95ç\9b´å¾\8cã\81®ã\83\89ã\83©ã\82¤ã\83\96ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\80\81大å¤\9aæ\95°ã\81® OS ã\81\8cã\81\9dã\81®ã\83\87ã\83\90ã\82¤ã\82¹ã\81«å¯¾ã\81\97ã\81¦ ç\94¨ã\81\84ã\81¦ã\81\84ã\82\8bå\80¤ã\81¨ç\95°ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81\93ã\81¨ã\82\82ã\82\88ã\81\8fã\81\82ã\82\8bã\80\82å¤\9aã\81\8fã\81®ã\82·ã\82¹ã\83\86ã\83 ã\81¯ã\80\81
ドライブが対応していれば可変長ブロックモードを用いる。 DAT、 8mm ヘリカルスキャンドライブ、 DLT などの最近のドライブの
ほとんどは可変長ブロックモードに対応しているから。 これらのドライブは (少なくとも他のシステムとのデータ交換が ある場合は)、 Linux
でも可変長ブロックモードで使うほうが 良いかもしれない (つまりシステムの起動時のモード設定に \fBMTSETBLK\fP または
\fBMTSETDEFBLK\fP を用いる)。 欠点としては、比較的大きなテープブロックサイズを用いなければ、 SCSI
バス上で満足のいく転送速度が得られないことである。
.IP 2.
-多くのプログラム (\fBtar\fP(1) など) では、 コマンドラインからユーザがブロック関連の値を指定できる。
+å¤\9aã\81\8fã\81®ã\83\97ã\83ã\82°ã\83©ã\83 (\fBtar\fP(1) ã\81ªã\81©) ã\81§ã\81¯ã\80\81 ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³ã\81\8bã\82\89ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\83\96ã\83ã\83\83ã\82¯é\96¢é\80£ã\81®å\80¤ã\82\92æ\8c\87å®\9aã\81§ã\81\8dã\82\8bã\80\82
この値によってテープ上の物理的なブロックサイズを決定できるのは、 可変長ブロックモードに限られることに注意。
.IP 3.
-SCSI テープドライブを用いるには、基本の SCSI ドライバ、 SCSI アダプタのドライバ、 SCSI テープドライバのすべてが
+SCSI ã\83\86ã\83¼ã\83\97ã\83\89ã\83©ã\82¤ã\83\96ã\82\92ç\94¨ã\81\84ã\82\8bã\81«ã\81¯ã\80\81å\9fºæ\9c¬ã\81® SCSI ã\83\89ã\83©ã\82¤ã\83\90ã\80\81 SCSI ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81®ã\83\89ã\83©ã\82¤ã\83\90ã\80\81 SCSI ã\83\86ã\83¼ã\83\97ã\83\89ã\83©ã\82¤ã\83\90ã\81®ã\81\99ã\81¹ã\81¦ã\81\8c
カーネルに組み込まれているか、あるいはモジュールとしてロードされている 必要がある。 SCSI テープドライバがないと、 ドライブは認識されるが、
このページで記述されているテープのサポートは利用できない。
.IP 4.
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\" Additional permissions are contained in the header of the source file.
-このドライバの内部バッファリングは、固定ブロックモードなら \fBread\fP(2) や \fBwrite\fP(2)
+ã\81\93ã\81®ã\83\89ã\83©ã\82¤ã\83\90ã\81®å\86\85é\83¨ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81¯ã\80\81å\9bºå®\9aã\83\96ã\83ã\83\83ã\82¯ã\83¢ã\83¼ã\83\89ã\81ªã\82\89 \fBread\fP(2) ã\82\84 \fBwrite\fP(2)
のバイト数が小さくても良いスループットを出す。 直接転送ではこれは不可能なので、2.6 カーネルに移行したときに驚くかもしれない。
解決法としては、ソフトウェアにより大きな転送を行うよう伝える (たいていはより大きなブロックを使わせる) ことである。
これが不可能なら、直接転送を無効にすることもできる。
.SS TIOCNOTTY
呼び出し元のプロセスをその制御端末から切り離す。
.sp
-ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82»ã\83\83ã\82·ã\83§ã\83³ã\83»ã\83ªã\83¼ã\83\80ã\83¼ (session leader) ã\81®å ´å\90\88ã\80\81 ã\82·ã\82°ã\83\8aã\83« \fBSIGHUP\fP ã\81¨ \fBSIGCONT\fP
-ã\81\8cã\83\95ã\82©ã\82¢ã\82°ã\83©ã\82¦ã\83³ã\83\89ã\83»ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81«é\80\81ã\82\89ã\82\8cã\80\81 ã\82«ã\83¬ã\83³ã\83\88ã\83»セッションに属す全てのプロセスについて各々の制御端末が切り離される。
+そのプロセスがセッションリーダー (session leader) の場合、 シグナル \fBSIGHUP\fP と \fBSIGCONT\fP
+ã\81\8cã\83\95ã\82©ã\82¢ã\82°ã\83©ã\82¦ã\83³ã\83\89ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\81«é\80\81ã\82\89ã\82\8cã\80\81 ã\82«ã\83¬ã\83³ã\83\88セッションに属す全てのプロセスについて各々の制御端末が切り離される。
.sp
-この \fBioctl\fP(2) 呼び出しは \fI/dev/tty\fP に結びつけられたファイル・
-ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81«ã\81®ã\81¿ä½\9cç\94¨ã\81\99ã\82\8bã\80\82ã\81\93ã\81®æ©\9fè\83½ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\81«ã\82\88ã\81£ã\81¦ç«¯æ\9c«ã\81\8bã\82\89 èµ·å\8b\95ã\81\95ã\82\8cã\81\9fã\83\87ã\83¼ã\83¢ã\83³ã\83\97ã\83ã\82»ã\82¹ã\81«ã\82\88ã\82\8a使ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¯ \fI/dev/tty\fP
-をオープンしようと試みる。 オープンに成功すると、そのプロセスは \fBTIOCNOTTY\fP を使って
+この \fBioctl\fP(2) 呼び出しは \fI/dev/tty\fP に結びつけられたファイル
+ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ã\81®ã\81¿ä½\9cç\94¨ã\81\99ã\82\8bã\80\82ã\81\93ã\81®æ©\9fè\83½ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81«ã\82\88ã\81£ã\81¦ç«¯æ\9c«ã\81\8bã\82\89 èµ·å\8b\95ã\81\95ã\82\8cã\81\9fã\83\87ã\83¼ã\83¢ã\83³ã\83\97ã\83ã\82»ã\82¹ã\81«ã\82\88ã\82\8a使ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¯
+\fI/dev/tty\fP をオープンしようと試みる。 オープンに成功すると、そのプロセスは \fBTIOCNOTTY\fP を使って
自分自身を端末から切り離す。オープンに失敗した場合、そのプロセスが 端末に結びつけられていないのは明らかであり、自身を端末から切り離す 必要はない。
.SH ファイル
/dev/tty
番目の引き数を必要とする。 ここでは \fIargp\fP または \fIarg\fP と呼ぶ。
.LP
\fIioctl\fP を使用すると移植性のないプログラムになる。 可能な場合は、 \fBtermios\fP(3) に記述されている POSIX
-インタフェースを使うこと。
+ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92使ã\81\86ã\81\93ã\81¨ã\80\82
.SS 端末属性の取得と設定
.TP
\fBTCGETS struct termios *\fP\fIargp\fP
\fBTCSETSW const struct termios *\fP\fIargp\fP
\fItcsetattr(fd, TCSADRAIN, argp)\fP と同じ。
.br
-排出 (drain) を行うための出力バッファの使用を許可し、 現在のシリアルポートの設定を変更する。
+æ\8e\92å\87º (drain) ã\82\92è¡\8cã\81\86ã\81\9fã\82\81ã\81®å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ä½¿ç\94¨ã\82\92許å\8f¯ã\81\97ã\80\81 ç\8f¾å\9c¨ã\81®ã\82·ã\83ªã\82¢ã\83«ã\83\9dã\83¼ã\83\88ã\81®è¨å®\9aã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82
.TP
\fBTCSETSF const struct termios *\fP\fIargp\fP
\fItcsetattr(fd, TCSAFLUSH, argp)\fP と同じ。
.br
-排出 (drain) を行うための出力バッファの使用を許可し、 処理していない入力を破棄して、 現在のシリアルポートの設定を変更する。
+æ\8e\92å\87º (drain) ã\82\92è¡\8cã\81\86ã\81\9fã\82\81ã\81®å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ä½¿ç\94¨ã\82\92許å\8f¯ã\81\97ã\80\81 å\87¦ç\90\86ã\81\97ã\81¦ã\81\84ã\81ªã\81\84å\85¥å\8a\9bã\82\92ç ´æ£\84ã\81\97ã\81¦ã\80\81 ç\8f¾å\9c¨ã\81®ã\82·ã\83ªã\82¢ã\83«ã\83\9dã\83¼ã\83\88ã\81®è¨å®\9aã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82
.LP
以下の 4 つの ioctl は \fBTCGETS\fP, \fBTCSETS\fP, \fBTCSETSW\fP, \fBTCSETSF\fP と似ている。 ただし、
\fIstruct termios\ *\fP の代わりに \fIstruct termio\ *\fP を取る。
\fItcflow(fd, arg)\fP と同じ。
.br
\fBtcflow\fP(3) の引き数 \fBTCOOFF\fP, \fBTCOON\fP, \fBTCIOFF\fP, \fBTCION\fP を参照すること。
-.SS "バッファのカウントと書き出し (flush)"
+.SS "ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82«ã\82¦ã\83³ã\83\88ã\81¨æ\9b¸ã\81\8då\87ºã\81\97 (flush)"
.TP
\fBFIONREAD int *\fP\fIargp\fP
-入力バッファにあるバイト数を取得する。
+å\85¥å\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81\82ã\82\8bã\83\90ã\82¤ã\83\88æ\95°ã\82\92å\8f\96å¾\97ã\81\99ã\82\8bã\80\82
.TP
\fBTIOCINQ int *\fP\fIargp\fP
\fBFIONREAD\fP と同じ。
.TP
\fBTIOCOUTQ int *\fP\fIargp\fP
-出力バッファにあるバイト数を取得する。
+å\87ºå\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81\82ã\82\8bã\83\90ã\82¤ã\83\88æ\95°ã\82\92å\8f\96å¾\97ã\81\99ã\82\8bã\80\82
.TP
\fBTCFLSH int \fP\fIarg\fP
\fItcflush(fd, arg)\fP と同じ。
指定された端末を呼び出し元のプロセスの制御端末にする。 呼び出し元のプロセスはセッションリーダでなければならず、
かつ既に制御端末を持っていてはならない。 この場合 \fIarg\fP には 0 を指定すべきである。
-この端末が既に他のセッショングループの制御端末である場合、 ioctl は \fBEPERM\fP で失敗する。ただし呼び出したユーザが
+ã\81\93ã\81®ç«¯æ\9c«ã\81\8cæ\97¢ã\81«ä»\96ã\81®ã\82»ã\83\83ã\82·ã\83§ã\83³ã\82°ã\83«ã\83¼ã\83\97ã\81®å\88¶å¾¡ç«¯æ\9c«ã\81§ã\81\82ã\82\8bå ´å\90\88ã\80\81 ioctl ã\81¯ \fBEPERM\fP ã\81§å¤±æ\95\97ã\81\99ã\82\8bã\80\82ã\81\9fã\81 ã\81\97å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83¦ã\83¼ã\82¶ã\83¼ã\81\8c
\fBCAP_SYS_ADMIN\fP ケーパビリティを持っていて、かつ \fIarg\fP が 1 である場合を除く。 この場合、端末は盗まれ (stolen)、
この端末を制御端末としていた全てのプロセスは端末を失う。
.TP
.\"
.TH VCS 4 2007\-12\-17 Linux "Linux Programmer's Manual"
.SH 名前
-vcs, vcsa \- 仮想コンソールメモリ (virtual console memory)
+vcs, vcsa \- 仮想コンソールメモリー (virtual console memory)
.SH 説明
\fI/dev/vcs0\fP はメジャーナンバー (major number) 7、マイナーナンバー (minor number) 0
のキャラクターデバイス (character device) で、 通常、そのモードは 0644、オーナは root.tty である。
-このデバイスファイル (device file) は 現在表示されている仮想コンソール端末のメモリを参照する。
+ã\81\93ã\81®ã\83\87ã\83\90ã\82¤ã\82¹ã\83\95ã\82¡ã\82¤ã\83« (device file) ã\81¯ ç\8f¾å\9c¨è¡¨ç¤ºã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bä»®æ\83³ã\82³ã\83³ã\82½ã\83¼ã\83«ç«¯æ\9c«ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\80\82
.LP
\fB/dev/vcs[1\-63]\fP は仮想コンソール端末のための キャラクターデバイスで、メジャーナンバーが 7、マイナーナンバーが 1 から 63、
通常はモードが 0644、オーナーが root.tty である。 \fB/dev/vcsa[0\-63]\fP は \fB/dev/vcs[1\-63]\fP
\fBこのドライバーは時代遅れである\fP: このドライバーはカーネル 2.6.35 で削除された。
\fIwavelan\fP は、NCR / AT&T / Lucent の \fBWaveLan ISA\fP と Digital(DEC) の
-\fBRoamAbout DS\fP ã\81¨ã\81\84ã\81\86ã\83¯ã\82¤ã\82¢ã\83¬ã\82¹ã\83»ã\82¤ã\83¼ã\82µã\83\8dã\83\83ã\83\88 (wireless ethernet) ã\82¢ã\83\80ã\83\97ã\82¿のための
-ã\83ã\83¼ã\83¬ã\83\99ã\83«ã\83»ã\83\87ã\83\90ã\82¤ã\82¹ã\83\89ã\83©ã\82¤ã\83\90ã\81§ã\81\82ã\82\8bã\80\82ã\81\93ã\81®ã\83\89ã\83©ã\82¤ã\83\90ã\81¯ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81¨ã\81\97ã\81¦ã\82\82ã\80\81ã\81¾ã\81\9fã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\81«çµ\84ã\81¿è¾¼ã\82\93ã\81 å½¢ã\81§ã\82\82å\88©ç\94¨ã\81§ã\81\8dã\82\8bã\80\82ã\81¾ã\81\9fã\80\81ã\81©ã\81¡ã\82\89ã\81®å ´å\90\88ã\81§ã\82\82ã\80\81è¤\87æ\95°ã\82«ã\83¼ã\83\89
+\fBRoamAbout DS\fP ã\81¨ã\81\84ã\81\86ã\83¯ã\82¤ã\82¢ã\83¬ã\82¹ã\82¤ã\83¼ã\82µã\83\8dã\83\83ã\83\88 (wireless ethernet) ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼のための
+ローレベルデバイスドライバである。このドライバはモジュールとしても、また、 カーネルに組み込んだ形でも利用できる。また、どちらの場合でも、複数カード
(最大 4 枚まで) をサポートし、明示的にデバイスの名前を指定しない限り (これに関しては、下を見よ)、発見されたそれぞれのカードには、利用可能な
次のイーサネットデバイス(eth0..eth#)が割り当てられる。このデバイス名は MAC アドレス、NWID、カードによって利用される周波数とともに
カーネルログファイルに報告される。
-.SS パラメータ
-ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\80\81ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81¨ã\81\97ã\81¦ä½¿ç\94¨ã\81\99ã\82\8bå ´å\90\88 ã\81«é\81©ç\94¨ã\81\95ã\82\8cã\80\81 \fBinsmod\fP(8) ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\83»ã\83©ã\82¤ã\83³å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦ç\94¨ã\81\84ã\82\8bã\80\82
-ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\83\89ã\83©ã\82¤ã\83\90ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\80\81 \fIether=IRQ,IO,NAME\fP ã\81¨ã\81\84ã\81\86å½¢å¼\8fã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\82\92ã\82«ã\83¼ã\83\8dã\83«ã\83»コマンドラインに渡す。
+.SS パラメーター
+このセクションのパラメーターは、モジュールとして使用する場合 に適用され、 \fBinsmod\fP(8) のコマンドライン引き数として用いる。
+ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\83\89ã\83©ã\82¤ã\83\90ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\80\81 \fIether=IRQ,IO,NAME\fP ã\81¨ã\81\84ã\81\86å½¢å¼\8fã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ã\82«ã\83¼ã\83\8dã\83«コマンドラインに渡す。
.TP
\fBio\fP
wavelan カードを検出する時にどこのベースアドレスをサーチするかという リストを指定する (カードが利用するベースアドレスはカードのディップ
をスキャンする(このアドレスは他のハードと衝突することも考えられる)。
.TP
\fBirq\fP
-それぞれの wavelan カードが利用する irq のリストをセットする (この値は 将来的な利用のためにパーマネント・ストレージに保存される)。
+それぞれの wavelan カードが利用する irq のリストをセットする (この値は 将来的な利用のために永続的ストレージに保存される)。
.TP
\fBname\fP
それぞれの wavelan カードデバイスに (\fBifconfig\fP(8) が利用する)名前のリストをセットする。
ワイアレス拡張の操作には \fBiwconfig\fP(8) を使う。
.SS "NWID (or ドメイン)"
ネットワーク IDを [\fI0\fP から \fIFFFF\fP] に設定するか、 [\fIoff\fP] その利用を無効にする。 NWID
-はカードのパーマネント・ストレージエリア (Permanent Strage Area) に 格納されるので、NWID
+はカードの永続的ストレージエリア (Permanent Strage Area) に 格納されるので、NWID
はドライバが呼び出されるたびに利用できる。
.SS 周波数とチャネル
2.4GHz 2.00 ハードウェアでは、10 の定義済みのチャネル (\fI2.412\fP \fI2.422, 2.425, 2.4305, 2.432,
.\"
.TH ACCT 5 2008\-06\-15 Linux "Linux Programmer's Manual"
.SH 名前
-acct \- ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82¢ã\82«ã\82¦ã\83³ã\83\86ã\82£ã\83³ã\82°ã\83»ファイル
+acct \- ã\83\97ã\83ã\82»ã\82¹ã\82¢ã\82«ã\82¦ã\83³ã\83\86ã\82£ã\83³ã\82°ファイル
.SH 書式
\fB#include <sys/acct.h>\fP
.SH 説明
-ã\82«ã\83¼ã\83\8dã\83«ã\81\8cã\83\97ã\83ã\82»ã\82¹ã\83»ã\82¢ã\82«ã\82¦ã\83³ã\83\86ã\82£ã\83³ã\82°ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ (\fBCONFIG_BSD_PROCESS_ACCT\fP) ã\82\92æ\9c\89å\8a¹ã\81«ã\81\97ã\81¦ä½\9cæ\88\90ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81¨ã\80\81以ä¸\8bã\81®ã\82\88ã\81\86ã\81«
-\fBacct\fP(2) ã\82\92å\91¼ã\81³å\87ºã\81\99ã\81¨ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82¢ã\82«ã\82¦ã\83³ã\83\86ã\82£ã\83³ã\82°ã\81\8cé\96\8bå§\8bã\81\95ã\82\8cã\82\8bã\80\82
+カーネルがプロセスアカウンティングのオプション (\fBCONFIG_BSD_PROCESS_ACCT\fP) を有効にして作成されていると、以下のように
+\fBacct\fP(2) を呼び出すとプロセスアカウンティングが開始される。
.in +4n
acct("/var/log/pacct");
.in
-ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82¢ã\82«ã\82¦ã\83³ã\83\86ã\82£ã\83³ã\82°ã\81\8cæ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81¨ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81¯ ã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81®å\90\84ã\83\97ã\83ã\82»ã\82¹ã\81\8cçµ\82äº\86ã\81\99ã\82\8bã\81\9fã\81³ã\81«ã\82¢ã\82«ã\82¦ã\83³ã\83\86ã\82£ã\83³ã\82°ã\83\95ã\82¡ã\82¤ã\83«ã\81« ã\83¬ã\82³ã\83¼ã\83\89ã\82\92æ\9b¸ã\81\8dè¾¼ã\82\80ã\80\82
+プロセスアカウンティングが有効になっていると、カーネルは システム上の各プロセスが終了するたびにアカウンティングファイルに レコードを書き込む。
このレコードは、終了したプロセスに関する情報を保持するもので、 \fI<sys/acct.h>\fP で以下のように定義されている。
.in +4n
プロセス全体についてのアカウンティングレコードが一つだけ書き込まれる。
\fIproc/sys/kernel/acct\fP ファイル (\fBproc\fP(5) で説明されている) は、ディスク容量の残りが少なくなった際の
-ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82¢ã\82«ã\82¦ã\83³ã\83\86ã\82£ã\83³ã\82°ã\81®å\8b\95ä½\9cã\82\92å\88¶å¾¡ã\81\99ã\82\8bè¨å®\9aã\82\92ä¿\9dæ\8c\81ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
+プロセスアカウンティングの動作を制御する設定を保持している。
.SH 関連項目
\fBlastcomm\fP(1), \fBacct\fP(2), \fBaccton\fP(8), \fBsa\fP(8)
.SH この文書について
キャラクターマップの名前を指定する。
.TP
\fI<comment_char>\fP
-ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ®\8bã\82\8aã\81®é\83¨å\88\86ã\81§ã\82³ã\83¡ã\83³ã\83\88ã\83»ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\81¨ã\81\97ã\81¦ä½¿ç\94¨ã\81\99ã\82\8bæ\96\87å\97 ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\82·ã\83£ã\83¼ã\83\97 (#) ã\81§ã\81\82ã\82\8bã\80\82
+ファイルの残りの部分でコメントキャラクターとして使用する文字 を指定する。デフォルトではシャープ (#) である。
.TP
\fI<escape_char>\fP
-ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ®\8bã\82\8aã\81®é\83¨å\88\86ã\81§ã\82¨ã\82¹ã\82±ã\83¼ã\83\97ã\83»ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\81¨ã\81\97ã\81¦ä½¿ç\94¨ã\81\99ã\82\8bæ\96\87å\97ã\82\92 æ\8c\87å®\9aã\81\99ã\82\8bã\80\82ã\81\93ã\82\8cã\81¯ç\89¹æ®\8aã\81ªæ\84\8få\91³ã\81«è§£é\87\88ã\81\95ã\82\8cã\82\8bæ\96\87å\97ã\82\92ã\82¨ã\82¹ã\82±ã\83¼ã\83\97ã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81\99ã\82\8bã\80\82
+ファイルの残りの部分でエスケープキャラクターとして使用する文字を 指定する。これは特殊な意味に解釈される文字をエスケープするのに使用する。
デフォルトはバックスラッシュ (\e) である。
.TP
\fI<mb_cur_max>\fP
core \- コアダンプファイル
.SH 説明
ある種のシグナルを受けた場合のデフォルトのアクションは、 プロセスを終了し (terminate)、 \fIコアダンプファイル (core dump
-file)\fP を生成することである。コアダンプファイルは、ディスク上に生成される 終了時のプロセスのメモリイメージを内容とするファイルである。
+file)\fP ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\81\82ã\82\8bã\80\82ã\82³ã\82¢ã\83\80ã\83³ã\83\97ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81ã\83\87ã\82£ã\82¹ã\82¯ä¸\8aã\81«ç\94\9fæ\88\90ã\81\95ã\82\8cã\82\8b çµ\82äº\86æ\99\82ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82¤ã\83¡ã\83¼ã\82¸ã\82\92å\86\85容ã\81¨ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81§ã\81\82ã\82\8bã\80\82
このイメージをデバッガ (例えば \fBgdb\fP(1)) に読み込んで、 プログラムが終了した時点のプログラムの状態を検査することができる。
どのシグナルを受けたときにプロセスがコアダンプを生成するかのリストは \fBsignal\fP(7) に書かれている。
-ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\82½ã\83\95ã\83\88ã\83»ã\83ªã\82½ã\83¼ã\82¹å\88¶é\99\90 \fBRLIMIT_CORE\fP ã\82\92è¨å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81ã\80\8cã\82³ã\82¢ã\83\80ã\83³ã\83\97ã\80\8dã\82·ã\82°ã\83\8aã\83«ã\82\92å\8f\97ä¿¡ã\81\97ã\81\9fé\9a\9bã\81«ç\94\9fæ\88\90ã\81\95ã\82\8cã\82\8b
+プロセスはソフトリソース制限 \fBRLIMIT_CORE\fP を設定することで、「コアダンプ」シグナルを受信した際に生成される
コアダンプファイルのサイズに上限を課すことができる。詳細は \fBgetrlimit\fP(2) を参照。
コアダンプファイルが生成されない状況がいくつかある:
.IP * 3
プロセスがコアファイルを書き込む許可を持たない場合 (デフォルトでは、コアファイルは \fIcore\fP か \fIcore.pid\fP (\fIpid\fP
-ã\81¯ã\82³ã\82¢ã\83\80ã\83³ã\83\97ã\82\92è¡\8cã\81\86ã\83\97ã\83ã\82»ã\82¹ã\81® ID) ã\81¨ã\81\84ã\81\86å\90\8då\89\8dã\81§ã\80\81ã\82«ã\83¬ã\83³ã\83\88ã\83»ã\83¯ã\83¼ã\82ã\83³ã\82°ã\83»ディレクトリに生成される。 命名規則の詳細は下記を参照)。
+ã\81¯ã\82³ã\82¢ã\83\80ã\83³ã\83\97ã\82\92è¡\8cã\81\86ã\83\97ã\83ã\82»ã\82¹ã\81® ID) ã\81¨ã\81\84ã\81\86å\90\8då\89\8dã\81§ã\80\81ã\82«ã\83¬ã\83³ã\83\88ã\83¯ã\83¼ã\82ã\83³ã\82°ディレクトリに生成される。 命名規則の詳細は下記を参照)。
コアファイルを生成しようとしたディレクトリが書き込み可能でない場合、 もしくは同じ名前のファイルが存在し、そのファイルが書き込み可能でも
通常のファイルでもない場合 (例えば、ディレクトリやシンボリックリンク)、 コアファイルの生成は失敗する。
.IP *
コアダンプに使おうとしたのと同じ名前の (書き込み可能な、通常の) ファイルが すでに存在し、そのファイルに対するハードリンクが 2個以上ある場合。
.IP *
コアダンプファイルを生成しようとしたファイルシステムがフルであるか、 inode が全て使用されているか、読み込み専用でマウントされている場合。
-または、そのユーザのディスク使用量がそのファイルシステムの クオータ (quota) に達している。
+ã\81¾ã\81\9fã\81¯ã\80\81ã\81\9dã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\87ã\82£ã\82¹ã\82¯ä½¿ç\94¨é\87\8fã\81\8cã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81® ã\82¯ã\82ªã\83¼ã\82¿ (quota) ã\81«é\81\94ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.IP *
コアダンプファイルを生成しようとしたディレクトリが存在しない場合。
.IP *
.IP *
.\" FIXME . Perhaps relocate discussion of /proc/sys/fs/suid_dumpable
.\" and PR_SET_DUMPABLE to this page?
-プロセスが実行している set\-user\-ID (set\-group\-ID) プログラムの所有者の ユーザ (グループ) が、プロセスの実 UID (実
-GID) と異なる場合 (但し、 \fBprctl\fP(2) \fBPR_SET_DUMPABLE\fP 操作の説明と、 \fBproc\fP(5) の
+プロセスが実行している set\-user\-ID (set\-group\-ID) プログラムの所有者の ユーザー (グループ) が、プロセスの実 UID
+(実 GID) と異なる場合 (但し、 \fBprctl\fP(2) \fBPR_SET_DUMPABLE\fP 操作の説明と、 \fBproc\fP(5) の
\fI/proc/sys/fs/suid_dumpable\fP ファイルの説明も参照のこと)。
.IP *
.\" commit 046d662f481830e652ac34cd112249adde16452a
ダンプ時刻、紀元 (Epoch; 1970\-01\-01 00:00:00 +0000 (UTC)) からの秒数。
.TP
%u
-ダンプされたプロセスの実ユーザ ID (real UID)
+ダンプされたプロセスの実ユーザー ID (real UID)
.PD
.RE
.PP
プログラムは絶対パス名 (もしくはルートディレクトリ \fI/\fP からの 相対パス名) で指定されなければならない。 また、'|'
文字の直後から始めなければならない。
.IP *
-プログラムを実行するために生成されるプロセスは、 ユーザ、グループとも \fIroot\fP として実行される。
+ã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92å®\9fè¡\8cã\81\99ã\82\8bã\81\9fã\82\81ã\81«ç\94\9fæ\88\90ã\81\95ã\82\8cã\82\8bã\83\97ã\83ã\82»ã\82¹ã\81¯ã\80\81 ã\83¦ã\83¼ã\82¶ã\83¼ã\80\81ã\82°ã\83«ã\83¼ã\83\97ã\81¨ã\82\82 \fIroot\fP ã\81¨ã\81\97ã\81¦å®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\80\82
.IP *
コマンドライン引き数をプログラムに与えることができ (Linux 2.6.24 以降)、 引き数はホワイトスペースで区切る (1行の最大長は 128
バイトが上限である)。
\fI%p\fP を指定する。
.SS どのマッピングをコアダンプに書き込むかを制御する
カーネル 2.6.23 以降では、Linux 固有のファイル \fI/proc/PID/coredump_filter\fP を使って、対応するプロセス ID
-を持つプロセスに対してコアダンプが行われる 際に、どのメモリセグメントをコアダンプファイルに書き込むかを制御できる。
+ã\82\92æ\8c\81ã\81¤ã\83\97ã\83ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦ã\82³ã\82¢ã\83\80ã\83³ã\83\97ã\81\8cè¡\8cã\82\8fã\82\8cã\82\8b é\9a\9bã\81«ã\80\81ã\81©ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92ã\82³ã\82¢ã\83\80ã\83³ã\83\97ã\83\95ã\82¡ã\82¤ã\83«ã\81«æ\9b¸ã\81\8dè¾¼ã\82\80ã\81\8bã\82\92å\88¶å¾¡ã\81§ã\81\8dã\82\8bã\80\82
-このファイルの値はメモリマッピング種別 (\fBmmap\fP(2) 参照) のビットマスクである。
-マスク内のあるビットがセットされると、そのビットに対応する種別の メモリマッピングがダンプされる。セットされていないものはダンプされない。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\80¤ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\94ã\83³ã\82°ç¨®å\88¥ (\fBmmap\fP(2) å\8f\82ç\85§) ã\81®ã\83\93ã\83\83ã\83\88ã\83\9eã\82¹ã\82¯ã\81§ã\81\82ã\82\8bã\80\82
+ã\83\9eã\82¹ã\82¯å\86\85ã\81®ã\81\82ã\82\8bã\83\93ã\83\83ã\83\88ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81ã\81\9dã\81®ã\83\93ã\83\83ã\83\88ã\81«å¯¾å¿\9cã\81\99ã\82\8b種å\88¥ã\81® ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81\8cã\83\80ã\83³ã\83\97ã\81\95ã\82\8cã\82\8bã\80\82ã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\82\82ã\81®ã\81¯ã\83\80ã\83³ã\83\97ã\81\95ã\82\8cã\81ªã\81\84ã\80\82
このファイルの各ビットは以下の意味を持つ。
.PP
.PD 0
ファイルと関連付けられた共有マッピング (file\-backed shared mappings) をダンプする。
.TP
bit 4 (Linux 2.6.24 以降)
-ELF ヘッダをダンプする。
+ELF ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92ã\83\80ã\83³ã\83\97ã\81\99ã\82\8bã\80\82
.TP
bit 5 (Linux 2.6.28 以降)
プライベートなヒュージページ (private huge page) をダンプする。
\fBCONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS\fP を有効にして作成された場合である)。 このファイルの値は 16
進形式で表示される (したがって、デフォルト値は 33 と表示される)。
-\fIcoredump_filter\fP の値に関わらず、フレームバッファなどの memory\-mapped I/O に関する
+\fIcoredump_filter\fP ã\81®å\80¤ã\81«é\96¢ã\82\8fã\82\89ã\81\9aã\80\81ã\83\95ã\83¬ã\83¼ã\83 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81ªã\81©ã\81® memory\-mapped I/O ã\81«é\96¢ã\81\99ã\82\8b
ページは決してダンプされず、仮想 DSO ページは常にダンプされる。
\fBfork\fP(2) で作成される子プロセスは親プロセスの \fIcoredump_filter\fP の値を継承する。 \fBexecve\fP(2)
.\" way of telling which threading implementation the user-space
.\" application is using). -- mtk, April 2006
バージョン 2.6.27 以前の Linux では、 マルチスレッドプロセス (より正確には、 \fBclone\fP(2) の \fBCLONE_VM\fP
-で生成された別プロセスとメモリを共有しているプロセス) がコアダンプを生成する場合、 コアファイル名にプロセス ID が必ず付加される。 ただし、
+ã\81§ç\94\9fæ\88\90ã\81\95ã\82\8cã\81\9få\88¥ã\83\97ã\83ã\82»ã\82¹ã\81¨ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\85±æ\9c\89ã\81\97ã\81¦ã\81\84ã\82\8bã\83\97ã\83ã\82»ã\82¹) ã\81\8cã\82³ã\82¢ã\83\80ã\83³ã\83\97ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bå ´å\90\88ã\80\81 ã\82³ã\82¢ã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\81«ã\83\97ã\83ã\82»ã\82¹ ID ã\81\8cå¿\85ã\81\9aä»\98å\8a ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\9fã\81 ã\81\97ã\80\81
\fI/proc/sys/kernel/core_pattern\fP の %p 指定によりコアファイル名のどこか他の場所にプロセス ID が
すでに含まれている場合は、プロセス ID が末尾に付加されない。 (この機能が主に役に立つのはすでに使われなくなった LinuxThreads
実装を利用している場合である。 LinuxThreads 実装では、プロセス内の個々のスレッドは異なるプロセス ID を持つ。)
\fB#include <elf.h>\fP
.fi
.SH 説明
-ヘッダファイル \fI<elf.h>\fP は ELF 実行可能バイナリファイルのフォーマットを定義する。
+ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83« \fI<elf.h>\fP ã\81¯ ELF å®\9fè¡\8cå\8f¯è\83½ã\83\90ã\82¤ã\83\8aã\83ªã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\82\92å®\9a義ã\81\99ã\82\8bã\80\82
これらのファイルとしては、通常の実行可能ファイル・ 再配置可能オブジェクトファイル・コアファイル・共有ライブラリがある。
.PP
-ELF ファイルフォーマットを使う実行可能ファイルは、 ELF ヘッダの後にプログラムヘッダテーブルまたは セクションヘッダテーブル (またはその両方)
-が続く構成である。 ELF ヘッダは常にファイルのオフセット 0 にある。 プログラムヘッダテーブルとセクションヘッダテーブルの
-ファイル内でのオフセットは、ELF ヘッダに定義されている。 この 2 つのテーブルはファイルの残りの部分の詳細を記述する。
+ELF ファイルフォーマットを使う実行可能ファイルは、 ELF ヘッダーの後にプログラムヘッダーテーブルまたは セクションヘッダーテーブル
+(またはその両方) が続く構成である。 ELF ヘッダーは常にファイルのオフセット 0 にある。
+プログラムヘッダーテーブルとセクションヘッダーテーブルの ファイル内でのオフセットは、ELF ヘッダーに定義されている。 この 2
+つのテーブルはファイルの残りの部分の詳細を記述する。
.PP
.\" Applications which wish to process ELF binary files for their native
.\" architecture only should include
.\" or
.\" "ELF64_xxx".
.\" .PP
-ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ä¸\8aè¨\98ã\81®ã\83\98ã\83\83ã\83\80を C 言語の構造体で記述し、 また動的セクション・再配置可能セクション・シンボルテーブルの構造体も 含んでいる。
+ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ä¸\8aè¨\98ã\81®ã\83\98ã\83\83ã\83\80ã\83¼を C 言語の構造体で記述し、 また動的セクション・再配置可能セクション・シンボルテーブルの構造体も 含んでいる。
.PP
-以下の型は N ビットアーキテクチャで使われる (N=32,64 であり \fIElfN\fP は \fIElf32\fP または \fIElf64\fP を表し、
+以ä¸\8bã\81®å\9e\8bã\81¯ N ã\83\93ã\83\83ã\83\88ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ä½¿ã\82\8fã\82\8cã\82\8b (N=32,64 ã\81§ã\81\82ã\82\8a \fIElfN\fP ã\81¯ \fIElf32\fP ã\81¾ã\81\9fã\81¯ \fIElf64\fP ã\82\92表ã\81\97ã\80\81
\fIuintN_t\fP は \fIuint32_t\fP または \fIuint64_t\fP を表す):
.in +4n
.nf
必要な場合、データ構造体では明示的なパディング (padding, 詰め込み) が行なわれる。これは 4 バイトオブジェクトに対する 4
バイト配置を保証するためや、 構造体のサイズを 4 の倍数にするためなどである。
.PP
-ELF ヘッダは型 \fIElf32_Ehdr\fP または \fIElf64_Ehdr\fP で記述される:
+ELF ã\83\98ã\83\83ã\83\80ã\83¼ã\81¯å\9e\8b \fIElf32_Ehdr\fP ã\81¾ã\81\9fã\81¯ \fIElf64_Ehdr\fP ã\81§è¨\98è¿°ã\81\95ã\82\8cã\82\8b:
.in +4n
.nf
マジックナンバーの第 4 バイト。 \fBELFMAG3\fP で埋めなければならない。 (3: \(aqF\(aq)
.TP
\fBEI_CLASS\fP
-第 5 バイトは、このバイナリのアーキテクチャを示す:
+第 5 ã\83\90ã\82¤ã\83\88ã\81¯ã\80\81ã\81\93ã\81®ã\83\90ã\82¤ã\83\8aã\83ªã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\82\92示ã\81\99:
.RS 12
.\" .Bl -tag -width "ELFCLASSNONE" -compact
.TP 14
このクラスは不正である。
.TP
\fBELFCLASS32\fP
-32 ビットアーキテクチャを定義する。 ファイルと仮想アドレス空間が 4 ギガバイトまでのマシンをサポートする。
+32 ã\83\93ã\83\83ã\83\88ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\82\92å®\9a義ã\81\99ã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\81¨ä»®æ\83³ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81\8c 4 ã\82®ã\82¬ã\83\90ã\82¤ã\83\88ã\81¾ã\81§ã\81®ã\83\9eã\82·ã\83³ã\82\92ã\82µã\83\9dã\83¼ã\83\88ã\81\99ã\82\8bã\80\82
.TP
\fBELFCLASS64\fP
-64 ビットアーキテクチャを定義する。
+64 ã\83\93ã\83\83ã\83\88ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\82\92å®\9a義ã\81\99ã\82\8bã\80\82
.PD
.RE
.\" .El
.TP
\fBELFOSABI_ARM\fP
.\" 97
-ARM アーキテクチャ ABI.
+ARM アーキテクチャー ABI.
.TP
\fBELFOSABI_STANDALONE\fP
.\" 255
.\" .El
.TP
\fIe_machine\fP
-このメンバは個々のファイルに必要とされるアーキテクチャを指定する。 例:
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯å\80\8bã\80\85ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«å¿\85è¦\81ã\81¨ã\81\95ã\82\8cã\82\8bã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 ä¾\8b:
.RS 12
.\" .Bl -tag -width "EM_MIPS_RS4_BE" -compact
.TP 12
.RE
.TP
\fIe_entry\fP
-このメンバは、システムが最初に制御を渡す、 つまりプロセスを開始する仮想アドレスを指定する。 ファイルにエントリポイントが関連付けられていない場合、
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81\8cæ\9c\80å\88\9dã\81«å\88¶å¾¡ã\82\92渡ã\81\99ã\80\81 ã\81¤ã\81¾ã\82\8aã\83\97ã\83ã\82»ã\82¹ã\82\92é\96\8bå§\8bã\81\99ã\82\8bä»®æ\83³ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\83\9dã\82¤ã\83³ã\83\88ã\81\8cé\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\80\81
このメンバには 0 が入る。
.TP
\fIe_phoff\fP
-ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\81® ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88 (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d) ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\81\8cã\81ªã\81\84å ´å\90\88ã\80\81 ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81«ã\81¯
-0 が入る。
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81® ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88 (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d) ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81\8cã\81ªã\81\84å ´å\90\88ã\80\81
+このメンバには 0 が入る。
.TP
\fIe_shoff\fP
-ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\81® ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88 (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d) ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\81\8cã\81ªã\81\84å ´å\90\88ã\80\81 ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81«ã\81¯
-0 が入る。
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81® ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88 (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d) ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81\8cã\81ªã\81\84å ´å\90\88ã\80\81
+このメンバには 0 が入る。
.TP
\fIe_flags\fP
このメンバはファイルに関連付けられたプロセッサ固有のフラグを保持する。 フラグの名前は EF_`machine_flag' という形式である。
現在のところフラグは定義されていない。
.TP
\fIe_ehsize\fP
-このメンバは ELF ヘッダサイズ (バイト単位) を保持する。
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ ELF ã\83\98ã\83\83ã\83\80ã\83¼ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d) ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82
.TP
\fIe_phentsize\fP
-ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\81® 1 ã\82¨ã\83³ã\83\88ã\83ªã\81\82ã\81\9fã\82\8aã\81®ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d) ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8b; å\85¨ã\81¦ã\81®ã\82¨ã\83³ã\83\88ã\83ªは同じサイズである。
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81® 1 ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\82ã\81\9fã\82\8aã\81®ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d) ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8b; å\85¨ã\81¦ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼は同じサイズである。
.TP
\fIe_phnum\fP
-ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\81«ã\81\82ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\81®æ\95°ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\82\88ã\81£ã\81¦ \fIe_phentsize\fP ã\81¨ \fIe_phnum\fP ã\81®ç©\8dã\81\8cã\83\86ã\83¼ã\83\96ã\83«ã\82µã\82¤ã\82º
-(バイト単位) になる。 ファイルにプログラムヘッダがない場合、 \fIe_phnum\fP は値 0 を保持する。
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81«ã\81\82ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®æ\95°ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\82\88ã\81£ã\81¦ \fIe_phentsize\fP ã\81¨ \fIe_phnum\fP
+の積がテーブルサイズ (バイト単位) になる。 ファイルにプログラムヘッダーがない場合、 \fIe_phnum\fP は値 0 を保持する。
.IP
.\" This is a Linux extension, added in Linux 2.6.34.
.\" .Bl -tag -width "PN_XNUM"
-プログラムヘッダテーブルのエントリー数が \fBPN_XNUM\fP (0xffff) 以上の場合、
-このメンバは \fBPN_XNUM\fP (0xffff) になり、プログラムヘッダテーブルの
-エントリーの実際の数は、セクションヘッダテーブルの最初のエントリーの
-\fIsh_info\fP メンバに格納される。それ以外の場合、セクションヘッダテーブルの
+ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼æ\95°ã\81\8c \fBPN_XNUM\fP (0xffff) 以ä¸\8aã\81®å ´å\90\88ã\80\81
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ \fBPN_XNUM\fP (0xffff) ã\81«ã\81ªã\82\8aã\80\81ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81®
+ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å®\9fé\9a\9bã\81®æ\95°ã\81¯ã\80\81ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81®æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®
+\fIsh_info\fP ã\83¡ã\83³ã\83\90ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82ã\81\9dã\82\8c以å¤\96ã\81®å ´å\90\88ã\80\81ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81®
最初のエントリーの \fIsh_info\fP メンバには値 0 が格納される。
.RS 12
.TP 9
\fBPN_XNUM\fP
\fIe_phnum\fP が保持できる最大値を表し、 0xffff に定義されている。 \fIe_phnum\fP
-はプログラムヘッダの実際の数がどこに割り当てられているかを示す。
+ã\81¯ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\81®å®\9fé\9a\9bã\81®æ\95°ã\81\8cã\81©ã\81\93ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8bã\82\92示ã\81\99ã\80\82
.PD
.RE
.\" .El
.IP
.TP
\fIe_shentsize\fP
-ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\81®ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d) ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\81® 1 ã\81¤ã\81®ã\82¨ã\83³ã\83\88ã\83ªである;
-全てのエントリは同じサイズである。
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\81®ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d) ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81® 1 ã\81¤ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼である;
+å\85¨ã\81¦ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯å\90\8cã\81\98ã\82µã\82¤ã\82ºã\81§ã\81\82ã\82\8bã\80\82
.TP
\fIe_shnum\fP
-ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\81«ã\81\82ã\82\8bã\82¨ã\83³ã\83\88ã\83ªの数を保持する。 よって \fIe_shentsize\fP と \fIe_shnum\fP
-ã\81®ç©\8dã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d) ã\81«ã\81ªã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80テーブルがない場合、 \fIe_shnum\fP は値 0
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81«ã\81\82ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼の数を保持する。 よって \fIe_shentsize\fP と \fIe_shnum\fP
+ã\81®ç©\8dã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d) ã\81«ã\81ªã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼テーブルがない場合、 \fIe_shnum\fP は値 0
を保持する。
.IP
-セクションヘッダテーブルのエントリー数が \fBSHN_LORESERVE\fP (0xff00) 以上の場合、
-\fIe_shnum\fP には値 0 が入り、セクションヘッダテーブルのエントリーの実際の数は
-セクションヘッダテーブルの最初のエントリーの \fIsh_size\fP メンバに格納される。
-それ以外の場合、セクションヘッダテーブルの最初のエントリーの \fIsh_info\fP メンバ
+ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼æ\95°ã\81\8c \fBSHN_LORESERVE\fP (0xff00) 以ä¸\8aã\81®å ´å\90\88ã\80\81
+\fIe_shnum\fP ã\81«ã\81¯å\80¤ 0 ã\81\8cå\85¥ã\82\8aã\80\81ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å®\9fé\9a\9bã\81®æ\95°ã\81¯
+ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81®æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81® \fIsh_size\fP ã\83¡ã\83³ã\83\90ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82
+ã\81\9dã\82\8c以å¤\96ã\81®å ´å\90\88ã\80\81ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81®æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81® \fIsh_info\fP ã\83¡ã\83³ã\83\90
には値 0 が格納される。
.TP
\fIe_shstrndx\fP
-ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³å\90\8dæ\96\87å\97å\88\97ã\83\86ã\83¼ã\83\96ã\83«ã\81«é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\82¨ã\83³ã\83\88ã\83ªã\81® ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80テーブルインデックスを保持する。
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³å\90\8dæ\96\87å\97å\88\97ã\83\86ã\83¼ã\83\96ã\83«ã\81«é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81® ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼テーブルインデックスを保持する。
ファイルにセクション名文字列テーブルがない場合、 このメンバは値 \fBSHN_UNDEF\fP を保持する。 \fBSHN_UNDEF\fP.
.IP
セクション名前文字列テーブルのインデックスが \fBSHN_LORESERVE\fP (0xff00) 以上の
場合、このメンバには \fBSHN_XINDEX\fP (0xffff) が入り、セクション名前文字列
-テーブルの実際のインデックスはセクションヘッダテーブルの最初のエントリーの
-\fIsh_link\fP メンバに格納される。それ以外の場合、セクションヘッダテーブルの
+ã\83\86ã\83¼ã\83\96ã\83«ã\81®å®\9fé\9a\9bã\81®ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81®æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®
+\fIsh_link\fP ã\83¡ã\83³ã\83\90ã\81«æ ¼ç´\8dã\81\95ã\82\8cã\82\8bã\80\82ã\81\9dã\82\8c以å¤\96ã\81®å ´å\90\88ã\80\81ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81®
最初のエントリーの \fIsh_link\fP メンバには値 0 が格納される。
.RS 12
.\" .Bl -tag -width "SHN_LORESERVE"
.TP
\fBSHN_HIRESERVE\fP
この値は予約されたインデックスの範囲の上限を指定する。 \fBSHN_LORESERVE\fP と \fBSHN_HIRESERVE\fP は含まれる。
-ã\81\93ã\81®å\80¤ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81ªã\81\84ã\80\82 ã\81¤ã\81¾ã\82\8aã\80\81ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\81¯ äº\88ç´\84ã\81\95ã\82\8cã\81\9fã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81®ã\82¨ã\83³ã\83\88ã\83ªを \fI含まない 。\fP
+ã\81\93ã\81®å\80¤ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81ªã\81\84ã\80\82 ã\81¤ã\81¾ã\82\8aã\80\81ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81¯ äº\88ç´\84ã\81\95ã\82\8cã\81\9fã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼を \fI含まない 。\fP
.RE
.\" .El
.\" .El
.PP
-実行可能ファイルまたは共有オブジェクトファイルのプログラムヘッダテーブルは、 システムによるプログラム実行準備に必要な、
+å®\9fè¡\8cå\8f¯è\83½ã\83\95ã\82¡ã\82¤ã\83«ã\81¾ã\81\9fã\81¯å\85±æ\9c\89ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81¯ã\80\81 ã\82·ã\82¹ã\83\86ã\83 ã\81«ã\82\88ã\82\8bã\83\97ã\83ã\82°ã\83©ã\83 å®\9fè¡\8cæº\96å\82\99ã\81«å¿\85è¦\81ã\81ªã\80\81
セグメント等の情報を記述する構造体の配列である。 オブジェクトファイルの \fIセグメント\fP には 1 つ以上の \fIセクション\fP が含まれる。
-ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\81¯å®\9fè¡\8cå\8f¯è\83½ã\83\95ã\82¡ã\82¤ã\83«ã\81¨å\85±æ\9c\89ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\83\95ã\82¡ã\82¤ã\83«ã\81§ã\81®ã\81¿æ\84\8få\91³ã\82\92æ\8c\81ã\81¤ã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\81¯è\87ªèº«ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\82µã\82¤ã\82ºã\82\92 ELF ã\83\98ã\83\83ã\83\80の
-\fIe_phentsize\fP メンバと \fIe_phnum\fP メンバで指定する。 ELF プログラムヘッダは \fIElf32_Phdr\fP 型または
-\fIElf64_Phdr\fP 型で記述される (どちらになるかはアーキテクチャ依存):
+ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\81¯å®\9fè¡\8cå\8f¯è\83½ã\83\95ã\82¡ã\82¤ã\83«ã\81¨å\85±æ\9c\89ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\83\95ã\82¡ã\82¤ã\83«ã\81§ã\81®ã\81¿æ\84\8få\91³ã\82\92æ\8c\81ã\81¤ã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\81¯è\87ªèº«ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\82µã\82¤ã\82ºã\82\92 ELF ã\83\98ã\83\83ã\83\80ã\83¼の
+\fIe_phentsize\fP ã\83¡ã\83³ã\83\90ã\81¨ \fIe_phnum\fP ã\83¡ã\83³ã\83\90ã\81§æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 ELF ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\81¯ \fIElf32_Phdr\fP å\9e\8bã\81¾ã\81\9fã\81¯
+\fIElf64_Phdr\fP 型で記述される (どちらになるかはアーキテクチャー依存):
.in +4n
.nf
.in
.PP
.\" .Bl -tag -width "p_offset"
-32 ビットと 64 ビットのプログラムヘッダの主な違いは、構造体における \fIp_flags\fP メンバの位置にある。
+32 ã\83\93ã\83\83ã\83\88ã\81¨ 64 ã\83\93ã\83\83ã\83\88ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\81®ä¸»ã\81ªé\81\95ã\81\84ã\81¯ã\80\81æ§\8bé\80 ä½\93ã\81«ã\81\8aã\81\91ã\82\8b \fIp_flags\fP ã\83¡ã\83³ã\83\90ã\81®ä½\8dç½®ã\81«ã\81\82ã\82\8bã\80\82
.TP 12
\fIp_type\fP
.\" .Bl -tag -width "PT_DYNAMIC"
.RS 12
.TP 12
\fBPT_NULL\fP
-ã\81\93ã\81®é\85\8då\88\97è¦\81ç´ ã\81¯ä½¿ç\94¨ã\81\95ã\82\8cã\81¦ã\81\8aã\82\89ã\81\9aã\80\81ã\81\9dã\81®ä»\96ã\81®ã\83¡ã\83³ã\83\90ã\81®å\80¤ã\81¯æ\9cªå®\9a義ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\81«ã\82\88ã\82\8aã\80\81ã\81\93ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\81®ã\82¨ã\83³ã\83\88ã\83ªは無視される。
+ã\81\93ã\81®é\85\8då\88\97è¦\81ç´ ã\81¯ä½¿ç\94¨ã\81\95ã\82\8cã\81¦ã\81\8aã\82\89ã\81\9aã\80\81ã\81\9dã\81®ä»\96ã\81®ã\83¡ã\83³ã\83\90ã\81®å\80¤ã\81¯æ\9cªå®\9a義ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\81«ã\82\88ã\82\8aã\80\81ã\81\93ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼は無視される。
.TP
\fBPT_LOAD\fP
この配列要素は \fIp_filesz\fP と \fIp_memsz\fP で記述されるロード可能セグメントを指定する。
-ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89ã\81®ã\83\90ã\82¤ã\83\88ã\83\87ã\83¼ã\82¿ã\81\8cã\80\81ã\81\93ã\81®ã\83¡ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®å\85\88é ã\81\8bã\82\89ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\82\8bã\80\82 ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®ã\83¡ã\83¢ã\83ªサイズ \fISy\fPp_memsz がファイルサイズ
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89ã\81®ã\83\90ã\82¤ã\83\88ã\83\87ã\83¼ã\82¿ã\81\8cã\80\81ã\81\93ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®å\85\88é ã\81\8bã\82\89ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\82\8bã\80\82 ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\83¼サイズ \fISy\fPp_memsz がファイルサイズ
\fISy\fPp_filesz より大きい場合、 「余った」バイトは値 0 となり、 そのセグメント初期化データの後ろに置かれると定められている。
-ã\83\95ã\82¡ã\82¤ã\83«ã\82µã\82¤ã\82ºã\81¯ã\83¡ã\83¢ã\83ªã\82µã\82¤ã\82ºã\82\88ã\82\8a大ã\81\8dã\81\8fã\81¦ã\81¯ã\81\84ã\81\91ã\81ªã\81\84ã\80\82 ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\83ã\83¼ã\83\89å\8f¯è\83½ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82¨ã\83³ã\83\88ã\83ªは、 \fIp_vaddr\fP
+ã\83\95ã\82¡ã\82¤ã\83«ã\82µã\82¤ã\82ºã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\82µã\82¤ã\82ºã\82\88ã\82\8a大ã\81\8dã\81\8fã\81¦ã\81¯ã\81\84ã\81\91ã\81ªã\81\84ã\80\82 ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\83ã\83¼ã\83\89å\8f¯è\83½ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82¨ã\83³ã\83\88ã\83ªã\83¼は、 \fIp_vaddr\fP
メンバの昇順にソートされて出現する。
.TP
\fBPT_DYNAMIC\fP
この配列要素は動的リンク情報を指定する。
.TP
\fBPT_INTERP\fP
-ã\81\93ã\81®é\85\8då\88\97è¦\81ç´ ã\81¯ã\80\81ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿として起動されるパス名 (ヌル文字終端) の位置とサイズを指定する。 このセグメント型は
+ã\81\93ã\81®é\85\8då\88\97è¦\81ç´ ã\81¯ã\80\81ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼として起動されるパス名 (ヌル文字終端) の位置とサイズを指定する。 このセグメント型は
(共有オブジェクトにもあるかも知れないが) 実行可能ファイルでのみ意味を持つ。 ただし、このセグメント型は 1 つのファイルに 2
-回以上出現してはならない。 もし存在する場合、このセグメント型は 全てのロード可能セグメントエントリより前になければならない。
+å\9b\9e以ä¸\8aå\87ºç\8f¾ã\81\97ã\81¦ã\81¯ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\82\82ã\81\97å\98å\9c¨ã\81\99ã\82\8bå ´å\90\88ã\80\81ã\81\93ã\81®ã\82»ã\82°ã\83¡ã\83³ã\83\88å\9e\8bã\81¯ å\85¨ã\81¦ã\81®ã\83ã\83¼ã\83\89å\8f¯è\83½ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\88ã\82\8aå\89\8dã\81«ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.TP
\fBPT_NOTE\fP
この配列要素は補足情報 (auxiliary information) の位置とサイズを指定する。
このセグメント型は予約されているが、意味は指定されていない。 この型の配列要素を保持するプログラムは ABI に準拠しない。
.TP
\fBPT_PHDR\fP
-この配列要素は、もし存在しているならば、 ファイルおよびプログラムのメモリイメージ双方における プログラムヘッダテーブル自身の位置とサイズを指定する。
-このセグメント型は 1 つのファイルに 2 回以上出現してはならない。 さらに、このセグメント型が存在してもよいのは、プログラムヘッダテーブルが
-プログラムのメモリイメージの一部である場合のみである。 もし存在する場合、これは全てのロード可能セグメントエントリより 前になければならない。
+この配列要素は、もし存在しているならば、 ファイルおよびプログラムのメモリーイメージ双方における
+プログラムヘッダーテーブル自身の位置とサイズを指定する。 このセグメント型は 1 つのファイルに 2 回以上出現してはならない。
+さらに、このセグメント型が存在してもよいのは、プログラムヘッダーテーブルが プログラムのメモリーイメージの一部である場合のみである。
+もし存在する場合、これは全てのロード可能セグメントエントリーより 前になければならない。
.TP
\fBPT_LOPROC\fP
この値以上で \fBPT_HIPROC\fP 以下の値はプロセッサ固有の意味に予約されている。
このメンバは、セグメントの先頭バイトがある (ファイル先頭からの) オフセットを保持する。
.TP
\fIp_vaddr\fP
-このメンバは、セグメントの先頭バイトがある メモリの仮想アドレスを保持する。
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\80\81ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®å\85\88é ã\83\90ã\82¤ã\83\88ã\81\8cã\81\82ã\82\8b ã\83¡ã\83¢ã\83ªã\83¼ã\81®ä»®æ\83³ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82
.TP
\fIp_paddr\fP
物理アドレスが意味をもつシステムでは、 このメンバはセグメントの物理アドレスとして予約されている。 BSD ではこのメンバは使用されない。0
このメンバはセグメントのファイルイメージのバイト数を保持する。 これは 0 でもよい。
.TP
\fIp_memsz\fP
-このメンバはセグメントのメモリイメージのバイト数を保持する。 これは 0 でもよい。
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82¤ã\83¡ã\83¼ã\82¸ã\81®ã\83\90ã\82¤ã\83\88æ\95°ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ 0 ã\81§ã\82\82ã\82\88ã\81\84ã\80\82
.TP
\fIp_flags\fP
.\" .Bl -tag -width "PF_X" -compact
.TP
\fIp_align\fP
.\" .El
-このメンバは、セグメントがメモリおよびファイルにおいて配置 (align) される値を保持する。
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\80\81ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81\8cã\83¡ã\83¢ã\83ªã\83¼ã\81\8aã\82\88ã\81³ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81\8aã\81\84ã\81¦é\85\8dç½® (align) ã\81\95ã\82\8cã\82\8bå\80¤ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82
ロード可能プロセスセグメントは、ページサイズを法として \fIp_vaddr\fP と \fIp_offset\fP と合同でなければならない
(訳注:「p_vaddr mod ページサイズ = p_offset mod ページサイズ」 でなければならない)。。 0 と 1
という値は配置が必要ないことを意味する。 それ以外の場合、 \fIp_align\fP は正で 2 の整数乗でなければならず、 \fIp_vaddr\fP は
\fIp_align\fP を法として \fIp_offset\fP と合同でなければならない (訳注:「p_vaddr mod p_align =
p_offset mod p_align」でなければならない)。
.PP
-ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\81«ã\81¯ã\80\81 å\85¨ã\81¦ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®å ´æ\89\80ã\81\8cè¨\98è¿°ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80テーブルは \fIElf32_Shdr\fP
-構造体または \fIElf64_Shdr\fP 構造体の配列である。 ELF ヘッダの \fIe_shoff\fP メンバはファイルの先頭から
-ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\81¸ã\81®ã\83\90ã\82¤ã\83\88ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81§ã\81\82ã\82\8bã\80\82 \fIe_shnum\fP ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\81«å\90«ã\81¾ã\82\8cã\82\8bã\82¨ã\83³ã\83\88ã\83ªの数を保持する。
-\fIe_shentsize\fP は各エントリのサイズ (バイト単位) を保持する。
+ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81«ã\81¯ã\80\81 å\85¨ã\81¦ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®å ´æ\89\80ã\81\8cè¨\98è¿°ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼テーブルは \fIElf32_Shdr\fP
+æ§\8bé\80 ä½\93ã\81¾ã\81\9fã\81¯ \fIElf64_Shdr\fP æ§\8bé\80 ä½\93ã\81®é\85\8då\88\97ã\81§ã\81\82ã\82\8bã\80\82 ELF ã\83\98ã\83\83ã\83\80ã\83¼ã\81® \fIe_shoff\fP ã\83¡ã\83³ã\83\90ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\85\88é ã\81\8bã\82\89
+ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81¸ã\81®ã\83\90ã\82¤ã\83\88ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81§ã\81\82ã\82\8bã\80\82 \fIe_shnum\fP ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81«å\90«ã\81¾ã\82\8cã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼の数を保持する。
+\fIe_shentsize\fP ã\81¯å\90\84ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d) ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82
.PP
.\" .Bl -tag -width "SHN_LORESERVE"
-セクションヘッダテーブルインデックスは、この配列の添字である。
-いくつかのセクションヘッダテーブルインデックスは予約されている。予約されて
+ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81¯ã\80\81ã\81\93ã\81®é\85\8då\88\97ã\81®æ·»å\97ã\81§ã\81\82ã\82\8bã\80\82
+ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81¯äº\88ç´\84ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82äº\88ç´\84ã\81\95ã\82\8cã\81¦
いるのは、最初のエントリーと、\fBSHN_LORESERVE\fP と \fBSHN_HIRESERVE\fP の間の
インデックスである。
最初のエントリーは、ELF 拡張で \fIe_phnum\fP, \fIe_shnum\fP, \fIe_strndx\fP に使用
.TP
\fBSHN_HIRESERVE\fP
この値は予約済みのインデックス領域の上限を指定する。 システムは \fBSHN_LORESERVE\fP と \fBSHN_HIRESERVE\fP
-ã\82\92å\90«ã\82\80ç¯\84å\9b²ã\82\92äº\88ç´\84ã\81\99ã\82\8bã\80\82 ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83\86ã\83¼ã\83\96ã\83«ã\81¯äº\88ç´\84ã\81\95ã\82\8cã\81\9fã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªを持たない。
+ã\82\92å\90«ã\82\80ç¯\84å\9b²ã\82\92äº\88ç´\84ã\81\99ã\82\8bã\80\82 ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\81¯äº\88ç´\84ã\81\95ã\82\8cã\81\9fã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼を持たない。
.RE
.\" .El
.PP
-セクションヘッダは以下の構造体を持つ:
+ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\81¯ä»¥ä¸\8bã\81®æ§\8bé\80 ä½\93ã\82\92æ\8c\81ã\81¤:
.in +4n
.nf
.in
.PP
.\" .Bl -tag -width "sh_addralign"
-32 ビットと 64 ビットのセクションヘッダには実際の違いはない。
+32 ã\83\93ã\83\83ã\83\88ã\81¨ 64 ã\83\93ã\83\83ã\83\88ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\81«ã\81¯å®\9fé\9a\9bã\81®é\81\95ã\81\84ã\81¯ã\81ªã\81\84ã\80\82
.TP 10
\fIsh_name\fP
-このメンバはセクション名を定める。 この値はセクションヘッダ文字列テーブルセクションのインデックスであり、 ヌル文字で終端された文字列の場所を示す。
+このメンバはセクション名を定める。 この値はセクションヘッダー文字列テーブルセクションのインデックスであり、 ヌル文字で終端された文字列の場所を示す。
.TP
\fIsh_type\fP
.\" .Bl -tag -width "SHT_PROGBITS"
-このメンバはセクションの内容と意味が含まれるカテゴリを示す。
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®å\86\85容ã\81¨æ\84\8få\91³ã\81\8cå\90«ã\81¾ã\82\8cã\82\8bã\82«ã\83\86ã\82´ã\83ªã\83¼ã\82\92示ã\81\99ã\80\82
.RS 10
.TP 15
\fBSHT_NULL\fP
-ã\81\93ã\81®å\80¤ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\81\8cä¸\8dæ´»æ\80§ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82 ã\81\93ã\82\8cã\81¯é\96¢é\80£ã\81\99ã\82\8bã\82»ã\82¯ã\82·ã\83§ã\83³ã\82\92æ\8c\81ã\81\9fã\81ªã\81\84ã\80\82 ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80の他のメンバは、未定義の値を持つ。
+ã\81\93ã\81®å\80¤ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\81\8cä¸\8dæ´»æ\80§ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82 ã\81\93ã\82\8cã\81¯é\96¢é\80£ã\81\99ã\82\8bã\82»ã\82¯ã\82·ã\83§ã\83³ã\82\92æ\8c\81ã\81\9fã\81ªã\81\84ã\80\82 ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼の他のメンバは、未定義の値を持つ。
.TP
\fBSHT_PROGBITS\fP
このセクションはプログラムにより定義される情報を保持する。 この情報の形式と意味は、ひとえにプログラムによって決定される。
このセクションは文字列テーブルを保持する。 オブジェクトファイルは複数の文字列テーブルセクションを持つことができる。
.TP
\fBSHT_RELA\fP
-ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯æ\98\8e示ç\9a\84ã\81ªå\8a æ\95° (addend) ã\82\92æ\8c\81ã\81¤å\86\8dé\85\8dç½®ã\82¨ã\83³ã\83\88ã\83ªã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 å\86\8dé\85\8dç½®ã\82¨ã\83³ã\83\88ã\83ªã\81®å\9e\8bã\81¯ã\80\81ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\83\95ã\82¡ã\82¤ã\83«ã\81® 32 ã\83\93ã\83\83ã\83\88ã\82¯ã\83©ã\82¹ã\81§ã\81¯
-\fIElf32_Rela\fP である。 オブジェクトファイルは複数の再配置セクションを持つことができる。
+ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯æ\98\8e示ç\9a\84ã\81ªå\8a æ\95° (addend) ã\82\92æ\8c\81ã\81¤å\86\8dé\85\8dç½®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 å\86\8dé\85\8dç½®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å\9e\8bã\81¯ã\80\81ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\83\95ã\82¡ã\82¤ã\83«ã\81® 32
+ビットクラスでは \fIElf32_Rela\fP である。 オブジェクトファイルは複数の再配置セクションを持つことができる。
.TP
\fBSHT_HASH\fP
このセクションはシンボルハッシュテーブルを保持する。 動的リンクされるオブジェクトは、 シンボルハッシュテーブルを含んでいなければならない。
このセクションはプロセス実行中に書き込み可能なデータを含む。
.TP
\fBSHF_ALLOC\fP
-ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯ã\83\97ã\83ã\82»ã\82¹å®\9fè¡\8cä¸ã\81«ã\83¡ã\83¢ã\83ªã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82 å\88¶å¾¡ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®ä¸ã\81«ã\81¯ã\80\81ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83¡ã\83¢ã\83ªイメージには 存在しないものもある。
+ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯ã\83\97ã\83ã\82»ã\82¹å®\9fè¡\8cä¸ã\81«ã\83¡ã\83¢ã\83ªã\83¼ã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82 å\88¶å¾¡ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®ä¸ã\81«ã\81¯ã\80\81ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83¡ã\83¢ã\83ªã\83¼イメージには 存在しないものもある。
そうしたセクションの場合、この属性はオフである。
.TP
\fBSHF_EXECINSTR\fP
.\" .El
.TP
\fIsh_addr\fP
-このセクションがプロセスのメモリイメージにある場合、 このメンバはセクションの最初のバイトが存在するアドレスを保持する。 それ以外の場合、このメンバは
+ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81\8cã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82¤ã\83¡ã\83¼ã\82¸ã\81«ã\81\82ã\82\8bå ´å\90\88ã\80\81 ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®æ\9c\80å\88\9dã\81®ã\83\90ã\82¤ã\83\88ã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\82¢ã\83\89ã\83¬ã\82¹ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\81\9dã\82\8c以å¤\96ã\81®å ´å\90\88ã\80\81ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯
0 である。
.TP
\fIsh_offset\fP
\fIsh_size\fP バイトを使用する。 タイプが \fBSHT_NOBITS\fP のセクションはサイズが 0 でないが、ファイルの領域を使用しない。
.TP
\fIsh_link\fP
-このメンバは、セクションヘッダテーブルインデックスリンクを保持する。 この解釈はセクションタイプに依存する。
+ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\80\81ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\86ã\83¼ã\83\96ã\83«ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\83ªã\83³ã\82¯ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®è§£é\87\88ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\82¿ã\82¤ã\83\97ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.TP
\fIsh_info\fP
このメンバは追加情報を保持する。 この解釈はセクションタイプに依存する。
.TP
\fIsh_entsize\fP
.\" .El
-ã\82·ã\83³ã\83\9cã\83«ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\82\88ã\81\86ã\81ªå\9bºå®\9aã\82µã\82¤ã\82ºã\82¨ã\83³ã\83\88ã\83ªã\81®ã\83\86ã\83¼ã\83\96ã\83«ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8b ã\82»ã\82¯ã\82·ã\83§ã\83³ã\82\82ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\82\88ã\81\86ã\81ªã\82»ã\82¯ã\82·ã\83§ã\83³ã\81§ã\81¯ã\80\81 ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯å\90\84ã\82¨ã\83³ã\83\88ã\83ªのサイズ
-(バイト単位) を表す。 このメンバが 0 の場合、 そのセクションは固定サイズエントリのテーブルを保持しない。
+ã\82·ã\83³ã\83\9cã\83«ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\82\88ã\81\86ã\81ªå\9bºå®\9aã\82µã\82¤ã\82ºã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\83\86ã\83¼ã\83\96ã\83«ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8b ã\82»ã\82¯ã\82·ã\83§ã\83³ã\82\82ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\82\88ã\81\86ã\81ªã\82»ã\82¯ã\82·ã\83§ã\83³ã\81§ã\81¯ã\80\81 ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81¯å\90\84ã\82¨ã\83³ã\83\88ã\83ªã\83¼のサイズ
+(ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d) ã\82\92表ã\81\99ã\80\82 ã\81\93ã\81®ã\83¡ã\83³ã\83\90ã\81\8c 0 ã\81®å ´å\90\88ã\80\81 ã\81\9dã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯å\9bºå®\9aã\82µã\82¤ã\82ºã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\83\86ã\83¼ã\83\96ã\83«ã\82\92ä¿\9dæ\8c\81ã\81\97ã\81ªã\81\84ã\80\82
.PP
.\" .Bl -tag -width ".shstrtab"
さまざまなセクションにプログラム情報・制御情報が保持される:
.TP 10
\&\fI.bss\fP
-このセクションはプログラムのメモリイメージに配置される 非初期化データを保持する。 定義上、システムはプログラムの実行開始時に、データを 0
+ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82¤ã\83¡ã\83¼ã\82¸ã\81«é\85\8dç½®ã\81\95ã\82\8cã\82\8b é\9d\9eå\88\9dæ\9c\9få\8c\96ã\83\87ã\83¼ã\82¿ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 å®\9a義ä¸\8aã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81¯ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®å®\9fè¡\8cé\96\8bå§\8bæ\99\82ã\81«ã\80\81ã\83\87ã\83¼ã\82¿ã\82\92 0
で初期化する。 このセクションのタイプは \fBSHT_NOBITS\fP である。 属性タイプは \fBSHF_ALLOC\fP と \fBSHF_WRITE\fP
である。
.TP
このセクションはバージョン制御情報を保持する。 このセクションのタイプは \fBSHT_PROGBITS\fP である。 属性タイプは使用されない。
.TP
\&\fI.ctors\fP
-このセクションは C++ コンストラクタ関数への初期化されたポインタを保持する。 このセクションのタイプは \fBSHT_PROGBITS\fP である。
+このセクションは C++ コンストラクター関数への初期化されたポインターを保持する。 このセクションのタイプは \fBSHT_PROGBITS\fP である。
属性タイプは \fBSHF_ALLOC\fP と \fBSHF_WRITE\fP である。
.TP
\&\fI.data\fP
-ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®ã\83¡ã\83¢ã\83ªã\82¤ã\83¡ã\83¼ã\82¸ã\81«é\85\8dç½®ã\81\95ã\82\8cã\82\8b å\88\9dæ\9c\9få\8c\96æ¸\88ã\81¿ã\83\87ã\83¼ã\82¿ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®ã\82¿ã\82¤ã\83\97ã\81¯ \fBSHT_PROGBITS\fP ã\81§ã\81\82ã\82\8bã\80\82
-属性タイプは \fBSHF_ALLOC\fP と \fBSHF_WRITE\fP である。
+ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82¤ã\83¡ã\83¼ã\82¸ã\81«é\85\8dç½®ã\81\95ã\82\8cã\82\8b å\88\9dæ\9c\9få\8c\96æ¸\88ã\81¿ã\83\87ã\83¼ã\82¿ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®ã\82¿ã\82¤ã\83\97ã\81¯ \fBSHT_PROGBITS\fP
+である。 属性タイプは \fBSHF_ALLOC\fP と \fBSHF_WRITE\fP である。
.TP
\&\fI.data1\fP
-ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®ã\83¡ã\83¢ã\83ªã\82¤ã\83¡ã\83¼ã\82¸ã\81«é\85\8dç½®ã\81\95ã\82\8cã\82\8b å\88\9dæ\9c\9få\8c\96æ¸\88ã\81¿ã\83\87ã\83¼ã\82¿ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®ã\82¿ã\82¤ã\83\97ã\81¯ \fBSHT_PROGBITS\fP ã\81§ã\81\82ã\82\8bã\80\82
-属性タイプは \fBSHF_ALLOC\fP と \fBSHF_WRITE\fP である。
+ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82¤ã\83¡ã\83¼ã\82¸ã\81«é\85\8dç½®ã\81\95ã\82\8cã\82\8b å\88\9dæ\9c\9få\8c\96æ¸\88ã\81¿ã\83\87ã\83¼ã\82¿ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®ã\82¿ã\82¤ã\83\97ã\81¯ \fBSHT_PROGBITS\fP
+である。 属性タイプは \fBSHF_ALLOC\fP と \fBSHF_WRITE\fP である。
.TP
\&\fI.debug\fP
このセクションはシンボリックデバッグ用の情報を保持する。 その内容は指定されていない。 このセクションのタイプは \fBSHT_PROGBITS\fP
である。 属性タイプは使用されない。
.TP
\&\fI.dtors\fP
-このセクションは C++ デストラクタ関数への初期化されたポインタを保持する。 このセクションのタイプは \fBSHT_PROGBITS\fP である。
+ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯ C++ ã\83\87ã\82¹ã\83\88ã\83©ã\82¯ã\82¿é\96¢æ\95°ã\81¸ã\81®å\88\9dæ\9c\9få\8c\96ã\81\95ã\82\8cã\81\9fã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®ã\82¿ã\82¤ã\83\97ã\81¯ \fBSHT_PROGBITS\fP ã\81§ã\81\82ã\82\8bã\80\82
属性タイプは \fBSHF_ALLOC\fP と \fBSHF_WRITE\fP である。
.TP
\&\fI.dynamic\fP
ビットが設定されるか否かはプロセッサによる。 このセクションのタイプは \fBSHT_DYNAMIC\fP である。 上記の属性を参照すること。
.TP
\&\fI.dynstr\fP
-このセクションは動的リンクに必要な文字列を保持する。 最も一般的には、この文字列はシンボルテーブルエントリと 関連づけられた名前を表す。
+ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯å\8b\95ç\9a\84ã\83ªã\83³ã\82¯ã\81«å¿\85è¦\81ã\81ªæ\96\87å\97å\88\97ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 æ\9c\80ã\82\82ä¸\80è\88¬ç\9a\84ã\81«ã\81¯ã\80\81ã\81\93ã\81®æ\96\87å\97å\88\97ã\81¯ã\82·ã\83³ã\83\9cã\83«ã\83\86ã\83¼ã\83\96ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¨ é\96¢é\80£ã\81¥ã\81\91ã\82\89ã\82\8cã\81\9få\90\8då\89\8dã\82\92表ã\81\99ã\80\82
このセクションのタイプは \fBSHT_STRTAB\fP である。 使用される属性タイプは \fBSHF_ALLOC\fP である。
.TP
\&\fI.dynsym\fP
\fBSHF_EXECINSTR\fP である。
.TP
\&\fI.gnu.version\fP
-ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\83»ã\82·ã\83³ã\83\9cã\83«ã\83»テーブルを保持する。 その内容は \fIElfN_Half\fP 要素の配列である。 このセクションのタイプは
+ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\82·ã\83³ã\83\9cã\83«テーブルを保持する。 その内容は \fIElfN_Half\fP 要素の配列である。 このセクションのタイプは
\fBSHT_GNU_versym\fP である。 使用される属性タイプは \fBSHF_ALLOC\fP である。
.TP
\&\fI.gnu.version_d\fP
.TP
\&\fI.init\fP
このセクションはプロセス初期化コードに配置される実行可能命令を保持する。 プログラムが実行を開始すると、
-システムはメインプログラムエントリポイントを呼び出す前に、 このセクションにあるコードを配置して実行する。 このセクションはのタイプは
+ã\82·ã\82¹ã\83\86ã\83 ã\81¯ã\83¡ã\82¤ã\83³ã\83\97ã\83ã\82°ã\83©ã\83 ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\83\9dã\82¤ã\83³ã\83\88ã\82\92å\91¼ã\81³å\87ºã\81\99å\89\8dã\81«ã\80\81 ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81«ã\81\82ã\82\8bã\82³ã\83¼ã\83\89ã\82\92é\85\8dç½®ã\81\97ã\81¦å®\9fè¡\8cã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯ã\81®ã\82¿ã\82¤ã\83\97ã\81¯
\fBSHT_PROGBITS\fP である。 使用される属性は \fBSHF_ALLOC\fP と \fBSHF_EXECINSTR\fP である。
.TP
\&\fI.interp\fP
-ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯ã\83\97ã\83ã\82°ã\83©ã\83 ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿のパス名を保持する。 ファイルにこのセクションを含むロード可能セグメントがある場合、 そのセクションの属性には
+ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯ã\83\97ã\83ã\82°ã\83©ã\83 ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼のパス名を保持する。 ファイルにこのセクションを含むロード可能セグメントがある場合、 そのセクションの属性には
\fBSHF_ALLOC\fP ビットが含まれる。 それ以外の場合このビットはオフになる。 このセクションのタイプは \fBSHT_PROGBITS\fP である。
.TP
\&\fI.line\fP
.TP
\&\fI.note.GNU\-stack\fP
このセクションは Linux のオブジェクトファイルで スタック属性を宣言するのに使用される。 セクションのタイプは \fBSHT_PROGBITS\fP
-である。使用される属性は \fBSHF_EXECINSTR\fP だけである。この属性は GNU リンカに対して オブジェクトファイルが実行可能なスタック
+ã\81§ã\81\82ã\82\8bã\80\82使ç\94¨ã\81\95ã\82\8cã\82\8bå±\9eæ\80§ã\81¯ \fBSHF_EXECINSTR\fP ã\81 ã\81\91ã\81§ã\81\82ã\82\8bã\80\82ã\81\93ã\81®å±\9eæ\80§ã\81¯ GNU ã\83ªã\83³ã\82«ã\83¼ã\81«å¯¾ã\81\97ã\81¦ ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå®\9fè¡\8cå\8f¯è\83½ã\81ªã\82¹ã\82¿ã\83\83ã\82¯
(executable stack) を必要とする 示すものである。
.TP
\&\fI.plt\fP
このセクションはセクション名を保持する。 このセクションのタイプは \fBSHT_STRTAB\fP である。 属性タイプは使用されない。
.TP
\&\fI.strtab\fP
-このセクションは文字列を保持する。 最も一般的なのは、シンボルテーブルエントリに関連づけられた 名前を表す文字列である。
+ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¯æ\96\87å\97å\88\97ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 æ\9c\80ã\82\82ä¸\80è\88¬ç\9a\84ã\81ªã\81®ã\81¯ã\80\81ã\82·ã\83³ã\83\9cã\83«ã\83\86ã\83¼ã\83\96ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81«é\96¢é\80£ã\81¥ã\81\91ã\82\89ã\82\8cã\81\9f å\90\8då\89\8dã\82\92表ã\81\99æ\96\87å\97å\88\97ã\81§ã\81\82ã\82\8bã\80\82
ファイルがシンボル文字列テーブルを含むロード可能セグメントを持つ場合、 セクションの属性は \fBSHF_ALLOC\fP ビットを含む。
それ以外の場合、そのビットはオフである。 このセクションのタイプは \fBSHT_STRTAB\fP である。
.TP
このセクションはプログラムの "テキスト" または実行可能命令を保持する。 セクションのタイプは \fBSHT_PROGBITS\fP である。
使用される属性は \fBSHF_ALLOC\fP と \fBSHF_EXECINSTR\fP である。
.PP
-文字列テーブルセクションはヌル文字で終端されたキャラクタ配列 (通常文字列と呼ばれるもの) を保持する。 オブジェクトファイルはこれらの文字列を
+文字列テーブルセクションはヌル文字で終端されたキャラクター配列 (通常文字列と呼ばれるもの) を保持する。 オブジェクトファイルはこれらの文字列を
シンボル名とセクション名を表すために使う。 文字列は、文字列テーブルセクションへのインデックスとして参照される。 インデックス 0
の最初のバイトは、ヌルバイト (\(aq\e0\(aq) を 保持すると定義されている。
同様に文字列テーブルの最後のバイトもヌル文字を保持すると定義されている。 これは全ての文字列がヌルバイトで終端されていることを保証するためである。
シンボルは関数またはその他の実行コードに関連づけられている。
.TP
\fBSTT_SECTION\fP
-シンボルはセクションに関連づけられている。 このタイプのシンボルテーブルエントリは、 主として再配置のために存在し、通常は \fBSTB_LOCAL\fP
+ã\82·ã\83³ã\83\9cã\83«ã\81¯ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81«é\96¢é\80£ã\81¥ã\81\91ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\81®ã\82¿ã\82¤ã\83\97ã\81®ã\82·ã\83³ã\83\9cã\83«ã\83\86ã\83¼ã\83\96ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ã\80\81 主ã\81¨ã\81\97ã\81¦å\86\8dé\85\8dç½®ã\81®ã\81\9fã\82\81ã\81«å\98å\9c¨ã\81\97ã\80\81é\80\9a常ã\81¯ \fBSTB_LOCAL\fP
バインディングを持つ。
.TP
\fBSTT_FILE\fP
.TP
\fIst_shndx\fP
.\" .El
-各シンボルテーブルエントリは、いくつかのセクションに関連して "定義されている"。 このメンバは関連するセクションヘッダテーブルインデックスを保持する。
+各シンボルテーブルエントリーは、いくつかのセクションに関連して "定義されている"。
+このメンバは関連するセクションヘッダーテーブルインデックスを保持する。
.PP
再配置はシンボル参照とシンボル定義を結合するプロセスである。 再配置可能ファイルはセクションの内容をどのように修正するかに関する
情報を持たなければならない。 これにより、実行可能ファイルと共有オブジェクトファイルは
-プロセスのプログラムイメージについての正しい情報を持つことができる。 再配置エントリは以下のようなデータである。
+ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\82¤ã\83¡ã\83¼ã\82¸ã\81«ã\81¤ã\81\84ã\81¦ã\81®æ£ã\81\97ã\81\84æ\83\85å ±ã\82\92æ\8c\81ã\81¤ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 å\86\8dé\85\8dç½®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ä»¥ä¸\8bã\81®ã\82\88ã\81\86ã\81ªã\83\87ã\83¼ã\82¿ã\81§ã\81\82ã\82\8bã\80\82
.PP
加数を必要としない再配置構造体。
.in +4n
.TP
\fIr_info\fP
このメンバは、再配置が行われなければならないシンボルテーブルインデックスと、 適用される再配置のタイプの両方を与える。
-å\86\8dé\85\8dç½®ã\82¿ã\82¤ã\83\97ã\81¯ã\83\97ã\83ã\82»ã\83\83ã\82µæ¯\8eã\81«ç\95°ã\81ªã\82\8bã\80\82 ã\83\86ã\82ã\82¹ã\83\88ã\81\8cå\86\8dé\85\8dç½®ã\82¨ã\83³ã\83\88ã\83ªã\81®å\86\8dé\85\8dç½®ã\82¿ã\82¤ã\83\97 ã\81¾ã\81\9fã\81¯ã\82·ã\83³ã\83\9cã\83«ã\83\86ã\83¼ã\83\96ã\83«ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81 ã\81\9dã\82\8cã\81\9eã\82\8cã\82¨ã\83³ã\83\88ã\83ªã\81®
-\fIr_info\fP メンバに対して、それぞれ \fBELF[32|64]_R_TYPE\fP と \fBELF[32|64]_R_SYM\fP
+å\86\8dé\85\8dç½®ã\82¿ã\82¤ã\83\97ã\81¯ã\83\97ã\83ã\82»ã\83\83ã\82µæ¯\8eã\81«ç\95°ã\81ªã\82\8bã\80\82 ã\83\86ã\82ã\82¹ã\83\88ã\81\8cå\86\8dé\85\8dç½®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å\86\8dé\85\8dç½®ã\82¿ã\82¤ã\83\97 ã\81¾ã\81\9fã\81¯ã\82·ã\83³ã\83\9cã\83«ã\83\86ã\83¼ã\83\96ã\83«ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81
+それぞれエントリーの \fIr_info\fP メンバに対して、それぞれ \fBELF[32|64]_R_TYPE\fP と \fBELF[32|64]_R_SYM\fP
を適用した結果を意味する。
.TP
\fIr_addend\fP
Rela テーブルのサイズ (バイト単位)
.TP
\fBDT_RELAENT\fP
-Rela テーブルエントリのサイズ (バイト単位)
+Rela ã\83\86ã\83¼ã\83\96ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d)
.TP
\fBDT_STRSZ\fP
文字列テーブルのサイズ (バイト単位)
.TP
\fBDT_SYMENT\fP
-シンボルテーブルエントリのサイズ (バイト単位)
+ã\82·ã\83³ã\83\9cã\83«ã\83\86ã\83¼ã\83\96ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d)
.TP
\fBDT_INIT\fP
初期化関数のアドレス
ライブラリ検索パスへの文字列テーブルオフセット (推奨されない)
.TP
\fBDT_SYMBOLIC\fP
-リンカがシンボルの実行可能ファイルより前に この共有オブジェクトを検索した場合は、警告を出す。
+ã\83ªã\83³ã\82«ã\83¼ã\81\8cã\82·ã\83³ã\83\9cã\83«ã\81®å®\9fè¡\8cå\8f¯è\83½ã\83\95ã\82¡ã\82¤ã\83«ã\82\88ã\82\8aå\89\8dã\81« ã\81\93ã\81®å\85±æ\9c\89ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92æ¤\9cç´¢ã\81\97ã\81\9få ´å\90\88ã\81¯ã\80\81è¦å\91\8aã\82\92å\87ºã\81\99ã\80\82
.TP
\fBDT_REL\fP
Rel 再配置テーブルのアドレス
Rel テーブルのサイズ (バイト単位)
.TP
\fBDT_RELENT\fP
-Rel テーブルエントリのサイズ (バイト単位)
+Rel ã\83\86ã\83¼ã\83\96ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d)
.TP
\fBDT_PLTREL\fP
PLT が参照する再配置テーブルのタイプ (Rela または Rel)
これが指定されていない場合、 書き込み不可のセグメントには再配置は適用されない。
.TP
\fBDT_JMPREL\fP
-PLT 専用の再配置エントリのアドレス
+PLT å°\82ç\94¨ã\81®å\86\8dé\85\8dç½®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\82¢ã\83\89ã\83¬ã\82¹
.TP
\fBDT_BIND_NOW\fP
-実行可能ファイルに制御を譲る前に、 全ての再配置を処理するように動的リンカに指示する。
+å®\9fè¡\8cå\8f¯è\83½ã\83\95ã\82¡ã\82¤ã\83«ã\81«å\88¶å¾¡ã\82\92è²ã\82\8bå\89\8dã\81«ã\80\81 å\85¨ã\81¦ã\81®å\86\8dé\85\8dç½®ã\82\92å\87¦ç\90\86ã\81\99ã\82\8bã\82\88ã\81\86ã\81«å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81«æ\8c\87示ã\81\99ã\82\8bã\80\82
.TP
\fBDT_RUNPATH\fP
ライブラリ検索パスへの文字列テーブルオフセット
.TP
\fId_ptr\fP
このメンバはプログラムの仮想アドレスを表す。 これらのアドレスを解釈する際に、 実際のアドレスは元々のファイルの値と
-ã\83¡ã\83¢ã\83ªã\81®å\9fºåº\95ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8bã\82\89è¨\88ç®\97ã\81\95ã\82\8cã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92ä¿®æ£ã\81\99ã\82\8bã\81\9fã\82\81ã\81® å\86\8dé\85\8dç½®ã\82¨ã\83³ã\83\88ã\83ªを含めてはならない。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\9fºåº\95ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8bã\82\89è¨\88ç®\97ã\81\95ã\82\8cã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92ä¿®æ£ã\81\99ã\82\8bã\81\9fã\82\81ã\81® å\86\8dé\85\8dç½®ã\82¨ã\83³ã\83\88ã\83ªã\83¼を含めてはならない。
.TP
\fI_DYNAMIC\fP
.\" .El
-\&.dynamic セクションにある全ての動的構造体を含む配列。 これは自動的にリンカに渡される。
+\&.dynamic ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81«ã\81\82ã\82\8bå\85¨ã\81¦ã\81®å\8b\95ç\9a\84æ§\8bé\80 ä½\93ã\82\92å\90«ã\82\80é\85\8då\88\97ã\80\82 ã\81\93ã\82\8cã\81¯è\87ªå\8b\95ç\9a\84ã\81«ã\83ªã\83³ã\82«ã\83¼ã\81«æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82
.SH 注意
.\" OpenBSD
.\" ELF support first appeared in
並び替え方法をシステム管理者が動的に変更できるようにすることも要求している。 glibc の実装では、 \fI/etc/gai.conf\fP
ファイルでこれが実現できるようになっている。
.PP
-設定ファイルの各行は、キーワードとそのパラメータで構成される。 ホワイトスペースはどこにあっても全て無視される。 \(aq#\(aq
+è¨å®\9aã\83\95ã\82¡ã\82¤ã\83«ã\81®å\90\84è¡\8cã\81¯ã\80\81ã\82ã\83¼ã\83¯ã\83¼ã\83\89ã\81¨ã\81\9dã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81§æ§\8bæ\88\90ã\81\95ã\82\8cã\82\8bã\80\82 ã\83\9bã\83¯ã\82¤ã\83\88ã\82¹ã\83\9aã\83¼ã\82¹ã\81¯ã\81©ã\81\93ã\81«ã\81\82ã\81£ã\81¦ã\82\82å\85¨ã\81¦ç\84¡è¦\96ã\81\95ã\82\8cã\82\8bã\80\82 \(aq#\(aq
で始まる行はコメントで、 無視される。
.PP
現在のところ、認識されるキーワードは以下の通りである。
group \- ユーザーグループのファイル
.SH 説明
\fI/etc/group\fP ファイルは、そのシステムのグループを定義するテキスト
-ファイルである。 1 行に 1 エントリで、各行の形式は以下のとおりである。
+ã\83\95ã\82¡ã\82¤ã\83«ã\81§ã\81\82ã\82\8bã\80\82 1 è¡\8cã\81« 1 ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81§ã\80\81å\90\84è¡\8cã\81®å½¢å¼\8fã\81¯ä»¥ä¸\8bã\81®ã\81¨ã\81\8aã\82\8aã\81§ã\81\82ã\82\8bã\80\82
.sp
.RS
group_name:password:GID:user_list
(\(aq,\(aq) で区切る。 このキーワードが設定されると、resolv+ ライブラリは DNS でレゾルブされた
すべてのホスト名の後ろから与えられたドメイン名を自動的に取り去る。 このキーワードはローカルなホストとドメインで使用することを意図している。
(関連した注意 : NIS または hosts ファイルで集められたホスト名に trim は影響しない。 hosts
-ファイルの各エントリの最初のホスト名を、 完全なドメイン名付きのものにするかしないかは、 ホストごとのインストールポリシーにあわせて
+ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\90\84ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®æ\9c\80å\88\9dã\81®ã\83\9bã\82¹ã\83\88å\90\8dã\82\92ã\80\81 å®\8cå\85¨ã\81ªã\83\89ã\83¡ã\82¤ã\83³å\90\8dä»\98ã\81\8dã\81®ã\82\82ã\81®ã\81«ã\81\99ã\82\8bã\81\8bã\81\97ã\81ªã\81\84ã\81\8bã\81¯ã\80\81 ã\83\9bã\82¹ã\83\88ã\81\94ã\81¨ã\81®ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\83\9dã\83ªã\82·ã\83¼ã\81«ã\81\82ã\82\8fã\81\9bã\81¦
適切に選択する必要がある。注意すること。)
.TP
\fImulti\fP
-有効な値は \fIon\fP と \fIoff\fP である。 \fIon\fP に設定された場合、最初のエントリのみを例外として、 resolv+ ライブラリは
+æ\9c\89å\8a¹ã\81ªå\80¤ã\81¯ \fIon\fP ã\81¨ \fIoff\fP ã\81§ã\81\82ã\82\8bã\80\82 \fIon\fP ã\81«è¨å®\9aã\81\95ã\82\8cã\81\9få ´å\90\88ã\80\81æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\81¿ã\82\92ä¾\8bå¤\96ã\81¨ã\81\97ã\81¦ã\80\81 resolv+ ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81¯
\fI/etc/hosts\fP ファイルに現れるホストに対して全ての有効なアドレスを返そうとする。 大きな hosts ファイルを持つサイトでは、
この設定は非常な性能の低下を招くので、 デフォルトでは \fIoff\fP である。
.TP
が実行されるとき、resolv+ ライブラリは、ローカルな (つまり、同じサブネットにある) アドレスが最初にリストされるように
ホストアドレスを並べ変える。 すべてのルックアップ方式に対して並べ変えが行われる。 デフォルトの値は、 \fIoff\fP である。
.SH 環境変数
-\fI/etc/host.conf\fP で設定されている動作を、ユーザが上書きできる 6 つの環境変数がある。
+\fI/etc/host.conf\fP ã\81§è¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå\8b\95ä½\9cã\82\92ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cä¸\8aæ\9b¸ã\81\8dã\81§ã\81\8dã\82\8b 6 ã\81¤ã\81®ç\92°å¢\83å¤\89æ\95°ã\81\8cã\81\82ã\82\8bã\80\82
.TP
\fBRESOLV_HOST_CONF\fP
この変数を設定すると、 \fI/etc/host.conf\fP の代りに読み込むファイルを設定できる。
IPアドレス 正式なホスト名 [エイリアス...]
.RE
.PP
-エントリのフィールドは、空白またはタブ (複数でも可) で区切られる。 "#" 文字から行末までのテキストはコメントとして無視される。
+ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\80\81空ç\99½ã\81¾ã\81\9fã\81¯ã\82¿ã\83\96 (è¤\87æ\95°ã\81§ã\82\82å\8f¯) ã\81§å\8cºå\88\87ã\82\89ã\82\8cã\82\8bã\80\82 "#" æ\96\87å\97ã\81\8bã\82\89è¡\8cæ\9c«ã\81¾ã\81§ã\81®ã\83\86ã\82ã\82¹ã\83\88ã\81¯ã\82³ã\83¡ã\83³ã\83\88ã\81¨ã\81\97ã\81¦ç\84¡è¦\96ã\81\95ã\82\8cã\82\8bã\80\82
ホスト名は英数字、 マイナス記号 ("\-")、 ピリオド (".") を含むことができる。 ホスト名は英文字 (alphabetic
character) で始まって、 英数字 (alphanumeric characte) で終わらなければならない。
エイリアスはオプションであり、名前の変更、別のスペル、 短いホスト名、一般的に使われるホスト名 (例えば \fIlocalhost\fP)
.TP
\fBNIS\fP
NIS を使用しているサイトは、ホストテーブルを NIS ホストデータベースの入力として用いる。 NIS を DNS と共に使用できるにもかかわらず、
-大部分の NIS サイトは未だに、 全てのローカルホストのエントリをもつホストテーブルを バックアップとして使用している。
+大é\83¨å\88\86ã\81® NIS ã\82µã\82¤ã\83\88ã\81¯æ\9cªã\81 ã\81«ã\80\81 å\85¨ã\81¦ã\81®ã\83ã\83¼ã\82«ã\83«ã\83\9bã\82¹ã\83\88ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\82\82ã\81¤ã\83\9bã\82¹ã\83\88ã\83\86ã\83¼ã\83\96ã\83«ã\82\92 ã\83\90ã\83\83ã\82¯ã\82¢ã\83\83ã\83\97ã\81¨ã\81\97ã\81¦ä½¿ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fB隔絶されたノード\fP
ネットワークから隔絶された非常に小さなサイトは、 DNS の代わりにホストテーブルを使用している。 ローカル情報が稀にしか変更されず、
.\"
.TH HOSTS.EQUIV 5 2003\-08\-24 Linux "Linux Programmer's Manual"
.SH 名前
-/etc/hosts.equiv \- 「信頼された」\fBr\fP コマンドによるシステムへの アクセスを許可するホストおよびユーザのリスト
+/etc/hosts.equiv \- ã\80\8cä¿¡é ¼ã\81\95ã\82\8cã\81\9fã\80\8d\fBr\fP ã\82³ã\83\9eã\83³ã\83\89ã\81«ã\82\88ã\82\8bã\82·ã\82¹ã\83\86ã\83 ã\81¸ã\81® ã\82¢ã\82¯ã\82»ã\82¹ã\82\92許å\8f¯ã\81\99ã\82\8bã\83\9bã\82¹ã\83\88ã\81\8aã\82\88ã\81³ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83ªã\82¹ã\83\88
.SH 説明
\fBhosts.equiv\fP ファイルは \fBr\fP\-コマンド (\fBrlogin\fP, \fBrsh\fP, \fBrcp\fP など)
-によるパスワードなしでの利用を 許可/拒否するホスト/ユーザを設定する。
+ã\81«ã\82\88ã\82\8bã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\81ªã\81\97ã\81§ã\81®å\88©ç\94¨ã\82\92 許å\8f¯/æ\8b\92å\90¦ã\81\99ã\82\8bã\83\9bã\82¹ã\83\88/ã\83¦ã\83¼ã\82¶ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82
.PP
このファイルでは以下の書式を用いる。
.TP
\fI[ + | \- ]\fP \fI[hostname]\fP \fI[username]\fP
.PP
-\fIhostname\fP は、ローカルホストと論理的に等価なホストの名前である。 そのホストにログインしているユーザは、パスワードなしで
-ローカルホストの同じ名前のユーザアカウントにアカウントできる。 \fIhostname\fP の前にはプラス記号 (+)
+\fIhostname\fP ã\81¯ã\80\81ã\83ã\83¼ã\82«ã\83«ã\83\9bã\82¹ã\83\88ã\81¨è«\96ç\90\86ç\9a\84ã\81«ç\89価ã\81ªã\83\9bã\82¹ã\83\88ã\81®å\90\8då\89\8dã\81§ã\81\82ã\82\8bã\80\82 ã\81\9dã\81®ã\83\9bã\82¹ã\83\88ã\81«ã\83ã\82°ã\82¤ã\83³ã\81\97ã\81¦ã\81\84ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ã\80\81ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\81ªã\81\97ã\81§
+ã\83ã\83¼ã\82«ã\83«ã\83\9bã\82¹ã\83\88ã\81®å\90\8cã\81\98å\90\8då\89\8dã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\81«ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\81§ã\81\8dã\82\8bã\80\82 \fIhostname\fP ã\81®å\89\8dã\81«ã\81¯ã\83\97ã\83©ã\82¹è¨\98å\8f· (+)
を置いてもよい。プラス記号が単独で置かれた場合は、 このシステムへのアクセスをあらゆるホストに対して許可したことになる。
-アクセスを明示的に拒否するには、 \fIhostname\fP の前にマイナス記号 (\-) を付ける。そのホストからのユーザは
+ã\82¢ã\82¯ã\82»ã\82¹ã\82\92æ\98\8e示ç\9a\84ã\81«æ\8b\92å\90¦ã\81\99ã\82\8bã\81«ã\81¯ã\80\81 \fIhostname\fP ã\81®å\89\8dã\81«ã\83\9eã\82¤ã\83\8aã\82¹è¨\98å\8f· (\-) ã\82\92ä»\98ã\81\91ã\82\8bã\80\82ã\81\9dã\81®ã\83\9bã\82¹ã\83\88ã\81\8bã\82\89ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯
常にパスワードを要求される。セキュリティ上、ホスト名は 短い名前ではなく常に FQDN を使って指定すべきである。
.PP
-\fIusername\fP ã\82¨ã\83³ã\83\88ã\83ªã\81¯ã\80\81ç\89¹å®\9aã\81®ã\83¦ã\83¼ã\82¶ã\81«å¯¾ã\81\97ã\81¦ã\80\81 (root 以å¤\96ã\81®) ã\81\82ã\82\89ã\82\86ã\82\8bã\83¦ã\83¼ã\82¶アカウント
-ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ã\82\92ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\81ªã\81\97ã\81§è¨±å\8f¯ã\81\99ã\82\8bã\80\82ã\81\99ã\81ªã\82\8fã\81¡ã\80\81ã\81\9dã\81®ã\83¦ã\83¼ã\82¶ã\81¯å\90\8cã\81\98å\90\8då\89\8dã\81® ã\82¢ã\82«ã\82¦ã\83³ã\83\88以å¤\96ã\81«ã\82\82ã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8dã\82\8bã\80\82 \fIusername\fP ã\81®å\89\8dã\81«ã\81¯ã\83\97ã\83©ã\82¹è¨\98å\8f·
-(+) を置いてもよい。 特定のユーザからのアクセスを明示的に拒否するには、 \fIusername\fP の前にマイナス記号 (\-) を付ける。こうすると、
-ã\83\9bã\82¹ã\83\88ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\81\8cã\81ªã\82\93ã\81¨è¨\80ã\81\8aã\81\86ã\81¨ã\82\82ã\80\81ã\81\9dã\81®ã\83¦ã\83¼ã\82¶は信頼されないことになる。
+\fIusername\fP ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ã\80\81ç\89¹å®\9aã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81«å¯¾ã\81\97ã\81¦ã\80\81 (root 以å¤\96ã\81®) ã\81\82ã\82\89ã\82\86ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼アカウント
+ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹ã\82\92ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\81ªã\81\97ã\81§è¨±å\8f¯ã\81\99ã\82\8bã\80\82ã\81\99ã\81ªã\82\8fã\81¡ã\80\81ã\81\9dã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯å\90\8cã\81\98å\90\8då\89\8dã\81® ã\82¢ã\82«ã\82¦ã\83³ã\83\88以å¤\96ã\81«ã\82\82ã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8dã\82\8bã\80\82 \fIusername\fP
+の前にはプラス記号 (+) を置いてもよい。 特定のユーザーからのアクセスを明示的に拒否するには、 \fIusername\fP の前にマイナス記号 (\-)
+ã\82\92ä»\98ã\81\91ã\82\8bã\80\82ã\81\93ã\81\86ã\81\99ã\82\8bã\81¨ã\80\81 ã\83\9bã\82¹ã\83\88ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\81ªã\82\93ã\81¨è¨\80ã\81\8aã\81\86ã\81¨ã\82\82ã\80\81ã\81\9dã\81®ã\83¦ã\83¼ã\82¶ã\83¼は信頼されないことになる。
.PP
netgroup を指定することもでき、その場合は @ 記号を前につける。
.PP
マニュアルの 5 章は、各種のファイルフォーマット、プロトコル、 (もしあれば) 対応する C の構造体について記載している。
.SH 注意
.SS 著者と著作権
-著者と著作権に関しては各マニュアルページのソースのヘッダを参照すること。 これらはページごとに異なる可能性があることに注意してほしい。
+è\91\97è\80\85ã\81¨è\91\97ä½\9c権ã\81«é\96¢ã\81\97ã\81¦ã\81¯å\90\84ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81®ã\82½ã\83¼ã\82¹ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82 ã\81\93ã\82\8cã\82\89ã\81¯ã\83\9aã\83¼ã\82¸ã\81\94ã\81¨ã\81«ç\95°ã\81ªã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\80\82
.SH 関連項目
\fBstandards\fP(7)
.SH この文書について
.SH 名前
locale \- ロケール定義ファイル
.SH 説明
-\fBã\83ã\82±ã\83¼ã\83« (locale)\fP å®\9a義ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ \fBlocaledef\fP(1) ã\82³ã\83\9eã\83³ã\83\89ã\81\8cã\83\90ã\82¤ã\83\8aã\83ªã\81®ã\83ã\82±ã\83¼ã\83«ã\83»ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«å¤\89æ\8f\9bã\81\99ã\82\8bã\81®ã\81«
+\fBロケール (locale)\fP 定義ファイルは \fBlocaledef\fP(1) コマンドがバイナリのロケールデータベースに変換するのに
必要な全ての情報を含んでいる。
-定義ファイルは、いくつかのセクションから構成されており、各セクション にはロケールのカテゴリが詳細に記述される。
+å®\9a義ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81\8bã\82\89æ§\8bæ\88\90ã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81å\90\84ã\82»ã\82¯ã\82·ã\83§ã\83³ ã\81«ã\81¯ã\83ã\82±ã\83¼ã\83«ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81\8c詳細ã\81«è¨\98è¿°ã\81\95ã\82\8cã\82\8bã\80\82
.SS 文法
ロケール定義ファイルは以下のキーワードから構成されるヘッダーで始まる:
.TP
\fI<escape_char>\fP
-ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ®\8bã\82\8aã\81®é\83¨å\88\86ã\81§ã\82¨ã\82¹ã\82±ã\83¼ã\83\97ã\83»ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\81¨ã\81\97ã\81¦ä½¿ç\94¨ã\81\99ã\82\8bæ\96\87å\97ã\82\92 æ\8c\87å®\9aã\81\99ã\82\8bã\80\82ã\81\93ã\82\8cã\81¯ç\89¹æ®\8aã\81ªæ\84\8få\91³ã\81«è§£é\87\88ã\81\95ã\82\8cã\82\8bæ\96\87å\97ã\82\92ã\82¨ã\82¹ã\82±ã\83¼ã\83\97ã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81\99ã\82\8bã\80\82
+ファイルの残りの部分でエスケープキャラクターとして使用する文字を 指定する。これは特殊な意味に解釈される文字をエスケープするのに使用する。
デフォルトはバックスラッシュ (\e) である。
.TP
\fI<comment_char>\fP
-ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ®\8bã\82\8aã\81®é\83¨å\88\86ã\81§ã\82³ã\83¡ã\83³ã\83\88ã\83»ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\81¨ã\81\97ã\81¦ä½¿ç\94¨ã\81\99ã\82\8bæ\96\87å\97 ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\82·ã\83£ã\83¼ã\83\97 (#) ã\81§ã\81\82ã\82\8bã\80\82
+ファイルの残りの部分でコメントキャラクターとして使用する文字 を指定する。デフォルトではシャープ (#) である。
.PP
-ロケールの定義はロケールのカテゴリ毎の定義を行う部分から構成される。 各部分は、定義済みの他のロケールのコピーを元に定義することもできるし、
-最初から定義することもできる。カテゴリをコピーする場合、定義の中に \fBcopy\fP
+ロケールの定義はロケールのカテゴリー毎の定義を行う部分から構成される。 各部分は、定義済みの他のロケールのコピーを元に定義することもできるし、
+æ\9c\80å\88\9dã\81\8bã\82\89å®\9a義ã\81\99ã\82\8bã\81\93ã\81¨ã\82\82ã\81§ã\81\8dã\82\8bã\80\82ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\82\92ã\82³ã\83\94ã\83¼ã\81\99ã\82\8bå ´å\90\88ã\80\81å®\9a義ã\81®ä¸ã\81« \fBcopy\fP
というキーワードに続けてコピーするロケールの名前をダブルクォートの中に書く。
.PP
When defining a category from scratch, all field descriptors and strings
Values defined as Unicode code points must be in double quotes, plain number
values are not quoted (but \fBLC_CTYPE\fP and \fBLC_COLLATE\fP follow special
formatting, see the system\-provided locale files for examples).
-.SS ロケールカテゴリ
-以下のカテゴリが POSIX で定義されている。
+.SS ロケールカテゴリー
+以ä¸\8bã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81\8c POSIX ã\81§å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
.IP * 3
\fBLC_CTYPE\fP
.IP *
.IP *
\fBLC_TIME\fP
.PP
-また、バージョン 2.2 以降の GNU C ライブラリでは以下の非標準のカテゴリにも対応している。
+ã\81¾ã\81\9fã\80\81ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.2 以é\99\8dã\81® GNU C ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81§ã\81¯ä»¥ä¸\8bã\81®é\9d\9eæ¨\99æº\96ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«ã\82\82対å¿\9cã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.IP * 3
\fBLC_ADDRESS\fP
.IP *
.IP *
\fBLC_TELEPHONE\fP
.PP
-各カテゴリの詳細な説明は \fBlocale\fP(7) を参照。
+å\90\84ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®è©³ç´°ã\81ªèª¬æ\98\8eã\81¯ \fBlocale\fP(7) ã\82\92å\8f\82ç\85§ã\80\82
.SS LC_ADDRESS
-このカテゴリの定義は最初のカラムに \fBLC_ADDRESS\fP という文字列を置くことで始める。
+ã\81\93ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®å®\9a義ã\81¯æ\9c\80å\88\9dã\81®ã\82«ã\83©ã\83 ã\81« \fBLC_ADDRESS\fP ã\81¨ã\81\84ã\81\86æ\96\87å\97å\88\97ã\82\92ç½®ã\81\8fã\81\93ã\81¨ã\81§å§\8bã\82\81ã\82\8bã\80\82
.\" Thanks to the kind folk who wrote localedata/locales/uk_UA
ここでは以下のキーワードが使用できる:
.PP
\fBLC_ADDRESS\fP の定義は \fIEND LC_ADDRESS\fP という文字列で終了する。
.SS LC_CTYPE
-このカテゴリの定義は最初のカラムに \fBLC_CTYPE\fP という文字列を置くことで始める。
+ã\81\93ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®å®\9a義ã\81¯æ\9c\80å\88\9dã\81®ã\82«ã\83©ã\83 ã\81« \fBLC_CTYPE\fP ã\81¨ã\81\84ã\81\86æ\96\87å\97å\88\97ã\82\92ç½®ã\81\8fã\81\93ã\81¨ã\81§å§\8bã\82\81ã\82\8bã\80\82
.\" FIXME The following LC_CTYPE keywords are not documented:
.\" translit_start + translit_end
\fB<vertical\-tab>\fP は自動的に含まれる。
.TP
\fIcntrl\fP
-ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83«ã\83»ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\81®ã\83ªã\82¹ã\83\88ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 \fBupper\fP, \fBlower\fP, \fBalpha\fP, \fBdigit\fP, \fBpunct\fP,
+コントロールキャラクターのリストを指定する。 \fBupper\fP, \fBlower\fP, \fBalpha\fP, \fBdigit\fP, \fBpunct\fP,
\fBgraph\fP, \fBprint\fP, \fBxdigit\fP に指定された文字を指定することはできない。
.TP
\fIpunct\fP
.SS LC_COLLATE
glibc による制限のため POSIX オプションの全てが実装されているわけではない。
-このカテゴリの定義は最初のカラムに \fBLC_COLLATE\fP を置くことで始める。
+ã\81\93ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®å®\9a義ã\81¯æ\9c\80å\88\9dã\81®ã\82«ã\83©ã\83 ã\81« \fBLC_COLLATE\fP ã\82\92ç½®ã\81\8fã\81\93ã\81¨ã\81§å§\8bã\82\81ã\82\8bã\80\82
.\" FIXME The following LC_COLLATE keywords are not documented:
.\" script
.PP
\fBLC_COLLATE\fP 定義は \fIEND LC_COLLATE\fP という文字列で終了する。
.SS LC_IDENTIFICATION
-このカテゴリの定義は最初のカラムに \fBLC_IDENTIFICATION\fP という文字列を置くことで始める。
+ã\81\93ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®å®\9a義ã\81¯æ\9c\80å\88\9dã\81®ã\82«ã\83©ã\83 ã\81« \fBLC_IDENTIFICATION\fP ã\81¨ã\81\84ã\81\86æ\96\87å\97å\88\97ã\82\92ç½®ã\81\8fã\81\93ã\81¨ã\81§å§\8bã\82\81ã\82\8bã\80\82
The values in this category are defined as plain strings.
.PP
\fBLC_IDENTIFICATION\fP の定義は \fIEND LC_IDENTIFICATION\fP という文字列で終了する。
.SS LC_MESSAGES
-このカテゴリの定義は最初のカラムに \fBLC_MESSAGES\fP という文字列を置くことで始める。
+ã\81\93ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®å®\9a義ã\81¯æ\9c\80å\88\9dã\81®ã\82«ã\83©ã\83 ã\81« \fBLC_MESSAGES\fP ã\81¨ã\81\84ã\81\86æ\96\87å\97å\88\97ã\82\92ç½®ã\81\8fã\81\93ã\81¨ã\81§å§\8bã\82\81ã\82\8bã\80\82
ここでは以下のキーワードが使用できる:
.TP
.PP
\fBLC_MESSAGES\fP の定義は \fIEND LC_MESSAGES\fP という文字列で終了する。
.SS LC_MEASUREMENT
-このカテゴリの定義は最初のカラムに \fBLC_MEASUREMENT\fP という文字列を置くことで始める。
+ã\81\93ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®å®\9a義ã\81¯æ\9c\80å\88\9dã\81®ã\82«ã\83©ã\83 ã\81« \fBLC_MEASUREMENT\fP ã\81¨ã\81\84ã\81\86æ\96\87å\97å\88\97ã\82\92ç½®ã\81\8fã\81\93ã\81¨ã\81§å§\8bã\82\81ã\82\8bã\80\82
ここでは以下のキーワードが使用できる:
.TP
.PP
\fBLC_MONETARY\fP の定義は \fIEND LC_MONETARY\fP という文字列で終了する。
.SS LC_NAME
-このカテゴリの定義は最初のカラムに \fBLC_NAME\fP という文字列を置くことで始める。
+ã\81\93ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®å®\9a義ã\81¯æ\9c\80å\88\9dã\81®ã\82«ã\83©ã\83 ã\81« \fBLC_NAME\fP ã\81¨ã\81\84ã\81\86æ\96\87å\97å\88\97ã\82\92ç½®ã\81\8fã\81\93ã\81¨ã\81§å§\8bã\82\81ã\82\8bã\80\82
様々なキーワードを指定できるが、 必須なのは \fIname_fmt\fP だけである。 それ以外のキーワードは、 このロケールで、
対応するあいさつを使う慣習が普及している場合にのみ指定が必要である。 指定できるキーワードは以下のとおりである。
.PP
\fBLC_NAME\fP の定義は \fIEND LC_NAME\fP という文字列で終了する。
.SS LC_NUMERIC
-このカテゴリの定義は最初のカラムに \fBLC_NUMERIC\fP という文字列を置くことで始める。
+ã\81\93ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®å®\9a義ã\81¯æ\9c\80å\88\9dã\81®ã\82«ã\83©ã\83 ã\81« \fBLC_NUMERIC\fP ã\81¨ã\81\84ã\81\86æ\96\87å\97å\88\97ã\82\92ç½®ã\81\8fã\81\93ã\81¨ã\81§å§\8bã\82\81ã\82\8bã\80\82
ここでは以下のキーワードが使用できる:
.TP
.PP
The \fBLC_NUMERIC\fP の定義は \fIEND LC_NUMERIC\fP という文字列で終了する。
.SS LC_PAPER
-このカテゴリの定義は最初のカラムに \fBLC_PAPER\fP という文字列を置くことで始める。
+ã\81\93ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®å®\9a義ã\81¯æ\9c\80å\88\9dã\81®ã\82«ã\83©ã\83 ã\81« \fBLC_PAPER\fP ã\81¨ã\81\84ã\81\86æ\96\87å\97å\88\97ã\82\92ç½®ã\81\8fã\81\93ã\81¨ã\81§å§\8bã\82\81ã\82\8bã\80\82
-このカテゴリの値は通常の数字で指定する。
+ã\81\93ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®å\80¤ã\81¯é\80\9a常ã\81®æ\95°å\97ã\81§æ\8c\87å®\9aã\81\99ã\82\8bã\80\82
ここでは以下のキーワードが使用できる:
.TP
.PP
\fBLC_PAPER\fP の定義は \fIEND LC_PAPER\fP という文字列で終了する。
.SS LC_TELEPHONE
-このカテゴリの定義は最初のカラムに \fBLC_TELEPHONE\fP という文字列を置くことで始める。
+ã\81\93ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®å®\9a義ã\81¯æ\9c\80å\88\9dã\81®ã\82«ã\83©ã\83 ã\81« \fBLC_TELEPHONE\fP ã\81¨ã\81\84ã\81\86æ\96\87å\97å\88\97ã\82\92ç½®ã\81\8fã\81\93ã\81¨ã\81§å§\8bã\82\81ã\82\8bã\80\82
ここでは以下のキーワードが使用できる:
.TP
.PP
\fBLC_TELEPHONE\fP の定義は \fIEND LC_TELEPHONE\fP という文字列で終了する。
.SS LC_TIME
-このカテゴリの定義は最初のカラムに \fBLC_TIME\fP という文字列を置くことで始める。
+ã\81\93ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®å®\9a義ã\81¯æ\9c\80å\88\9dã\81®ã\82«ã\83©ã\83 ã\81« \fBLC_TIME\fP ã\81¨ã\81\84ã\81\86æ\96\87å\97å\88\97ã\82\92ç½®ã\81\8fã\81\93ã\81¨ã\81§å§\8bã\82\81ã\82\8bã\80\82
.\" FIXME The following LC_TIME keywords are not documented:
.\" era
.\"
.TH NOLOGIN 5 2012\-04\-16 Linux "Linux Programmer's Manual"
.SH 名前
-nologin \- 非特権ユーザのログインを禁止する
+nologin \- é\9d\9eç\89¹æ¨©ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83ã\82°ã\82¤ã\83³ã\82\92ç¦\81æ¢ã\81\99ã\82\8b
.SH 説明
\fI/etc/nologin\fP というファイルが存在し、かつそのファイルが読み込み専用の場合、
\fBlogin\fP(1) はルートのみにアクセスを許可するようになる。
\fBserver\-user\fP \fIuser\fP
.RS
-このオプションが設定されると、 nscd は root ではなく、この user として実行される。 (\-S パラメータにより)
+ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cè¨å®\9aã\81\95ã\82\8cã\82\8bã\81¨ã\80\81 nscd ã\81¯ root ã\81§ã\81¯ã\81ªã\81\8fã\80\81ã\81\93ã\81® user ã\81¨ã\81\97ã\81¦å®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\80\82 (\-S ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81«ã\82\88ã\82\8a)
各ユーザー毎に別々のキャッシュが使われる場合、 このオプションは無視される。
.RE
\fBstat\-user\fP \fIuser\fP
.RS
-統計情報の参照を許可するユーザを指定する。
+çµ±è¨\88æ\83\85å ±ã\81®å\8f\82ç\85§ã\82\92許å\8f¯ã\81\99ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82
.RE
\fBreload\-count\fP unlimited | \fInumber\fP
.RS
-キャッシュされたエントリが使用されなかったときに、 削除される前に何回リロードされるかを設定する。デフォルトは 5。
+ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81\95ã\82\8cã\81\9fã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8c使ç\94¨ã\81\95ã\82\8cã\81ªã\81\8bã\81£ã\81\9fã\81¨ã\81\8dã\81«ã\80\81 å\89\8aé\99¤ã\81\95ã\82\8cã\82\8bå\89\8dã\81«ä½\95å\9b\9eã\83ªã\83ã\83¼ã\83\89ã\81\95ã\82\8cã\82\8bã\81\8bã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81¯ 5ã\80\82
.RE
\fBparanoia\fP \fI<yes|no>\fP
\fBpositive\-time\-to\-live\fP \fIservice\fP \fIvalue\fP
.RS
-指定した \fIservice\fP のキャッシュにあるポジティブエントリ (成功した問い合わせ) の TTL (time\-to\-live) を設定する。
+指定した \fIservice\fP のキャッシュにあるポジティブエントリー (成功した問い合わせ) の TTL (time\-to\-live) を設定する。
\fIvalue\fP の単位は秒である。 値を大きくすると、ヒット率が高くなり平均応答時間を短くできるが、 キャッシュのコヒーレンス (coherence,
キャッシュが実際のデータと一致していること) に問題が生じる。
.RE
\fBnegative\-time\-to\-live\fP \fIservice\fP \fIvalue\fP
.RS
-指定した \fIservice\fP のキャッシュにあるネガティブエントリ (失敗した問い合わせ) の TTL (time\-to\-live) を設定する。
+指定した \fIservice\fP のキャッシュにあるネガティブエントリー (失敗した問い合わせ) の TTL (time\-to\-live) を設定する。
\fIvalue\fP の単位は秒である。 システムデータベースにない UID (ユーザーID) で所有されるファイル (たとえば root で tar
を展開した Linux カーネルのソース) が少ないと、 顕著な性能の向上が見られる。
キャッシュのコヒーレンス問題を少なくするために小さな値にすべきである。
\fBshared\fP \fIservice\fP \fI<yes|no>\fP
.RS
-\fIservice\fP の nscd データベースのメモリマッピングをクライアント間で共有する。
+\fIservice\fP ã\81® nscd ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\82\92ã\82¯ã\83©ã\82¤ã\82¢ã\83³ã\83\88é\96\93ã\81§å\85±æ\9c\89ã\81\99ã\82\8bã\80\82
これにより、検索を実行する度にソケット経由でデーモンに問い合わせを 行わずに、直接データベースを検索できるようになる。デフォルトは共有しない。
.RE
.SH 説明
ネームサービススイッチ (Name Service Switch; NSS) の設定ファイル
\fI/etc/nsswitch.conf\fP は、 GNU C ライブラリが
-いろいろなカテゴリの名前サービス情報を、どの情報源から
+ã\81\84ã\82\8dã\81\84ã\82\8dã\81ªã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®å\90\8då\89\8dã\82µã\83¼ã\83\93ã\82¹æ\83\85å ±ã\82\92ã\80\81ã\81©ã\81®æ\83\85å ±æº\90ã\81\8bã\82\89
どの順序で取得するかを判断するのに使用される
-(情報の各カテゴリはデータベース名で識別される)。
+(æ\83\85å ±ã\81®å\90\84ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81¯ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹å\90\8dã\81§è\98å\88¥ã\81\95ã\82\8cã\82\8b)ã\80\82
.LP
設定ファイルは通常の ASCII テキストで、列はスペースかタブ文字で
区切られる。最初の列はデータベース名を示す。
.RS 4
.TP 12
\fBsuccess\fP
-エラーは発生せず、要求されたエントリが返された。
+ã\82¨ã\83©ã\83¼ã\81¯ç\99ºç\94\9fã\81\9bã\81\9aã\80\81è¦\81æ±\82ã\81\95ã\82\8cã\81\9fã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cè¿\94ã\81\95ã\82\8cã\81\9fã\80\82
この場合のデフォルトのアクションは "return" である。
.TP
\fBnotfound\fP
-検索は成功したが、要求されたエントリが見つからなかった。
+æ¤\9cç´¢ã\81¯æ\88\90å\8a\9fã\81\97ã\81\9fã\81\8cã\80\81è¦\81æ±\82ã\81\95ã\82\8cã\81\9fã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\8bã\81£ã\81\9fã\80\82
この場合のデフォルトのアクションは "continue" である。
.TP
\fBunavail\fP
.RE
.SS "互換モード (compat)"
NSS "compat" サービスは "files" と似ているが、システムにアクセスできる
-ユーザやネットグループ (netgroup) のメンバの指定に \fI/etc/passwd\fP で
-特別なエントリを追加で使うことができる点が異なる。
-このモードでは、以下のエントリを使うことができる。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\82\84ã\83\8dã\83\83ã\83\88ã\82°ã\83«ã\83¼ã\83\97 (netgroup) ã\81®ã\83¡ã\83³ã\83\90ã\81®æ\8c\87å®\9aã\81« \fI/etc/passwd\fP ã\81§
+ç\89¹å\88¥ã\81ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92追å\8a ã\81§ä½¿ã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bç\82¹ã\81\8cç\95°ã\81ªã\82\8bã\80\82
+ã\81\93ã\81®ã\83¢ã\83¼ã\83\89ã\81§ã\81¯ã\80\81以ä¸\8bã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92使ã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
.RS 4
.TP 12
\fB+\fP\fIuser\fP
NIS パスワードマップの指定された \fIuser\fP を含める。
.TP
\fB+@\fP\fInetgroup\fP
-指定された \fInetgroup\fP の全ユーザを含める。
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9f \fInetgroup\fP ã\81®å\85¨ã\83¦ã\83¼ã\82¶ã\83¼ã\82\92å\90«ã\82\81ã\82\8bã\80\82
.TP
\fB\-\fP\fIuser\fP
NIS パスワードマップの指定された \fIuser\fP を除外する。
.TP
\fB\-@\fP\fInetgroup\fP
-指定された \fInetgroup\fP の全ユーザを除外する。
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9f \fInetgroup\fP ã\81®å\85¨ã\83¦ã\83¼ã\82¶ã\83¼ã\82\92é\99¤å¤\96ã\81\99ã\82\8bã\80\82
.TP
\fB+\fP
-NIS パスワードマップのユーザのうち、
-それまでに除外されていない全てのユーザを含める。
+NIS ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\9eã\83\83ã\83\97ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\81\86ã\81¡ã\80\81
+ã\81\9dã\82\8cã\81¾ã\81§ã\81«é\99¤å¤\96ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å\85¨ã\81¦ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82\92å\90«ã\82\81ã\82\8bã\80\82
.RE
.LP
デフォルトでは、データ源は "nis" だが、
.SH 名前
passwd \- パスワードファイル
.SH 説明
-\fI/etc/passwd\fP ファイルは、そのシステムのユーザのログインアカウントリス
+\fI/etc/passwd\fP ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81ã\81\9dã\81®ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83ã\82°ã\82¤ã\83³ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\83ªã\82¹
トを記述したテキストファイルである。パスワードファイルの読み出し許可は
全ユーザーに対して与えるが(\fIls\fP(1) 等の多くのユーティリティではユーザー
ID をユーザー名に 対応させるのに \fBpasswd\fP ファイルを使用する)、書き込
ばれたパスワードを破るのには 当時のハードウェアの速度はあまりに遅かった
し、それに加えて 友好的なユーザー社会であることを基本的な前提としていた。
最近では多くの人が、何らかのバージョンの shadow password suite
-(ã\82·ã\83£ã\83\89ã\82¦ã\83»ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89æ©\9fè\83½ã\82\92å®\9fç\8f¾ã\81\99ã\82\8bã\81\9fã\82\81ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 群) ã\82\92å\8b\95ã\81\8bã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
+(シャドウパスワード機能を実現するためのプログラム群) を動かしている。
その場合 \fI/etc/passwd\fP ファイルのパスワード欄には
\(aqx\(aq 文字が設定され、暗号化されたパスワードは
\fI/etc/shadow\fP ファイルに保持される。 \fI/etc/shadow\fP ファイルはスーパー
新しいユーザーを登録する場合には、パスワード欄にアスタリスク (*) を設定しておき、
\fBpasswd\fP(1) コマンドにより設定を行うようにすること。
.PP
-ファイルの 1 行は 1 ユーザの情報を表し、
+ã\83\95ã\82¡ã\82¤ã\83«ã\81® 1 è¡\8cã\81¯ 1 ã\83¦ã\83¼ã\82¶ã\83¼ã\81®æ\83\85å ±ã\82\92表ã\81\97ã\80\81
コロン区切りの 7 つの項目を含む。
.sp
.RS
ユーザーのログイン名。大文字を含まないすべきである。
.TP
\fIpassword\fP
-暗号化されたユーザのパスワード、アスタリスク (*)、文字 \(aqx\(aq の
+æ\9a\97å\8f·å\8c\96ã\81\95ã\82\8cã\81\9fã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\80\81ã\82¢ã\82¹ã\82¿ã\83ªã\82¹ã\82¯ (*)ã\80\81æ\96\87å\97 \(aqx\(aq ã\81®
いずれかである (\(aqx\(aq の説明については \fBpwconv\fP(8) を参照)。
.TP
\fIUID\fP
-特権を持つ \fIroot\fP ログインアカウント (スーパーユーザ) は
-ユーザ ID 0 である。
+特権を持つ \fIroot\fP ログインアカウント (スーパーユーザー) は
+ユーザー ID 0 である。
.TP
\fIGID\fP
-このユーザのプライマリグループ ID の番号。
-(このユーザの追加のグループはシステムのグループ定義ファイル
+ã\81\93ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\97ã\83©ã\82¤ã\83\9eã\83ªã\82°ã\83«ã\83¼ã\83\97 ID ã\81®ç\95ªå\8f·ã\80\82
+(ã\81\93ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81®è¿½å\8a ã\81®ã\82°ã\83«ã\83¼ã\83\97ã\81¯ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\82°ã\83«ã\83¼ã\83\97å®\9a義ã\83\95ã\82¡ã\82¤ã\83«
で定義される。 \fBgroup\fP(5) を参照)。
.TP
\fIGECOS\fP
まるっきりエレガントじゃない。」
.TP
\fIdirectory\fP
-ã\83¦ã\83¼ã\82¶ã\81®ã\83\9bã\83¼ã\83 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\80\81ã\81¤ã\81¾ã\82\8aã\83ã\82°ã\82¤ã\83³ç\9b´å¾\8cã\81®ã\81\9dã\81®ã\83¦ã\83¼ã\82¶の
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\9bã\83¼ã\83 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\80\81ã\81¤ã\81¾ã\82\8aã\83ã\82°ã\82¤ã\83³ç\9b´å¾\8cã\81®ã\81\9dã\81®ã\83¦ã\83¼ã\82¶ã\83¼の
初期ディレクトリである。
このフィールドの値は \fBHOME\fP 環境変数に設定される。
.TP
\fIshell\fP
ログイン時に動くプログラム名 (空欄の場合 \fI/bin/sh\fP が使われる)。
-存在しない実行ファイルが設定された場合、そのユーザは \fBlogin\fP(1) による
+å\98å\9c¨ã\81\97ã\81ªã\81\84å®\9fè¡\8cã\83\95ã\82¡ã\82¤ã\83«ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81\9få ´å\90\88ã\80\81ã\81\9dã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ \fBlogin\fP(1) ã\81«ã\82\88ã\82\8b
システムへのログインができなくなる。
このフィールドの値は \fBSHELL\fP 環境変数の値に設定される。
.SH ファイル
各サブディレクトリは、以下の擬似ファイルとディレクトリを含む。
.TP
\fI/proc/[number]/auxv\fP (カーネル 2.6.0\-test7 以降)
-å®\9fè¡\8cæ\99\82ã\81«ã\83\97ã\83ã\82»ã\82¹ã\81«æ¸¡ã\81\95ã\82\8cã\81\9f ELF ã\82¤ã\83³ã\82¿ã\83\97ã\83ªã\82¿æ\83\85å ±ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 å\80\8bã\80\85ã\81®ã\82¨ã\83³ã\83\88ã\83ªは、\fIunsigned long\fP 型の ID 1 個に
-\fIunsigned long\fP 型の値 1 個が続くフォーマットである。 最後のエントリには 0 が 2 個入っている。
+å®\9fè¡\8cæ\99\82ã\81«ã\83\97ã\83ã\82»ã\82¹ã\81«æ¸¡ã\81\95ã\82\8cã\81\9f ELF ã\82¤ã\83³ã\82¿ã\83¼ã\83\97ã\83ªã\82¿ã\83¼æ\83\85å ±ã\81\8cæ ¼ç´\8dã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 å\80\8bã\80\85ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼は、\fIunsigned long\fP 型の ID 1 個に
+\fIunsigned long\fP å\9e\8bã\81®å\80¤ 1 å\80\8bã\81\8cç¶\9aã\81\8fã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\81§ã\81\82ã\82\8bã\80\82 æ\9c\80å¾\8cã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81«ã\81¯ 0 ã\81\8c 2 å\80\8bå\85¥ã\81£ã\81¦ã\81\84ã\82\8bã\80\82
\fBgetauxval\fP(3) も参照。
.TP
\fI/proc/[pid]/cgroup\fP (Linux 2.6.24 以降)
プロセスが所属する階層内のコントロールグループ
.RE
.IP
-ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\81®ã\81¯ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\82³ã\83³ã\83\95ã\82£ã\82®ã\83¥ã\83¬ã\83¼ã\82·ã\83§ã\83³ã\83»ã\82ªã\83\97ã\82·ã\83§
+このファイルが存在するのは、カーネルのコンフィギュレーションオプショ
ン \fBCONFIG_CGROUPS\fP を有効にした場合だけである。
.TP
\fI/proc/[pid]/clear_refs\fP (Linux 2.6.22 以降)
Writing any value to \fI/proc/[pid]/clear_refs\fP other than those listed above
has no effect.
-\fI/proc/[pid]/clear_refs\fP ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\81®ã\81¯ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\82³ã\83³ã\83\95ã\82£ã\82®ã\83¥ã\83¬ã\83¼ã\82·ã\83§ã\83³ã\83»ã\82ªã\83\97ã\82·ã\83§ã\83³
+\fI/proc/[pid]/clear_refs\fP ファイルが存在するのは、カーネルのコンフィギュレーションオプション
\fBCONFIG_PROC_PAGE_MONITOR\fP を有効にした場合だけである。
.TP
\fI/proc/[pid]/cmdline\fP
\fBpthread_exit\fP(3) を呼び出しにより行われる)。
.TP
\fI/proc/[pid]/environ\fP
-このファイルはプロセスの環境変数を含んでいる。 各エントリはヌルバイト (\(aq\e0\(aq) で区切られていて、
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\83\97ã\83ã\82»ã\82¹ã\81®ç\92°å¢\83å¤\89æ\95°ã\82\92å\90«ã\82\93ã\81§ã\81\84ã\82\8bã\80\82 å\90\84ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ã\83\8cã\83«ã\83\90ã\82¤ã\83\88 (\(aq\e0\(aq) ã\81§å\8cºå\88\87ã\82\89ã\82\8cã\81¦ã\81\84ã\81¦ã\80\81
末尾にヌルバイトがあるかもしれない。 したがって、プロセス 1 の環境変数を表示するためには 次のようにすればよい。
.in +4n
.nf
マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 このシンボリックリンクの内容は参照できない (スレッドの終了は通常
\fBpthread_exit\fP(3) を呼び出しにより行われる)。
-Linux 2.0 以å\89\8dã\81§ã\81¯ã\80\81 \fI/proc/[pid]/exe\fP ã\81¯å®\9fè¡\8cã\81\95ã\82\8cã\81\9fã\83\90ã\82¤ã\83\8aã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\80\81ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81®ã\82\88ã\81\86ã\81«è¦\8bã\81\88ã\82\8bã\80\82 Linux
-2.0 以前では、このファイルに対して \fBreadlink\fP(2) を実行すると、次のフォーマットの文字列が返る。
+Linux 2.0 以å\89\8dã\81§ã\81¯ã\80\81 \fI/proc/[pid]/exe\fP ã\81¯å®\9fè¡\8cã\81\95ã\82\8cã\81\9fã\83\90ã\82¤ã\83\8aã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\80\81ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81®ã\82\88ã\81\86ã\81«è¦\8bã\81\88ã\82\8bã\80\82
+Linux 2.0 以前では、このファイルに対して \fBreadlink\fP(2) を実行すると、次のフォーマットの文字列が返る。
[デバイス番号]:iノード番号
このファイルの所在を探すことができる。
.TP
\fI/proc/[pid]/fd/\fP
-ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«å\90\84ã\80\85ã\81«å¯¾ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\82\92å\90«ã\82\80ã\82µã\83\96ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿がファイル名で、
+ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«å\90\84ã\80\85ã\81«å¯¾ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\90«ã\82\80ã\82µã\83\96ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼がファイル名で、
実際のファイルへのシンボリックリンクになっている。 したがって 0 は標準入力、1 は標準出力、2 は標準エラー出力、などとなる。
-ã\83\91ã\82¤ã\83\97ã\82\84ã\82½ã\82±ã\83\83ã\83\88ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81§ã\81¯ã\80\81 ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ç¨®å\88¥ã\81\8c inode ã\81¨ã\81\84ã\81\86å\86\85容ã\82\92æ\8c\81ã\81¤ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81¨ã\81ªã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«å¯¾ã\81\97ã\81¦
-\fBreadlink\fP(2) を呼び出すと以下の形式の文字列が返る。
+ã\83\91ã\82¤ã\83\97ã\82\84ã\82½ã\82±ã\83\83ã\83\88ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81¯ã\80\81 ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ç¨®å\88¥ã\81\8c inode ã\81¨ã\81\84ã\81\86å\86\85容ã\82\92æ\8c\81ã\81¤ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81¨ã\81ªã\82\8bã\80\82
+このファイルに対して \fBreadlink\fP(2) を呼び出すと以下の形式の文字列が返る。
type:[inode]
例えば、 \fIsocket:[2248868]\fP は inode が 2248868 のソケットである。 ソケットの場合、 その inode を元に
\fI/proc/net/\fP 以下のファイルを参照し詳しい情報を得ることができる。
-対応する inode がないファイルディスクリプタ (例えば \fBepoll_create\fP(2), \fBeventfd\fP(2),
-\fBinotify_init\fP(2), \fBsignalfd\fP(2), \fBtimerfd\fP(2) により生成されたファイルディスクリプタ) では、
+対応する inode がないファイルディスクリプター (例えば \fBepoll_create\fP(2), \fBeventfd\fP(2),
+\fBinotify_init\fP(2), \fBsignalfd\fP(2), \fBtimerfd\fP(2) により生成されたファイルディスクリプター) では、
エントリーはその内容が以下の形式のシンボリックリンクとなる。
anon_inode:<file\-type>
\fIfile\-type\fP は角括弧で囲まれる場合がある。
-例えば、 epoll ファイルディスクリプタは、 内容が文字列 \fIanon_inode:[eventpoll]\fP
+ä¾\8bã\81\88ã\81°ã\80\81 epoll ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81 å\86\85容ã\81\8cæ\96\87å\97å\88\97 \fIanon_inode:[eventpoll]\fP
のシンボリックリンクを持つ場合がある。
.\"The following was still true as at kernel 2.6.13
.\" CONFIG_AUDITSYSCALL
.TP
\fI/proc/[pid]/fdinfo/\fP (Linux 2.6.22 以降)
-ã\81\93ã\81®ã\82µã\83\96ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81«ã\81¯ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«æ¯\8eã\81® ã\82¨ã\83³ã\83\88ã\83ªã\81\8cå\85¥ã\81£ã\81¦ã\81\8aã\82\8aã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿がファイル名となっている。
-各ファイルの内容を読み出すことで、対応するファイルディスクリプタに関する 情報を得ることができる。以下に例を示す。
+ã\81\93ã\81®ã\82µã\83\96ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81«ã\81¯ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«æ¯\8eã\81® ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cå\85¥ã\81£ã\81¦ã\81\8aã\82\8aã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼がファイル名となっている。
+å\90\84ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\86\85容ã\82\92èªã\81¿å\87ºã\81\99ã\81\93ã\81¨ã\81§ã\80\81対å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«é\96¢ã\81\99ã\82\8b æ\83\85å ±ã\82\92å¾\97ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82以ä¸\8bã\81«ä¾\8bã\82\92示ã\81\99ã\80\82
.in +4n
.nf
.TP
\fI/proc/[pid]/limits\fP (Linux 2.6.24 以降)
.\" commit 3036e7b490bf7878c6dae952eec5fb87b1106589
-ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®å\90\84ã\83ªã\82½ã\83¼ã\82¹å\88¶é\99\90ã\81«ã\81¤ã\81\84ã\81¦ã\80\81 ã\82½ã\83\95ã\83\88ã\83»ã\83ªã\83\9fã\83\83ã\83\88ã\80\81ã\83\8fã\83¼ã\83\89ã\83»ã\83ªã\83\9fã\83\83ã\83\88ã\80\81è¨\88測å\8d\98ä½\8dã\82\92表示ã\81\99ã\82\8b (\fBgetrlimit\fP(2)
-参照)。 Linux 2.6.35 以前では、 プロセスの実 UID を持つプロセスだけが、 このファイルを読み出すことができる。 Linux
-2.6.36 以降では、 システム上のすべてのユーザがこのファイルを読み出すことができる。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®å\90\84ã\83ªã\82½ã\83¼ã\82¹å\88¶é\99\90ã\81«ã\81¤ã\81\84ã\81¦ã\80\81 ã\82½ã\83\95ã\83\88ã\83ªã\83\9fã\83\83ã\83\88ã\80\81ã\83\8fã\83¼ã\83\89ã\83ªã\83\9fã\83\83ã\83\88ã\80\81è¨\88測å\8d\98ä½\8dã\82\92表示ã\81\99ã\82\8b (\fBgetrlimit\fP(2) å\8f\82ç\85§)ã\80\82
+Linux 2.6.35 以前では、 プロセスの実 UID を持つプロセスだけが、 このファイルを読み出すことができる。 Linux 2.6.36
+以降では、 システム上のすべてのユーザーがこのファイルを読み出すことができる。
.TP
\fI/proc/[pid]/map_files/\fP (kernel 3.3 以降)
.\" commit 640708a2cff7f81e246243b0073c66e6ece7e53e
-このサブディレクトリには、 メモリマップされたファイルに対応するエントリーが置かれる (\fBmmap\fP(2) 参照)。 エントリーの名前がメモリ領域の
-(16 進数表現の) 開始アドレスと終了アドレスの組で、 エントリーはマップされているファイルへのシンボリックリンクである。 以下に例を示す。 なお、
-出力は幅が 80 文字のディスプレイに合うように折り返して整形されている。
+このサブディレクトリには、 メモリーマップされたファイルに対応するエントリーが置かれる (\fBmmap\fP(2) 参照)。
+エントリーの名前がメモリー領域の (16 進数表現の) 開始アドレスと終了アドレスの組で、
+エントリーはマップされているファイルへのシンボリックリンクである。 以下に例を示す。 なお、 出力は幅が 80
+文字のディスプレイに合うように折り返して整形されている。
.in +4n
.nf
.fi
.in
-これらのエントリーが存在するのは \fBMAP_FILE\fP フラグでマッピングされたメモリ領域についてであるが、 Linux での無名の共有メモリ
+これらのエントリーが存在するのは \fBMAP_FILE\fP フラグでマッピングされたメモリー領域についてであるが、 Linux での無名の共有メモリー
(\fBMAP_ANON | MAP_SHARED\fP で作成された領域) の実装方法では、
-このディレクトリに無名の共有メモリに関するエントリーも存在する。 以下は、 マッピング元のファイルが削除された \fI/dev/zero\fP
+ã\81\93ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81«ç\84¡å\90\8dã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81«é\96¢ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\82å\98å\9c¨ã\81\99ã\82\8bã\80\82 以ä¸\8bã\81¯ã\80\81 ã\83\9eã\83\83ã\83\94ã\83³ã\82°å\85\83ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå\89\8aé\99¤ã\81\95ã\82\8cã\81\9f \fI/dev/zero\fP
ファイルでの例である。
.in +4n
.nf
.fi
.in
-ã\81\93ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\81®ã\81¯ã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\82³ã\83³ã\83\95ã\82£ã\82®ã\83¥ã\83¬ã\83¼ã\82·ã\83§ã\83³ã\83»ã\82ªã\83\97ã\82·ã\83§ã\83³ \fBCONFIG_CHECKPOINT_RESTORE\fP
+このディレクトリが存在するのは、 カーネルのコンフィギュレーションオプション \fBCONFIG_CHECKPOINT_RESTORE\fP
が有効になっている場合だけである。
.TP
\fI/proc/[pid]/maps\fP
-現在マッピングされているメモリ領域とそのアクセスパーミッションを含む。 メモリマッピングについての詳しい情報は \fBmmap\fP(2) を参照。
+現在マッピングされているメモリー領域とそのアクセスパーミッションを含む。 メモリーマッピングについての詳しい情報は \fBmmap\fP(2) を参照。
ファイルのフォーマットは以下のとおり:
.in
\fIoffset\fP はファイル (などの) 中でのオフセット、 \fIdev\fP はデバイス (メジャーデバイス番号:マイナーデバイス番号)、
-\fIinode\fP はそのデバイスの i ノード番号である。 0 は、BSS (初期化されていないデータ領域) の場合のように、 このメモリ領域はどの i
-ノードとも関連付けられていないことを意味する。
+\fIinode\fP はそのデバイスの i ノード番号である。 0 は、BSS (初期化されていないデータ領域) の場合のように、 このメモリー領域はどの
+i ノードとも関連付けられていないことを意味する。
-\fIpathname\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\80\81 é\80\9a常ã\81\9dã\81®ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81§ã\81\82ã\82\8bã\80\82 ELF ã\83\95ã\82¡ã\82¤ã\83«ã\81®å ´å\90\88ã\80\81 ELF ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\81® Offset
-フィールドを見ることで (\fIreadelf\ \-l\fP))、 簡単に \fIoffset\fP との対応付けをすることができる。
+\fIpathname\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\80\81 é\80\9a常ã\81\9dã\81®ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81§ã\81\82ã\82\8bã\80\82 ELF ã\83\95ã\82¡ã\82¤ã\83«ã\81®å ´å\90\88ã\80\81 ELF ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\98ã\83\83ã\83\80ã\83¼ã\81®
+Offset フィールドを見ることで (\fIreadelf\ \-l\fP))、 簡単に \fIoffset\fP との対応付けをすることができる。
これに加え、 役に立つ擬似パス名がある。
.RS 12
.TP
\fI/proc/[pid]/mem\fP
このファイルは、 \fBopen\fP(2), \fBread\fP(2), \fBlseek\fP(2)
-を通して、プロセスのメモリのページにアクセスするために使われる。
+ã\82\92é\80\9aã\81\97ã\81¦ã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83\9aã\83¼ã\82¸ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ä½¿ã\82\8fã\82\8cã\82\8bã\80\82
.TP
\fI/proc/[pid]/mountinfo\fP (Linux 2.6.26 以降)
.\" This info adapted from Documentation/filesystems/proc.txt
そのプロセスのマウント名前空間に現在マウントされている 全ファイルシステムのリスト。 このファイルのフォーマットは \fBfstab\fP(5)
に載っている。 カーネル 2.6.15 以降では、このファイルを監視することができる (pollable)。
このファイルを読み出し用にオープンした後で、このファイルに変更があると (つまりファイルシステムのマウントやアンマウントがあると)、
-\fBselect\fP(2) ではそのファイルディスクリプタは読み出し可能となり、 \fBpoll\fP(2) と \fBepoll_wait\fP(2)
+\fBselect\fP(2) ã\81§ã\81¯ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯èªã\81¿å\87ºã\81\97å\8f¯è\83½ã\81¨ã\81ªã\82\8aã\80\81 \fBpoll\fP(2) ã\81¨ \fBepoll_wait\fP(2)
ではそのファイルはエラー状態として通知される。 詳細は \fBnamespaces\fP(7) を参照。
.TP
\fI/proc/[pid]/mountstats\fP (Linux 2.6.17 以降)
.TP
\fI/proc/[pid]/ns/\fP (Linux 3.0 以降)
.\" See commit 6b4e306aa3dc94a0545eb9279475b1ab6209a31f
-このサブディレクトリには、名前空間毎に 1 エントリが置かれる。
-各エントリは \fBsetns\fP(2) による操作をサポートしている。
+ã\81\93ã\81®ã\82µã\83\96ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81«ã\81¯ã\80\81å\90\8då\89\8d空é\96\93æ¯\8eã\81« 1 ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cç½®ã\81\8bã\82\8cã\82\8bã\80\82
+å\90\84ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ \fBsetns\fP(2) ã\81«ã\82\88ã\82\8bæ\93\8dä½\9cã\82\92ã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
詳細な情報は \fBnamespaces\fP(7) を参照。
.TP
\fBnuma\fP(7) を参照。
.TP
\fI/proc/[pid]/oom_adj\fP (Linux 2.6.11 以降)
-このファイルは、メモリ不足 (OOM) の状況下でどのプロセスを殺すべきかを選択す
+このファイルは、メモリー不足 (OOM) の状況下でどのプロセスを殺すべきかを選択す
るのに使用されるスコアを調整するのに使用される。カーネルは、プロセスの
\fIoom_score\fP 値のビットシフト操作に、この値を使用する。この値として有効な値
は \-16 から +15 までと、特別な意味を持つ \-17 である。 \-17 はそのプロセス
このファイルは、OOM\-killer のプロセス選択用として、カーネルが このプロセス
に対して与えた現在のスコアを表示する。 高いスコアは、そのプロセスが
OOM\-killer により選択される 可能性が高いことを意味する。 このスコアの基本は
-そのプロセスが使用しているメモリ量であり、 以下の要因により加算 (+) 減算 (\-)
+そのプロセスが使用しているメモリー量であり、 以下の要因により加算 (+) 減算 (\-)
が行われる。
.RS
.IP * 2
\fI/proc/[pid]/pagemap\fP を効率的に活用するには、 \fI/proc/[pid]/maps\fP
を使ってメモリーのどの領域が実際にマップされているかを判断し、 seek でマップされていない領域をスキップするのがよい。
.IP
-\fI/proc/[pid]/pagemap\fP ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\81®ã\81¯ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\82³ã\83³ã\83\95ã\82£ã\82®ã\83¥ã\83¬ã\83¼ã\82·ã\83§ã\83³ã\83»ã\82ªã\83\97ã\82·ã\83§ã\83³
+\fI/proc/[pid]/pagemap\fP ファイルが存在するのは、カーネルのコンフィギュレーションオプション
\fBCONFIG_PROC_PAGE_MONITOR\fP を有効にした場合だけである。
.TP
\fI/proc/[pid]/personality\fP (Linux 2.6.28 以降)
\fBpthread_exit\fP(3) を呼び出しにより行われる)。
.TP
\fI/proc/[pid]/smaps\fP (Linux 2.6.14 以降)
-このファイルは、そのプロセスの各マッピングのメモリ消費量を表示する (\fBpmap\fP(1) コマンドは解析しやすいであろう形式で同様の情報を表示する)。
-マッピングのそれぞれについて、以下のような内容が表示される。
+このファイルは、そのプロセスの各マッピングのメモリー消費量を表示する (\fBpmap\fP(1)
+ã\82³ã\83\9eã\83³ã\83\89ã\81¯è§£æ\9e\90ã\81\97ã\82\84ã\81\99ã\81\84ã\81§ã\81\82ã\82\8dã\81\86å½¢å¼\8fã\81§å\90\8cæ§\98ã\81®æ\83\85å ±ã\82\92表示ã\81\99ã\82\8b)ã\80\82 ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81®ã\81\9dã\82\8cã\81\9eã\82\8cã\81«ã\81¤ã\81\84ã\81¦ã\80\81以ä¸\8bã\81®ã\82\88ã\81\86ã\81ªå\86\85容ã\81\8c表示ã\81\95ã\82\8cã\82\8bã\80\82
.in +4n
.nf
上に存在するマッピングの量 ("Rss")、 このマッピングのこのプロセスの proportional share ("Pss")、
マッピング内の共有ページのうちクリーンなページ数とダーティページ数、
マッピング内のプライベートページのうちクリーンなページ数とダーティページ数、を示す。 "Referenced" は参照された (referenced)
-かアクセスされたと現在印が付いているメモリ量を示す。 "Anonymous" はどのファイルにも属していないメモリ量を示す。 "Swap"
-は使用中だがスワップされている無名メモリ (would\-be\-anonymous memory) の量を示す。
+かアクセスされたと現在印が付いているメモリー量を示す。 "Anonymous" はどのファイルにも属していないメモリー量を示す。 "Swap"
+は使用中だがスワップされている無名メモリー (would\-be\-anonymous memory) の量を示す。
The "KernelPageSize" entry is the page size used by the kernel to back a
VMA. This matches the size used by the MMU in the majority of cases.
nh \- no\-huge page advise flag
mg \- mergeable advise flag
-\fI/proc/[pid]/smaps\fP ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\81®ã\81¯ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\82³ã\83³ã\83\95ã\82£ã\82®ã\83¥ã\83¬ã\83¼ã\82·ã\83§ã\83³ã\83»ã\82ªã\83\97ã\82·ã\83§ã\83³
+\fI/proc/[pid]/smaps\fP ファイルが存在するのは、カーネルのコンフィギュレーションオプション
\fBCONFIG_PROC_PAGE_MONITOR\fP を有効にした場合だけである。
.TP
\fI/proc/[pid]/stack\fP (Linux 2.6.29 以降)
プロセスのセッション ID。
.TP
(7) \fItty_nr\fP \ %d
-ã\83\97ã\83ã\82»ã\82¹ã\81®å\88¶å¾¡ç«¯æ\9c« (ã\83\9eã\82¤ã\83\8aã\83¼ã\83»ã\83\87ã\83\90ã\82¤ã\82¹ç\95ªå\8f·ã\81¯ã\83\93ã\83\83ã\83\88 31ã\80\9c20 ã\81¨ 7ã\80\9c0 ã\81«ã\81¾ã\81\9fã\81\8cã\81£ã\81¦æ ¼ç´\8dã\81\95ã\82\8cã\80\81 ã\83¡ã\82¸ã\83£ã\83¼ã\83»デバイス番号はビット 15〜8
+ã\83\97ã\83ã\82»ã\82¹ã\81®å\88¶å¾¡ç«¯æ\9c« (ã\83\9eã\82¤ã\83\8aã\83¼ã\83\87ã\83\90ã\82¤ã\82¹ç\95ªå\8f·ã\81¯ã\83\93ã\83\83ã\83\88 31ã\80\9c20 ã\81¨ 7ã\80\9c0 ã\81«ã\81¾ã\81\9fã\81\8cã\81£ã\81¦æ ¼ç´\8dã\81\95ã\82\8cã\80\81 ã\83¡ã\82¸ã\83£ã\83¼デバイス番号はビット 15〜8
に格納される)。
.TP
(8) \fItpgid\fP \ %d
.\" This field and following, up to and including wchan added 0.99.1
-ã\83\97ã\83ã\82»ã\82¹ã\81®å\88¶å¾¡ç«¯æ\9c«ã\81®ã\83\95ã\82©ã\82¢ã\82°ã\83©ã\83³ã\83\89ã\83»ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\81® IDã\80\82
+プロセスの制御端末のフォアグランド・プロセスグループの ID。
.TP
(9) \fIflags\fP \ %u
プロセスのカーネルフラグワード。 ビットの意味は、 \fI<linux/sched.h>\fP で定義されている PF_* を参照すること。
このフィールドのフォーマットは Linux 2.6 より前では %lu であった。
.TP
(10) \fIminflt\fP \ %lu
-プロセスが引き起こしたマイナーフォールト (minor fault、ディスクから メモリページへのロードを必要としないフォールト) の回数。
+ã\83\97ã\83ã\82»ã\82¹ã\81\8cå¼\95ã\81\8dèµ·ã\81\93ã\81\97ã\81\9fã\83\9eã\82¤ã\83\8aã\83¼ã\83\95ã\82©ã\83¼ã\83«ã\83\88 (minor faultã\80\81ã\83\87ã\82£ã\82¹ã\82¯ã\81\8bã\82\89 ã\83¡ã\83¢ã\83ªã\83¼ã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\83ã\83¼ã\83\89ã\82\92å¿\85è¦\81ã\81¨ã\81\97ã\81ªã\81\84ã\83\95ã\82©ã\83¼ã\83«ã\83\88) ã\81®å\9b\9eæ\95°ã\80\82
.TP
(11) \fIcminflt\fP \ %lu
(そのプロセスが終了を待っている) 子プロセスが引き起こしたマイナーフォールトの回数。
.TP
(12) \fImajflt\fP \ %lu
-プロセスが引き起こしたメジャーフォールト (major fault、ディスクからメモリページへのロードを必要とするフォールト) の回数。
+ã\83\97ã\83ã\82»ã\82¹ã\81\8cå¼\95ã\81\8dèµ·ã\81\93ã\81\97ã\81\9fã\83¡ã\82¸ã\83£ã\83¼ã\83\95ã\82©ã\83¼ã\83«ã\83\88 (major faultã\80\81ã\83\87ã\82£ã\82¹ã\82¯ã\81\8bã\82\89ã\83¡ã\83¢ã\83ªã\83¼ã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\83ã\83¼ã\83\89ã\82\92å¿\85è¦\81ã\81¨ã\81\99ã\82\8bã\83\95ã\82©ã\83¼ã\83«ã\83\88) ã\81®å\9b\9eæ\95°ã\80\82
.TP
(13) \fIcmajflt\fP \ %lu
(そのプロセスが終了を待っている) 子プロセスが引き起こしたメジャーフォールトの回数。
単位で計測される (\fIsysconf(_SC_CLK_TCK)\fP で割った値が表示される)。
.TP
(16) \fIcutime\fP \ %ld
-このプロセスの子プロセスで、終了待ち (waited\-for) のプロセスが、 ユーザモードでスケジューリングされた時間の合計。 clock tick
+ã\81\93ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®å\90ã\83\97ã\83ã\82»ã\82¹ã\81§ã\80\81çµ\82äº\86å¾\85ã\81¡ (waited\-for) ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\80\81 ã\83¦ã\83¼ã\82¶ã\83¼ã\83¢ã\83¼ã\83\89ã\81§ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\81\9fæ\99\82é\96\93ã\81®å\90\88è¨\88ã\80\82 clock tick
単位で計測される (\fIsysconf(_SC_CLK_TCK)\fP で割った値が表示される)。 (\fBtimes\fP(2) も参照すること。)
この値にはゲスト時間 \fIcguest_time\fP (仮想 CPU を実行するのに消費した時間、下記参照) も含まれる。
.TP
単位で計測される (\fIsysconf(_SC_CLK_TCK)\fP で割った値が表示される)。
.TP
(18) \fIpriority\fP \ %ld
-(Linux 2.6 ã\81®å ´å\90\88ã\81®èª¬æ\98\8e) ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\83»ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\9dã\83ªã\82·ã\83¼ (ä¸\8bè¨\98ã\81®
+(Linux 2.6 の場合の説明) リアルタイムスケジューリングポリシー (下記の
\fIpolicy ;\fP \fBsched_setscheduler\fP(2) 参照) で動作しているプロセスでは、 この
値はスケジューリング優先度を反転した値 (スケジューリング優先度を マイナスにし
た値) となる。値は \-2 から \-100 までの範囲の数値で、 それぞれリアルタイム優先
度の 1 から 99 に対応する。 リアルタイム以外のスケジューリングポリシーで動作し
ているプロセスでは、 この値はカーネル内で管理されている nice 値そのもの
(\fBsetpriority\fP(2)) となる。 カーネルは nice 値を 0 (高) から 39 (低) の範囲
-の値として保持しており、 それぞれユーザに見える nice 値の \-20 から 19 に対応
+ã\81®å\80¤ã\81¨ã\81\97ã\81¦ä¿\9dæ\8c\81ã\81\97ã\81¦ã\81\8aã\82\8aã\80\81 ã\81\9dã\82\8cã\81\9eã\82\8cã\83¦ã\83¼ã\82¶ã\83¼ã\81«è¦\8bã\81\88ã\82\8b nice å\80¤ã\81® \-20 ã\81\8bã\82\89 19 ã\81«å¯¾å¿\9c
する。
.\" And back in kernel 1.2 days things were different again.
にハードコードされていた。
.TP
(21) \fIitrealvalue\fP \ %ld
-インターバルタイマによって、次に \fBSIGALRM\fP がプロセスへ送られるまでの時間 (単位 jiffies)。 カーネル 2.6.17
+ã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83«ã\82¿ã\82¤ã\83\9eã\83¼ã\81«ã\82\88ã\81£ã\81¦ã\80\81次ã\81« \fBSIGALRM\fP ã\81\8cã\83\97ã\83ã\82»ã\82¹ã\81¸é\80\81ã\82\89ã\82\8cã\82\8bã\81¾ã\81§ã\81®æ\99\82é\96\93 (å\8d\98ä½\8d jiffies)ã\80\82 ã\82«ã\83¼ã\83\8dã\83« 2.6.17
以降では、このフィールドはメンテナンスされなくなり、 0 にハードコードされている。
.TP
(22) \fIstarttime\fP \ %llu
このフィールドのフォーマットは Linux 2.6 より前では %lu であった。
.TP
(23) \fIvsize\fP \ %lu
-仮想メモリのサイズ。単位はバイト。
+ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82µã\82¤ã\82ºã\80\82å\8d\98ä½\8dã\81¯ã\83\90ã\82¤ã\83\88ã\80\82
.TP
(24) \fIrss\fP \ %ld
-Resident Set Size。プロセスが持っている実メモリ上のページ数。
+Resident Set Size。プロセスが持っている実メモリー上のページ数。
これはちょうどテキスト、データ、スタック空間に使われているページ数である。 デマンドロードされていないページや
スワップアウトされたページの数は含んでいない。
.TP
(25) \fIrsslim\fP \ %lu
-ã\81\93ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81® rss ã\81®ç\8f¾å\9c¨ã\81®ã\82½ã\83\95ã\83\88ã\83»ã\83ªã\83\9fã\83\83ã\83\88 (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d)ã\80\82 \fBgetrlimit\fP(2) ã\81® \fBRLIMIT_RSS\fP ã\81®èª¬æ\98\8eã\82\92å\8f\82ç\85§ã\80\82
+このプロセスの rss の現在のソフトリミット (バイト単位)。 \fBgetrlimit\fP(2) の \fBRLIMIT_RSS\fP の説明を参照。
.TP
(26) \fIstartcode\fP \ %lu
プログラムテキストが実行可能であるような領域の先頭アドレス。
スタックの開始アドレス (すなわち、スタックの底)。
.TP
(29) \fIkstkesp\fP \ %lu
-現在の ESP (スタックポインタ) の値。 プロセスのカーネルスタックページにある。
+現在の ESP (スタックポインター) の値。 プロセスのカーネルスタックページにある。
.TP
(30) \fIkstkeip\fP \ %lu
-現在の EIP (インストラクションポインタ) の値。
+現在の EIP (インストラクションポインター) の値。
.TP
(31) \fIsignal\fP \ %lu
処理待ちのシグナルのビットマップ。 10
-é\80²æ\95°ã\81§è¡¨ç¤ºã\81\95ã\82\8cã\82\8bã\80\82ã\81\93ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯å»\83æ¢äº\88å®\9aã\81§ã\81\82ã\82\8bã\80\82ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\83»ã\82·ã\82°ã\83\8aã\83«ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\81¯è¡¨ç¤ºã\81\95ã\82\8cã\81ªã\81\84ã\81\8bã\82\89ã\81§ã\81\82ã\82\8bã\80\82代ã\82\8fã\82\8aã\81«
+進数で表示される。このフィールドは廃止予定である。リアルタイムシグナルに関する情報は表示されないからである。代わりに
\fI/proc/[pid]/status\fP を使うこと。
.TP
(32) \fIblocked\fP \ %lu
ブロックされた (blocked) シグナルのビットマップ。 10 進数で表示される。 このフィールドは廃止予定である。
-ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\83»ã\82·ã\82°ã\83\8aã\83«ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\81¯è¡¨ç¤ºã\81\95ã\82\8cã\81ªã\81\84ã\81\8bã\82\89ã\81§ã\81\82ã\82\8bã\80\82 代ã\82\8fã\82\8aã\81« \fI/proc/[pid]/status\fP ã\82\92使ã\81\86ã\81\93ã\81¨ã\80\82
+リアルタイムシグナルに関する情報は表示されないからである。 代わりに \fI/proc/[pid]/status\fP を使うこと。
.TP
(33) \fIsigignore\fP \ %lu
無視された (ignored) シグナルのビットマップ。 10 進数で表示される。 このフィールドは廃止予定である。
-ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\83»ã\82·ã\82°ã\83\8aã\83«ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\81¯è¡¨ç¤ºã\81\95ã\82\8cã\81ªã\81\84ã\81\8bã\82\89ã\81§ã\81\82ã\82\8bã\80\82 代ã\82\8fã\82\8aã\81« \fI/proc/[pid]/status\fP ã\82\92使ã\81\86ã\81\93ã\81¨ã\80\82
+リアルタイムシグナルに関する情報は表示されないからである。 代わりに \fI/proc/[pid]/status\fP を使うこと。
.TP
(34) \fIsigcatch\fP \ %lu
捕捉された (caught) シグナルのビットマップ。 10 進数で表示される。 このフィールドは廃止予定である。
-ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\83»ã\82·ã\82°ã\83\8aã\83«ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\81¯è¡¨ç¤ºã\81\95ã\82\8cã\81ªã\81\84ã\81\8bã\82\89ã\81§ã\81\82ã\82\8bã\80\82 代ã\82\8fã\82\8aã\81« \fI/proc/[pid]/status\fP ã\82\92使ã\81\86ã\81\93ã\81¨ã\80\82
+リアルタイムシグナルに関する情報は表示されないからである。 代わりに \fI/proc/[pid]/status\fP を使うこと。
.TP
(35) \fIwchan\fP \ %lu
This is the "channel" in which the process is waiting. It is the address of
このプロセスを最後に実行した CPU の番号。
.TP
(40) \fIrt_priority\fP \ %u \ (Linux 2.5.19 以降)
-ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\83»ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\81®å\84ªå\85\88度ã\80\82 ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\83»ポリシーの元でスケジューリングされるプロセスでは 1 から 99 の範囲の値となり、
+ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\81®å\84ªå\85\88度ã\80\82 ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ポリシーの元でスケジューリングされるプロセスでは 1 から 99 の範囲の値となり、
リアルタイム以外のスケジューリングポリシーのプロセスでは 0 となる (\fBsched_setscheduler\fP(2) 参照)。
.TP
(41) \fIpolicy\fP \ %u \ (Linux 2.5.19 以降)
-ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83»ã\83\9dã\83ªã\82·ã\83¼ (\fBsched_setscheduler\fP(2) å\8f\82ç\85§)ã\80\82 å\80¤ã\81¯ã\80\81 \fIlinux/sched.h\fP ã\81® SCHED_*
+スケジューリングポリシー (\fBsched_setscheduler\fP(2) 参照)。 値は、 \fIlinux/sched.h\fP の SCHED_*
定数を使ってデコードすればよい。
このフィールドのフォーマットは Linux 2.6.22 より前は %lu であった。
.RE
.TP
\fI/proc/[pid]/statm\fP
-(ページ単位で計測した) メモリ使用量についての情報を提供する。 各列は以下の通りである。
+(ページ単位で計測した) メモリー使用量についての情報を提供する。 各列は以下の通りである。
.in +4n
.nf
.\" (including libs; broken, includes library text)
size プログラムサイズの総計
(\fI/proc/[pid]/status\fP の VmSize と同じ)
-resident 実メモリ上に存在するページ
+resident 実メモリー上に存在するページ
(\fI/proc/[pid]/status\fP の VmRSS と同じ)
share 共有ページ (ファイルと関連付けられているページ)
text テキスト (コード)
.IP *
\fIUid\fP, \fIGid\fP: 実 UID/GID、実効 UID/GID、保存 set\-UID/GID、ファイルシステム UID/GID。
.IP *
-\fIFDSize\fP: 現在割り当てられているファイルディスクリプタのスロット数。
+\fIFDSize\fP: ç\8f¾å\9c¨å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\82¹ã\83ã\83\83ã\83\88æ\95°ã\80\82
.IP *
\fIGroups\fP: 補助グループのリスト。
.IP *
-\fIVmPeak\fP: 仮想メモリサイズのピーク値。
+\fIVmPeak\fP: ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\82µã\82¤ã\82ºã\81®ã\83\94ã\83¼ã\82¯å\80¤ã\80\82
.IP *
-\fIVmSize\fP: 仮想メモリサイズ。
+\fIVmSize\fP: ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\82µã\82¤ã\82ºã\80\82
.IP *
-\fIVmLck\fP: ロックされているメモリサイズ (\fBmlock\fP(3) 参照)。
+\fIVmLck\fP: ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\82µã\82¤ã\82º (\fBmlock\fP(3) å\8f\82ç\85§)ã\80\82
.IP *
-\fIVmHWM\fP: 実メモリ上に存在するページサイズ (resident set size) のピーク値 ("high water mark")。
+\fIVmHWM\fP: 実メモリー上に存在するページサイズ (resident set size) のピーク値 ("high water mark")。
.IP *
-\fIVmRSS\fP: 実メモリ上に存在するページサイズ。
+\fIVmRSS\fP: 実メモリー上に存在するページサイズ。
.IP *
\fIVmData\fP, \fIVmStk\fP, \fIVmExe\fP: データ、スタック、テキストセグメントのサイズ。
.IP *
-\fIVmLib\fP: å\85±æ\9c\89ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\83»ã\82³ã\83¼ã\83\89ã\81®ã\82µã\82¤ã\82ºã\80\82
+\fIVmLib\fP: 共有ライブラリコードのサイズ。
.IP *
-\fIVmPTE\fP: ã\83\9aã\83¼ã\82¸ã\83»ã\83\86ã\83¼ã\83\96ã\83«ã\83»ã\82¨ã\83³ã\83\88ã\83ªのサイズ (Linux 2.6.10 以降)。
+\fIVmPTE\fP: ã\83\9aã\83¼ã\82¸ã\83\86ã\83¼ã\83\96ã\83«ã\82¨ã\83³ã\83\88ã\83ªã\83¼のサイズ (Linux 2.6.10 以降)。
.IP *
.\" commit b084d4353ff99d824d3bc5a5c2c22c70b1fba722
-\fIVmSwap\fP: スワップアウトされた仮想メモリサイズ (Linux 2.6.34 以降).
+\fIVmSwap\fP: ã\82¹ã\83¯ã\83\83ã\83\97ã\82¢ã\82¦ã\83\88ã\81\95ã\82\8cã\81\9fä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\82µã\82¤ã\82º (Linux 2.6.34 以é\99\8d).
.IP *
\fIThreads\fP: このスレッドが属するプロセスのスレッド数。
.IP *
-\fISigQ\fP: このフィールドにはスラッシュで区切られた 2 つの数字が入っている。この数字はこのプロセスの実ユーザ ID
-宛にキューイングされたシグナルに関するものである。一つ目の数字は、この実ユーザ ID
+\fISigQ\fP: このフィールドにはスラッシュで区切られた 2 つの数字が入っている。この数字はこのプロセスの実ユーザー ID
+宛にキューイングされたシグナルに関するものである。一つ目の数字は、この実ユーザー ID
宛に現在キューイングされているシグナル数である。二つ目の数字は、このプロセス宛にキューイングされたシグナル数に関するリソース上限値である
(\fBgetrlimit\fP(2) の \fBRLIMIT_SIGPENDING\fP の説明を参照)。
.IP *
\fICapInh\fP, \fICapPrm\fP, \fICapEff\fP: 継承可能 (inheritable)、許可 (permitted)、実効
(effective) の各ケーパビリティセットで有効になっているケーパビリティのマスク値 (\fBcapabilities\fP(7) 参照)。
.IP *
-\fICapBnd\fP: ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88 (Linux 2.6.26 以é\99\8dã\80\81 \fBcapabilities\fP(7) å\8f\82ç\85§)ã\80\82
+\fICapBnd\fP: ケーパビリティバウンディングセット (Linux 2.6.26 以降、 \fBcapabilities\fP(7) 参照)。
.IP *
.\" commit 2f4b3bf6b2318cfaa177ec5a802f4d8d6afbd816
\fISeccomp\fP: Seccomp mode of the process (since Linux 3.8, see
\fICpus_allowed_list\fP: 前項と同じだが、「リスト形式」での表示 (Linux 2.6.26 以降、 \fBcpuset\fP(7)
参照)。
.IP *
-\fIMems_allowed\fP: このプロセスが使用できるメモリノードのマスク値 (Linux 2.6.24 以降、 \fBcpuset\fP(7)
+\fIMems_allowed\fP: ã\81\93ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8c使ç\94¨ã\81§ã\81\8dã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\83\8eã\83¼ã\83\89ã\81®ã\83\9eã\82¹ã\82¯å\80¤ (Linux 2.6.24 以é\99\8dã\80\81 \fBcpuset\fP(7)
参照)。
.IP *
\fIMems_allowed_list\fP: 前項と同じだが、「リスト形式」での表示 (Linux 2.6.26 以降、 \fBcpuset\fP(7)
各サブディレクトリの名前はスレッドのスレッド ID (\fI[tid]\fP) を示す数字である \fB(\fPgettid\fB(2)\fP を参照)。
これらの各サブディレクトリには、 \fI/proc/[pid]\fP ディレクトリ以下と同じ名前と内容のファイル群がある。
すべてのスレッドで共有される属性の場合、 \fItask/[tid]\fP サブディレクトリ以下の各ファイルの内容は 親ディレクトリ
-\fI/proc/[pid]\fP ã\81®å¯¾å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81¨å\90\8cã\81\98ã\81«ã\81ªã\82\8bã\81\93ã\81¨ã\81 ã\82\8dã\81\86 (ä¾\8bã\81\88ã\81°ã\80\81ã\83\9eã\83«ã\83\81ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\83\97ã\83ã\82»ã\82¹ã\81§ã\81¯ã\83\95ã\82¡ã\82¤ã\83«
-\fItask/[tid]/cwd\fP はいずれも親ディレクトリ内の \fI/proc/[pid]/cwd\fP
-ã\81¨å\90\8cã\81\98å\80¤ã\82\92æ\8c\81ã\81¤ã\81\93ã\81¨ã\81«ã\81ªã\82\8bã\80\82ã\81ªã\81\9cã\81ªã\82\89ã\80\81ä¸\80ã\81¤ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«å±\9eã\81\99ã\81\99ã\81¹ã\81¦ã\81® ã\82¹ã\83¬ã\83\83ã\83\89ã\81¯ä½\9cæ¥ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\81\8bã\82\89ã\81§ã\81\82ã\82\8b)ã\80\82 ã\82¹ã\83¬ã\83\83ã\83\89æ¯\8eã\81«ç\8b¬ç«\8bã\81ªå±\9eæ\80§ã\81®å ´å\90\88ã\80\81
-\fItask/[tid]\fP サブディレクトリ以下の各ファイルは異なる値を持つことがある (例えば、ファイル \fItask/[tid]/status\fP
+\fI/proc/[pid]\fP ã\81®å¯¾å¿\9cã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81¨å\90\8cã\81\98ã\81«ã\81ªã\82\8bã\81\93ã\81¨ã\81 ã\82\8dã\81\86 (ä¾\8bã\81\88ã\81°ã\80\81ã\83\9eã\83«ã\83\81ã\82¹ã\83¬ã\83\83ã\83\89ã\83\97ã\83ã\82»ã\82¹ã\81§ã\81¯ã\83\95ã\82¡ã\82¤ã\83« \fItask/[tid]/cwd\fP
+はいずれも親ディレクトリ内の \fI/proc/[pid]/cwd\fP と同じ値を持つことになる。なぜなら、一つのプロセスに属すすべての
+ã\82¹ã\83¬ã\83\83ã\83\89ã\81¯ä½\9cæ¥ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\81\8bã\82\89ã\81§ã\81\82ã\82\8b)ã\80\82 ã\82¹ã\83¬ã\83\83ã\83\89æ¯\8eã\81«ç\8b¬ç«\8bã\81ªå±\9eæ\80§ã\81®å ´å\90\88ã\80\81 \fItask/[tid]\fP
+サブディレクトリ以下の各ファイルは異なる値を持つことがある (例えば、ファイル \fItask/[tid]/status\fP
はスレッド毎に異なる値を持つ可能性がある)。
.\" The following was still true as at kernel 2.6.13
が有効になっている場合のみである。
.TP
\fI/proc/cpuinfo\fP
-ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81CPU ã\81\8aã\82\88ã\81³ã\82·ã\82¹ã\83\86ã\83 ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81«ä¾\9då\98ã\81\99ã\82\8bé \85ç\9b®ã\82\92 é\9b\86ã\82\81ã\81\9fã\82\82ã\81®ã\81§ã\80\81ã\83ªã\82¹ã\83\88ã\81®å\86\85容ã\81¯ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£毎に異なる。 2
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81CPU ã\81\8aã\82\88ã\81³ã\82·ã\82¹ã\83\86ã\83 ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bé \85ç\9b®ã\82\92 é\9b\86ã\82\81ã\81\9fã\82\82ã\81®ã\81§ã\80\81ã\83ªã\82¹ã\83\88ã\81®å\86\85容ã\81¯ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼毎に異なる。 2
つだけ共通の項目がある。 \fIprocessor\fP はプロセッサ番号で、 \fIbogomips\fP はカーネルの初期化時に計算されるシステム定数である。
SMP マシンでは各 CPU についての情報が書かれている。 \fBlscpu\fP(1) コマンドはこのファイルから情報を収集する。
.TP
実行ドメインのリスト (ABI パーソナリティ)。
.TP
\fI/proc/fb\fP
-カーネルのコンパイル時に \fBCONFIG_FB\fP が定義されている場合、フレームバッファの情報が書かれる。
+ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\82³ã\83³ã\83\91ã\82¤ã\83«æ\99\82ã\81« \fBCONFIG_FB\fP ã\81\8cå®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81ã\83\95ã\83¬ã\83¼ã\83 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\83\85å ±ã\81\8cæ\9b¸ã\81\8bã\82\8cã\82\8bã\80\82
.TP
\fI/proc/filesystems\fP
カーネルが対応しているファイルシステムのテキスト形式のリスト。 カーネルに組み込まれてコンパイルされたファイルシステムと、
.in +4n
.nf
-cache バッファサイズ (KB)
+cache ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82º (KB)
capacity セクタ数
driver ドライバのバージョン
geometry 物理ジオメトリと論理ジオメトリ
.TP
\fI/proc/interrupts\fP
IO デバイス毎の CPU 別の割り込み回数の記録に使われる。 Linux 2.6.24 以降、少なくとも i386 と x86_64
-アーキテクチャでは、 (デバイスと関連がない) システム内部の割り込みについても記録される。 システム内部の割り込みには、NMI
+ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81 (ã\83\87ã\83\90ã\82¤ã\82¹ã\81¨é\96¢é\80£ã\81\8cã\81ªã\81\84) ã\82·ã\82¹ã\83\86ã\83 å\86\85é\83¨ã\81®å\89²ã\82\8aè¾¼ã\81¿ã\81«ã\81¤ã\81\84ã\81¦ã\82\82è¨\98é\8c²ã\81\95ã\82\8cã\82\8bã\80\82 ã\82·ã\82¹ã\83\86ã\83 å\86\85é\83¨ã\81®å\89²ã\82\8aè¾¼ã\81¿ã\81«ã\81¯ã\80\81NMI
(nonmaskable interrupt), LOC (local timer interrupt) や、SMP システムでは TLB (TLB
flush interrupt), RES (rescheduling interrupt), CAL (remote function call
interrupt) などがある。 簡単に読むことのできるフォーマットで、ASCII で表記されている。
.TP
\fI/proc/iomem\fP
-Linux 2.4 における I/O メモリマップ。
+Linux 2.4 ã\81«ã\81\8aã\81\91ã\82\8b I/O ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\97ã\80\82
.TP
\fI/proc/ioports\fP
現在登録され使われている I/O ポート領域のリスト。
.TP
\fI/proc/kallsyms\fP (Linux 2.5.71 以降)
-カーネルの外部シンボル定義を保持する。 \fBmodules\fP(X) 関係のツールがローダブルモジュールを動的にリンクしたり バインド (bind)
+ã\82«ã\83¼ã\83\8dã\83«ã\81®å¤\96é\83¨ã\82·ã\83³ã\83\9cã\83«å®\9a義ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\80\82 \fBmodules\fP(X) é\96¢ä¿\82ã\81®ã\83\84ã\83¼ã\83«ã\81\8cã\83ã\83¼ã\83\80ã\83¼ã\83\96ã\83«ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\82\92å\8b\95ç\9a\84ã\81«ã\83ªã\83³ã\82¯ã\81\97ã\81\9fã\82\8a ã\83\90ã\82¤ã\83³ã\83\89 (bind)
するのに使われる。 Linux 2.5.47 以前では、微妙に異なる書式の似たようなファイルが \fIksyms\fP という名前であった。
.TP
\fI/proc/kcore\fP
-このファイルはシステムの物理メモリを表現しており、 ELF コアファイル形式 (core file format) で保持されている。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\82·ã\82¹ã\83\86ã\83 ã\81®ç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\83¼ã\82\92表ç\8f¾ã\81\97ã\81¦ã\81\8aã\82\8aã\80\81 ELF ã\82³ã\82¢ã\83\95ã\82¡ã\82¤ã\83«å½¢å¼\8f (core file format) ã\81§ä¿\9dæ\8c\81ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
この擬似ファイルと strip されていないカーネルのバイナリ (\fI/usr/src/linux/vmlinux\fP) [訳注:
パッケージに依存する]) があれば、 GDB はカーネル内の任意のデータ構造の現在の状態を調べられる。
-このファイルの大きさは物理メモリ (RAM) のサイズに 4KB を加えた値である。
+このファイルの大きさは物理メモリー (RAM) のサイズに 4KB を加えた値である。
.TP
\fI/proc/kmsg\fP
このファイルは \fBsyslog\fP(2) システムコールでカーネルメッセージを読み出す代りに使える。
このファイルには、 各物理ページフレームがマッピングされた回数が 64 ビットカウンターとして入っている。 インデックスはページフレーム番号である
(\fI/proc/[pid]/pagemap\fP の議論を参照)。
.IP
-\fI/proc/kpagecount\fP ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\81®ã\81¯ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\82³ã\83³ã\83\95ã\82£ã\82®ã\83¥ã\83¬ã\83¼ã\82·ã\83§ã\83³ã\83»ã\82ªã\83\97ã\82·ã\83§ã\83³
+\fI/proc/kpagecount\fP ファイルが存在するのは、カーネルのコンフィギュレーションオプション
\fBCONFIG_PROC_PAGE_MONITOR\fP を有効にした場合だけである。
.TP
\fI/proc/kpageflags\fP (Linux 2.6.25 以降)
2.6.29 より前では、 \fBKPF_WRITEBACK\fP, \fBKPF_RECLAIM\fP, \fBKPF_BUDDY\fP, \fBKPF_LOCKED\fP
は正しい値を返さなかった。
.IP
-\fI/proc/kpageflags\fP ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\81®ã\81¯ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\82³ã\83³ã\83\95ã\82£ã\82®ã\83¥ã\83¬ã\83¼ã\82·ã\83§ã\83³ã\83»ã\82ªã\83\97ã\82·ã\83§ã\83³
+\fI/proc/kpageflags\fP ファイルが存在するのは、カーネルのコンフィギュレーションオプション
\fBCONFIG_PROC_PAGE_MONITOR\fP を有効にした場合だけである。
.TP
\fI/proc/ksyms\fP (Linux 1.1.23\-2.5.47)
コンパイルのときに \fBCONFIGDEBUGMALLOC\fP が定義されているときのみ、このファイルは存在する。
.TP
\fI/proc/meminfo\fP
-このファイルはシステムのメモリ使用状況の統計情報を表示する。 \fBfree\fP(1) はこのファイルを使って、 そのシステムの
-(ç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\81¨ã\82¹ã\83¯ã\83\83ã\83\97ã\81®ä¸¡æ\96¹ã\81®) æ\9cªä½¿ç\94¨ã\81¨ä½¿ç\94¨ä¸ã\81®ã\83¡ã\83¢ã\83ªé\87\8fã\81¨ã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\81\8c使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\81¨ã\83\90ã\83\83ã\83\95ã\82¡の使用量を表示する。
-このファイルの各行は、パラメータ名の後に、 コロン、 パラメータ値が続く。 最後に ("kB" などの) 計測単位がある場合もある。 以下のリストでは、
-フィールド名と、フィールド値を読み込むのに必要なフォーマット指定子 (format specifier) について説明する。
+このファイルはシステムのメモリー使用状況の統計情報を表示する。 \fBfree\fP(1) はこのファイルを使って、 そのシステムの
+(ç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\83¼ã\81¨ã\82¹ã\83¯ã\83\83ã\83\97ã\81®ä¸¡æ\96¹ã\81®) æ\9cªä½¿ç\94¨ã\81¨ä½¿ç\94¨ä¸ã\81®ã\83¡ã\83¢ã\83ªã\83¼é\87\8fã\81¨ã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\81\8c使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81¨ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼の使用量を表示する。
+このファイルの各行は、パラメーター名の後に、 コロン、 パラメーター値が続く。 最後に ("kB" などの) 計測単位がある場合もある。
+以下のリストでは、 フィールド名と、フィールド値を読み込むのに必要なフォーマット指定子 (format specifier) について説明する。
特に注記がある場合を除くと、すべてのフィールドが少なくとも Linux 2.6.0 以降では存在する。
いくつかのフィールドは、カーネルでオプションが有効になっている場合にのみ表示される。 こうした依存関係についてはリスト内に注記がある。
.RS
tremendously large (20MB or so).
.TP
\fICached\fP %lu
-ディスクから読み出したファイルのインメモリキャッシュ (ページキャッシュ)。 \fISwapCached\fP は含まれない。
+ã\83\87ã\82£ã\82¹ã\82¯ã\81\8bã\82\89èªã\81¿å\87ºã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¤ã\83³ã\83¡ã\83¢ã\83ªã\83¼ã\82ã\83£ã\83\83ã\82·ã\83¥ (ã\83\9aã\83¼ã\82¸ã\82ã\83£ã\83\83ã\82·ã\83¥)ã\80\82 \fISwapCached\fP ã\81¯å\90«ã\81¾ã\82\8cã\81ªã\81\84ã\80\82
.TP
\fISwapCached\fP %lu
-ä¸\80度ã\82¹ã\83¯ã\83\83ã\83\97ã\82¢ã\82¦ã\83\88ã\81\95ã\82\8cã\80\81ã\81\9dã\81®å¾\8cã\82¹ã\83¯ã\83\83ã\83\97ã\82¤ã\83³ã\81\95ã\82\8cã\81\9fã\81\8cã\80\81ã\81¾ã\81 ã\82¹ã\83¯ã\83\83ã\83\97ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\82\82å\98å\9c¨ã\81\99ã\82\8bã\83¡ã\83¢ã\83ªã\80\82 (ã\83¡ã\83¢ã\83ªが残り少ない場合、
+ä¸\80度ã\82¹ã\83¯ã\83\83ã\83\97ã\82¢ã\82¦ã\83\88ã\81\95ã\82\8cã\80\81ã\81\9dã\81®å¾\8cã\82¹ã\83¯ã\83\83ã\83\97ã\82¤ã\83³ã\81\95ã\82\8cã\81\9fã\81\8cã\80\81ã\81¾ã\81 ã\82¹ã\83¯ã\83\83ã\83\97ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\82\82å\98å\9c¨ã\81\99ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\80\82 (ã\83¡ã\83¢ã\83ªã\83¼が残り少ない場合、
これらのページは、すでにスワップファイルに存在するので、もう一度スワップアウトする必要がない。 これにより I/O が節約できる。)
.TP
\fIActive\fP %lu
-æ\9c\80è¿\91使ç\94¨ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\81§ã\80\81é\80\9a常ã\81¯æ\9c¬å½\93ã\81«å¿\85è¦\81ã\81«ã\81ªã\82\89ã\81ªã\81\84é\99\90ã\82\8aå\9b\9eå\8f\8eã\81\95ã\82\8cã\81ªã\81\84ã\83¡ã\83¢ã\83ª。
+æ\9c\80è¿\91使ç\94¨ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81§ã\80\81é\80\9a常ã\81¯æ\9c¬å½\93ã\81«å¿\85è¦\81ã\81«ã\81ªã\82\89ã\81ªã\81\84é\99\90ã\82\8aå\9b\9eå\8f\8eã\81\95ã\82\8cã\81ªã\81\84ã\83¡ã\83¢ã\83ªã\83¼。
.TP
\fIInactive\fP %lu
-æ\9c\80è¿\91ã\81\82ã\81¾ã\82\8a使ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\83¡ã\83¢ã\83ªã\80\82 ä»\96ã\81®ä½¿ç\94¨ã\81\99ã\82\8bã\81\9fã\82\81ã\81«å\84ªå\85\88ã\81\97ã\81¦å\9b\9eå\8f\8eã\81\99ã\81¹ã\81\8dã\83¡ã\83¢ã\83ª。
+æ\9c\80è¿\91ã\81\82ã\81¾ã\82\8a使ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\83¡ã\83¢ã\83ªã\83¼ã\80\82 ä»\96ã\81®ä½¿ç\94¨ã\81\99ã\82\8bã\81\9fã\82\81ã\81«å\84ªå\85\88ã\81\97ã\81¦å\9b\9eå\8f\8eã\81\99ã\81¹ã\81\8dã\83¡ã\83¢ã\83ªã\83¼。
.TP
\fIActive(anon)\fP %lu (Linux 2.6.28 以降)
[後で記載する]
(Linux 2.6.28 から 2.6.30 まででは \fBCONFIG_UNEVICTABLE_LRU\fP が必要であった。) [後で記載する]
.TP
\fIHighTotal\fP %lu
-(Linux 2.6.19 以é\99\8dã\81§ã\81¯ \fBCONFIG_HIGHMEM\fP ã\81\8cå¿\85è¦\81) highmem ã\81®ç·\8fé\87\8fã\80\82 highmem ã\81¯ç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\81® 860MB
-付近よりも上の部分のメモリ領域全体のことである。 highmem 領域はユーザー空間プログラムとページキャッシュで使用される。
-カーネルはこのメモリにアクセスするのに小技を使っており、 lowmem よりもアクセスが遅くなる。
+(Linux 2.6.19 以é\99\8dã\81§ã\81¯ \fBCONFIG_HIGHMEM\fP ã\81\8cå¿\85è¦\81) highmem ã\81®ç·\8fé\87\8fã\80\82 highmem ã\81¯ç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\83¼ã\81®
+860MB 付近よりも上の部分のメモリー領域全体のことである。 highmem 領域はユーザー空間プログラムとページキャッシュで使用される。
+ã\82«ã\83¼ã\83\8dã\83«ã\81¯ã\81\93ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8bã\81®ã\81«å°\8fæ\8a\80ã\82\92使ã\81£ã\81¦ã\81\8aã\82\8aã\80\81 lowmem ã\82\88ã\82\8aã\82\82ã\82¢ã\82¯ã\82»ã\82¹ã\81\8cé\81\85ã\81\8fã\81ªã\82\8bã\80\82
.TP
\fIHighFree\fP %lu
(Linux 2.6.19 以降では \fBCONFIG_HIGHMEM\fP が必要) 未使用の highmem 量。
現在未使用のスワップ空間の量。
.TP
\fIDirty\fP %lu
-ディスクに書き戻されるのを待っているメモリ。
+ã\83\87ã\82£ã\82¹ã\82¯ã\81«æ\9b¸ã\81\8dæ\88»ã\81\95ã\82\8cã\82\8bã\81®ã\82\92å¾\85ã\81£ã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\80\82
.TP
\fIWriteback\fP %lu
-現在ディスクに書き戻し中のメモリ。
+ç\8f¾å\9c¨ã\83\87ã\82£ã\82¹ã\82¯ã\81«æ\9b¸ã\81\8dæ\88»ã\81\97ä¸ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\80\82
.TP
\fIAnonPages\fP %lu (Linux 2.6.18 以降)
ユーザー空間ページテーブルにマッピングされているファイルと関連付けられていないページ。
.TP
\fIMapped\fP %lu
-(\fBmmap\fP(2) で) メモリにマッピングされているファイル。 ライブラリなど。
+(\fBmmap\fP(2) ã\81§) ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\80\82 ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81ªã\81©ã\80\82
.TP
\fIShmem\fP %lu (Linux 2.6.32 以降)
[後で記載する]
回収可能な \fISlab\fP。 キャッシュなど。
.TP
\fISUnreclaim\fP %lu (Linux 2.6.19 以降)
-メモリ消費が激しい際でも回収できない \fISlab\fP。
+メモリー消費が激しい際でも回収できない \fISlab\fP。
.TP
\fIKernelStack\fP %lu (Linux 2.6.32 以降)
-カーネルスタックに割り宛てられているメモリ量。
+カーネルスタックに割り宛てられているメモリー量。
.TP
\fIPageTables\fP %lu (Linux 2.6.18 以降)
Amount of memory dedicated to the lowest level of page tables.
Memory used for block device "bounce buffers".
.TP
\fIWritebackTmp\fP %lu (Linux 2.6.26 以降)
-FUSE ã\81§ä¸\80æ\99\82ç\9a\84ã\81ªã\83©ã\82¤ã\83\88ã\83\90ã\83\83ã\82¯ã\83\90ã\83\83ã\83\95ã\82¡ã\81«ä½¿ã\82\8fã\82\8cã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ª。
+FUSE ã\81§ä¸\80æ\99\82ç\9a\84ã\81ªã\83©ã\82¤ã\83\88ã\83\90ã\83\83ã\82¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ä½¿ã\82\8fã\82\8cã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼。
.TP
\fICommitLimit\fP %lu (Linux 2.6.10 以降)
This is the total amount of memory currently available to be allocated on
once that memory has been successfully allocated.
.TP
\fIVmallocTotal\fP %lu
-vmalloc メモリ領域の総量。
+vmalloc メモリー領域の総量。
.TP
\fIVmallocUsed\fP %lu
使用中の vmalloc 領域の量。
.TP
\fIHugePages_Rsvd\fP %lu (Linux 2.6.17 以降)
(\fBCONFIG_HUGETLB_PAGE\fP が必要) プールから割り当てが宣言されたが、まだ割り当てが行われていないヒュージページ数。
-これらの予約ヒュージページにより、 アプリケーションがメモリフォールト時にヒュージページのプールからヒュージページが割り当てられることが保証される。
+ã\81\93ã\82\8cã\82\89ã\81®äº\88ç´\84ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\81«ã\82\88ã\82\8aã\80\81 ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81\8cã\83¡ã\83¢ã\83ªã\83¼ã\83\95ã\82©ã\83¼ã\83«ã\83\88æ\99\82ã\81«ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\81®ã\83\97ã\83¼ã\83«ã\81\8bã\82\89ã\83\92ã\83¥ã\83¼ã\82¸ã\83\9aã\83¼ã\82¸ã\81\8cå\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\82\8bã\81\93ã\81¨ã\81\8cä¿\9d証ã\81\95ã\82\8cã\82\8bã\80\82
.TP
\fIHugePages_Surp\fP %lu (Linux 2.6.24 以降)
(\fBCONFIG_HUGETLB_PAGE\fP is required.) This is the number of huge pages in
.TP
\fI/proc/net/arp\fP
アドレス解決に使われるカーネルの ARP テーブルの ASCII 可読なダンプを保持している。 動的結合されたものと固定 (preprogrammed)
-の両方の APP エントリを見ることができる。フォーマットは以下のとおり:
+ã\81®ä¸¡æ\96¹ã\81® APP ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¦\8bã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\81¯ä»¥ä¸\8bã\81®ã\81¨ã\81\8aã\82\8a:
.nf
.in 8n
使われない。 \&"sl" の値はソケットのカーネルハッシュスロット、
\&"local_address" はローカルアドレスとプロトコル番号のペア
[訳者追加: "rem_address" はリモートアドレスとプロトコル番号のペア]。
-\&"st" はソケットの内部状態。 \&"tx_queue" と "rx_queue" はカーネルメモリを
+\&"st" ã\81¯ã\82½ã\82±ã\83\83ã\83\88ã\81®å\86\85é\83¨ç\8a¶æ\85\8bã\80\82 \&"tx_queue" ã\81¨ "rx_queue" ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\82\92
消費している 送信/受信データキューのサイズ。 \&"tr" と "tm\->when" と
"rexmits" フィールドは RAW では使われていない。
\&"uid" フィールドはソケット生成者の実効 UID を保持している。
使われない。 sl はソケットのカーネルハッシュスロットの値、 \&"local_address"
はローカルアドレスとポート番号のペアである。 (ソケットが接続している場合は)
\&"rem_address" はリモートアドレスとポート番号の対である。 \&"st" はソケット
-の内部状態である。 \&"tx_queue" と "rx_queue" はカーネルメモリを消費している
+ã\81®å\86\85é\83¨ç\8a¶æ\85\8bã\81§ã\81\82ã\82\8bã\80\82 \&"tx_queue" ã\81¨ "rx_queue" ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\82\92æ¶\88è²»ã\81\97ã\81¦ã\81\84ã\82\8b
送信/受信データキューのサイズ。 \&"tr" と "tm\->when" と "rexmits"
フィールドはソケット状態のカーネル 内部情報を保持しているが、
これらはデバッグのときにしか役に立たない。 \&"uid" フィールドはソケット
使われない。 sl はソケットのカーネルハッシュスロットの値、 "local_address"
はローカルアドレスとポート番号のペアである。 (ソケットが接続している場合は)
"rem_address" はリモートアドレスとポート番号のペアである。 "st" はソケットの
-内部状態である。 "tx_queue" と "rx_queue" はカーネルメモリを消費している
+å\86\85é\83¨ç\8a¶æ\85\8bã\81§ã\81\82ã\82\8bã\80\82 "tx_queue" ã\81¨ "rx_queue" ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\82\92æ¶\88è²»ã\81\97ã\81¦ã\81\84ã\82\8b
送信/受信データキューのサイズ。 "tr" と "tm\->when" と "rexmits"
フィールドは UDP では使われていない。 "uid" フィールドはソケット生成者の
実効 UID を保持している。 フォーマットは以下のとおり:
.TP
(7)
キューのユーザーでのドロップ数。 netlink サブシステム内で破棄されたパケット数。 このようなパケットの破棄が通常起こるのは、
-対応するソケットバッファが一杯の場合、 つまり、 ユーザー空間がメッセージを十分な速度で読み出せない場合である。
+対å¿\9cã\81\99ã\82\8bã\82½ã\82±ã\83\83ã\83\88ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cä¸\80æ\9d¯ã\81®å ´å\90\88ã\80\81 ã\81¤ã\81¾ã\82\8aã\80\81 ã\83¦ã\83¼ã\82¶ã\83¼ç©ºé\96\93ã\81\8cã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92å\8d\81å\88\86ã\81ªé\80\9f度ã\81§èªã\81¿å\87ºã\81\9bã\81ªã\81\84å ´å\90\88ã\81§ã\81\82ã\82\8bã\80\82
.TP
(8)
シーケンス番号。 キューに入ったすべてのパケットには 32 ビットの単調増加のシーケンス番号が関連付けられる。 これは一番最近キューに入ったパケットの
\fI/proc/profile\fP (Linux 2.4 以降)
このファイルは、 カーネルが \fIprofile=1\fP コマンドラインオプションで起動された場合にのみ存在する。 このファイルは、
カーネルのプロファイリング情報を \fBreadprofile\fP(1) を使って読み込めるバイナリ形式で公開する。 このファイルに
-(ä¾\8bã\81\88ã\81°ã\80\81空ã\81®æ\96\87å\97å\88\97ã\82\92) æ\9b¸ã\81\8dè¾¼ã\82\80ã\81¨ã\80\81ã\83\97ã\83ã\83\95ã\82¡ã\82¤ã\83ªã\83³ã\82°ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81\8cã\83ªã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81§ã\81¯ã\80\81 ã\82µã\82¤ã\82º \fIsizeof(int)\fP
-のバイナリ整数である「プロファイリング倍率」を書き込むとプロファイリングの割り込み頻度を設定できる。
+(ä¾\8bã\81\88ã\81°ã\80\81空ã\81®æ\96\87å\97å\88\97ã\82\92) æ\9b¸ã\81\8dè¾¼ã\82\80ã\81¨ã\80\81ã\83\97ã\83ã\83\95ã\82¡ã\82¤ã\83ªã\83³ã\82°ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81\8cã\83ªã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81 ã\82µã\82¤ã\82º
+\fIsizeof(int)\fP のバイナリ整数である「プロファイリング倍率」を書き込むとプロファイリングの割り込み頻度を設定できる。
.TP
\fI/proc/scsi\fP
\fIscsi\fP 中間レベル擬似ファイルといくつかの SCSI 低レベルドライバの ディレクトリを含むディレクトリ。 これらのファイルは ASCII
.fi
.in
-ホストアダプタ scsi1 は SCSI チャネル 0 で ID 5 LUN 0 のデバイスを探す。 もしこのアドレスに既知のデバイスがあるか、
+ホストアダプター scsi1 は SCSI チャネル 0 で ID 5 LUN 0 のデバイスを探す。 もしこのアドレスに既知のデバイスがあるか、
不正なアドレスであったならばエラーが返る。
.TP
\fI/proc/scsi/[drivername]\fP
いまのところ \fI[drivername]\fP は NCR53c7xx, aha152x, aha1542, aha1740, aic7xxx,
buslogic, eata_dma, eata_pio, fdomain, in2000, pas16, qlogic, scsi_debug,
seagate, t128, u15\-24f, ultrastore, wd7000 のどれかである。 少なくとも 1 つの SCSI
-ホストバスアダプタ (HBA) に ドライバが割り当てられていると、そのドライバに対応したディレクトリが現れる。 それぞれのディレクトリには、
-ç\99»é\8c²ã\81\95ã\82\8cã\81\9fã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\81«å¯¾å¿\9cã\81\97ã\81¦ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cä½\9cã\82\89ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\90\8då\89\8dã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81®å\88\9dæ\9c\9få\8c\96ã\81®é\9a\9bã\81« ã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿に割り当てられた番号になる。
+ホストバスアダプター (HBA) に ドライバが割り当てられていると、そのドライバに対応したディレクトリが現れる。 それぞれのディレクトリには、
+ç\99»é\8c²ã\81\95ã\82\8cã\81\9fã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81«å¯¾å¿\9cã\81\97ã\81¦ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cä½\9cã\82\89ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\90\8då\89\8dã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81®å\88\9dæ\9c\9få\8c\96ã\81®é\9a\9bã\81« ã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼に割り当てられた番号になる。
-これらのファイルを読めばドライバとホストアダプタの設定や 統計などを見ることができる。
+ã\81\93ã\82\8cã\82\89ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92èªã\82\81ã\81°ã\83\89ã\83©ã\82¤ã\83\90ã\81¨ã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81®è¨å®\9aã\82\84 çµ±è¨\88ã\81ªã\81©ã\82\92è¦\8bã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
-これらのファイルへの書き込みはホストアダプタごとに異なる動作を引き起こす。 たとえば \fIlatency\fP と \fInolatency\fP
+ã\81\93ã\82\8cã\82\89ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¸ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿ã\81¯ã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81\94ã\81¨ã\81«ç\95°ã\81ªã\82\8bå\8b\95ä½\9cã\82\92å¼\95ã\81\8dèµ·ã\81\93ã\81\99ã\80\82 ã\81\9fã\81¨ã\81\88ã\81° \fIlatency\fP ã\81¨ \fInolatency\fP
コマンドを用いると、 ルート (root、スーパーユーザー) は eata_dma ドライバの隠し測定コードの オン/オフを切り替えることができる。
また \fI lockup\fP と \fIunlock\fP コマンドを用いると、ルートは scsi_debug ドライバがシミュレートするバスロックアップ
(bus lockup) を 制御することができる。
詳細は \fBslabinfo\fP(5) を参照すること。
.TP
\fI/proc/stat\fP
-ã\82«ã\83¼ã\83\8dã\83«/ã\82·ã\82¹ã\83\86ã\83 ã\81®çµ±è¨\88ã\80\82 ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81«ã\82\88ã\81£ã\81¦ç\95°ã\81ªã\82\8bã\80\82 å\85±é\80\9aã\82¨ã\83³ã\83\88ã\83ªには以下のものが含まれる。
+ã\82«ã\83¼ã\83\8dã\83«/ã\82·ã\82¹ã\83\86ã\83 ã\81®çµ±è¨\88ã\80\82 ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\82\88ã\81£ã\81¦ç\95°ã\81ªã\82\8bã\80\82 å\85±é\80\9aã\82¨ã\83³ã\83\88ã\83ªã\83¼には以下のものが含まれる。
.RS
.TP
\fIcpu 3357 0 4313 1362393\fP
.\" 1024 on Alpha and ia64
-各種状態で消費された時間の合計値。 時間は USER_HZ を単位として計測される (ほとんどのアーキテクチャでは USER_HZ は 1/100
+å\90\84種ç\8a¶æ\85\8bã\81§æ¶\88è²»ã\81\95ã\82\8cã\81\9fæ\99\82é\96\93ã\81®å\90\88è¨\88å\80¤ã\80\82 æ\99\82é\96\93ã\81¯ USER_HZ ã\82\92å\8d\98ä½\8dã\81¨ã\81\97ã\81¦è¨\88測ã\81\95ã\82\8cã\82\8b (ã\81»ã\81¨ã\82\93ã\81©ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ USER_HZ ã\81¯ 1/100
秒で、 正しい値は \fIsysconf(_SC_CLK_TCK)\fP を使って取得できる)。
.RS
.TP
.\" FIXME . Actually, the following info about the /proc/stat 'cpu' field
.\" does not seem to be quite right (at least in 2.6.12 or 3.6):
.\" the idle time in /proc/uptime does not quite match this value
-(4) タスク待ち (idle task) で消費した時間。 この値は擬似ファイル \fI/proc/uptime\fP の 2 番目のエントリの値を
+(4) ã\82¿ã\82¹ã\82¯å¾\85ã\81¡ (idle task) ã\81§æ¶\88è²»ã\81\97ã\81\9fæ\99\82é\96\93ã\80\82 ã\81\93ã\81®å\80¤ã\81¯æ\93¬ä¼¼ã\83\95ã\82¡ã\82¤ã\83« \fI/proc/uptime\fP ã\81® 2 ç\95ªç\9b®ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å\80¤ã\82\92
USER_HZ 倍した値になるはずである。
.TP
\fIiowait\fP (Linux 2.5.41 以降)
(Linux 2.4 のみ)
.TP
\fIctxt 115315\fP
-ã\82³ã\83³ã\83\86ã\82¯ã\82¹ã\83\88ã\83»ã\82¹ã\82¤ã\83\83ã\83\81ã\81®å»¶ã\81¹å\9b\9eæ\95°ã\80\82
+コンテクストスイッチの延べ回数。
.TP
\fIbtime 769041601\fP
起動時刻、紀元 (Epoch; 1970\-01\-01 00:00:00 +0000 (UTC)) からの秒数。
ダミーの 2 つの値、 という 6 つの数字が書かれている。
.RS
.IP * 2
-\fInr_dentry\fP は割り当てられた dentry (dcache エントリ) の数である。 このフィールドは Linux 2.2
+\fInr_dentry\fP は割り当てられた dentry (dcache エントリー) の数である。 このフィールドは Linux 2.2
では使用されない。
.IP *
\fInr_unused\fP は未使用の dentry 数である。
.IP *
.\" looks like this is unused in kernels 2.2 to 2.6
-\fIage_limit\fP は、メモリが不足している場合に次に dcache entry を再要求できるように なるまでの残り時間 (秒数) である。
+\fIage_limit\fP ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cä¸\8d足ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«æ¬¡ã\81« dcache entry ã\82\92å\86\8dè¦\81æ±\82ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81« ã\81ªã\82\8bã\81¾ã\81§ã\81®æ®\8bã\82\8aæ\99\82é\96\93 (ç§\92æ\95°) ã\81§ã\81\82ã\82\8bã\80\82
.IP *
.\" looks like this is unused in kernels 2.2 to 2.6
\fIwant_pages\fP は、カーネルが shrink_dcache_pages() を呼び出したが dcache がまだ縮小されていない場合に、0
このファイルに値 0 が書かれている場合はインターフェースが無効になり、 値 1 の場合は有効になる。
.TP
\fI/proc/sys/fs/dquot\-max\fP
-このファイルにはキャッシュされるディスク quota エントリの最大数が書かれている。 (2.4 系の)
-システムの中には、このファイルが存在しないものもある。 キャッシュされるディスク quota エントリの空きが非常に少なく、
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81¯ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81\95ã\82\8cã\82\8bã\83\87ã\82£ã\82¹ã\82¯ quota ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®æ\9c\80大æ\95°ã\81\8cæ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 (2.4 ç³»ã\81®)
+ã\82·ã\82¹ã\83\86ã\83 ã\81®ä¸ã\81«ã\81¯ã\80\81ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\84ã\82\82ã\81®ã\82\82ã\81\82ã\82\8bã\80\82 ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81\95ã\82\8cã\82\8bã\83\87ã\82£ã\82¹ã\82¯ quota ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ç©ºã\81\8dã\81\8cé\9d\9e常ã\81«å°\91ã\81ªã\81\8fã\80\81
とても多くのシステムユーザーが同時に存在する場合、 この制限を上げるといいかもしれない。
.TP
\fI/proc/sys/fs/dquot\-nr\fP
-このファイルには割り当てられているディスク quota のエントリ数と、 空いているディスク quota のエントリ数が書かれている。
+このファイルには割り当てられているディスク quota のエントリー数と、 空いているディスク quota のエントリー数が書かれている。
.TP
\fI/proc/sys/fs/epoll\fP (Linux 2.6.28 以降)
このディレクトリには、ファイル \fImax_user_watches\fP がある。 これらは、 \fIepoll\fP
-ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81\8cæ¶\88è²»ã\81\99ã\82\8bã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ª量を制限するのに使用できる。 詳細は \fBepoll\fP(7) を参照。
+ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81\8cæ¶\88è²»ã\81\99ã\82\8bã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼量を制限するのに使用できる。 詳細は \fBepoll\fP(7) を参照。
.TP
\fI/proc/sys/fs/file\-max\fP
このファイルは、 システム全体でプロセスがオープンできるファイル数の上限を定義する (\fBsetrlimit\fP(2) も参照;
zero.
.TP
\fI/proc/sys/fs/inode\-max\fP (Linux 2.2 までにのみ存在)
-このファイルには、メモリ内 inode の最大値が書かれている。 この値は \fIfile\-max\fP の値の 3\-4 倍にすべきである。 これは
+このファイルには、メモリー内 inode の最大値が書かれている。 この値は \fIfile\-max\fP の値の 3\-4 倍にすべきである。 これは
\fIstdin\fP, \fIstdout\fP, ネットワークソケットを扱うにも inode が必要なためである。 日常的に inode
を使い果たしている場合は、この値を増やす必要がある。
.TP
\fI/proc/sys/fs/inotify\fP (Linux 2.6.13 以降)
このディレクトリには、ファイル \fImax_queued_events\fP, \fImax_user_instances\fP, and
-\fImax_user_watches\fP ã\81\8cã\81\82ã\82\8bã\80\82ã\81\93ã\82\8cã\82\89ã\81¯ã\80\81 \fIinotify\fP ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81\8cæ¶\88è²»ã\81\99ã\82\8bã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ª量を制限するのに利用できる。
+\fImax_user_watches\fP ã\81\8cã\81\82ã\82\8bã\80\82ã\81\93ã\82\8cã\82\89ã\81¯ã\80\81 \fIinotify\fP ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81\8cæ¶\88è²»ã\81\99ã\82\8bã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼量を制限するのに利用できる。
詳細は \fBinotify\fP(7) を参照。
.TP
\fI/proc/sys/fs/lease\-break\-time\fP
.TP
\fI2\ ("suidsafe")\fP
通常はダンプされないようなバイナリ (上記の "0" 参照) を root だけが読み出し可能な形でダンプする。
-この場合、ユーザはそのコアダンプファイルを削除することはできるが、 読むことはできない。 セキュリティ上の理由から、このモードのコアダンプでは、
+ã\81\93ã\81®å ´å\90\88ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ã\81\9dã\81®ã\82³ã\82¢ã\83\80ã\83³ã\83\97ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\89\8aé\99¤ã\81\99ã\82\8bã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\82\8bã\81\8cã\80\81 èªã\82\80ã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81ªã\81\84ã\80\82 ã\82»ã\82ã\83¥ã\83ªã\83\86ã\82£ä¸\8aã\81®ç\90\86ç\94±ã\81\8bã\82\89ã\80\81ã\81\93ã\81®ã\83¢ã\83¼ã\83\89ã\81®ã\82³ã\82¢ã\83\80ã\83³ã\83\97ã\81§ã\81¯ã\80\81
既存のダンプファイルや他のファイルを上書きすることはない。 このモードは、管理者が通常の環境で問題を解析しようとする際に 適している。
.IP
.\" 9520628e8ceb69fa9a4aee6b57f22675d9e1b709
このファイルには現在マウントされているファイルシステム数が書かれている。
.TP
\fI/proc/sys/kernel\fP
-このディレクトリには、以下で説明する様々なカーネルパラメータを 制御するためのファイルが配置されている。
+ã\81\93ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81«ã\81¯ã\80\81以ä¸\8bã\81§èª¬æ\98\8eã\81\99ã\82\8bæ§\98ã\80\85ã\81ªã\82«ã\83¼ã\83\8dã\83«ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92 å\88¶å¾¡ã\81\99ã\82\8bã\81\9fã\82\81ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cé\85\8dç½®ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fI/proc/sys/kernel/acct\fP
このファイルには 3 つの値が含まれている: \fIhighwater\fP, \fIlowwater\fP, \fIfrequency\fP である。
\fI/proc/sys/kernel/ctrl\-alt\-del\fP
このファイルはキーボードの Ctrl\-Alt\-Del の扱いを制御する。 このファイルにある値が 0 の場合、 Ctrl\-Alt\-Del が捕捉されると
\fBinit\fP(1) プログラムに送られて、正しく再起動される。 値が 0 より大きい場合、Vulcan Nerve Pinch (tm)
-に反応して、 Linux はダーティバッファを同期させることなく、すぐに再起動を行う。 注意: プログラム (dosemu など) に "raw"
+ã\81«å\8f\8då¿\9cã\81\97ã\81¦ã\80\81 Linux ã\81¯ã\83\80ã\83¼ã\83\86ã\82£ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92å\90\8cæ\9c\9fã\81\95ã\81\9bã\82\8bã\81\93ã\81¨ã\81ªã\81\8fã\80\81ã\81\99ã\81\90ã\81«å\86\8dèµ·å\8b\95ã\82\92è¡\8cã\81\86ã\80\82 注æ\84\8f: ã\83\97ã\83ã\82°ã\83©ã\83 (dosemu ã\81ªã\81©) ã\81« "raw"
モードのキーボードがある場合、 ctrl\-alt\-del はカーネルの tty レイヤーに到達する前に プログラムに遮断され、
プログラムに送られてどのように扱うかが決められる。
.TP
詳細な議論は、 \fBhostname\fP(1) の man ページを参照すること。
.TP
\fI/proc/sys/kernel/hotplug\fP
-ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\83\9bã\83\83ã\83\88ã\83\97ã\83©ã\82°ã\83»ã\83\9dã\83ªã\82·ã\83¼ã\83»エージェントのパスが書かれている。 このファイルのデフォルト値は \fI/sbin/hotplug\fP である。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\83\9bã\83\83ã\83\88ã\83\97ã\83©ã\82°ã\83\9dã\83ªã\82·ã\83¼エージェントのパスが書かれている。 このファイルのデフォルト値は \fI/sbin/hotplug\fP である。
.TP
\fI/proc/sys/kernel/htab\-reclaim\fP
(PowerPC のみ) このファイルを 0 以外の値に設定すると、 PowerPC htab (カーネルソースファイル
0 以外の場合は有効になる。
.TP
\fI/proc/sys/kernel/modprobe\fP
-このファイルには、カーネルモジュールローダへのパスが含まれる。 デフォルトの値は \fI/sbin/modprobe\fP
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81¯ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\83ã\83¼ã\83\80ã\83¼ã\81¸ã\81®ã\83\91ã\82¹ã\81\8cå\90«ã\81¾ã\82\8cã\82\8bã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®å\80¤ã\81¯ \fI/sbin/modprobe\fP
である。このファイルは、\fBCONFIG_MODULES\fP オプション (Linux 2.6.26 以前では \fBCONFIG_KMOD\fP)
を有効にしてカーネルが作成されている場合にのみ存在する。 このファイルについては、Linux カーネルソースファイル
\fIDocumentation/kmod.txt\fP (カーネル 2.4 以前のみに存在) に記述されている。
このファイルはメッセージキュー識別子の最大数をシステム全体で制限する。
.TP
\fI/proc/sys/kernel/msgmnb\fP (Linux 2.2 以降)
-このファイルは、 \fImsg_qbytes\fP の設定を初期化するシステム全体のパラメータで
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81 \fImsg_qbytes\fP ã\81®è¨å®\9aã\82\92å\88\9dæ\9c\9få\8c\96ã\81\99ã\82\8bã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81§
ある。 \fImsg_qbytes\fP は以降で作成されるメッセージキューで使われる。
\fImsg_qbytes\fP 設定では、メッセージキューに書き込まれる最大バイト数を指定する。
.TP
この読み出し専用のファイルは、現在いくつの疑似端末が使われているかを表す。
.TP
\fI/proc/sys/kernel/random\fP
-このディレクトリは、ファイル \fI/dev/random\fP の操作を制御する様々なパラメータが書かれている。 詳細は \fBrandom\fP(4)
+ã\81\93ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83« \fI/dev/random\fP ã\81®æ\93\8dä½\9cã\82\92å\88¶å¾¡ã\81\99ã\82\8bæ§\98ã\80\85ã\81ªã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8cæ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 詳細ã\81¯ \fBrandom\fP(4)
を参照。
.TP
\fI/proc/sys/kernel/random/uuid\fP (Linux 2.4 以降)
このファイルは Linux カーネルソースファイル \fIDocumentation/initrd.txt\fP に記述されている。
.TP
\fI/proc/sys/kernel/reboot\-cmd\fP (Sparc のみ)
-このファイルは SPARC ROM/Flash ブートローダに引き数を渡す方法を 提供しているように思われる。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ SPARC ROM/Flash ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83¼ã\81«å¼\95ã\81\8dæ\95°ã\82\92渡ã\81\99æ\96¹æ³\95ã\82\92 æ\8f\90ä¾\9bã\81\97ã\81¦ã\81\84ã\82\8bã\82\88ã\81\86ã\81«æ\80\9dã\82\8fã\82\8cã\82\8bã\80\82
再起動後に何をするかを指定しているのだろうか?
.TP
\fI/proc/sys/kernel/rtsig\-max\fP
.RE
.TP
\fI/proc/sys/kernel/sg\-big\-buff\fP
-このファイルは、汎用 SCSI デバイス (sg) のバッファサイズの最大値を表す。 今はこれを変更することはできないが、 コンパイル時に
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81æ±\8eç\94¨ SCSI ã\83\87ã\83\90ã\82¤ã\82¹ (sg) ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\81®æ\9c\80大å\80¤ã\82\92表ã\81\99ã\80\82 ä»\8aã\81¯ã\81\93ã\82\8cã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81ªã\81\84ã\81\8cã\80\81 ã\82³ã\83³ã\83\91ã\82¤ã\83«æ\99\82ã\81«
\fIinclude/scsi/sg.h\fP を編集して \fBSG_BIG_BUFF\fP の値を変えれば変更できる。
ただし、この値を変更する理由はないだろう。
.TP
semantics of the applications using System V shared memory on your system.
.TP
\fI/proc/sys/kernel/shmall\fP (Linux 2.2 以降)
-このファイルには System V 共有メモリの総ページ数の システム全体での制限が書かれている。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81¯ System V å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®ç·\8fã\83\9aã\83¼ã\82¸æ\95°ã\81® ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81§ã\81®å\88¶é\99\90ã\81\8cæ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fI/proc/sys/kernel/shmmax\fP (Linux 2.2 以降)
-このファイルを通じて、(System V IPC) 共有メモリセグメントを作成するときの 最大サイズの実行時上限 (run\-time limit)
-を取得または設定できる。 現在は 1GB までの共有メモリセグメントが カーネルでサポートされている。 この値のデフォルトは \fBSHMMAX\fP
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92é\80\9aã\81\98ã\81¦ã\80\81(System V IPC) å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81¨ã\81\8dã\81® æ\9c\80大ã\82µã\82¤ã\82ºã\81®å®\9fè¡\8cæ\99\82ä¸\8aé\99\90 (run\-time limit)
+ã\82\92å\8f\96å¾\97ã\81¾ã\81\9fã\81¯è¨å®\9aã\81§ã\81\8dã\82\8bã\80\82 ç\8f¾å\9c¨ã\81¯ 1GB ã\81¾ã\81§ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81\8c ã\82«ã\83¼ã\83\8dã\83«ã\81§ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\81®å\80¤ã\81®ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81¯ \fBSHMMAX\fP
である。
.TP
\fI/proc/sys/kernel/shmmni\fP (Linux 2.4 以降)
-このファイルは、システム全体で作成可能な System V 共有メモリセグメント数を指定する。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81§ä½\9cæ\88\90å\8f¯è\83½ã\81ª System V å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88æ\95°ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82
.TP
\fI/proc/sys/kernel/sysrq\fP
このファイルは、SysRq キーにより起動が許可されている関数群を制御する ものである。デフォルトでは、ファイルの内容は 1 であり、
0 \- sysrq を完全に無効にする
1 \- sysrq の全ての関数を有効にする
>1 \- 許可する sysrq 関数のビットマスク。内訳は以下の通り。
- 2 \- ã\82³ã\83³ã\82½ã\83¼ã\83«ã\81®ã\83ã\82°ã\83»ã\83¬ã\83\99ã\83«ã\81®å\88¶å¾¡ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8b
+ 2 \- コンソールのログレベルの制御を有効にする
4 \- キーボードの制御を有効にする (SAK, unraw)
- 8 \- ã\83\97ã\83ã\82»ã\82¹ã\81ªã\81©ã\81®ã\83\87ã\83\90ã\83\83ã\82°ã\83»ã\83\80ã\83³ã\83\97ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8b
+ 8 \- プロセスなどのデバッグダンプを有効にする
16 \- sync コマンドを有効にする
32 \- 読み出し専用での再マウントを有効にする
64 \- プロセスへのシグナル発行を有効にする (term, kill, oom\-kill)
128 \- リブート/電源オフを許可する
- 256 \- å\85¨ã\81¦ã\81®ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\83»ã\82¿ã\82¹ã\82¯ã\81® nice å\80¤ã\81®å¤\89æ\9b´ã\82\92許å\8f¯ã\81\99ã\82\8b
+ 256 \- 全てのリアルタイムタスクの nice 値の変更を許可する
カーネル設定オプション \fBCONFIG_MAGIC_SYSRQ\fP が有効な場合のみ、このファイルは存在する。 詳細は、Linux
カーネルソースファイル \fIDocumentation/sysrq.txt\fP を参照のこと。
をサポートする。 これが存在しないシステムもある。
.TP
\fI/proc/sys/vm\fP
-このディレクトリにはメモリ管理の調整、バッファやキャッシュ管理のための ファイルがある。
+このディレクトリにはメモリー管理の調整、バッファーやキャッシュ管理のための ファイルがある。
.TP
\fI/proc/sys/vm/compact_memory\fP (Linux 2.6.35 以降)
When 1 is written to this file, all zones are compacted such that free
カーネルの設定で \fBCONFIG_COMPACTION\fP が有効になっている場合にのみ存在する。
.TP
\fI/proc/sys/vm/drop_caches\fP (Linux 2.6.16 以降)
-このファイルに書き込みを行うと、カーネルに、 クリーンなキャッシュ、 dentry、 inode をメモリから追い出して、
-ã\83¡ã\83¢ã\83ªã\82\92解æ\94¾ã\81\95ã\81\9bã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\81®æ©\9fè\83½ã\81¯ã\83¡ã\83¢ã\83ª管理のテストや再現可能なファイルシステムのベンチマークを行うのに役立つ。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«æ\9b¸ã\81\8dè¾¼ã\81¿ã\82\92è¡\8cã\81\86ã\81¨ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\80\81 ã\82¯ã\83ªã\83¼ã\83³ã\81ªã\82ã\83£ã\83\83ã\82·ã\83¥ã\80\81 dentryã\80\81 inode ã\82\92ã\83¡ã\83¢ã\83ªã\83¼ã\81\8bã\82\89追ã\81\84å\87ºã\81\97ã\81¦ã\80\81
+ã\83¡ã\83¢ã\83ªã\83¼ã\82\92解æ\94¾ã\81\95ã\81\9bã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\81®æ©\9fè\83½ã\81¯ã\83¡ã\83¢ã\83ªã\83¼管理のテストや再現可能なファイルシステムのベンチマークを行うのに役立つ。
このファイルへの書き込みはキャッシュの利点を失うことになるので、システム全体の性能は低下する可能性がある。
ページキャッシュを解放するには、以下のようにする。
.TP
\fI/proc/sys/vm/legacy_va_layout\fP (Linux 2.6.9 以降)
.\" The following is from Documentation/filesystems/proc.txt
-0 以外の場合、新しい 32ビットメモリマッピング配置が無効になり、 カーネルは全てのプロセスに対して従来の (カーネル 2.4 の) 配置方法を
+0 以å¤\96ã\81®å ´å\90\88ã\80\81æ\96°ã\81\97ã\81\84 32ã\83\93ã\83\83ã\83\88ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\94ã\83³ã\82°é\85\8dç½®ã\81\8cç\84¡å\8a¹ã\81«ã\81ªã\82\8aã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\81¯å\85¨ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«å¯¾ã\81\97ã\81¦å¾\93æ\9d¥ã\81® (ã\82«ã\83¼ã\83\8dã\83« 2.4 ã\81®) é\85\8dç½®æ\96¹æ³\95ã\82\92
使用する。
.TP
\fI/proc/sys/vm/memory_failure_early_kill\fP (Linux 2.6.32 以降)
.\" The following is based on the text in Documentation/sysctl/vm.txt
-ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81\8cå\87¦ç\90\86ã\81§ã\81\8dã\81ªã\81\84è¨\82æ£ä¸\8dè\83½ã\81ªã\83¡ã\83¢ã\83ªã\82¨ã\83©ã\83¼ (é\80\9a常ã\81¯ã\83¡ã\83¢ã\83ªモジュールでの 2 ビットエラー)
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81\8cå\87¦ç\90\86ã\81§ã\81\8dã\81ªã\81\84è¨\82æ£ä¸\8dè\83½ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\82¨ã\83©ã\83¼ (é\80\9a常ã\81¯ã\83¡ã\83¢ã\83ªã\83¼モジュールでの 2 ビットエラー)
がバックグラウンドでハードウェアにより検出された際に、プロセスをどのように kill するかを制御する。
(ページの有効なコピーがディスク上にも存在するなど)
いくつかの場面では、カーネルはアプリケーションに影響を与えずに透過的に故障を処理する。しかし、データの最新のコピーが他にはない場合には、データ破壊が波及するのを防ぐため、カーネルはプロセスを
.IP 1: 4
データ破壊が検出されるとすぐに、故障が検出され復元できないページ (corrupted\-and\-not\-reloadable page)
をマップしている全てのプロセスを kill する。この機能は、(カーネル内部で割り当てられたデータやスワップのキャッシュなど)
-少数のいくつかのタイプのページではサポートされていないが、大半のユーザページではこの機能は働く。
+å°\91æ\95°ã\81®ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¿ã\82¤ã\83\97ã\81®ã\83\9aã\83¼ã\82¸ã\81§ã\81¯ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\81\8cã\80\81大å\8d\8aã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\83\9aã\83¼ã\82¸ã\81§ã\81¯ã\81\93ã\81®æ©\9fè\83½ã\81¯å\83\8dã\81\8fã\80\82
.IP 0: 4
データ破壊が検出されたページの全てのプロセスからの unmap のみを行い、そのページにアクセスしようとしたプロセスのみを kill する。
.RE
この kill は \fIsi_code\fP に \fBBUS_MCEERR_AO\fP を設定した \fBSIGBUS\fP
シグナルを使って行われる。プロセス側では必要であればこのシグナルを処理することができる。詳細は \fBsigaction\fP(2) を参照。
-この機能は、高度なマシンチェック機構を持ったアーキテクチャ/プラットフォームにおいてのみ有効であり、ハードウェア機能にも依存している。
+この機能は、高度なマシンチェック機構を持ったアーキテクチャー/プラットフォームにおいてのみ有効であり、ハードウェア機能にも依存している。
アプリケーションは \fBprctl\fP(2) の \fBPR_MCE_KILL\fP 操作を使って個別に
\fImemory_failure_early_kill\fP の設定を上書きすることができる。
.TP
\fI/proc/sys/vm/memory_failure_recovery\fP (Linux 2.6.32 以降)
.\" The following is based on the text in Documentation/sysctl/vm.txt
-メモリ故障回復 (memory failure recovery) を有効にする
+メモリー故障回復 (memory failure recovery) を有効にする
(プラットフォームがサポートしている場合)
.RS
.IP 1: 4
回復を試みる。
.IP 0: 4
-メモリ故障時には常に panic を起こす。
+メモリー故障時には常に panic を起こす。
.RE
.IP
カーネルの設定で \fBCONFIG_MEMORY_FAILURE\fP が有効になっている場合にのみ
.TP
\fI/proc/sys/vm/oom_dump_tasks\fP (Linux 2.6.25 以降)
.\" The following is from Documentation/sysctl/vm.txt
-ã\82«ã\83¼ã\83\8dã\83«ã\81\8c OOM\-killing ã\82\92å®\9fè¡\8cã\81\99ã\82\8bé\9a\9bã\81«ã\80\81ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®ã\82¿ã\82¹ã\82¯ã\83»ã\83\80ã\83³ã\83\97 (ã\82«ã\83¼ã\83\8dã\83«ã\82¹ã\83¬ã\83\83ã\83\89ã\82\92é\99¤ã\81\8f) ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\81\8bã\82\92å\88¶å¾¡ã\81\99ã\82\8bã\80\82
-ダンプには、タスク (スレッド、プロセス) 毎に以下の情報が出力される: スレッド ID、実ユーザ ID、スレッドグループ ID (プロセス ID)、
-ä»®æ\83³ã\83¡ã\83¢ã\83ªã\82µã\82¤ã\82ºã\80\81Resident Set Size (å®\9fã\83¡ã\83¢ã\83ªä¸\8aã\81«å\98å\9c¨ã\81\99ã\82\8bã\83\9aã\83¼ã\82¸ã\82µã\82¤ã\82º)ã\80\81 ã\82¿ã\82¹ã\82¯ã\81\8cã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\81\9f CPUã\80\81 oom_adj
-スコア (\fI/proc/[pid]/oom_adj\fP の説明を参照)、コマンド名。 このダンプ情報は、なぜ OOM\-killer
+ã\82«ã\83¼ã\83\8dã\83«ã\81\8c OOM\-killing ã\82\92å®\9fè¡\8cã\81\99ã\82\8bé\9a\9bã\81«ã\80\81ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81®ã\82¿ã\82¹ã\82¯ã\83\80ã\83³ã\83\97 (ã\82«ã\83¼ã\83\8dã\83«ã\82¹ã\83¬ã\83\83ã\83\89ã\82\92é\99¤ã\81\8f) ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\81\8bã\82\92å\88¶å¾¡ã\81\99ã\82\8bã\80\82 ã\83\80ã\83³ã\83\97ã\81«ã\81¯ã\80\81ã\82¿ã\82¹ã\82¯
+(スレッド、プロセス) 毎に以下の情報が出力される: スレッド ID、実ユーザー ID、スレッドグループ ID (プロセス ID)、
+ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\82µã\82¤ã\82ºã\80\81Resident Set Size (å®\9fã\83¡ã\83¢ã\83ªã\83¼ä¸\8aã\81«å\98å\9c¨ã\81\99ã\82\8bã\83\9aã\83¼ã\82¸ã\82µã\82¤ã\82º)ã\80\81 ã\82¿ã\82¹ã\82¯ã\81\8cã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\81\95ã\82\8cã\81\9f CPUã\80\81
+oom_adj スコア (\fI/proc/[pid]/oom_adj\fP の説明を参照)、コマンド名。 このダンプ情報は、なぜ OOM\-killer
が起動されたかを知り、 その原因となったならず者のタスクを特定するのに役に立つ。
このファイルの内容が値 0 の場合、ダンプ情報の出力は行われない。 タスクが何千もある非常に巨大なシステムでは、
-各々のタスクについてメモリ状態をダンプするのは適切でないかもしれない。 そのようなシステムでは、ダンプ情報が必要でもないときに メモリ不足 (OOM)
-の状況で性能面の不利益が起こらないようにすべきだろう。
+各々のタスクについてメモリー状態をダンプするのは適切でないかもしれない。 そのようなシステムでは、ダンプ情報が必要でもないときに メモリー不足
+(OOM) の状況で性能面の不利益が起こらないようにすべきだろう。
-このファイルの内容が 0 以外の場合、 OOM\-killer が実際にメモリを占有したタスクを kill する度に ダンプ情報が出力される。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\86\85容ã\81\8c 0 以å¤\96ã\81®å ´å\90\88ã\80\81 OOM\-killer ã\81\8cå®\9fé\9a\9bã\81«ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\8d æ\9c\89ã\81\97ã\81\9fã\82¿ã\82¹ã\82¯ã\82\92 kill ã\81\99ã\82\8b度ã\81« ã\83\80ã\83³ã\83\97æ\83\85å ±ã\81\8cå\87ºå\8a\9bã\81\95ã\82\8cã\82\8bã\80\82
デフォルト値は 0 である。
.TP
\fI/proc/sys/vm/oom_kill_allocating_task\fP (Linux 2.6.24 以降)
.\" The following is from Documentation/sysctl/vm.txt
-このファイルは、メモリ不足 (OOM) の状況が起こった際に、 メモリ不足のきっかけとなったタスクを kill するかどうかを制御する。
+このファイルは、メモリー不足 (OOM) の状況が起こった際に、 メモリー不足のきっかけとなったタスクを kill するかどうかを制御する。
このファイルが 0 に設定された場合、 OOM\-killer はタスクリスト全体をスキャンし、経験則に基づき kill するタスクを選択する。
-é\80\9a常ã\81¯ã\80\81kill ã\81\97ã\81\9få ´å\90\88ã\81«å¤\9aã\81\8fã\81®ã\83¡ã\83¢ã\83ªã\81\8c解æ\94¾ã\81§ã\81\8dã\82\8bã\80\81 ã\81ªã\82\89ã\81\9aè\80\85ã\81®ã\83¡ã\83¢ã\83ª占有タスクが選択される。
+é\80\9a常ã\81¯ã\80\81kill ã\81\97ã\81\9få ´å\90\88ã\81«å¤\9aã\81\8fã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c解æ\94¾ã\81§ã\81\8dã\82\8bã\80\81 ã\81ªã\82\89ã\81\9aè\80\85ã\81®ã\83¡ã\83¢ã\83ªã\83¼占有タスクが選択される。
-このファイルが 0 以外に設定された場合、 OOM\-killer はメモリ不足の状況が発生するきっかけとなったタスクを 単純に kill
+このファイルが 0 以外に設定された場合、 OOM\-killer はメモリー不足の状況が発生するきっかけとなったタスクを 単純に kill
するだけである。 これにより、たいていは重い処理となるタスクリストのスキャンを回避できる。
\fI/proc/sys/vm/panic_on_oom\fP が 0 以外の場合、
これらのファイルのいずれかに値を書き込むと、 他のファイルの値は 0 に設定される。
.TP
\fI/proc/sys/vm/overcommit_memory\fP
-このファイルにはカーネル仮想メモリのアカウントモードが書かれている。 値は以下の通り:
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81¯ã\82«ã\83¼ã\83\8dã\83«ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\83¢ã\83¼ã\83\89ã\81\8cæ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 å\80¤ã\81¯ä»¥ä¸\8bã\81®é\80\9aã\82\8a:
.RS
.IP
0: 発見的なオーバーコミット (heuristic overcommit) (これがデフォルトである)
.IP * 3
\fItotal_RAM\fP はシステム上の RAM の総量
.IP *
-\fItotal_huge_TLB\fP はヒュージページ用に確保されたメモリ総量
+\fItotal_huge_TLB\fP はヒュージページ用に確保されたメモリー総量
.IP *
\fIovercommit_ratio\fP は \fI/proc/sys/vm/overcommit_ratio\fP の値
.IP *
.TP
\fI/proc/sys/vm/panic_on_oom\fP (Linux 2.6.18 以降)
.\" The following is adapted from Documentation/sysctl/vm.txt
-このファイルは、メモリ不足時にカーネルパニックを 起こすか起こさないかを制御する。
+このファイルは、メモリー不足時にカーネルパニックを 起こすか起こさないかを制御する。
このファイルに値 0 を設定すると、 カーネルの OOM\-killer がならず者のプロセスを kill する。 普通は、OOM\-killer
がならず者のプロセスを kill することができ、 システムは何とか動き続けることができる。
-このファイルに値 1 を設定すると、 メモリ不足の状況が発生すると、カーネルは普通はパニックする。 しかしながら、プロセスが メモリポリシー
+このファイルに値 1 を設定すると、 メモリー不足の状況が発生すると、カーネルは普通はパニックする。 しかしながら、プロセスが メモリーポリシー
(\fBmbind\fP(2) の \fBMPOL_BIND\fP) や cpusets (\fBcpuset\fP(7))
-を使って特定のノードへのメモリ割り当てを制限していて、 それらのノードでメモリ枯渇状態に至った場合は、 一つのプロセスが OOM\-killer により
-kill されるだけかもしれない。 この場合には、カーネルパニックは発生しない。 なぜなら、他のノードのメモリには空きがあるかもしれず、
-したがって、システム全体としてはメモリ不足の状況にまだ達していないかも しれないからである。
+を使って特定のノードへのメモリー割り当てを制限していて、 それらのノードでメモリー枯渇状態に至った場合は、 一つのプロセスが OOM\-killer
+により kill されるだけかもしれない。 この場合には、カーネルパニックは発生しない。 なぜなら、他のノードのメモリーには空きがあるかもしれず、
+したがって、システム全体としてはメモリー不足の状況にまだ達していないかも しれないからである。
-このファイルに値 2 を設定すると、 メモリ不足の状況が発生するとカーネルは常にパニックを起こす。
+このファイルに値 2 を設定すると、 メモリー不足の状況が発生するとカーネルは常にパニックを起こす。
デフォルト値は 0 である。 1 と 2 はクラスタリングのフェイルオーバー用である。 フェイルオーバーの方針に応じてどちらかの値を選択すること。
.TP
\fI/proc/sys/vm/swappiness\fP
.\" The following is from Documentation/sysctl/vm.txt
-このファイルの値により、カーネルがどの程度激しくメモリページの スワップを行う
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\80¤ã\81«ã\82\88ã\82\8aã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81\8cã\81©ã\81®ç¨\8b度æ¿\80ã\81\97ã\81\8fã\83¡ã\83¢ã\83ªã\83¼ã\83\9aã\83¼ã\82¸ã\81® ã\82¹ã\83¯ã\83\83ã\83\97ã\82\92è¡\8cã\81\86
かが制御される。 大きな値ほどスワップが激しくなり、小さい値ほど激しくなくなる。
デフォルト値は 60 である。
.TP
.TP
\fI/proc/sysvipc\fP
疑似ファイル \fImsg\fP, \fIsem\fP, \fIshm\fP を含むサブディレクトリ。 これらのファイルは、現在システム上に存在する System V
-プロセス間通信 (Interprocess Communication, IPC) オブジェクト (それぞれ: メッセージキュー、セマフォ、共有メモリ)
-ã\81®ã\83ªã\82¹ã\83\88ã\81§ã\81\82ã\82\8aã\80\81 \fBipcs\fP(1) ã\81§å\8f\96å¾\97ã\81§ã\81\8dã\82\8bæ\83\85å ±ã\81¨å\90\8cã\81\98ã\82\82ã\81®ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81¯ã\83\98ã\83\83ã\83\80ã\81\8cã\81\82ã\82\8aã\80\81ç\90\86解ã\81\97ã\82\84ã\81\99ã\81\84ã\82\88ã\81\86ã\81« (1 è¡\8cã\81«ã\81¤ã\81\8d
-1 個の IPC オブジェクトの形式で) フォーマットされている。 \fBsvipc\fP(7)
-にはこれらのファイルから分かる情報の詳細な背景が書かれている。
+プロセス間通信 (Interprocess Communication, IPC) オブジェクト (それぞれ:
+ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\80\81ã\82»ã\83\9eã\83\95ã\82©ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼) ã\81®ã\83ªã\82¹ã\83\88ã\81§ã\81\82ã\82\8aã\80\81 \fBipcs\fP(1) ã\81§å\8f\96å¾\97ã\81§ã\81\8dã\82\8bæ\83\85å ±ã\81¨å\90\8cã\81\98ã\82\82ã\81®ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\80\82
+これらのファイルにはヘッダーがあり、理解しやすいように (1 行につき 1 個の IPC オブジェクトの形式で) フォーマットされている。
+\fBsvipc\fP(7) にはこれらのファイルから分かる情報の詳細な背景が書かれている。
.TP
\fI/proc/thread\-self\fP (Linux 3.17 以降)
.\" commit 0097875bd41528922fb3bb5f348c53f17e00e2fd
.\"
.TP
\fI/proc/vmstat\fP (Linux 2.6 以降)
-このファイルは仮想メモリの様々な統計情報を表示する。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼ã\81®æ§\98ã\80\85ã\81ªçµ±è¨\88æ\83\85å ±ã\82\92表示ã\81\99ã\82\8bã\80\82
.TP
\fI/proc/zoneinfo\fP (Linux 2.6.13 以降)
.\" FIXME more should be said about /proc/zoneinfo
-ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\83¡ã\83¢ã\83ªã\81®ã\82¾ã\83¼ã\83³ (memory zone) ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92表示ã\81\99ã\82\8bã\80\82 ä»®æ\83³ã\83¡ã\83¢ã\83ªの振舞いを分析するのに役立つ。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\82¾ã\83¼ã\83³ (memory zone) ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92表示ã\81\99ã\82\8bã\80\82 ä»®æ\83³ã\83¡ã\83¢ã\83ªã\83¼の振舞いを分析するのに役立つ。
.SH 注意
ほとんどの文字列 (たとえば環境変数やコマンド行) は内部表現のままなので、
各フィールドはヌルバイト (\(aq\e0\(aq) で区切られている。だから、
.SH 説明
このファイルは ASCII ファイルで、TCP/IP サブシステムから利用できる いろいろな DARPA インターネットプロトコルを記述している。
ARPA 関連のインクルードファイル内の数値を使うべきではないし、 単に推測した値を使うのはさらに良くない。
-代わりにこのファイルに問い合わせるべきである。 これらの数値は IP ヘッダのプロトコルフィールドに現れる。
+代ã\82\8fã\82\8aã\81«ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«å\95\8fã\81\84å\90\88ã\82\8fã\81\9bã\82\8bã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®æ\95°å\80¤ã\81¯ IP ã\83\98ã\83\83ã\83\80ã\83¼ã\81®ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ç\8f¾ã\82\8cã\82\8bã\80\82
.\" .. by the DDN Network Information Center.
このファイルは変更しないこと。変更すると IP パッケージが不正になる。 プロトコル番号とプロトコル名は IANA (Internet Assigned
プロトコルの固有名。たとえば \fIip\fP, \fItcp\fP, \fIudp\fP など。
.TP
\fInumber\fP
-プロトコルの公式番号、IP ヘッダに現れる。
+ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81®å\85¬å¼\8fç\95ªå\8f·ã\80\81IP ã\83\98ã\83\83ã\83\80ã\83¼ã\81«ç\8f¾ã\82\8cã\82\8bã\80\82
.TP
\fIaliases\fP
プロトコルの別名、オプション。
repertoiremap ファイルは以下のキーワードからなるヘッダーで始まる:
.TP
\fI<comment_char>\fP
-ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ®\8bã\82\8aã\81®é\83¨å\88\86ã\81§ã\82³ã\83¡ã\83³ã\83\88ã\83»ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\81¨ã\81\97ã\81¦ä½¿ç\94¨ã\81\99ã\82\8bæ\96\87å\97 ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\82·ã\83£ã\83¼ã\83\97 (#) ã\81§ã\81\82ã\82\8bã\80\82
+ファイルの残りの部分でコメントキャラクターとして使用する文字 を指定する。デフォルトではシャープ (#) である。
.TP
\fI<escape_char>\fP
-ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ®\8bã\82\8aã\81®é\83¨å\88\86ã\81§ã\82¨ã\82¹ã\82±ã\83¼ã\83\97ã\83»ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\81¨ã\81\97ã\81¦ä½¿ç\94¨ã\81\99ã\82\8bæ\96\87å\97ã\82\92 æ\8c\87å®\9aã\81\99ã\82\8bã\80\82ã\81\93ã\82\8cã\81¯ç\89¹æ®\8aã\81ªæ\84\8få\91³ã\81«è§£é\87\88ã\81\95ã\82\8cã\82\8bæ\96\87å\97ã\82\92ã\82¨ã\82¹ã\82±ã\83¼ã\83\97ã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81\99ã\82\8bã\80\82
+ファイルの残りの部分でエスケープキャラクターとして使用する文字を 指定する。これは特殊な意味に解釈される文字をエスケープするのに使用する。
デフォルトはバックスラッシュ (\e) である。
.PP
マッピングセクションは最初のカラムに \fBCHARIDS\fP というキーワードを置くことで始める。
アドレスはドット表記で、 IPv6 アドレスは RFC 2373 で定められたコロン表記 (おそらくドット表記も可) で指定する。 このキーワード 1
つごとに 1 台づつ、 \fBMAXNS\fP 台 (現状では 3 台、\fI<resolv.h>\fP を参照)
までのネームサーバをリストできる。 複数のサーバが指定された場合、レゾルバライブラリは リストされた順に問い合わせを行う。 \fBnameserver\fP
-エントリがない場合、 デフォルトではローカルマシン上のネームサーバが使われる。 (ここで使われるアルゴリズムは以下のようなものである。
+ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\81ªã\81\84å ´å\90\88ã\80\81 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\83ã\83¼ã\82«ã\83«ã\83\9eã\82·ã\83³ä¸\8aã\81®ã\83\8dã\83¼ã\83 ã\82µã\83¼ã\83\90ã\81\8c使ã\82\8fã\82\8cã\82\8bã\80\82 (ã\81\93ã\81\93ã\81§ä½¿ã\82\8fã\82\8cã\82\8bã\82¢ã\83«ã\82´ã\83ªã\82ºã\83 ã\81¯ä»¥ä¸\8bã\81®ã\82\88ã\81\86ã\81ªã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82
はじめにネームサーバに問い合わせを試みる。 この問い合わせがタイムアウトになった場合、 次のネームサーバに問い合わせを試みる。
これをネームサーバがなくなるまで続ける。 それでも応答がない場合は、リトライ最大回数に達するまで 全てのネームサーバに問い合わせを繰り返す。)
.TP
\fBdomain\fP ローカルドメイン名
このドメインにある名前の問い合わせのほとんどに、 このローカルドメインに対する短い名前を使用することができる。 \(aq.\(aq が設定された場合、
-ルートドメインが指定されたとみなされる。 \fBdomain\fP エントリがない場合、ドメイン名は \fBgethostname\fP(2)
+ã\83«ã\83¼ã\83\88ã\83\89ã\83¡ã\82¤ã\83³ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\81¨ã\81¿ã\81ªã\81\95ã\82\8cã\82\8bã\80\82 \fBdomain\fP ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\81ªã\81\84å ´å\90\88ã\80\81ã\83\89ã\83¡ã\82¤ã\83³å\90\8dã\81¯ \fBgethostname\fP(2)
で返されるローカルホスト名から決定され、 最初の \(aq.\(aq 以降の全ての部分がドメイン名とされる。
このホスト名にもドメイン部を含んでいない場合、ルートドメインが仮定される。
.TP
.SH 書式
\fBcat /proc/slabinfo\fP
.SH 説明
-Linux ã\82«ã\83¼ã\83\8dã\83«ã\81®å\86\85é\83¨ã\81§è\89¯ã\81\8få\88©ç\94¨ã\81\95ã\82\8cã\82\8bã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88 (ã\83\90ã\83\83ã\83\95ã\82¡ã\83\98ã\83\83ã\83\89ã\80\81i\-ã\83\8eã\83¼ã\83\89ã\80\81ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\82¨ã\83³ã\83\88ã\83ªなど)
+Linux ã\82«ã\83¼ã\83\8dã\83«ã\81®å\86\85é\83¨ã\81§è\89¯ã\81\8få\88©ç\94¨ã\81\95ã\82\8cã\82\8bã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88 (ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83\98ã\83\83ã\83\89ã\80\81i\-ã\83\8eã\83¼ã\83\89ã\80\81ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82¨ã\83³ã\83\88ã\83ªã\83¼など)
は、それぞれ自分用のキャッシュを備えている。ファイル \fI/proc/slabinfo\fP はこれらの統計を与える。例を示す。
.LP
.in +4n
これを用いると、その端末の視覚的な性質を制御することができる (端末の他の性質は \fBstty\fP(1) で制御する)。 termcap
データベースは、環境変数 \fBTERM\fP の値で引かれる。
.LP
-termcap のエントリは、単一の論理行でなければならない。 ただし、行末に \(aq\e\(aq を用いればそこでの改行を抑制することができる。
-フィールドは \(aq:\(aq で分割される。 各エントリの最初のフィールドは左側先頭から始まり、
+termcap ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ã\80\81å\8d\98ä¸\80ã\81®è«\96ç\90\86è¡\8cã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\81\9fã\81 ã\81\97ã\80\81è¡\8cæ\9c«ã\81« \(aq\e\(aq ã\82\92ç\94¨ã\81\84ã\82\8cã\81°ã\81\9dã\81\93ã\81§ã\81®æ\94¹è¡\8cã\82\92æ\8a\91å\88¶ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
+ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ \(aq:\(aq ã\81§å\88\86å\89²ã\81\95ã\82\8cã\82\8bã\80\82 å\90\84ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®æ\9c\80å\88\9dã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯å·¦å\81´å\85\88é ã\81\8bã\82\89å§\8bã\81¾ã\82\8aã\80\81
内容はその端末の名前のリストである。名前の区切りには \(aq|\(aq が用いられる。
.LP
-最初のサブフィールドは (4.3 以前のバージョンのBSD termcap エントリでは) 2 文字からなる短い名前となっている。この短い名前は
-大文字もしくは小文字で構成される。4.4BSD の termcap エントリでは、 このフィールドは省略される。
+æ\9c\80å\88\9dã\81®ã\82µã\83\96ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ (4.3 以å\89\8dã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81®BSD termcap ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81§ã\81¯) 2 æ\96\87å\97ã\81\8bã\82\89ã\81ªã\82\8bç\9fã\81\84å\90\8då\89\8dã\81¨ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\80\82ã\81\93ã\81®ç\9fã\81\84å\90\8då\89\8dã\81¯
+大æ\96\87å\97ã\82\82ã\81\97ã\81\8fã\81¯å°\8fæ\96\87å\97ã\81§æ§\8bæ\88\90ã\81\95ã\82\8cã\82\8bã\80\824.4BSD ã\81® termcap ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81§ã\81¯ã\80\81 ã\81\93ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ç\9c\81ç\95¥ã\81\95ã\82\8cã\82\8bã\80\82
.LP
2 番目 (最新の 4.4BSD フォーマットでは 1 番目) のサブフィールドには、 環境変数 \fBTERM\fP で用いられる名称が入る。
このフィールドには小文字しか使えない。 選択可能なハードウェア機能は、ハイフンと接尾語 (suffix)
dV ハードコピー端末において、垂直タブに必要な遅延時間 (ミリ秒単位)
it タブ位置間の文字数
lh ソフトラベルの高さ
-lm 画面メモリに収容できる行数
+lm ç\94»é\9d¢ã\83¡ã\83¢ã\83ªã\83¼ã\81«å\8f\8e容ã\81§ã\81\8dã\82\8bè¡\8cæ\95°
lw ソフトラベルの幅
li 行数
Nl ソフトラベルの数
ch カーソルを水平方向にだけ移動し、 %1 桁の位置にする
cl 画面を消去し、カーソルをホームポジションへ
cm 画面上の %1 行、 %2 桁へカーソルを移動
-CM メモリ上の %1 行、 %2 桁へカーソルを移動
+CM メモリー上の %1 行、 %2 桁へカーソルを移動
cr 復帰
cs %1 行目から %2 行目までの範囲をスクロールする
ct タブの消去
nw 復帰コマンド
pc パディング文字
pf プリンタをオフにする
-pk ユーザが入力したときに文字列 %2 を送出するプログラムキー %1
+pk ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cå\85¥å\8a\9bã\81\97ã\81\9fã\81¨ã\81\8dã\81«æ\96\87å\97å\88\97 %2 ã\82\92é\80\81å\87ºã\81\99ã\82\8bã\83\97ã\83ã\82°ã\83©ã\83 ã\82ã\83¼ %1
pl ローカルモードで文字列 %2 を実行するプログラムキー %1
pn 文字列 %2 を表示するためのプログラムソフトラベル %1
po プリンタをオンにする
st 全ての行において、現在の桁位置をタブストップに設定する
SX XON/XOFF フロー制御をオンにする
ta 次のハードウェアタブ位置へ移動
-tc 他のエントリから端末の説明を読む込む
+tc ä»\96ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8bã\82\89端æ\9c«ã\81®èª¬æ\98\8eã\82\92èªã\82\80è¾¼ã\82\80
te カーソル移動を用いるプログラムの終了
ti カーソル移動を用いるプログラムの開始
ts ステータス行のカーソルを %1 桁へ移動
.br
f 頁送り (12)
.br
-0 ヌルキャラクタ。'\exxx' は 8 進数 xxx の文字を表す。
+0 ã\83\8cã\83«ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\80\82'\exxx' ã\81¯ 8 é\80²æ\95° xxx ã\81®æ\96\87å\97ã\82\92表ã\81\99ã\80\82
.RE
.IP i
-パラメータを 1 増加させる。
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92 1 å¢\97å\8a ã\81\95ã\81\9bã\82\8bã\80\82
.IP r
-一つのパラメータをとる機能
+ä¸\80ã\81¤ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ã\81¨ã\82\8bæ©\9fè\83½
.IP +
-次の文字の値をパラメータに追加し、バイナリで出力する
+次ã\81®æ\96\87å\97ã\81®å\80¤ã\82\92ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81«è¿½å\8a ã\81\97ã\80\81ã\83\90ã\82¤ã\83\8aã\83ªã\81§å\87ºå\8a\9bã\81\99ã\82\8b
.IP 2
-パラメータを 2 桁の数字として ASCII 出力する (printf の %2d と同じ意味)
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92 2 æ¡\81ã\81®æ\95°å\97ã\81¨ã\81\97ã\81¦ ASCII å\87ºå\8a\9bã\81\99ã\82\8b (printf ã\81® %2d ã\81¨å\90\8cã\81\98æ\84\8få\91³)
.IP d
-パラメータを数字として ASCII 出力する (printf の %d と同じ意味)
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92æ\95°å\97ã\81¨ã\81\97ã\81¦ ASCII å\87ºå\8a\9bã\81\99ã\82\8b (printf ã\81® %d ã\81¨å\90\8cã\81\98æ\84\8få\91³)
.IP %
\(aq%\(aq を表示する
.LP
バイナリ出力を行う場合、 文字列が終端されないようにヌル文字 (\(aq\e0\(aq) を避けねばならない。
-タブ文字をパラメータのバイナリ出力とする場合は、 タブ文字の展開をリセットしなければならない。
+ã\82¿ã\83\96æ\96\87å\97ã\82\92ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®ã\83\90ã\82¤ã\83\8aã\83ªå\87ºå\8a\9bã\81¨ã\81\99ã\82\8bå ´å\90\88ã\81¯ã\80\81 ã\82¿ã\83\96æ\96\87å\97ã\81®å±\95é\96\8bã\82\92ã\83ªã\82»ã\83\83ã\83\88ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.IP 注意:
-上記のような、パラメータとしてのメタ文字は正しくないかもしれない。 このことは、Minixの termcap と Linux の termcap
+ä¸\8aè¨\98ã\81®ã\82\88ã\81\86ã\81ªã\80\81ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¨ã\81\97ã\81¦ã\81®ã\83¡ã\82¿æ\96\87å\97ã\81¯æ£ã\81\97ã\81\8fã\81ªã\81\84ã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82 ã\81\93ã\81®ã\81\93ã\81¨ã\81¯ã\80\81Minixã\81® termcap ã\81¨ Linux ã\81® termcap
との間に互換性がないことに繋がっている。
.LP
図形文字は 3 つの文字列機能で指定できる。
この関連付けはプログラム \fBtset\fP(1) が利用し、ユーザーが現在使っている端末の \fBTERM\fP
環境変数が、デフォルトの端末名にセットされる。
-ã\81\93ã\81®æ©\9fè\83½ã\81¯ä¼\9dçµ±ç\9a\84ã\81ªã\82¿ã\82¤ã\83 ã\83»ã\82·ã\82§ã\82¢ã\83ªã\83³ã\82°ç\92°å¢\83 ( UNIX ã\83\9fã\83\8bã\82³ã\83³ã\83\94ã\83¥ã\83¼ã\82¿ã\81« ã\82ã\83£ã\83©ã\82¯ã\82¿端末が直結されているような環境) 向けに設計された。近代的な
+ã\81\93ã\81®æ©\9fè\83½ã\81¯ä¼\9dçµ±ç\9a\84ã\81ªã\82¿ã\82¤ã\83 ã\82·ã\82§ã\82¢ã\83ªã\83³ã\82°ç\92°å¢\83 ( UNIX ã\83\9fã\83\8bã\82³ã\83³ã\83\94ã\83¥ã\83¼ã\82¿ã\81« ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼端末が直結されているような環境) 向けに設計された。近代的な
ワークステーションやパーソナル UNIX システムでは、ほとんど利用されていない。
.SH ファイル
.TP
\fItzh_charcnt\fP
ファイルに記述されている「タイムゾーン略式文字列 (timezone abbreviation string)」の個数。
.PP
-上記のヘッダに続いて、4 バイトの \fIlong\fP 型の値が \fItzh_timecnt\fP 個続く。
+ä¸\8aè¨\98ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\81«ç¶\9aã\81\84ã\81¦ã\80\814 ã\83\90ã\82¤ã\83\88ã\81® \fIlong\fP å\9e\8bã\81®å\80¤ã\81\8c \fItzh_timecnt\fP å\80\8bç¶\9aã\81\8fã\80\82
これらは昇順で格納される。それぞれの値は「標準」バイトオーダーで記述されている。
それぞれは遷移時間 (\fBtime\fP(2) が返す値) として用いられ、
遷移時間に応じてローカル時間の計算ルールが変化する。
\fIttinfo\fP 構造体を使う (または標準時刻の構造体がない場合は、単に最初の
\fIttinfo\fP 構造体を使う)。
.PP
-バージョン 2 形式のタイムゾーンファイルでは、上記のヘッダとデータの後に、
-第 2 ã\81®ã\83\98ã\83\83ã\83\80ã\81¨ã\83\87ã\83¼ã\82¿ã\81\8cç¶\9aã\81\8fã\80\82å½¢å¼\8fã\81¯ä¸\8aè¨\98ã\81®ã\83\98ã\83\83ã\83\80とデータと同じで、
+ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2 å½¢å¼\8fã\81®ã\82¿ã\82¤ã\83 ã\82¾ã\83¼ã\83³ã\83\95ã\82¡ã\82¤ã\83«ã\81§ã\81¯ã\80\81ä¸\8aè¨\98ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\81¨ã\83\87ã\83¼ã\82¿ã\81®å¾\8cã\81«ã\80\81
+第 2 ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\81¨ã\83\87ã\83¼ã\82¿ã\81\8cç¶\9aã\81\8fã\80\82å½¢å¼\8fã\81¯ä¸\8aè¨\98ã\81®ã\83\98ã\83\83ã\83\80ã\83¼とデータと同じで、
遷移時間や閏秒の時刻に 8 バイトが使用される点だけが異なる。
-第 2 のヘッダとデータの後ろには改行で囲まれた POSIX の TZ 環境変数形式
+第 2 ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\81¨ã\83\87ã\83¼ã\82¿ã\81®å¾\8cã\82\8dã\81«ã\81¯æ\94¹è¡\8cã\81§å\9b²ã\81¾ã\82\8cã\81\9f POSIX ã\81® TZ ç\92°å¢\83å¤\89æ\95°å½¢å¼\8f
の文字列が置かれ、この文字列はファイル内の最後の遷移時間の後で時刻を
処理する際に使用される
(このような POSIX 表現が置かれない場合、改行の間には何も置かれない)。
更新しているわけではないので、実際にはそれ以上のユーザーが システムを使っている可能性がある。
.PP
\fB警告:\fP (愚かにも) 多くのシステムプログラムがその整合性に依存しているので、 \fIutmp\fP ファイルは "other"
-ã\81«å\88\86é¡\9eã\81\95ã\82\8cã\82\8bã\83¦ã\83¼ã\82¶ã\81«å¯¾ã\81\97ã\81¦ æ\9b¸ã\81\8dè¾¼ã\81¿å\8f¯è\83½ã\81«ã\81\97ã\81¦ã\81¯ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ\89\80æ\9c\89è\80\85ã\81¨ã\82°ã\83«ã\83¼ã\83\97ã\82ªã\83¼ã\83\8aã\83¼ä»¥å¤\96ã\81®ã\83¦ã\83¼ã\82¶に対して \fIutmp\fP
+ã\81«å\88\86é¡\9eã\81\95ã\82\8cã\82\8bã\83¦ã\83¼ã\82¶ã\83¼ã\81«å¯¾ã\81\97ã\81¦ æ\9b¸ã\81\8dè¾¼ã\81¿å\8f¯è\83½ã\81«ã\81\97ã\81¦ã\81¯ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ\89\80æ\9c\89è\80\85ã\81¨ã\82°ã\83«ã\83¼ã\83\97ã\82ªã\83¼ã\83\8aã\83¼ä»¥å¤\96ã\81®ã\83¦ã\83¼ã\82¶ã\83¼に対して \fIutmp\fP
ファイルを書き込み可能な状態にしておくと、 システムのログファイルを偽造されたり、システムファイルの 改ざんを受けるといったリスクを犯すことになる。
.PP
このファイルは \fIutmp\fP 構造体の繰り返しで構成される。 この構造体は \fI<utmp.h>\fP で以下のように定義されている
/* ut_session と ut_tv フィールドは、32ビットでコンパイルされた場合と
64ビットでコンパイルされた場合で同じサイズでなければならない。
こうすることで、32ビットと64ビットのアプリケーションで、
- データファイルと共有メモリを共有することができるようになる。 */
+ ã\83\87ã\83¼ã\82¿ã\83\95ã\82¡ã\82¤ã\83«ã\81¨å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\82\8bã\80\82 */
#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
int32_t ut_session; /* Session ID (\fBgetsid\fP(2)),
used for windowing */
形式での)ログイン時刻がわかる。文字列フィールドは、 フィールドの長さより文字列が短い場合には、ヌルバイト (\(aq\e0\(aq)
によって終端される。
.PP
-æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\81¯ \fBinit\fP(1) ã\82³ã\83\9eã\83³ã\83\89ã\81\8c \fBinittab\fP(5) ã\82\92å\87¦ç\90\86ã\81\99ã\82\8bã\81\93ã\81¨ã\81§ä½\9cã\82\89ã\82\8cã\82\8bã\80\82 ã\81\82ã\82\8bã\82¨ã\83³ã\83\88ã\83ªを処理する前に、
+æ\9c\80å\88\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ \fBinit\fP(1) ã\82³ã\83\9eã\83³ã\83\89ã\81\8c \fBinittab\fP(5) ã\82\92å\87¦ç\90\86ã\81\99ã\82\8bã\81\93ã\81¨ã\81§ä½\9cã\82\89ã\82\8cã\82\8bã\80\82 ã\81\82ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼を処理する前に、
\fBinit\fP(1) は \fIut_type\fP を \fBDEAD_PROCESS\fP に初期化する。 レコードの \fIut_type\fP が
\fBDEAD_PROCESS\fP と \fBRUN_LVL\fP のいずれでもなく、 かつ PID が \fIut_pid\fP
であるプロセスがいない場合は、\fIut_user\fP, \fIut_host\fP, \fIut_time\fP をヌルバイトでクリアして初期化を行う。 必要な
\fIut_id\fP を持つ空のレコードを見つけられなかった場合、 \fBinit\fP(1) は新しいレコードを作る。inittab から \fIut_id\fP
を設定し、 \fIut_pid\fP および \fIut_time\fP を現在値に、 \fIut_type\fP を \fBINIT_PROCESS\fP に設定する。
.PP
-\fBmingetty\fP(8) (または \fBagetty\fP(8)) は pid でエントリを特定し、 \fIut_type\fP を
+\fBmingetty\fP(8) (ã\81¾ã\81\9fã\81¯ \fBagetty\fP(8)) ã\81¯ pid ã\81§ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ç\89¹å®\9aã\81\97ã\80\81 \fIut_type\fP ã\82\92
\fBLOGIN_PROCESS\fP に変更し、 \fIut_time\fP を更新し、\fIut_line\fPを設定した後、接続が確立されるのを待つ。
\fBlogin\fP(1) はユーザー認証が終了すると、 \fIut_type\fP を \fBUSER_PROCESS\fP に変更し、 \fIut_time\fP
を更新し、\fIut_host\fP と \fIut_addr\fPを設定する。 \fBmingetty\fP(8) (または \fBagetty\fP(8)) と
\fBlogin\fP(1) により異なるが、 \fIut_pid\fP の代わりに \fIut_line\fP を使ってレコードの特定が行われることもある
(\fIut_pid\fP を使う方が望ましい) 。
.PP
-\fBinit\fP(1) はプロセスの終了を検出した場合、 \fIut_pid\fP をキーとして utmp のエントリを特定し、 \fIut_type\fP を
+\fBinit\fP(1) ã\81¯ã\83\97ã\83ã\82»ã\82¹ã\81®çµ\82äº\86ã\82\92æ¤\9cå\87ºã\81\97ã\81\9få ´å\90\88ã\80\81 \fIut_pid\fP ã\82\92ã\82ã\83¼ã\81¨ã\81\97ã\81¦ utmp ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ç\89¹å®\9aã\81\97ã\80\81 \fIut_type\fP ã\82\92
\fBDEAD_PROCESS\fP に設定し、 \fIut_user\fP, \fIut_host\fP, \fIut_time\fP をヌルバイトでクリアする。
.PP
\fBxterm\fP(1) コマンドや他の端末エミュレータは 直接 \fBUSER_PROCESS\fP のレコードを作り、 端末名のサフィックス文字列
-(\fI/dev/[pt]ty\fP に続く文字列) を使って \fIut_id\fP の値を生成する。 この id を持つエントリが
-\fBDEAD_PROCESS\fP であった場合には再利用し、 それ以外の場合には新しいエントリが作られる。 可能な場合にはプロセス終了時に
+(\fI/dev/[pt]ty\fP ã\81«ç¶\9aã\81\8fæ\96\87å\97å\88\97) ã\82\92使ã\81£ã\81¦ \fIut_id\fP ã\81®å\80¤ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\80\82 ã\81\93ã\81® id ã\82\92æ\8c\81ã\81¤ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8c
+\fBDEAD_PROCESS\fP ã\81§ã\81\82ã\81£ã\81\9få ´å\90\88ã\81«ã\81¯å\86\8då\88©ç\94¨ã\81\97ã\80\81 ã\81\9dã\82\8c以å¤\96ã\81®å ´å\90\88ã\81«ã\81¯æ\96°ã\81\97ã\81\84ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cä½\9cã\82\89ã\82\8cã\82\8bã\80\82 å\8f¯è\83½ã\81ªå ´å\90\88ã\81«ã\81¯ã\83\97ã\83ã\82»ã\82¹çµ\82äº\86æ\99\82ã\81«
\fBDEAD_PROCESS\fP と設定し、 さらに \fIut_line\fP, \fIut_time\fP, \fIut_user\fP, \fIut_host\fP
をヌルバイトでクリアすることが奨励されている。
.PP
\fBtelnetd\fP(8) は \fBLOGIN_PROCESS\fP を設定するだけでよく、 残りの処理は通常通り \fBlogin\fP(1)
-に任せればよい。 telnet のセッションが終了した後、前述のように \fBtelnetd\fP(8) が utmp のエントリを初期化する。
+ã\81«ä»»ã\81\9bã\82\8cã\81°ã\82\88ã\81\84ã\80\82 telnet ã\81®ã\82»ã\83\83ã\82·ã\83§ã\83³ã\81\8cçµ\82äº\86ã\81\97ã\81\9få¾\8cã\80\81å\89\8dè¿°ã\81®ã\82\88ã\81\86ã\81« \fBtelnetd\fP(8) ã\81\8c utmp ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\88\9dæ\9c\9få\8c\96ã\81\99ã\82\8bã\80\82
.PP
\fIwtmp\fP ファイルには、すべてのログインとログアウトが記録される。 そのフォーマットは、ログアウト済の端末でユーザー名がヌルとなること以外は
\fIutmp\fP とまったく同じである。 ユーザー名が \fBshutdown\fP もしくは \fBreboot\fP である 端末名 \fB~\fP はシステムの停止
Linux では、 \fIutmpx\fP 構造体の定義は \fIutmp\fP 構造体と同じである。
.SS 過去のシステムとの比較
-Linux での utmp のエントリは v7/BSD や System V のいずれにも準拠しておらず、 その両方が混在したものである。
+Linux ã\81§ã\81® utmp ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ v7/BSD ã\82\84 System V ã\81®ã\81\84ã\81\9aã\82\8cã\81«ã\82\82æº\96æ\8b ã\81\97ã\81¦ã\81\8aã\82\89ã\81\9aã\80\81 ã\81\9dã\81®ä¸¡æ\96¹ã\81\8cæ··å\9c¨ã\81\97ã\81\9fã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82
v7/BSD ではより少しの項目しかない; もっとも重要なことは、\fIut_type\fP が無いことである。 そのため v7/BSD 系のプログラムでは
-(ã\81\9fã\81¨ã\81\88ã\81°) æ»ã\82\93ã\81 ç\8a¶æ\85\8bã\81®ã\82¨ã\83³ã\83\88ã\83ªã\82\84 ã\83ã\82°ã\82¤ã\83³ç\8a¶æ\85\8bã\81®ã\82¨ã\83³ã\83\88ã\83ªまで表示されてしまうことになった。
+(ã\81\9fã\81¨ã\81\88ã\81°) æ»ã\82\93ã\81 ç\8a¶æ\85\8bã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\84 ã\83ã\82°ã\82¤ã\83³ç\8a¶æ\85\8bã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼まで表示されてしまうことになった。
さらにセッション用のスロットを割り当てるための設定ファイルがない。 BSD に設定ファイルがあるのは \fIut_id\fP がないからである。
Linux (System V 系)では、設定ファイルを必要とせず セッション用のスロットを割り当てるので、一旦設定 されてしまうとレコードの
\fIut_id\fP は決して変更されない。 \fIut_id\fP をクリアすると競合状態におちいり、 utmp
-のエントリを壊したり、潜在的なセキュリティホールになる可能性がある。 上述のフィールドをヌルバイトで埋めてクリアしておくのは、 System V
+ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å£\8aã\81\97ã\81\9fã\82\8aã\80\81æ½\9cå\9c¨ç\9a\84ã\81ªã\82»ã\82ã\83¥ã\83ªã\83\86ã\82£ã\83\9bã\83¼ã\83«ã\81«ã\81ªã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\80\82 ä¸\8aè¿°ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\82\92ã\83\8cã\83«ã\83\90ã\82¤ã\83\88ã\81§å\9f\8bã\82\81ã\81¦ã\82¯ã\83ªã\82¢ã\81\97ã\81¦ã\81\8aã\81\8fã\81®ã\81¯ã\80\81 System V
での取り決めでは必要とはされていないが、 BSD での取り決めを前提としていて、かつ utmp を更新しない多くのプログラムが
動作するようにするためである。 Linux ではここまで記述してきたように、行内容の表示は BSD の慣例に従っている。
.PP
ファイルを削除することで utmp への記録を止められる 他の様々なシステムとは違い、Linux では utmp ファイルを必ずおいて おく必要がある。
\fBwho\fP(1) コマンドが機能しないようにしたい場合には、 utmp ファイルの全ユーザーに対する読み取り許可を設定しないようにする。
.PP
-ファイルのフォーマットはマシンに依存するので、ファイルが作られた マシンもしくは同一アーキテクチャのマシン上でのみ処理することを推奨する。
+ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\81¯ã\83\9eã\82·ã\83³ã\81«ä¾\9då\98ã\81\99ã\82\8bã\81®ã\81§ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cä½\9cã\82\89ã\82\8cã\81\9f ã\83\9eã\82·ã\83³ã\82\82ã\81\97ã\81\8fã\81¯å\90\8cä¸\80ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81®ã\83\9eã\82·ã\83³ä¸\8aã\81§ã\81®ã\81¿å\87¦ç\90\86ã\81\99ã\82\8bã\81\93ã\81¨ã\82\92æ\8e¨å¥¨ã\81\99ã\82\8bã\80\82
.PP
注意すべき点としては、 \fIbiarch\fP なプラットフォーム、つまり 32ビットと 64ビットの両方の アプリケーションを実行できるシステム
(x86\-64, ppc64, s390x など) では、 \fIut_tv\fP のサイズは 32ビットモードと 64ビットモードで同じである。
\fIut_session\fP と \fIut_time\fP も、存在する場合には同様に同じサイズ である。これにより、32ビットアプリケーションと
-64ビットアプリケーション の間でデータファイルと共有メモリを共有することが可能になる。 そのためには、 \fIut_session\fP を
+64ã\83\93ã\83\83ã\83\88ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ ã\81®é\96\93ã\81§ã\83\87ã\83¼ã\82¿ã\83\95ã\82¡ã\82¤ã\83«ã\81¨å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cå\8f¯è\83½ã\81«ã\81ªã\82\8bã\80\82 ã\81\9dã\81®ã\81\9fã\82\81ã\81«ã\81¯ã\80\81 \fIut_session\fP ã\82\92
\fIint32_t\fP 型に、 \fIut_tv\fP を 2つの \fIint32_t\fP 型のフィールド \fItv_sec\fP, \fItv_usec\fP
を持つ構造体に変更すればよい \fIut_tv\fP は \fIstruct timeval\fP と同じサイズとは限らないので、
.in +4n
マニュアルの 6 章は、本システムで利用可能なすべてのゲームと 楽しい小物プログラムについて記載している。
.SH 注意
.SS 著者と著作権
-著者と著作権に関しては各マニュアルページのソースのヘッダを参照すること。 これらはページごとに異なる可能性があることに注意してほしい。
+è\91\97è\80\85ã\81¨è\91\97ä½\9c権ã\81«é\96¢ã\81\97ã\81¦ã\81¯å\90\84ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81®ã\82½ã\83¼ã\82¹ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82 ã\81\93ã\82\8cã\82\89ã\81¯ã\83\9aã\83¼ã\82¸ã\81\94ã\81¨ã\81«ç\95°ã\81ªã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\80\82
.SH この文書について
この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.78 の一部
である。プロジェクトの説明とバグ報告に関する情報は
\fBwrite\fP(2) の非同期版である。
.TP
\fBaio_fsync\fP(3)
-ファイルディスクリプタに対して行われた I/O 操作の
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦è¡\8cã\82\8fã\82\8cã\81\9f I/O æ\93\8dä½\9cã\81®
同期 (sync) リクエストをキューに入れる。
\fBfsync\fP(2) や \fBfdatasync\fP(2) の非同期版である。
.TP
呼び出し側の実行を停止 (suspend) する。
.TP
\fBaio_cancel\fP(3)
-指定されたファイルディスクリプタに関する
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«é\96¢ã\81\99ã\82\8b
完了していない I/O リクエストのキャンセルを試みる。
.TP
\fBlio_listio\fP(3)
一回の関数呼び出しで複数の I/O リクエストをキューに入れる。
.PP
\fIaiocb\fP ("非同期 I/O 制御ブロック (asynchronous I/O control block)")
-構造体は、I/O 操作を制御するパラメータを定義する。この型の引き数は上記
+æ§\8bé\80 ä½\93ã\81¯ã\80\81I/O æ\93\8dä½\9cã\82\92å\88¶å¾¡ã\81\99ã\82\8bã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92å®\9a義ã\81\99ã\82\8bã\80\82ã\81\93ã\81®å\9e\8bã\81®å¼\95ã\81\8dæ\95°ã\81¯ä¸\8aè¨\98
の全ての関数で使用されている。この構造体は以下の通りである。
.PP
.in +4n
この構造体のフィールドは以下の通りである。
.TP 16
\fIaio_filedes\fP
-I/O 操作の実行対象となるファイルディスクリプタ。
+I/O æ\93\8dä½\9cã\81®å®\9fè¡\8c対象ã\81¨ã\81ªã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\80\82
.TP
\fIaio_offset\fP
I/O 操作を行うファイルオフセットを示す。
.TP
\fIaio_buf\fP
-読み出し操作、書き込み操作でデータ転送に使用されるバッファ。
+èªã\81¿å\87ºã\81\97æ\93\8dä½\9cã\80\81æ\9b¸ã\81\8dè¾¼ã\81¿æ\93\8dä½\9cã\81§ã\83\87ã\83¼ã\82¿è»¢é\80\81ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\80\82
.TP
\fIaio_nbytes\fP
-\fIaio_buf\fP が指すバッファのサイズ。
+\fIaio_buf\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82µã\82¤ã\82ºã\80\82
.TP
\fIaio_reqprio\fP
このフィールドでは、呼び出したスレッドのリアルタイム優先度から
以下に示す POSIX AIO API に対する拡張が提供されている。
.TP 16
\fBaio_init\fP(3)
-glibc の POSIX AIO 実装の動作を調整するパラメータを設定する。
+glibc ã\81® POSIX AIO å®\9fè£\85ã\81®å\8b\95ä½\9cã\82\92調æ\95´ã\81\99ã\82\8bã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82
.SH エラー
.TP
\fBEINVAL\fP
.SH 準拠
POSIX.1\-2001, POSIX.1\-2008.
.SH 注意
-使用前に制御ブロックバッファを 0 で埋めるのはよい考えである
-(\fBmemset\fP(3) 参照)。I/O 操作が実行中の間は、制御ブロックバッファと
-\fIaio_buf\fP が指すバッファを変更してはならない。I/O 操作が完了するまで、
-これらのバッファは有効な状態に保たなければならない。
+使ç\94¨å\89\8dã\81«å\88¶å¾¡ã\83\96ã\83ã\83\83ã\82¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92 0 ã\81§å\9f\8bã\82\81ã\82\8bã\81®ã\81¯ã\82\88ã\81\84è\80\83ã\81\88ã\81§ã\81\82ã\82\8b
+(\fBmemset\fP(3) å\8f\82ç\85§)ã\80\82I/O æ\93\8dä½\9cã\81\8cå®\9fè¡\8cä¸ã\81®é\96\93ã\81¯ã\80\81å\88¶å¾¡ã\83\96ã\83ã\83\83ã\82¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¨
+\fIaio_buf\fP ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92å¤\89æ\9b´ã\81\97ã\81¦ã\81¯ã\81ªã\82\89ã\81ªã\81\84ã\80\82I/O æ\93\8dä½\9cã\81\8cå®\8cäº\86ã\81\99ã\82\8bã\81¾ã\81§ã\80\81
+ã\81\93ã\82\8cã\82\89ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯æ\9c\89å\8a¹ã\81ªç\8a¶æ\85\8bã\81«ä¿\9dã\81\9fã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
同じ \fIaiocb\fP 構造体を使って、同時に複数の非同期の読み出し操作や
書き込み操作を行った場合に、どのような結果になるかは未定義である。
.\" http://lse.sourceforge.net/io/aio.html
.\" http://lse.sourceforge.net/io/aionotes.txt
.\" http://lwn.net/Articles/148755/
-現在の Linux では、POSIX AIO 実装は glibc によりユーザ空間で提供
+現在の Linux では、POSIX AIO 実装は glibc によりユーザー空間で提供
されている。このため、制限がいくつかあり、最も顕著なものは、I/O 操作を
実行する複数のスレッドの管理コストが高く、スケーラビリティに欠けること
である。しばらくの間、カーネルのステートマシンによる非同期 I/O の実装
再実装するほど成熟したものてはない。
.SH 例
下記のプログラムは、コマンドライン引き数で指定された名前のファイルを
-それぞれオープンし、得られたファイルディスクリプタに対するリクエストを
+ã\81\9dã\82\8cã\81\9eã\82\8cã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\80\81å¾\97ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\99ã\82\8bã\83ªã\82¯ã\82¨ã\82¹ã\83\88ã\82\92
\fBaio_read\fP(3) を使ってキューに入れる。その後、このプログラムはループに
入り、定期的に \fBaio_error\fP(3) を使ってまだ実行中の各 I/O 操作を監視す
る。各 I/O リクエストは、シグナルの配送による完了通知が行われるように設
\fBAF_INET\fP ソケットに \fBioctl\fP(2) を用いる。
ARP モジュールはハードウェアアドレスからプロトコルアドレスへの マッピングのキャッシュを管理する。キャッシュの大きさには制限が
-ã\81\82ã\82\8bã\81®ã\81§ã\80\81å\8f¤ã\81\84ã\82¨ã\83³ã\83\88ã\83ªã\82\84å\88©ç\94¨ã\81\95ã\82\8cã\81ªã\81\84ã\82¨ã\83³ã\83\88ã\83ªã\81¯ã\82¬ã\83\99ã\83¼ã\82¸ã\82³ã\83¬ã\82¯ã\83\88 ã\81\95ã\82\8cã\82\8bã\80\82 permanent (ä¿\9då\98) ã\83\9eã\83¼ã\82¯ã\81\8cã\81¤ã\81\91ã\82\89ã\82\8cã\81\9fã\82¨ã\83³ã\83\88ã\83ªは、
+ã\81\82ã\82\8bã\81®ã\81§ã\80\81å\8f¤ã\81\84ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\84å\88©ç\94¨ã\81\95ã\82\8cã\81ªã\81\84ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ã\82¬ã\83\99ã\83¼ã\82¸ã\82³ã\83¬ã\82¯ã\83\88 ã\81\95ã\82\8cã\82\8bã\80\82 permanent (ä¿\9då\98) ã\83\9eã\83¼ã\82¯ã\81\8cã\81¤ã\81\91ã\82\89ã\82\8cã\81\9fã\82¨ã\83³ã\83\88ã\83ªã\83¼は、
決してガベージコレクタによって消去されない。 ioctl を用いればキャッシュを直接操作することもできる。 また後述の \fI/proc\fP
-インタフェースによりキャッシュの振る舞いを調整できる。
+ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«ã\82\88ã\82\8aã\82ã\83£ã\83\83ã\82·ã\83¥ã\81®æ\8c¯ã\82\8bè\88\9eã\81\84ã\82\92調æ\95´ã\81§ã\81\8dã\82\8bã\80\82
-å\98å\9c¨ã\81\97ã\81¦ã\81\84ã\82\8bã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81«å¯¾ã\81\97ã\81¦ã\80\81 æ£ã\81®ã\83\95ã\82£ã\83¼ã\83\89ã\83\90ã\83\83ã\82¯ã\81\8cä¸\80å®\9aæ\99\82é\96\93ã\81ªã\81\84 (å¾\8cè¿°ã\81® \fI/proc\fP ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\82\92è¦\8bã\82\88) ã\81¨ã\80\81 è¿\91å\82\8dã\82ã\83£ã\83\83ã\82·ã\83¥ã\82¨ã\83³ã\83\88ã\83ª
+å\98å\9c¨ã\81\97ã\81¦ã\81\84ã\82\8bã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81«å¯¾ã\81\97ã\81¦ã\80\81 æ£ã\81®ã\83\95ã\82£ã\83¼ã\83\89ã\83\90ã\83\83ã\82¯ã\81\8cä¸\80å®\9aæ\99\82é\96\93ã\81ªã\81\84 (å¾\8cè¿°ã\81® \fI/proc\fP ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92è¦\8bã\82\88) ã\81¨ã\80\81 è¿\91å\82\8dã\82ã\83£ã\83\83ã\82·ã\83¥ã\82¨ã\83³ã\83\88ã\83ªã\83¼
(neighbor cache entry) は 古くなった (stale) とみなされる。 正のフィードバックは高位のレイヤーからも取得できる
(例えば TCP ACK が成功した場合など)。 他のプロトコルは、 \fBsendmsg\fP(2) に \fBMSG_CONFIRM\fP
フラグを用いることによって、 フォワードプログレス (forward progress) をシグナルできる。 フォワードプログレスがなければ、 ARP
リクエストは、データが送信キューにある場合のみ送られる。
Linux は、あるアドレスへのリクエストを受信・フォワードし、 受信したインターフェースで代理 arp が有効になっている場合には、
-自動的にそのアドレスを nonpermanent な代理 arp エントリに追加する。 そのターゲットに reject route があった場合には、
-代理 arp エントリは一切追加されない。
+è\87ªå\8b\95ç\9a\84ã\81«ã\81\9dã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92 nonpermanent ã\81ªä»£ç\90\86 arp ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81«è¿½å\8a ã\81\99ã\82\8bã\80\82 ã\81\9dã\81®ã\82¿ã\83¼ã\82²ã\83\83ã\83\88ã\81« reject route ã\81\8cã\81\82ã\81£ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81
+代ç\90\86 arp ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ä¸\80å\88\87追å\8a ã\81\95ã\82\8cã\81ªã\81\84ã\80\82
.SS ioctl
すべての \fBAF_INET\fP ソケットでは、 3 つの ioctl が使用できる。 これらは \fIstruct arpreq\fP
-へのポインタを引数に取る。
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å¼\95æ\95°ã\81«å\8f\96ã\82\8bã\80\82
.in +4n
.nf
\fIarp_flags\fP
フラグ:意味
ATF_COM:参照完了
-ATF_PERM:エントリを peramanent にする
-ATF_PUBL:エントリを publish する
+ATF_PERM:ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 peramanent ã\81«ã\81\99ã\82\8b
+ATF_PUBL:ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 publish ã\81\99ã\82\8b
ATF_USETRAILERS:trailer が必要
ATF_NETMASK:netmask を用いる
ATF_DONTPUB:回答しない
.RE
.PP
\fBATF_NETMASK\fP フラグがセットされているときには、 \fIarp_netmask\fP が有効でなければならない。 Linux 2.2
-は代理ネットワーク ARP エントリをサポートしていないので、 これは 0xffffffff にセットしておくか、あるいは 現存の代理 arp
-エントリを削除したい場合には 0 にしておく必要がある。 \fBATF_USETRAILERS\fP は obsolete なので、用いるべきでない。
-.SS "/proc インタフェース"
-ARP ã\81§ã\81¯ã\80\81ã\82°ã\83ã\83¼ã\83\90ã\83«ã\81ªã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\82\84ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81\94ã\81¨ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\82\92 \fI/proc\fP ã\82¤ã\83³ã\82¿フェースを通して設定することができる。
-これらのインタフェースには、 \fIproc/sys/net/ipv4/neigh/*/*\fP ファイルの読み書きによりアクセスできる。
+ã\81¯ä»£ç\90\86ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ ARP ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\81ªã\81\84ã\81®ã\81§ã\80\81 ã\81\93ã\82\8cã\81¯ 0xffffffff ã\81«ã\82»ã\83\83ã\83\88ã\81\97ã\81¦ã\81\8aã\81\8fã\81\8bã\80\81ã\81\82ã\82\8bã\81\84ã\81¯ ç\8f¾å\98ã\81®ä»£ç\90\86 arp
+ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\89\8aé\99¤ã\81\97ã\81\9fã\81\84å ´å\90\88ã\81«ã\81¯ 0 ã\81«ã\81\97ã\81¦ã\81\8aã\81\8få¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82 \fBATF_USETRAILERS\fP ã\81¯ obsolete ã\81ªã\81®ã\81§ã\80\81ç\94¨ã\81\84ã\82\8bã\81¹ã\81\8dã\81§ã\81ªã\81\84ã\80\82
+.SS "/proc ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹"
+ARP ã\81§ã\81¯ã\80\81ã\82°ã\83ã\83¼ã\83\90ã\83«ã\81ªã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\84ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81\94ã\81¨ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92 \fI/proc\fP ã\82¤ã\83³ã\82¿ã\83¼フェースを通して設定することができる。
+ã\81\93ã\82\8cã\82\89ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«ã\81¯ã\80\81 \fIproc/sys/net/ipv4/neigh/*/*\fP ã\83\95ã\82¡ã\82¤ã\83«ã\81®èªã\81¿æ\9b¸ã\81\8dã\81«ã\82\88ã\82\8aã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8dã\82\8bã\80\82
システムにあるそれぞれのインターフェースには、 それぞれ対応するディレクトリが \fI/proc/sys/net/ipv4/neigh/\fP 以下にある。
"default" ディレクトリに対して設定をすると、 それ以降生成されるデバイス全てに対してその設定が用いられる。 特に指定がなければ、時間に関る
sysctl の単位は秒である。
.TP
\fIbase_reachable_time\fP (Linux 2.2 以降)
.\" Precisely: 2.1.79
-近傍のホストがみつかると、そのエントリは \fIbase_reachable_time\fP/2 から 3*\fIbase_reachable_time\fP/2
-の間のランダムな値の時間、有効であるとみなされる。 エントリの有効性は、高位のプロトコルからポジティブなフィードバックを
+è¿\91å\82\8dã\81®ã\83\9bã\82¹ã\83\88ã\81\8cã\81¿ã\81¤ã\81\8bã\82\8bã\81¨ã\80\81ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ \fIbase_reachable_time\fP/2 ã\81\8bã\82\89 3*\fIbase_reachable_time\fP/2
+ã\81®é\96\93ã\81®ã\83©ã\83³ã\83\80ã\83 ã\81ªå\80¤ã\81®æ\99\82é\96\93ã\80\81æ\9c\89å\8a¹ã\81§ã\81\82ã\82\8bã\81¨ã\81¿ã\81ªã\81\95ã\82\8cã\82\8bã\80\82 ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®æ\9c\89å\8a¹æ\80§ã\81¯ã\80\81é«\98ä½\8dã\81®ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81\8bã\82\89ã\83\9dã\82¸ã\83\86ã\82£ã\83\96ã\81ªã\83\95ã\82£ã\83¼ã\83\89ã\83\90ã\83\83ã\82¯ã\82\92
受け取ると延長される。デフォルトは 30 秒。 このファイルは現在は非推奨であり、代わりに \fIbase_reachable_time_ms\fP
を使うこと。
.TP
.TP
\fIdelay_first_probe_time\fP (Linux 2.2 以降)
.\" Precisely: 2.1.79
-近傍ホストのエントリが古くなったと判断された後に 最初に探索を行うまでの遅延時間。デフォルトは 5 秒。
+è¿\91å\82\8dã\83\9bã\82¹ã\83\88ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cå\8f¤ã\81\8fã\81ªã\81£ã\81\9fã\81¨å\88¤æ\96ã\81\95ã\82\8cã\81\9få¾\8cã\81« æ\9c\80å\88\9dã\81«æ\8e¢ç´¢ã\82\92è¡\8cã\81\86ã\81¾ã\81§ã\81®é\81\85延æ\99\82é\96\93ã\80\82ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81¯ 5 ç§\92ã\80\82
.TP
\fIgc_interval\fP (Linux 2.2 以降)
.\" Precisely: 2.1.79
-ã\82¬ã\83\99ã\83¼ã\82¸ã\83»ã\82³ã\83¬ã\82¯ã\82¿ã\82\92è¿\91å\82\8dã\83\9bã\82¹ã\83\88ã\82¨ã\83³ã\83\88ã\83ªに対して実行させる頻度。 デフォルトは 30 秒。
+ã\82¬ã\83\99ã\83¼ã\82¸ã\82³ã\83¬ã\82¯ã\82¿ã\82\92è¿\91å\82\8dã\83\9bã\82¹ã\83\88ã\82¨ã\83³ã\83\88ã\83ªã\83¼に対して実行させる頻度。 デフォルトは 30 秒。
.TP
\fIgc_stale_time\fP (Linux 2.2 以降)
.\" Precisely: 2.1.79
-å\8f¤ã\81\8fã\81ªã\81£ã\81\9fè¿\91å\82\8dã\83\9bã\82¹ã\83\88ã\82¨ã\83³ã\83\88ã\83ªã\81«å¯¾ã\81\97ã\81¦ã\83\81ã\82§ã\83\83ã\82¯ã\82\92è¡\8cã\81\86é »åº¦ã\80\82 è¿\91å\82\8dã\83\9bã\82¹ã\83\88ã\82¨ã\83³ã\83\88ã\83ªã\81\8cå\8f¤ã\81\8fã\81ªã\81£ã\81\9fã\81¨ã\81¿ã\81ªã\81\95ã\82\8cã\82\8bã\81¨ã\80\81ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªに
+å\8f¤ã\81\8fã\81ªã\81£ã\81\9fè¿\91å\82\8dã\83\9bã\82¹ã\83\88ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81«å¯¾ã\81\97ã\81¦ã\83\81ã\82§ã\83\83ã\82¯ã\82\92è¡\8cã\81\86é »åº¦ã\80\82 è¿\91å\82\8dã\83\9bã\82¹ã\83\88ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cå\8f¤ã\81\8fã\81ªã\81£ã\81\9fã\81¨ã\81¿ã\81ªã\81\95ã\82\8cã\82\8bã\81¨ã\80\81ã\81\9dã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼に
データを送る前には再度解決が行われる。 デフォルトは 60 秒。
.TP
\fIgc_thresh1\fP (Linux 2.2 以降)
.\" Precisely: 2.1.79
-ARP キャッシュに保存するエントリ数の最小値。 この数より少ないエントリしかキャッシュになければ、 ガベージコレクタは実行されない。 デフォルトは
+ARP キャッシュに保存するエントリー数の最小値。 この数より少ないエントリーしかキャッシュになければ、 ガベージコレクタは実行されない。 デフォルトは
128。
.TP
\fIgc_thresh2\fP (Linux 2.2 以降)
.\" Precisely: 2.1.79
-ARP キャッシュに保存されるエントリ数のソフトな最大値。 キャッシュのエントリがこの数を 5 秒間越えつづけると、 ガベージコレクタが実行される。
+ARP キャッシュに保存されるエントリー数のソフトな最大値。 キャッシュのエントリーがこの数を 5 秒間越えつづけると、 ガベージコレクタが実行される。
デフォルトは 512。
.TP
\fIgc_thresh3\fP (Linux 2.2 以降)
.\" Precisely: 2.1.79
-ARP キャッシュに保存されるエントリ数のハードな最大値。 キャッシュのエントリがこの数を越えると、 ガベージコレクタはただちに実行される。
+ARP キャッシュに保存されるエントリー数のハードな最大値。 キャッシュのエントリーがこの数を越えると、 ガベージコレクタはただちに実行される。
デフォルトは 1024。
.TP
\fIlocktime\fP (Linux 2.2 以降)
.\" Precisely: 2.1.79
-ARP エントリをキャッシュに保存する時間の最小値 (jiffy 単位)。 可能性のあるマッピングが一つ以上ある (たいていはネットワーク設定のミス)
+ARP ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81«ä¿\9då\98ã\81\99ã\82\8bæ\99\82é\96\93ã\81®æ\9c\80å°\8få\80¤ (jiffy å\8d\98ä½\8d)ã\80\82 å\8f¯è\83½æ\80§ã\81®ã\81\82ã\82\8bã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81\8cä¸\80ã\81¤ä»¥ä¸\8aã\81\82ã\82\8b (ã\81\9fã\81\84ã\81¦ã\81\84ã\81¯ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯è¨å®\9aã\81®ã\83\9fã\82¹)
場合に、 ARP キャッシュのスラッシングが起きることを防ぐ。 デフォルトは 1 秒。
.TP
\fImcast_solicit\fP (Linux 2.2 以降)
.\" Precisely: 2.1.79
-エントリを unreachable マークする前に、 アドレスをマルチキャスト/ブロードキャストで解決しようとする 試行回数の最大値。 デフォルトは
+ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92 unreachable ã\83\9eã\83¼ã\82¯ã\81\99ã\82\8bå\89\8dã\81«ã\80\81 ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92ã\83\9eã\83«ã\83\81ã\82ã\83£ã\82¹ã\83\88/ã\83\96ã\83ã\83¼ã\83\89ã\82ã\83£ã\82¹ã\83\88ã\81§è§£æ±ºã\81\97ã\82\88ã\81\86ã\81¨ã\81\99ã\82\8b 試è¡\8cå\9b\9eæ\95°ã\81®æ\9c\80大å\80¤ã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81¯
3。
.TP
\fIproxy_delay\fP (Linux 2.2 以降)
Linux 2.0 で、 \fIstruct arpreq\fP に \fIarp_dev\fP メンバーが含まれるように変更があった。また同時に ioctl
番号も変更された。古い ioctl は Linux 2.2 で用いることができなくなった。
-ネットワークに対する代理 arp エントリ (netmask が 0xffffffff でない) は、 Linux 2.2
+ネットワークに対する代理 arp エントリー (netmask が 0xffffffff でない) は、 Linux 2.2
で用いることができなくなった。 これはカーネルによって設定される、別のインターフェースにおける 到達可能なすべてのホストに対する自動代理 arp
によって置き換えられた (そのインターフェースでフォワーディングと代理 arp が有効になっている場合)。
-\fIneigh/*\fP の各インタフェースは Linux 2.2 以前には存在しない。
+\fIneigh/*\fP ã\81®å\90\84ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ Linux 2.2 以å\89\8dã\81«ã\81¯å\98å\9c¨ã\81\97ã\81ªã\81\84ã\80\82
.SH バグ
-いくつかのタイマー設定は jiffy で指定されるが、 jiffy はアーキテクチャやカーネルのバージョンに依存する。 \fBtime\fP(7)
+ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¿ã\82¤ã\83\9eã\83¼è¨å®\9aã\81¯ jiffy ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\82\8bã\81\8cã\80\81 jiffy ã\81¯ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\82\84ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82 \fBtime\fP(7)
を参照のこと。
ユーザー空間からポジティブなフィードバックを送る方法が存在しない。 つまり接続指向 (connection\-oriented)
Oct Dec Hex Char Oct Dec Hex Char
_
000 0 00 NUL \(aq\e0\(aq (ヌル文字) 100 64 40 @
-001 1 01 SOH (ヘッダ開始) 101 65 41 A
+001 1 01 SOH (ヘッダー開始) 101 65 41 A
002 2 02 STX (テキスト開始) 102 66 42 B
003 3 03 ETX (テキスト終了) 103 67 43 C
004 4 04 EOT (転送終了) 104 68 44 D
\fBBIOS\fP と呼ばれる。
普通このプログラムは、まずマシンの基本的な自己診断を行い、
-ä¸\8dæ\8f®ç\99ºæ\80§ã\83¡ã\83¢ã\83ªã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\97ã\81¦å\90\84種ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿を読み込む。
-PC ã\81§ã\81¯ã\80\81ã\81\93ã\81®ã\83¡ã\83¢ã\83ªã\81¯é\9b»æ± ã\81«ã\82\88ã\81£ã\81¦ã\83\90ã\83\83ã\82¯ã\82¢ã\83\83ã\83\97ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b CMOS ã\83¡ã\83¢ã\83ªである。
+ä¸\8dæ\8f®ç\99ºæ\80§ã\83¡ã\83¢ã\83ªã\83¼ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\97ã\81¦å\90\84種ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼を読み込む。
+PC ã\81§ã\81¯ã\80\81ã\81\93ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81¯é\9b»æ± ã\81«ã\82\88ã\81£ã\81¦ã\83\90ã\83\83ã\82¯ã\82¢ã\83\83ã\83\97ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b CMOS ã\83¡ã\83¢ã\83ªã\83¼である。
そのため \fBCMOS\fP と呼ばれることが多い。
しかし PC 以外の世界では、通常 \fBnvram\fP (nonvolatile ram) と呼ばれている。
-nvram に保存されているパラメータはシステムによって異なる。 しかし、ハードウェアブートプログラムは、少なくとも、
+nvram ã\81«ä¿\9då\98ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\82·ã\82¹ã\83\86ã\83 ã\81«ã\82\88ã\81£ã\81¦ç\95°ã\81ªã\82\8bã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\83\96ã\83¼ã\83\88ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\80\81å°\91ã\81ªã\81\8fã\81¨ã\82\82ã\80\81
ブートデバイスがどれであるか、もしくは ブートデバイスとして探索するデバイスがどれであるかを 知っていなければならない。
ハードウェアブートのシーケンスは、次にブートデバイスにアクセスし、 ブートデバイスのあらかじめ決まった場所に置かれている OS
これには第二ローダーをルートパーティションからロードするような ブートストラップコードが含まれている。
OS ローダーの主な仕事は、カーネルのディスク上の位置を特定し、 ロードして起動することである。ほとんどの OS ローダーは、
-対話モードで使用することもでき、追加のパラメータをカーネルに渡したり、 デフォルトとは別のカーネルを指定したりすることができる
+対話ã\83¢ã\83¼ã\83\89ã\81§ä½¿ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\82\82ã\81§ã\81\8dã\80\81追å\8a ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ã\82«ã\83¼ã\83\8dã\83«ã\81«æ¸¡ã\81\97ã\81\9fã\82\8aã\80\81 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81¨ã\81¯å\88¥ã\81®ã\82«ã\83¼ã\83\8dã\83«ã\82\92æ\8c\87å®\9aã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8b
(例えば、最後にコンパイルしたカーネルが機能しなかった時に バックアップのカーネルを指定して起動するといったことができる)。
.SS カーネルの起動
カーネルはロードされると、デバイスを (ドライバによって) 初期化し、スワッパを起動し (最近の Linux カーネルでは、 スワッパは kswapd
という「カーネルプロセス」になる)、 ルートファイルシステム (/) をマウントする。
-カーネルに渡すことのできるパラメータのいくつかは、 これらの動作に関係する。 (例えばデフォルトのルートファイルシステムを変更したりできる)。
-Linux カーネルパラメータに関するより詳しい情報は \fBbootparam\fP(7) を読んでほしい。
+ã\82«ã\83¼ã\83\8dã\83«ã\81«æ¸¡ã\81\99ã\81\93ã\81¨ã\81®ã\81§ã\81\8dã\82\8bã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®ã\81\84ã\81\8fã\81¤ã\81\8bã\81¯ã\80\81 ã\81\93ã\82\8cã\82\89ã\81®å\8b\95ä½\9cã\81«é\96¢ä¿\82ã\81\99ã\82\8bã\80\82 (ä¾\8bã\81\88ã\81°ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®ã\83«ã\83¼ã\83\88ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\82\92å¤\89æ\9b´ã\81\97ã\81\9fã\82\8aã\81§ã\81\8dã\82\8b)ã\80\82
+Linux ã\82«ã\83¼ã\83\8dã\83«ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81«é\96¢ã\81\99ã\82\8bã\82\88ã\82\8a詳ã\81\97ã\81\84æ\83\85å ±ã\81¯ \fBbootparam\fP(7) ã\82\92èªã\82\93ã\81§ã\81»ã\81\97ã\81\84ã\80\82
-これらが済んではじめて、 カーネルは最初の (ユーザランドの) プロセスを生成し、 番号 1 を与える。このプロセスは \fI/sbin/init\fP
-プログラムを実行する。 カーネルによって解釈されていないパラメータはすべて \fI/sbin/init\fP に渡される。
+ã\81\93ã\82\8cã\82\89ã\81\8cæ¸\88ã\82\93ã\81§ã\81¯ã\81\98ã\82\81ã\81¦ã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\81¯æ\9c\80å\88\9dã\81® (ã\83¦ã\83¼ã\82¶ã\83¼ã\83©ã\83³ã\83\89ã\81®) ã\83\97ã\83ã\82»ã\82¹ã\82\92ç\94\9fæ\88\90ã\81\97ã\80\81 ç\95ªå\8f· 1 ã\82\92ä¸\8eã\81\88ã\82\8bã\80\82ã\81\93ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¯ \fI/sbin/init\fP
+ã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92å®\9fè¡\8cã\81\99ã\82\8bã\80\82 ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82\88ã\81£ã\81¦è§£é\87\88ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\81\99ã\81¹ã\81¦ \fI/sbin/init\fP ã\81«æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82
.SS "init と inittab"
init は、起動するとまず \fI/etc/inittab\fP を読み、その後の行動に関する情報を得る。 このファイルは \fIランレベル\fP
によってどのような動作を行うべきであるかを定義する。
これによってシステム管理者の管理が楽になる。各\fIランレベル\fPは提供する
-サービスの集合に対応する (例えば、 \fBS\fP は \fIシングルユーザ\fP、 \fB2\fP で
+サービスの集合に対応する (例えば、 \fBS\fP は \fIシングルユーザー\fP、 \fB2\fP で
は大抵のネットワークサービスを起動する)。
システム管理者は、 \fBinit\fP(1) を用いて現在のランレベルを変更でき、
\fBrunlevel\fP(8) によって現在のランレベルを確認できる。
ブートの順序とランレベルを管理するには、 これらのリンクを管理しなければならない。 しかし多くの Linux ディストリビューションでは、
これらの作業を手助けしてくれるツールが存在する (例えば \fBchkconfig\fP(8) など)。
.SS ブートの設定
-デーモンの起動時には、 コマンドラインオプションやパラメータを指定できるのが普通である。 システム管理者がこれらのパラメータを変更したいと思ったときに、
-ブートスクリプトそのものを編集しなくてもすむよう、 設定ファイルが用いられる。これらは特定のディレクトリ (Red Hat システムでは
-\fI/etc/sysconfig\fP) に置かれ、ブートスクリプトから参照される。
+デーモンの起動時には、 コマンドラインオプションやパラメーターを指定できるのが普通である。
+システム管理者がこれらのパラメーターを変更したいと思ったときに、 ブートスクリプトそのものを編集しなくてもすむよう、
+設定ファイルが用いられる。これらは特定のディレクトリ (Red Hat システムでは \fI/etc/sysconfig\fP)
+に置かれ、ブートスクリプトから参照される。
古い UNIX システムでは、これらのファイルには デーモンに与える実際のコマンドラインオプションが書かれていた。 しかし最近の Linux システム
(や HP\-UX) では、 これらのファイルには単にシェル変数が書かれているだけである。 \fI/etc/init.d\fP
.\"
.TH BOOTPARAM 7 2014\-06\-13 Linux "Linux Programmer's Manual"
.SH 名前
-bootparam \- Linux カーネル起動時パラメータの解説
+bootparam \- Linux ã\82«ã\83¼ã\83\8dã\83«èµ·å\8b\95æ\99\82ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®è§£èª¬
.SH 説明
-Linux カーネルは起動するときに「コマンドラインオプション」あるいは 「起動時パラメータ」を受け付ける。 これは一般に、
-カーネルには決定できないハードウェアのパラメータをカーネルに渡したい場合や、
+Linux ã\82«ã\83¼ã\83\8dã\83«ã\81¯èµ·å\8b\95ã\81\99ã\82\8bã\81¨ã\81\8dã\81«ã\80\8cã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³ã\82ªã\83\97ã\82·ã\83§ã\83³ã\80\8dã\81\82ã\82\8bã\81\84ã\81¯ ã\80\8cèµ·å\8b\95æ\99\82ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\80\8dã\82\92å\8f\97ã\81\91ä»\98ã\81\91ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ä¸\80è\88¬ã\81«ã\80\81
+ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\81¯æ±ºå®\9aã\81§ã\81\8dã\81ªã\81\84ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ã\82«ã\83¼ã\83\8dã\83«ã\81«æ¸¡ã\81\97ã\81\9fã\81\84å ´å\90\88ã\82\84ã\80\81
カーネルが検出するであろう値を意図的に無効にしたり変更したりする場合に用いる。
カーネルが BIOS から直接起動されるとき (たとえば 'cp zImage /dev/fd0' でフロッピーにコピーしたカーネルから起動するなど)
-ã\81¯ã\80\81 ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bæ©\9fä¼\9aã\81¯ã\81ªã\81\84ã\80\82 ã\81\9dã\81®ã\81\9fã\82\81ã\80\81ã\81\93ã\81®èµ·å\8b\95æ\99\82ã\83\91ã\83©ã\83¡ã\83¼ã\82¿機能を利用するためには、 GRUB
-のようなパラメータを指定できるブートローダーを使用しなければならない。
+ã\81¯ã\80\81 ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bæ©\9fä¼\9aã\81¯ã\81ªã\81\84ã\80\82 ã\81\9dã\81®ã\81\9fã\82\81ã\80\81ã\81\93ã\81®èµ·å\8b\95æ\99\82ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼機能を利用するためには、 GRUB
+ã\81®ã\82\88ã\81\86ã\81ªã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92æ\8c\87å®\9aã\81§ã\81\8dã\82\8bã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83¼ã\82\92使ç\94¨ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.\" The LILO program (LInux LOader) written by Werner Almesberger is the
.\" most commonly used.
.in
.LP
ここで 'name' は、それに対応する値がカーネルのどの部分に渡されるものなのかを 識別するための、他と重ならないキーワードである。 書式中の 10
-という制限は実際に存在する。 現在のコードは、キーワードひとつあたり、コンマで区切られたパラメータを 10 個までしか取り扱うことができない。
-(しかし、事情が非常に複雑な場合には、同じキーワードを再度利用して 10 個以上のパラメータを与えることができるかもしれない。
+ã\81¨ã\81\84ã\81\86å\88¶é\99\90ã\81¯å®\9fé\9a\9bã\81«å\98å\9c¨ã\81\99ã\82\8bã\80\82 ç\8f¾å\9c¨ã\81®ã\82³ã\83¼ã\83\89ã\81¯ã\80\81ã\82ã\83¼ã\83¯ã\83¼ã\83\89ã\81²ã\81¨ã\81¤ã\81\82ã\81\9fã\82\8aã\80\81ã\82³ã\83³ã\83\9eã\81§å\8cºå\88\87ã\82\89ã\82\8cã\81\9fã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92 10 å\80\8bã\81¾ã\81§ã\81\97ã\81\8bå\8f\96ã\82\8aæ\89±ã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\80\82
+(ã\81\97ã\81\8bã\81\97ã\80\81äº\8bæ\83\85ã\81\8cé\9d\9e常ã\81«è¤\87é\9b\91ã\81ªå ´å\90\88ã\81«ã\81¯ã\80\81å\90\8cã\81\98ã\82ã\83¼ã\83¯ã\83¼ã\83\89ã\82\92å\86\8d度å\88©ç\94¨ã\81\97ã\81¦ 10 å\80\8b以ä¸\8aã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ä¸\8eã\81\88ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
対象となるハードウェアの設定関数がそれをサポートしていれば、だが。)
カーネルコマンドラインの識別はほとんどがカーネルソースファイル \fIinit/main.c\fP に書かれている。 最初に、カーネルは \&'root=',
カーネルは次に設定関数のリスト (配列 bootsetups に含まれている) をスキャンし、 指定された引数文字列 (例えば 'foo') が
特定のデバイスやカーネルの一部に対する設定関数 ('foo_setup()') に関連付けられているかを調べる。 例えばカーネルに
-foo=3,4,5,6 のようなパラメータを与えたとすると、 カーネルは配列 bootsetups を調べて、 'foo' が登録されているか調べる。
+foo=3,4,5,6 ã\81®ã\82\88ã\81\86ã\81ªã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ä¸\8eã\81\88ã\81\9fã\81¨ã\81\99ã\82\8bã\81¨ã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\81¯é\85\8då\88\97 bootsetups ã\82\92調ã\81¹ã\81¦ã\80\81 'foo' ã\81\8cç\99»é\8c²ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8b調ã\81¹ã\82\8bã\80\82
登録されていたら、'foo' に対応する設定関数 ('foo_setup()') をコールし、 カーネルコマンドラインに与えられた引数である 3, 4,
5, 6 を設定関数に渡す。
カーネルによって処理されず、環境変数としても解釈されなかった 残りの引数は、プロセス 1 に渡されることになる。 通常このプロセス 1 は
\fBinit\fP(1) プログラムである。 \fIinit\fP プロセスに渡される引数で最もよく使われるのは、 'single' というキーワードである。
-これを指定すると init はシングルユーザモードでコンピュータを起動し、 通常使われるデーモンは一切起動しない。 システムにインストールされている
+ã\81\93ã\82\8cã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81¨ init ã\81¯ã\82·ã\83³ã\82°ã\83«ã\83¦ã\83¼ã\82¶ã\83¼ã\83¢ã\83¼ã\83\89ã\81§ã\82³ã\83³ã\83\94ã\83¥ã\83¼ã\82¿ã\82\92èµ·å\8b\95ã\81\97ã\80\81 é\80\9a常使ã\82\8fã\82\8cã\82\8bã\83\87ã\83¼ã\83¢ã\83³ã\81¯ä¸\80å\88\87èµ·å\8b\95ã\81\97ã\81ªã\81\84ã\80\82 ã\82·ã\82¹ã\83\86ã\83 ã\81«ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b
\fBinit\fP(1) が どんな引数を受け付けるかは、 マニュアルページで調べること。
.SS 一般的な、デバイス固有ではない起動時引き数
.TP
と指定すると、'blah' を除くすべてのデバイスドライバは 0x300 から 0x31f の範囲を自動検出の対象外とする。
.TP
\&\fB'mem=...'\fP
-搭載されているメモリの量を返す BIOS コールは PC の仕様で定義されているが、これは最大 64MB までしか返すことができない。 Linux
-は搭載メモリの量を調べるために、 起動時にこの BIOS コールを使用する。 もし 64MB 以上の RAM を搭載している場合は、
-この起動時引数を用いて 実際のメモリ容量を Linux に知らせることができる。 値は 10 進数または 16 進数 (先頭に 0x を付加)
+æ\90è¼\89ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81®é\87\8fã\82\92è¿\94ã\81\99 BIOS ã\82³ã\83¼ã\83«ã\81¯ PC ã\81®ä»\95æ§\98ã\81§å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8cã\80\81ã\81\93ã\82\8cã\81¯æ\9c\80大 64MB ã\81¾ã\81§ã\81\97ã\81\8bè¿\94ã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\80\82 Linux
+ã\81¯æ\90è¼\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®é\87\8fã\82\92調ã\81¹ã\82\8bã\81\9fã\82\81ã\81«ã\80\81 èµ·å\8b\95æ\99\82ã\81«ã\81\93ã\81® BIOS ã\82³ã\83¼ã\83«ã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82 ã\82\82ã\81\97 64MB 以ä¸\8aã\81® RAM ã\82\92æ\90è¼\89ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\80\81
+この起動時引数を用いて 実際のメモリー容量を Linux に知らせることができる。 値は 10 進数または 16 進数 (先頭に 0x を付加)
の数値で指定し、 1024 倍を表す 'k' または 1048576 倍を表す 'M' を末尾に付加できる。 以下は Linus による 'mem='
-パラメータの解説である。
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®è§£èª¬ã\81§ã\81\82ã\82\8bã\80\82
.in +0.5i
-カーネルは 'mem=xx' パラメータとして どんな値を指定してもそれをそのまま受け入れる。 だからそれが嘘だとわかったら、
-遅かれ早かれひどいクラッシュをするだろう。 パラメータはアクセスしうる最も高位の RAM アドレスを指示する。 だから例えば
-\&'mem=0x1000000' っていうのは 16MB のメモリがある、という意味になる。 96MB のマシンなら 'mem=0x6000000' だ。
+カーネルは 'mem=xx' パラメーターとして どんな値を指定してもそれをそのまま受け入れる。 だからそれが嘘だとわかったら、
+遅かれ早かれひどいクラッシュをするだろう。 パラメーターはアクセスしうる最も高位の RAM アドレスを指示する。 だから例えば
+\&'mem=0x1000000' っていうのは 16MB のメモリーがある、という意味になる。 96MB のマシンなら 'mem=0x6000000'
+だ。
-\fB注意\fP: マシンによってはメモリの最上位の領域を BIOS のキャッシュやら何やらの ために使っていることがあるから、 実際には 96MB
+\fB注æ\84\8f\fP: ã\83\9eã\82·ã\83³ã\81«ã\82\88ã\81£ã\81¦ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\81®æ\9c\80ä¸\8aä½\8dã\81®é \98å\9f\9fã\82\92 BIOS ã\81®ã\82ã\83£ã\83\83ã\82·ã\83¥ã\82\84ã\82\89ä½\95ã\82\84ã\82\89ã\81® ã\81\9fã\82\81ã\81«ä½¿ã\81£ã\81¦ã\81\84ã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\81\8bã\82\89ã\80\81 å®\9fé\9a\9bã\81«ã\81¯ 96MB
をフルにアドレスすることはできないかもしれない。 逆の場合もある。 いくつかのチップセットでは、 BIOS
-é \98å\9f\9fã\81«å\85¥ã\81£ã\81¦ã\81\84ã\82\8bç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\82\92æ\9c\80ä¸\8aä½\8dã\81®ã\83¡ã\83¢ã\83ªã\81®ã\81\95ã\82\89ã\81«ä¸\8aã\81«ã\83\9eã\83\83ã\83\97ã\81\99ã\82\8bã\80\82 ã\82\88ã\81£ã\81¦æ\9c\80ä¸\8aä½\8dã\81®ã\83¡ã\83¢ã\83ªはたとえば 96MB + 384kB
-なんて値になるかもしれない。 linux に実際より多いメモリを教えてしまったとしたら、 まずいことが起きるだろう。
+é \98å\9f\9fã\81«å\85¥ã\81£ã\81¦ã\81\84ã\82\8bç\89©ç\90\86ã\83¡ã\83¢ã\83ªã\83¼ã\82\92æ\9c\80ä¸\8aä½\8dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\81\95ã\82\89ã\81«ä¸\8aã\81«ã\83\9eã\83\83ã\83\97ã\81\99ã\82\8bã\80\82 ã\82\88ã\81£ã\81¦æ\9c\80ä¸\8aä½\8dã\81®ã\83¡ã\83¢ã\83ªã\83¼はたとえば 96MB + 384kB
+ã\81ªã\82\93ã\81¦å\80¤ã\81«ã\81ªã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82 linux ã\81«å®\9fé\9a\9bã\82\88ã\82\8aå¤\9aã\81\84ã\83¡ã\83¢ã\83ªã\83¼ã\82\92æ\95\99ã\81\88ã\81¦ã\81\97ã\81¾ã\81£ã\81\9fã\81¨ã\81\97ã\81\9fã\82\89ã\80\81 ã\81¾ã\81\9aã\81\84ã\81\93ã\81¨ã\81\8cèµ·ã\81\8dã\82\8bã\81 ã\82\8dã\81\86ã\80\82
すぐにではないかもしれないけど、ゆくゆくは確実にね。
.in
リブートのデフォルトはコールドブートになった。 以前のデフォルトであるウォームブートをするには \&'reboot=warm'
と指定しなければならない。 (ある種のハードウェアをリセットするにはコールドブートが必要になるが、
ディスクキャッシュにある書き込んでいないデータは破壊される。 ウォームブートでは、より素早くリブートできる。) デフォルトではリブートは 'hard'
-で行われる。 すなわちリセットラインに low を出力するようキーボードコントローラに要求して、 リブートを行う。
+ã\81§è¡\8cã\82\8fã\82\8cã\82\8bã\80\82 ã\81\99ã\81ªã\82\8fã\81¡ã\83ªã\82»ã\83\83ã\83\88ã\83©ã\82¤ã\83³ã\81« low ã\82\92å\87ºå\8a\9bã\81\99ã\82\8bã\82\88ã\81\86ã\82ã\83¼ã\83\9cã\83¼ã\83\89ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼ã\81«è¦\81æ±\82ã\81\97ã\81¦ã\80\81 ã\83ªã\83\96ã\83¼ã\83\88ã\82\92è¡\8cã\81\86ã\80\82
しかし一部のマザーボードではこれができない。 \&'reboot=bios' オプションを指定すると、 代わりに BIOS を経由するようになる。
.TP
\&\fB'nosmp'\fP と \fB'maxcpus=N'\fP
\fBCONFIG_PROFILE\fP で指定するか、 この 'prifile=N' オプションで指定できる。 \fIprof_shift\fP の値は N
が指定されれば N となり、N が指定されなかった場合は \fBCONFIG_PROFILE_SHIFT\fP の値が用いられる。
どちらも指定されなければデフォルト値の 2 が用いられる。 この変数が重要なのは、 カーネルプロファイリングの粒度を決定するところにある。
-すなわち、各クロックの割込みごとに、システムがカーネルコードを実行していれば、 以下のようにカウンタの値がインクリメントされる。
+ã\81\99ã\81ªã\82\8fã\81¡ã\80\81å\90\84ã\82¯ã\83ã\83\83ã\82¯ã\81®å\89²è¾¼ã\81¿ã\81\94ã\81¨ã\81«ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81\8cã\82«ã\83¼ã\83\8dã\83«ã\82³ã\83¼ã\83\89ã\82\92å®\9fè¡\8cã\81\97ã\81¦ã\81\84ã\82\8cã\81°ã\80\81 以ä¸\8bã\81®ã\82\88ã\81\86ã\81«ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81®å\80¤ã\81\8cã\82¤ã\83³ã\82¯ã\83ªã\83¡ã\83³ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82
.in +4n
.nf
.in
.sp
生のプロファイリング情報は、 \fI/proc/profile\fP から見ることができるが、readprofile.c
-のような情報を加工するツールを使ったほうが良いだろう。 \fI/proc/profile\fP に任意のデータを書込むと、 カウンタはリセットされる。
+ã\81®ã\82\88ã\81\86ã\81ªæ\83\85å ±ã\82\92å\8a å·¥ã\81\99ã\82\8bã\83\84ã\83¼ã\83«ã\82\92使ã\81£ã\81\9fã\81»ã\81\86ã\81\8cè\89¯ã\81\84ã\81 ã\82\8dã\81\86ã\80\82 \fI/proc/profile\fP ã\81«ä»»æ\84\8fã\81®ã\83\87ã\83¼ã\82¿ã\82\92æ\9b¸è¾¼ã\82\80ã\81¨ã\80\81 ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81¯ã\83ªã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82
.TP
\&\fB'swap=N1,N2,N3,N4,N5,N6,N7,N8'\fP
-カーネルのスワップアルゴリズムをコントロールする 次の 8 つのパラメータをセットする。 max_page_age, page_advance,
+ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\82¹ã\83¯ã\83\83ã\83\97ã\82¢ã\83«ã\82´ã\83ªã\82ºã\83 ã\82\92ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83«ã\81\99ã\82\8b 次ã\81® 8 ã\81¤ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\80\82 max_page_age, page_advance,
page_decline, page_initial_age, age_cluster_fract, age_cluster_min,
pageout_weight, bufferout_weight. これはカーネルをチューンする人のためのオプションである。
.TP
\&\fB'buff=N1,N2,N3,N4,N5,N6'\fP
-ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¡ã\83¢ã\83ªç®¡ç\90\86ã\82\92ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83«ã\81\99ã\82\8b 次ã\81® 6 ã\81¤ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿をセットする。 max_buff_age, buff_advance,
+ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83¡ã\83¢ã\83ªã\83¼ç®¡ç\90\86ã\82\92ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83«ã\81\99ã\82\8b 次ã\81® 6 ã\81¤ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼をセットする。 max_buff_age, buff_advance,
buff_decline, buff_initial_age, bufferout_weight, buffermem_grace.
これはカーネルをチューンする人のためのオプションである。
.SS "RAM ディスク関連の起動時引数"
(カーネルのコンパイル時に \fBCONFIG_BLK_DEV_RAM\fP オプションが指定されたときのみ有効。) 一般的には、Linux で RAM
-ディスクを使用するのはあまり良い考えではない。 システムに任せておけばもっと効率的にメモリを使用する。 しかしブート時
+ã\83\87ã\82£ã\82¹ã\82¯ã\82\92使ç\94¨ã\81\99ã\82\8bã\81®ã\81¯ã\81\82ã\81¾ã\82\8aè\89¯ã\81\84è\80\83ã\81\88ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\82·ã\82¹ã\83\86ã\83 ã\81«ä»»ã\81\9bã\81¦ã\81\8aã\81\91ã\81°ã\82\82ã\81£ã\81¨å\8a¹ç\8e\87ç\9a\84ã\81«ã\83¡ã\83¢ã\83ªã\83¼ã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82 ã\81\97ã\81\8bã\81\97ã\83\96ã\83¼ã\83\88æ\99\82
(またはブートフロッピーの作成中) には、 フロッピーの内容を RAM ディスクにロードすると便利かもしれない。
メインディスクがアクセス可能になる前に、 (ファイルシステムやハードウェアに関する)
モジュールをいくつかロードしなければならないシステムもあるだろう。
-Linux のバージョン 1.3.48 において、 RAM ディスクの取り扱いが根底から変化した。 それ以前までは、メモリは静的に割り当てられ、
-\&'ramdisk=N' パラメータでそのサイズを指定していた (この値はコンパイル時にカーネルイメージに指定することもできた)。 現在は RAM
-ディスクはバッファキャッシュを使用しており、 動的に拡張される。 新しい RAM ディスクの動作に関する多くの情報が、 カーネルソースファイル
+Linux ã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 1.3.48 ã\81«ã\81\8aã\81\84ã\81¦ã\80\81 RAM ã\83\87ã\82£ã\82¹ã\82¯ã\81®å\8f\96ã\82\8aæ\89±ã\81\84ã\81\8cæ ¹åº\95ã\81\8bã\82\89å¤\89å\8c\96ã\81\97ã\81\9fã\80\82 ã\81\9dã\82\8c以å\89\8dã\81¾ã\81§ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\81¯é\9d\99ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\80\81
+\&'ramdisk=N' ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81§ã\81\9dã\81®ã\82µã\82¤ã\82ºã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\81\84ã\81\9f (ã\81\93ã\81®å\80¤ã\81¯ã\82³ã\83³ã\83\91ã\82¤ã\83«æ\99\82ã\81«ã\82«ã\83¼ã\83\8dã\83«ã\82¤ã\83¡ã\83¼ã\82¸ã\81«æ\8c\87å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\82\82ã\81§ã\81\8dã\81\9f)ã\80\82 ç\8f¾å\9c¨ã\81¯ RAM
+ã\83\87ã\82£ã\82¹ã\82¯ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82ã\83£ã\83\83ã\82·ã\83¥ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\8aã\82\8aã\80\81 å\8b\95ç\9a\84ã\81«æ\8b¡å¼µã\81\95ã\82\8cã\82\8bã\80\82 æ\96°ã\81\97ã\81\84 RAM ã\83\87ã\82£ã\82¹ã\82¯ã\81®å\8b\95ä½\9cã\81«é\96¢ã\81\99ã\82\8bå¤\9aã\81\8fã\81®æ\83\85å ±ã\81\8cã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\82½ã\83¼ã\82¹ã\83\95ã\82¡ã\82¤ã\83«
\fIDocumentation/blockdev/ramdisk.txt\fP (古いカーネルでは
\fIDocumentation/ramdisk.txt\fP) にある。
-4 つのパラメータがある。論理値をとるものが 2 つ、整数値をとるものが 2 つ。
+4 ã\81¤ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8cã\81\82ã\82\8bã\80\82è«\96ç\90\86å\80¤ã\82\92ã\81¨ã\82\8bã\82\82ã\81®ã\81\8c 2 ã\81¤ã\80\81æ\95´æ\95°å\80¤ã\82\92ã\81¨ã\82\8bã\82\82ã\81®ã\81\8c 2 ã\81¤ã\80\82
.TP
\&\fB'load_ramdisk=N'\fP
N=1 なら RAM ディスクをロードする。N=0 ならロードしない (デフォルト)。
.TP
\&\fB'prompt_ramdisk=N'\fP
N=1 ならフロッピー挿入を促すプロンプトを出す (デフォルト)。 N=0 ならプロンプトを出さない。
-(従って、このパラメータを指定する必要はまず無いであろう。)
+(å¾\93ã\81£ã\81¦ã\80\81ã\81\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bå¿\85è¦\81ã\81¯ã\81¾ã\81\9aç\84¡ã\81\84ã\81§ã\81\82ã\82\8dã\81\86ã\80\82)
.TP
\&\fB'ramdisk_size=N'\fP もしくは (古い形式の) \fB'ramdisk=N'\fP
ラムディスクの最大サイズを N kB (キロバイト) にセットする。 省略時は 4096 (4 MB)。
.SS "SCSI デバイス用の起動時引数"
この節における用語:
-\fIiobase\fP \-\- SCSI ホストアダプタが占有する I/O ポートの先頭アドレス。 16 進表記で指定し、通常 0x200 から 0x3ff
+\fIiobase\fP \-\- SCSI ã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81\8cå\8d æ\9c\89ã\81\99ã\82\8b I/O ã\83\9dã\83¼ã\83\88ã\81®å\85\88é ã\82¢ã\83\89ã\83¬ã\82¹ã\80\82 16 é\80²è¡¨è¨\98ã\81§æ\8c\87å®\9aã\81\97ã\80\81é\80\9a常 0x200 ã\81\8bã\82\89 0x3ff
の範囲に位置する。
\fIirq\fP \-\- カードが利用するハードウェア割り込み。有効な値はカードに よって異なるが、通常は 5, 7, 9, 10, 11, 12, 15
である。 これ以外の値は通常、IDE ハードディスク、フロッピー、 シリアルポートといった一般的な周辺機器によって使用される。
-\fIscsi\-id\fP \-\- SCSI バス上のホストアダプタが自分自身を識別するために使用する ID 番号。
-ã\81\93ã\81®å\80¤ã\82\92å¤\89æ\9b´ã\81§ã\81\8dã\82\8bã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\82\82ã\81\94ã\81\8få¸\8cã\81«å\98å\9c¨ã\81\99ã\82\8bã\81\8cã\80\81 ã\81»ã\81¨ã\82\93ã\81©ã\81¯ã\82¢ã\83\80ã\83\97ã\82¿内部で固定されている。 よく使われるデフォルト値は 7
+\fIscsi\-id\fP \-\- SCSI ã\83\90ã\82¹ä¸\8aã\81®ã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81\8cè\87ªå\88\86è\87ªèº«ã\82\92è\98å\88¥ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ä½¿ç\94¨ã\81\99ã\82\8b ID ç\95ªå\8f·ã\80\82
+ã\81\93ã\81®å\80¤ã\82\92å¤\89æ\9b´ã\81§ã\81\8dã\82\8bã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\82\82ã\81\94ã\81\8få¸\8cã\81«å\98å\9c¨ã\81\99ã\82\8bã\81\8cã\80\81 ã\81»ã\81¨ã\82\93ã\81©ã\81¯ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼内部で固定されている。 よく使われるデフォルト値は 7
であるが、Seagate もしくは Future Domain 製の TMC\-950 ボードでは 6 が使われる。
-\fIparity\fP \-\- SCSI ホストアダプタが取り付けられたデバイスとの通信に際して パリティ値を必要とするかどうか。 1
+\fIparity\fP \-\- SCSI ã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81\8cå\8f\96ã\82\8aä»\98ã\81\91ã\82\89ã\82\8cã\81\9fã\83\87ã\83\90ã\82¤ã\82¹ã\81¨ã\81®é\80\9aä¿¡ã\81«é\9a\9bã\81\97ã\81¦ ã\83\91ã\83ªã\83\86ã\82£å\80¤ã\82\92å¿\85è¦\81ã\81¨ã\81\99ã\82\8bã\81\8bã\81©ã\81\86ã\81\8bã\80\82 1
を指定するとパリティチェックが有効になり、 0 でパリティチェックが無効になる。 しかし、すべてのデバイスがこの起動時引数によるパリティの選択を
サポートするわけではない。
.TP
.in
.sp
最初の 2 つの数字は kB 単位で指定する。 \fIbuf_size\fP のデフォルトは 32kB である。上限は 16384kB まで指定できる。
-\fIwrite_threshold\fP はデータ書き出しの閾値で、 バッファのデータのサイズがこの値を越えるとデータはテープに書き出される。
-デフォルト値は 30kB である。 バッファ数の最大値 (\fImax_bufs\fP) は検出されたドライブの数によって変化するが、デフォルトは 2
+\fIwrite_threshold\fP ã\81¯ã\83\87ã\83¼ã\82¿æ\9b¸ã\81\8då\87ºã\81\97ã\81®é\96¾å\80¤ã\81§ã\80\81 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\87ã\83¼ã\82¿ã\81®ã\82µã\82¤ã\82ºã\81\8cã\81\93ã\81®å\80¤ã\82\92è¶\8aã\81\88ã\82\8bã\81¨ã\83\87ã\83¼ã\82¿ã\81¯ã\83\86ã\83¼ã\83\97ã\81«æ\9b¸ã\81\8då\87ºã\81\95ã\82\8cã\82\8bã\80\82
+デフォルト値は 30kB である。 バッファー数の最大値 (\fImax_bufs\fP) は検出されたドライブの数によって変化するが、デフォルトは 2
である。 使用例を以下に示す。
.in +4n
.IP
もしドライバのコンパイル時にデバッグオプションを指定していた場合は、 6 番目の値でデバッグレベルを指定できる。
-すべてのパラメータは、このセクションの最初で説明した通りである。 \fIreconnect\fP に 0
+ã\81\99ã\81¹ã\81¦ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\80\81ã\81\93ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®æ\9c\80å\88\9dã\81§èª¬æ\98\8eã\81\97ã\81\9fé\80\9aã\82\8aã\81§ã\81\82ã\82\8bã\80\82 \fIreconnect\fP ã\81« 0
以外の値を指定すると、デバイスを切断したり接続したりできる。 以下に例を示す。
.in +4n
.fi
.in
.IP
-パラメータは必ず上記の順番どおりに指定されなければならない。 例えば、パリティ (parity) を設定したい場合には、 iobase, irq,
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯å¿\85ã\81\9aä¸\8aè¨\98ã\81®é \86ç\95ªã\81©ã\81\8aã\82\8aã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ä¾\8bã\81\88ã\81°ã\80\81ã\83\91ã\83ªã\83\86ã\82£ (parity) ã\82\92è¨å®\9aã\81\97ã\81\9fã\81\84å ´å\90\88ã\81«ã\81¯ã\80\81 iobase, irq,
scsi\-id, reconnect も同時に指定する必要がある。
.TP
\fBAdaptec aha154x の設定\fP
-aha1542 シリーズのカードは i82077 フロッピーディスクコントローラをボードに搭載している。 一方 aha1540
+aha1542 ã\82·ã\83ªã\83¼ã\82ºã\81®ã\82«ã\83¼ã\83\89ã\81¯ i82077 ã\83\95ã\83ã\83\83ã\83\94ã\83¼ã\83\87ã\82£ã\82¹ã\82¯ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼ã\82\92ã\83\9cã\83¼ã\83\89ã\81«æ\90è¼\89ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ä¸\80æ\96¹ aha1540
シリーズのカードは搭載していない。 これらは共にバスマスタカードであり、 他のデバイスとバスを共有する際に、
-どのくらい「フェアに」振る舞うかを指定するパラメータがある。 起動時引数は以下のようにして指定する。
+ã\81©ã\81®ã\81\8fã\82\89ã\81\84ã\80\8cã\83\95ã\82§ã\82¢ã\81«ã\80\8dæ\8c¯ã\82\8bè\88\9eã\81\86ã\81\8bã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8cã\81\82ã\82\8bã\80\82 èµ·å\8b\95æ\99\82å¼\95æ\95°ã\81¯ä»¥ä¸\8bã\81®ã\82\88ã\81\86ã\81«ã\81\97ã\81¦æ\8c\87å®\9aã\81\99ã\82\8bã\80\82
.in +4n
.nf
.in
.IP
\fIextended\fP 値が 0 以外の時は、大容量ディスク用の拡張変換が有効になる。 \fIno_reset\fP 値を 0
-以外の値にすると、ホストアダプタの検出時に、 ドライバによる SCSI バスの初期化を行わない。
+以å¤\96ã\81®å\80¤ã\81«ã\81\99ã\82\8bã\81¨ã\80\81ã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81®æ¤\9cå\87ºæ\99\82ã\81«ã\80\81 ã\83\89ã\83©ã\82¤ã\83\90ã\81«ã\82\88ã\82\8b SCSI ã\83\90ã\82¹ã\81®å\88\9dæ\9c\9få\8c\96ã\82\92è¡\8cã\82\8fã\81ªã\81\84ã\80\82
.TP
-\fBAdvanSys SCSI ホストアダプタの設定 ('advansys=')\fP
+\fBAdvanSys SCSI ã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81®è¨å®\9a ('advansys=')\fP
AdvanSys ドライバはカードの検出先として 4 つの I/O アドレスを受け付ける。 EISA や PCI
カードではこれらを指定しても全く効果が無い。 ISA 及び VLB カードの検出に対してのみ用いられる。
-さらに、デバッグオプション付きでドライバがコンパイルされている場合、 デバッグ情報の出力レベルとして 0xdeb[0\-f] パラメータを追加できる。
+ã\81\95ã\82\89ã\81«ã\80\81ã\83\87ã\83\90ã\83\83ã\82°ã\82ªã\83\97ã\82·ã\83§ã\83³ä»\98ã\81\8dã\81§ã\83\89ã\83©ã\82¤ã\83\90ã\81\8cã\82³ã\83³ã\83\91ã\82¤ã\83«ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81 ã\83\87ã\83\90ã\83\83ã\82°æ\83\85å ±ã\81®å\87ºå\8a\9bã\83¬ã\83\99ã\83«ã\81¨ã\81\97ã\81¦ 0xdeb[0\-f] ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92追å\8a ã\81§ã\81\8dã\82\8bã\80\82
0\-f によりデバッグメッセージの情報のレベルを 16 段階で指定する。
.TP
\fBAM53C974\fP
.fi
.in
.TP
-\fBBusLogic SCSI ホストアダプタの設定 ('BusLogic=')\fP
+\fBBusLogic SCSI ã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81®è¨å®\9a ('BusLogic=')\fP
構文は以下の通り。
.in +4n
.in
.IP
.\" (lines 3149-3270 in the kernel version I am looking at).
-Buslogic のコマンドラインパラメータに関する詳細な議論はカーネルソースファイル \fIdrivers/scsi/BusLogic.c\fP
+Buslogic ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81«é\96¢ã\81\99ã\82\8b詳細ã\81ªè°è«\96ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\82½ã\83¼ã\82¹ã\83\95ã\82¡ã\82¤ã\83« \fIdrivers/scsi/BusLogic.c\fP
を参照すること。 以下はこれを非常におおざっぱに要約したものである。
-パラメータ N1 から N5 までは整数である。 パラメータ S1 以降は文字列である。 N1 はホストアダプタが存在する I/O アドレス。 N2
-はタグキューイングをサポートするデバイスに対して使用するキューの深さ。 N3 はバス安定時間 (BST) を秒単位で指定する。
-これはホストアダプタのハードリセットにより SCSI バスをリセットしてから SCSI コマンドの発行を開始するまでの待ち時間である。 N4
-はローカルオプション (ひとつのホストアダプタ用)。 N5 はグローバルオプション (すべてのホストアダプタ用)。
+パラメーター N1 から N5 までは整数である。 パラメーター S1 以降は文字列である。 N1 はホストアダプターが存在する I/O アドレス。
+N2 はタグキューイングをサポートするデバイスに対して使用するキューの深さ。 N3 はバス安定時間 (BST) を秒単位で指定する。
+ã\81\93ã\82\8cã\81¯ã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81®ã\83\8fã\83¼ã\83\89ã\83ªã\82»ã\83\83ã\83\88ã\81«ã\82\88ã\82\8a SCSI ã\83\90ã\82¹ã\82\92ã\83ªã\82»ã\83\83ã\83\88ã\81\97ã\81¦ã\81\8bã\82\89 SCSI ã\82³ã\83\9eã\83³ã\83\89ã\81®ç\99ºè¡\8cã\82\92é\96\8bå§\8bã\81\99ã\82\8bã\81¾ã\81§ã\81®å¾\85ã\81¡æ\99\82é\96\93ã\81§ã\81\82ã\82\8bã\80\82 N4
+はローカルオプション (ひとつのホストアダプター用)。 N5 はグローバルオプション (すべてのホストアダプター用)。
文字列オプションは以下の動作を制御する: タグキューイング (TQ:Default, TQ:Enable, TQ:Disable,
TQ:<Per\-Target\-Spec>)、 エラー復帰 (ER:Default, ER:HardReset,
-ER:BusDeviceReset, ER:None, ER:<Per\-Target\-Spec>)、 ホストアダプタの検出
+ER:BusDeviceReset, ER:None, ER:<Per\-Target\-Spec>)ã\80\81 ã\83\9bã\82¹ã\83\88ã\82¢ã\83\80ã\83\97ã\82¿ã\83¼ã\81®æ¤\9cå\87º
(NoProbe, NoProbeISA, NoSortPCI)。
.TP
\fBEATA/DMA の設定\fP
.fi
.in
.TP
-\fBGreat Valley Products (GVP) SCSI コントローラの設定\fP
+\fBGreat Valley Products (GVP) SCSI ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼ã\81®è¨å®\9a\fP
構文は以下の通り。
.in +4n
.fi
.in
.IP
-\fImem_base\fP にはカードが使用するメモリマップ I/O の領域を指定する。
+\fImem_base\fP ã\81«ã\81¯ã\82«ã\83¼ã\83\89ã\81\8c使ç\94¨ã\81\99ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\97 I/O ã\81®é \98å\9f\9fã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82
通常は次の値のどれかである: 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000。
.TP
\fBIN2000 の設定\fP
.IP
S はコンマ区切りの文字列で、各項目は keyword[:value] 形式で指定する。 指定できるキーワードは以下の通り。 ioport:addr,
noreset, nosync:x, period:ns, disconnect:x, debug:x, proc:x。
-これらのパラメータの機能についてはカーネルソースファイル \fIdrivers/scsi/in2000.c\fP を参照。
+ã\81\93ã\82\8cã\82\89ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®æ©\9fè\83½ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\82½ã\83¼ã\82¹ã\83\95ã\82¡ã\82¤ã\83« \fIdrivers/scsi/in2000.c\fP ã\82\92å\8f\82ç\85§ã\80\82
.TP
\fBNCR5380 および NCR53C400 の設定\fP
この起動時引数は以下の書式で指定する。
.fi
.in
.IP
-\fImem_base\fP にはカードが使用するメモリマップ I/O の領域を指定する。
+\fImem_base\fP ã\81«ã\81¯ã\82«ã\83¼ã\83\89ã\81\8c使ç\94¨ã\81\99ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\97 I/O ã\81®é \98å\9f\9fã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82
通常は次の値のどれかである: 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000。
.TP
\fBTrantor 製 T128 の設定\fP
.fi
.in
.TP
-\fBCommodore Amiga 製 A2091/590 SCSI コントローラの設定\fP
+\fBCommodore Amiga 製 A2091/590 SCSI ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼ã\81®è¨å®\9a\fP
構文は以下の通り。
.in +4n
詳細はカーネルソースファイル \fIdrivers/scsi/wd33c93.c\fP を参照。
.SS ハードディスク
.TP
-\fBIDE Disk/CD\-ROM ドライバのパラメータ\fP
-IDE ã\83\89ã\83©ã\82¤ã\83\90ã\81¯ã\80\81 ã\83\87ã\82£ã\82¹ã\82¯ã\81®ã\82¸ã\82ªã\83¡ã\83\88ã\83ªæ\8c\87å®\9aã\81\8bã\82\89ã\83\90ã\82°ã\81®ã\81\82ã\82\8bã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83\81ã\83\83ã\83\97ã\81®ã\82µã\83\9dã\83¼ã\83\88ã\81¾ã\81§ã\80\81 æ\95°å¤\9aã\81\8fã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\82\92å\8f\97ã\81\91ä»\98ã\81\91ã\82\8bã\80\82 ã\83\89ã\83©ã\82¤ã\83\96ã\82\92ç\89¹å®\9aã\81\99ã\82\8bã\81«ã\81¯
-\&'hdX=' を使う。 ここで X には 'a' から 'h' の文字を指定する。
+\fBIDE Disk/CD\-ROM ドライバのパラメーター\fP
+IDE ã\83\89ã\83©ã\82¤ã\83\90ã\81¯ã\80\81 ã\83\87ã\82£ã\82¹ã\82¯ã\81®ã\82¸ã\82ªã\83¡ã\83\88ã\83ªæ\8c\87å®\9aã\81\8bã\82\89ã\83\90ã\82°ã\81®ã\81\82ã\82\8bã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼ã\83\81ã\83\83ã\83\97ã\81®ã\82µã\83\9dã\83¼ã\83\88ã\81¾ã\81§ã\80\81 æ\95°å¤\9aã\81\8fã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92å\8f\97ã\81\91ä»\98ã\81\91ã\82\8bã\80\82
+ドライブを特定するには 'hdX=' を使う。 ここで X には 'a' から 'h' の文字を指定する。
あるドライブに特有なものではないオプションは、hd= を前に付けて指定する。 ドライブ特有でないオプションに対してドライブ指定 ('hdX=')
を前置しても問題はない。 そのオプションは期待通りそのドライブに適用される。
これらのオプションはディスクの物理的なジオメトリを指定するために使う。 最初の 3 つの値以降は省略できる。 シリンダ (cyls)、ヘッド
(heads)、セクタ (sects) の各値は fdisk で用いられるものと同じである。 書き込み補正 (wpcom) 値は IDE
ディスクでは無視される。 IRQ 値には、そのドライブが接続されているインターフェースが用いる IRQ を指定する
-(本来の意味では「ドライブに特有」のパラメータではない)。
+(æ\9c¬æ\9d¥ã\81®æ\84\8få\91³ã\81§ã\81¯ã\80\8cã\83\89ã\83©ã\82¤ã\83\96ã\81«ç\89¹æ\9c\89ã\80\8dã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84)ã\80\82
.TP
\&\fB'hd=serialize' オプション\fP
デュアル IDE インターフェースである CMD\-640 チップには設計上の問題があって、 セカンダリインターフェース上のドライブと
type に同じ指定が与えられているが、 それらは等価である。
xd_setup() 関数は引数をチェックせず、 4 つの値がすべて指定されることを想定している。 引数を省略してはならない。 例として、BIOS
-ã\81\8cç\84¡å\8a¹ã\81«ã\81\95ã\82\8cã\81\9f (ã\81\82ã\82\8bã\81\84ã\81¯å\89\8aé\99¤ã\81\95ã\82\8cã\81\9f) WD1002 ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\81®å ´å\90\88ã\82\92示ã\81\99 (ã\83\91ã\83©ã\83¡ã\83¼ã\82¿には XT
-コントローラの「デフォルト」の値を使っている)。
+ã\81\8cç\84¡å\8a¹ã\81«ã\81\95ã\82\8cã\81\9f (ã\81\82ã\82\8bã\81\84ã\81¯å\89\8aé\99¤ã\81\95ã\82\8cã\81\9f) WD1002 ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼ã\81®å ´å\90\88ã\82\92示ã\81\99 (ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼には XT
+ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼ã\81®ã\80\8cã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\80\8dã\81®å\80¤ã\82\92使ã\81£ã\81¦ã\81\84ã\82\8b)ã\80\82
.in +4n
.nf
.IP
ここで 'port' はベースアドレス、'pro' はプロトコル番号、'uni' はユニットセレクタ (チェインデバイス用)、'mod' はモード
(あるいは自動的に最適のものを選ばせるには \-1)、'slv' はスレーブにしたい場合に 1、'dly'
-はポートアクセスを遅くしたい場合に小さな整数を与える。'nice' パラメータは、 ドライバのアイドル CPU 時間の使い方を制御する。
+ã\81¯ã\83\9dã\83¼ã\83\88ã\82¢ã\82¯ã\82»ã\82¹ã\82\92é\81\85ã\81\8fã\81\97ã\81\9fã\81\84å ´å\90\88ã\81«å°\8fã\81\95ã\81ªæ\95´æ\95°ã\82\92ä¸\8eã\81\88ã\82\8bã\80\82'nice' ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\80\81 ã\83\89ã\83©ã\82¤ã\83\90ã\81®ã\82¢ã\82¤ã\83\89ã\83« CPU æ\99\82é\96\93ã\81®ä½¿ã\81\84æ\96¹ã\82\92å\88¶å¾¡ã\81\99ã\82\8bã\80\82
ただし速度はある程度低下する。
.TP
\fBSony 製 CDU\-31A と CDU\-33A のインターフェース\fP
type 値には 'SoundBlaster', 'LaserMate', 'SPEA' のうちひとつを指定できる (大文字小文字が区別される)。
iobase は CD\-ROM インターフェースの値である。 カードのサウンド部の値と間違えないこと。
.SS イーサネットデバイス
-ドライバが異なると用いるパラメータも異なるが、 すべてのドライバは、少なくとも割り込み番号 (irq)、 I/O ポートのベースアドレス
+ã\83\89ã\83©ã\82¤ã\83\90ã\81\8cç\95°ã\81ªã\82\8bã\81¨ç\94¨ã\81\84ã\82\8bã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\82ç\95°ã\81ªã\82\8bã\81\8cã\80\81 ã\81\99ã\81¹ã\81¦ã\81®ã\83\89ã\83©ã\82¤ã\83\90ã\81¯ã\80\81å°\91ã\81ªã\81\8fã\81¨ã\82\82å\89²ã\82\8aè¾¼ã\81¿ç\95ªå\8f· (irq)ã\80\81 I/O ã\83\9dã\83¼ã\83\88ã\81®ã\83\99ã\83¼ã\82¹ã\82¢ã\83\89ã\83¬ã\82¹
(iobase)、名前 (name) を持つ。 最も一般的な形式は以下の通り。
.in +4n
.in
最初の数字でない値は名前として使用される。 param_n の値はカード (ドライバ) ごとに異なる意味を持つ。
-よくある目的は、共有メモリアドレスの指定、インターフェースの選択、 DMA チャネルなどである。
+ã\82\88ã\81\8fã\81\82ã\82\8bç\9b®ç\9a\84ã\81¯ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\81®æ\8c\87å®\9aã\80\81ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®é\81¸æ\8a\9eã\80\81 DMA ã\83\81ã\83£ã\83\8dã\83«ã\81ªã\81©ã\81§ã\81\82ã\82\8bã\80\82
-このパラメータの最もよくある利用法は、 2 番目の Ethernet カードを強制的に検出させる場合である (デフォルトでは 1 枚しか検出しない)。
+ã\81\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®æ\9c\80ã\82\82ã\82\88ã\81\8fã\81\82ã\82\8bå\88©ç\94¨æ³\95ã\81¯ã\80\81 2 ç\95ªç\9b®ã\81® Ethernet ã\82«ã\83¼ã\83\89ã\82\92å¼·å\88¶ç\9a\84ã\81«æ¤\9cå\87ºã\81\95ã\81\9bã\82\8bå ´å\90\88ã\81§ã\81\82ã\82\8b (ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ 1 æ\9e\9aã\81\97ã\81\8bæ¤\9cå\87ºã\81\97ã\81ªã\81\84)ã\80\82
これは簡単で、次のようにすればよい。
.in +4n
以下の情報はこのファイルからとったものである。
.TP
\fBfloppy=mask,allowed_drive_mask\fP
-使ってよいドライブにかけるビットマスクを設定する。 デフォルトでは、 ユニット 0 と 1 のフロッピーコントローラだけが許可されている。
+使ã\81£ã\81¦ã\82\88ã\81\84ã\83\89ã\83©ã\82¤ã\83\96ã\81«ã\81\8bã\81\91ã\82\8bã\83\93ã\83\83ã\83\88ã\83\9eã\82¹ã\82¯ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\80\81 ã\83¦ã\83\8bã\83\83ã\83\88 0 ã\81¨ 1 ã\81®ã\83\95ã\83ã\83\83ã\83\94ã\83¼ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼ã\81 ã\81\91ã\81\8c許å\8f¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
これは、標準でないハードウェア (例えば ASUS の PCIマザーボードなど) でユニット 2 や 3 にアクセスすると、
キーボードがおかしくなってしまうからである。 cmos オプション (後述) の導入によって、 このオプションはあまり使われなくなった。
.TP
\fBfloppy=all_drives\fP
-許可するドライブを示すビットマスクを、「すべてのドライブ」にする。 1 つのフロッピーコントローラに 2 台以上のドライブを接続する場合に用いる。
+許å\8f¯ã\81\99ã\82\8bã\83\89ã\83©ã\82¤ã\83\96ã\82\92示ã\81\99ã\83\93ã\83\83ã\83\88ã\83\9eã\82¹ã\82¯ã\82\92ã\80\81ã\80\8cã\81\99ã\81¹ã\81¦ã\81®ã\83\89ã\83©ã\82¤ã\83\96ã\80\8dã\81«ã\81\99ã\82\8bã\80\82 1 ã\81¤ã\81®ã\83\95ã\83ã\83\83ã\83\94ã\83¼ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼ã\81« 2 å\8f°ä»¥ä¸\8aã\81®ã\83\89ã\83©ã\82¤ã\83\96ã\82\92æ\8e¥ç¶\9aã\81\99ã\82\8bå ´å\90\88ã\81«ç\94¨ã\81\84ã\82\8bã\80\82
.TP
\fBfloppy=asus_pci\fP
ユニット 0 と 1 のみを許可するようビットマスクを設定する。 (デフォルト)。
.TP
\fBfloppy=daring\fP
-正しく振る舞うフロッピーコントローラを使っていることをドライバに伝える。 このオプションを使うと動作はより効率的かつスムースになるが、
-コントローラによっては動作に失敗することがある。 これを指定するとある種の動作が高速になる。
+æ£ã\81\97ã\81\8fæ\8c¯ã\82\8bè\88\9eã\81\86ã\83\95ã\83ã\83\83ã\83\94ã\83¼ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼ã\82\92使ã\81£ã\81¦ã\81\84ã\82\8bã\81\93ã\81¨ã\82\92ã\83\89ã\83©ã\82¤ã\83\90ã\81«ä¼\9dã\81\88ã\82\8bã\80\82 ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92使ã\81\86ã\81¨å\8b\95ä½\9cã\81¯ã\82\88ã\82\8aå\8a¹ç\8e\87ç\9a\84ã\81\8bã\81¤ã\82¹ã\83 ã\83¼ã\82¹ã\81«ã\81ªã\82\8bã\81\8cã\80\81
+ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼ã\81«ã\82\88ã\81£ã\81¦ã\81¯å\8b\95ä½\9cã\81«å¤±æ\95\97ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81¨ã\81\82ã\82\8b種ã\81®å\8b\95ä½\9cã\81\8cé«\98é\80\9fã\81«ã\81ªã\82\8bã\80\82
.TP
\fBfloppy=0,daring\fP
-注意して扱わなければならない フロッピーコントローラであることをドライバに伝える。
+注æ\84\8fã\81\97ã\81¦æ\89±ã\82\8fã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84 ã\83\95ã\83ã\83\83ã\83\94ã\83¼ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92ã\83\89ã\83©ã\82¤ã\83\90ã\81«ä¼\9dã\81\88ã\82\8bã\80\82
.TP
\fBfloppy=one_fdc\fP
-フロッピーコントローラがひとつしかないことをドライバに伝える (デフォルト)。
+ã\83\95ã\83ã\83\83ã\83\94ã\83¼ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼ã\81\8cã\81²ã\81¨ã\81¤ã\81\97ã\81\8bã\81ªã\81\84ã\81\93ã\81¨ã\82\92ã\83\89ã\83©ã\82¤ã\83\90ã\81«ä¼\9dã\81\88ã\82\8b (ã\83\87ã\83\95ã\82©ã\83«ã\83\88)ã\80\82
.TP
\fBfloppy=two_fdc\fP または \fBfloppy=address,two_fdc\fP
-ã\83\95ã\83ã\83\83ã\83\94ã\83¼ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\81\8cã\81µã\81\9fã\81¤ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92ã\83\89ã\83©ã\82¤ã\83\90ã\81«ä¼\9dã\81\88ã\82\8bã\80\82 2 ç\95ªç\9b®ã\81®ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\81® I/O ã\82¢ã\83\89ã\83¬ã\82¹ã\81¯ address ã\81§æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 address
-が指定されない場合は 0x370 が使われる。
+ã\83\95ã\83ã\83\83ã\83\94ã\83¼ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼ã\81\8cã\81µã\81\9fã\81¤ã\81\82ã\82\8bã\81\93ã\81¨ã\82\92ã\83\89ã\83©ã\82¤ã\83\90ã\81«ä¼\9dã\81\88ã\82\8bã\80\82 2 ç\95ªç\9b®ã\81®ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83©ã\83¼ã\81® I/O ã\82¢ã\83\89ã\83¬ã\82¹ã\81¯ address ã\81§æ\8c\87å®\9aã\81\99ã\82\8bã\80\82
+address が指定されない場合は 0x370 が使われる。
.TP
\fBfloppy=thinkpad\fP
Thinkpad を使っていることをフロッピードライバに伝える。
.fi
.in
.IP
-membaseN は N 番目のカードの共有メモリのベースアドレスであり、 irqN は N 番目のカードの割り込み設定である。 無指定時には IRQ
+membaseN ã\81¯ N ç\95ªç\9b®ã\81®ã\82«ã\83¼ã\83\89ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83\99ã\83¼ã\82¹ã\82¢ã\83\89ã\83¬ã\82¹ã\81§ã\81\82ã\82\8aã\80\81 irqN ã\81¯ N ç\95ªç\9b®ã\81®ã\82«ã\83¼ã\83\89ã\81®å\89²ã\82\8aè¾¼ã\81¿è¨å®\9aã\81§ã\81\82ã\82\8bã\80\82 ç\84¡æ\8c\87å®\9aæ\99\82ã\81«ã\81¯ IRQ
= 5, membase = 0xD0000 となる。
.TP
\fBTeles ISDN ドライバ\fP
.fi
.in
.IP
-iobase はカードの I/O ポートアドレス、 membase はカードの共有メモリのベースアドレス、 そして irq
+iobase ã\81¯ã\82«ã\83¼ã\83\89ã\81® I/O ã\83\9dã\83¼ã\83\88ã\82¢ã\83\89ã\83¬ã\82¹ã\80\81 membase ã\81¯ã\82«ã\83¼ã\83\89ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®ã\83\99ã\83¼ã\82¹ã\82¢ã\83\89ã\83¬ã\82¹ã\80\81 ã\81\9dã\81\97ã\81¦ irq
はカードが使用する割り込みチャネルである。 teles_id はアスキー文字列による識別文字列である (他と重ならないようにする)。
.SS シリアルポートドライバ
.TP
詳細はカーネルソースファイル \fIDocumentation/riscom8.txt\fP を参照のこと。
.TP
\fBDigiBoard ドライバ ('digi=')\fP
-このオプションを使う場合は、6 個のパラメータをきっちり指定しなければならない。
+ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92使ã\81\86å ´å\90\88ã\81¯ã\80\816 å\80\8bã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ã\81\8dã\81£ã\81¡ã\82\8aæ\8c\87å®\9aã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
構文は以下の通り。
.in +4n
.fi
.in
.IP
-パラメータは整数値か文字列で与える。 文字列で指定する場合は、 iobase と membase は 16 進値でなければならない。
-整数値で指定する場合はパラメータの個数は少なくても良く、順に: status このカードの動作を指定する (Enable(1) または
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯æ\95´æ\95°å\80¤ã\81\8bæ\96\87å\97å\88\97ã\81§ä¸\8eã\81\88ã\82\8bã\80\82 æ\96\87å\97å\88\97ã\81§æ\8c\87å®\9aã\81\99ã\82\8bå ´å\90\88ã\81¯ã\80\81 iobase ã\81¨ membase ã\81¯ 16 é\80²å\80¤ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
+æ\95´æ\95°å\80¤ã\81§æ\8c\87å®\9aã\81\99ã\82\8bå ´å\90\88ã\81¯ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®å\80\8bæ\95°ã\81¯å°\91ã\81ªã\81\8fã\81¦ã\82\82è\89¯ã\81\8fã\80\81é \86ã\81«: status ã\81\93ã\81®ã\82«ã\83¼ã\83\89ã\81®å\8b\95ä½\9cã\82\92æ\8c\87å®\9aã\81\99ã\82\8b (Enable(1) ã\81¾ã\81\9fã\81¯
Disable(0)), type カードのタイプ (PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)),
altpin ピン配置を反転させる (Enable(1) or Disable(0)), numports カードのポート番号, iobase
-このカードの I/O ポート (文字列指定の場合は 16 進表記), membase メモリウィンドウのベースアドレス (文字列指定の場合は 16
+ã\81\93ã\81®ã\82«ã\83¼ã\83\89ã\81® I/O ã\83\9dã\83¼ã\83\88 (æ\96\87å\97å\88\97æ\8c\87å®\9aã\81®å ´å\90\88ã\81¯ 16 é\80²è¡¨è¨\98), membase ã\83¡ã\83¢ã\83ªã\83¼ã\82¦ã\82£ã\83³ã\83\89ã\82¦ã\81®ã\83\99ã\83¼ã\82¹ã\82¢ã\83\89ã\83¬ã\82¹ (æ\96\87å\97å\88\97æ\8c\87å®\9aã\81®å ´å\90\88ã\81¯ 16
進表記)。 したがって以下のふたつの起動時引数は同じ意味を持つ。
.in +4n
.fi
.in
.IP
-ã\81¡ã\82\87ã\81\86ã\81© 3 ã\81¤ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\82\92ä¸\8eã\81\88ã\82\8bã\80\82 è¤\87æ\95°ã\81®ã\82«ã\83¼ã\83\89ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\81¯ã\80\81'baycom=' ã\82³ã\83\9eã\83³ã\83\89ã\82\82è¤\87æ\95°è¨\98è¿°ã\81\99ã\82\8bã\80\82 modem ã\83\91ã\83©ã\83¡ã\83¼ã\82¿は文字列で、
+ã\81¡ã\82\87ã\81\86ã\81© 3 ã\81¤ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ä¸\8eã\81\88ã\82\8bã\80\82 è¤\87æ\95°ã\81®ã\82«ã\83¼ã\83\89ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\81¯ã\80\81'baycom=' ã\82³ã\83\9eã\83³ã\83\89ã\82\82è¤\87æ\95°è¨\98è¿°ã\81\99ã\82\8bã\80\82 modem ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼は文字列で、
ser12, ser12*, par96, par96* の中からひとつを選ぶ。 * をつけるとソフトウェア DCD を使用する。 モデムの種類に応じて
ser12 か par96 かを選択する。 詳細は Linux カーネルソース内の
\fIDocumentation/networking/baycom.txt\fP (古いカーネルの場合は
.fi
.in
.IP
-æ\9c\80å¾\8cã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\82\92é\99¤ã\81\8fã\81\99ã\81¹ã\81¦ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿は整数である。 ダミーの 0 があるのは、設定プログラムのバグのせいである。 mode
-パラメータは文字列で、hw:modem という書式で指定する。 hw は sbc, wss, wssfdx のうちひとつ、 modem は
+æ\9c\80å¾\8cã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92é\99¤ã\81\8fã\81\99ã\81¹ã\81¦ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼は整数である。 ダミーの 0 があるのは、設定プログラムのバグのせいである。 mode
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯æ\96\87å\97å\88\97ã\81§ã\80\81hw:modem ã\81¨ã\81\84ã\81\86æ\9b¸å¼\8fã\81§æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 hw ã\81¯ sbc, wss, wssfdx ã\81®ã\81\86ã\81¡ã\81²ã\81¨ã\81¤ã\80\81 modem ã\81¯
afsk1200, fsk9600 のどちらかを選択して記述する。
.SS ラインプリンタドライバ
.TP
.SS マウスドライバ
.TP
\&\fB'bmouse=irq'\fP
-バスマウスドライバはパラメータをひとつだけとり、 ハードウェア IRQ を指定できる。
+ã\83\90ã\82¹ã\83\9eã\82¦ã\82¹ã\83\89ã\83©ã\82¤ã\83\90ã\81¯ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ã\81²ã\81¨ã\81¤ã\81 ã\81\91ã\81¨ã\82\8aã\80\81 ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ IRQ ã\82\92æ\8c\87å®\9aã\81§ã\81\8dã\82\8bã\80\82
.TP
\&\fB'msmouse=irq'\fP
msmouse ドライバでもこの事情はまったく同じである。
.fi
.in
.IP
-ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81\8cã\81²ã\81¨ã\81¤ã\81 ã\81\91ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81 x\-threshold ã\81¨ y\-threshold ã\82\92両æ\96¹ã\81«ç\94¨ã\81\84ã\82\89ã\82\8cã\82\8bã\80\82 ã\81µã\81\9fã\81¤ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9få ´å\90\88ã\81¯ã\80\81æ\9c\80å\88\9dã\81®å\80¤ã\81\8c
-x\-threshold として用いられ、 2 番目の値が y\-threshold として用いられる。 値は 1 から 20 までの数値で指定する。
-デフォルトは 2。
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8cã\81²ã\81¨ã\81¤ã\81 ã\81\91ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81 x\-threshold ã\81¨ y\-threshold ã\82\92両æ\96¹ã\81«ç\94¨ã\81\84ã\82\89ã\82\8cã\82\8bã\80\82
+ふたつ与えられた場合は、最初の値が x\-threshold として用いられ、 2 番目の値が y\-threshold として用いられる。 値は 1 から
+20 までの数値で指定する。 デフォルトは 2。
.SS ビデオ機器
.TP
\&\fB'no\-scroll'\fP
.\" .SH AUTHORS
.\" Linus Torvalds (and many others)
このオプションは、コンソールドライバに、 ハードウェアスクロールを用いないよう伝える (ここで言うハードウェアスクロールとは、
-ビデオメモリ上のデータを移動させることによって スクリーン表示領域をスクロールさせることを指す)。 特定の点字マシンではこの指定が必要となる。
+ビデオメモリー上のデータを移動させることによって スクリーン表示領域をスクロールさせることを指す)。 特定の点字マシンではこの指定が必要となる。
.SH 関連項目
\fBklogd\fP(8), \fBmount\fP(8)
.SH 名前
capabilities \- Linux のケーパビリティ (capability) の概要
.SH 説明
-権é\99\90ã\81®ã\83\81ã\82§ã\83\83ã\82¯ã\82\92è¡\8cã\81\86観ç\82¹ã\81\8bã\82\89è¦\8bã\82\8bã\81¨ã\80\81ä¼\9dçµ±ç\9a\84ã\81ª UNIX ã\81®å®\9fè£\85ã\81§ã\81¯ ã\83\97ã\83ã\82»ã\82¹ã\81¯äº\8cã\81¤ã\81®ã\82«ã\83\86ã\82´ã\83ªã\81«å\88\86é¡\9eã\81§ã\81\8dã\82\8b: \fIç\89¹æ¨©\fP ã\83\97ã\83ã\82»ã\82¹ (å®\9få\8a¹ã\83¦ã\83¼ã\82¶ID ã\81\8c
-0 のプロセス。ユーザID 0 は スーパーユーザや root と呼ばれる) と \fI非特権\fP プロセス (実効ユーザID が 0 以外のプロセス)
-である。 非特権プロセスでは、プロセスの資格情報 (通常は、実効UID 、実効GID と追加のグループリスト) に基づく権限チェックが行われるのに対し、
-特権プロセスでは全てのカーネルの権限チェックがバイパスされる。
+権é\99\90ã\81®ã\83\81ã\82§ã\83\83ã\82¯ã\82\92è¡\8cã\81\86観ç\82¹ã\81\8bã\82\89è¦\8bã\82\8bã\81¨ã\80\81ä¼\9dçµ±ç\9a\84ã\81ª UNIX ã\81®å®\9fè£\85ã\81§ã\81¯ ã\83\97ã\83ã\82»ã\82¹ã\81¯äº\8cã\81¤ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«å\88\86é¡\9eã\81§ã\81\8dã\82\8b: \fIç\89¹æ¨©\fP ã\83\97ã\83ã\82»ã\82¹ (å®\9få\8a¹ã\83¦ã\83¼ã\82¶ã\83¼ID
+が 0 のプロセス。ユーザーID 0 は スーパーユーザーや root と呼ばれる) と \fI非特権\fP プロセス (実効ユーザーID が 0
+以外のプロセス) である。 非特権プロセスでは、プロセスの資格情報 (通常は、実効UID 、実効GID と追加のグループリスト)
+に基づく権限チェックが行われるのに対し、 特権プロセスでは全てのカーネルの権限チェックがバイパスされる。
.\"
-バージョン 2.2 以降の Linux では、 これまでスーパーユーザに結び付けられてきた権限を、 いくつかのグループに分割している。これらのグループは
-\fIケーパビリティ\fP(capability) と呼ばれ、グループ毎に独立に有効、無効を設定できる。 ケーパビリティはスレッド単位の属性である。
+バージョン 2.2 以降の Linux では、 これまでスーパーユーザーに結び付けられてきた権限を、
+いくつかのグループに分割している。これらのグループは \fIケーパビリティ\fP(capability)
+と呼ばれ、グループ毎に独立に有効、無効を設定できる。 ケーパビリティはスレッド単位の属性である。
.SS ケーパビリティのリスト
以下のリストは、 Linux で実装されているケーパビリティと 各ケーパビリティが許可する操作と動作をまとめたものである。
.TP
\fBget_robust_list\fP(2) を任意のプロセスに対して行う。
.IP *
\fBprocess_vm_readv\fP(2) と \fBprocess_vm_writev\fP(2)
-を使って任意のプロセスのメモリとの間でデータの送受信を行う。
+ã\82\92使ã\81£ã\81¦ä»»æ\84\8fã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81¨ã\81®é\96\93ã\81§ã\83\87ã\83¼ã\82¿ã\81®é\80\81å\8f\97ä¿¡ã\82\92è¡\8cã\81\86ã\80\82
.IP *
\fBkcmp\fP(2) を使ってプロセス内部を調査する。
.RE
.IP *
\fBFIBMAP\fP \fBioctl\fP(2) 操作を使用する。
.IP *
-x86 モデルに固有のレジスタ (MSR レジスタ群、 \fBmsr\fP(4) 参照) にアクセスするためのデバイスをオープンする。
+x86 モデルに固有のレジスター (MSR レジスター群、 \fBmsr\fP(4) 参照) にアクセスするためのデバイスをオープンする。
.IP *
\fI/proc/sys/vm/mmap_min_addr\fP を更新する。
.IP *
-\fI/proc/sys/vm/mmap_min_addr\fP で指定された値よりも小さなアドレスにメモリマッピングを作成する。
+\fI/proc/sys/vm/mmap_min_addr\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\80¤ã\82\88ã\82\8aã\82\82å°\8fã\81\95ã\81ªã\82¢ã\83\89ã\83¬ã\82¹ã\81«ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82
.IP *
\fI/proc/bus/pci\fP にあるファイルをマップする。
.IP *
.SS ケーパビリティと、ルートによるプログラムの実行
\fBexecve\fP(2) 時に、ケーパビリティセットを使って、全ての権限を持った \fIroot\fP を実現するには、以下のようにする。
.IP 1. 3
-set\-user\-ID\-root プログラムが実行される場合、 またはプロセスの実ユーザ ID が 0 (root) の場合、
+set\-user\-ID\-root プログラムが実行される場合、 またはプロセスの実ユーザー ID が 0 (root) の場合、
ファイルの継承可能セットと許可セットを全て 1 (全てのケーパビリティが有効) に定義する。
.IP 2.
set\-user\-ID\-root プログラムが実行される場合、 ファイルの実効ケーパビリティビットを 1 (enabled) に定義する。
する場合、または実効 UID が 0 のプロセスがプログラムを \fBexecve\fP(2) する場合、許可と実効のケーパビリティセットの全ケーパビリティ
(正確には、ケーパビリティバウンディングセットによるマスクで除外されるもの 以外の全てのケーパビリティ) を取得するということである。
これにより、伝統的な UNIX システムと同じ振る舞いができるようになっている。
-.SS ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88
-ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88 (capability bounding set) ã\81¯ã\80\81 \fBexecve\fP(2)
+.SS ケーパビリティバウンディングセット
+ケーパビリティバウンディングセット (capability bounding set) は、 \fBexecve\fP(2)
時に獲得できるケーパビリティを制限するために使われる セキュリティ機構である。 バウンディングセットは以下のように使用される。
.IP * 2
-\fBexecve\fP(2) å®\9fè¡\8cæ\99\82ã\81«ã\80\81ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88ã\81¨ ã\83\95ã\82¡ã\82¤ã\83«ã\81®è¨±å\8f¯ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\82»ã\83\83ã\83\88ã\81®è«\96ç\90\86å\92\8c (AND) ã\82\92å\8f\96ã\81£ã\81\9fã\82\82ã\81®ã\81\8cã\80\81
-ã\81\9dã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81®è¨±å\8f¯ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\82»ã\83\83ã\83\88ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\82\8bã\80\82 ã\81¤ã\81¾ã\82\8aã\80\81ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88ã\81¯ã\80\81
+\fBexecve\fP(2) 実行時に、ケーパビリティバウンディングセットと ファイルの許可ケーパビリティセットの論理和 (AND) を取ったものが、
+そのスレッドの許可ケーパビリティセットに割り当てられる。 つまり、ケーパビリティバウンディングセットは、
実行ファイルが認めている許可ケーパビリティに対して 制限を課す働きをする。
.IP *
-(Linux 2.6.25 以é\99\8d) ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88ã\81¯ã\80\81ã\82¹ã\83¬ã\83\83ã\83\89ã\81\8c \fBcapset\fP(2)
+(Linux 2.6.25 以降) ケーパビリティバウンディングセットは、スレッドが \fBcapset\fP(2)
により自身の継承可能セットに追加可能なケーパビリティの母集団を 制限する役割を持つ。
スレッドに許可されたケーパビリティであっても、バウンディングセットに 含まれていなければ、スレッドはそのケーパビリティは自身の継承可能セットに
追加できず、その結果、継承可能セットにそのケーパビリティを含むファイルを \fBexecve\fP(2)
あるスレッドの継承可能セットにそのスレッドのバウンディングセットに 存在しないケーパビリティが含まれている場合、そのスレッドは、
継承可能セットに含まれるケーパビリティを持つファイルを実行することにより、 許可セットに含まれるケーパビリティも獲得できるということである。
.PP
-ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81«ã\82\88ã\82\8aã\80\81ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88ã\81¯ ã\82·ã\82¹ã\83\86ã\83 å\85±é\80\9aã\81®å±\9eæ\80§ã\81®å ´å\90\88ã\81¨ã\80\81ã\83\97ã\83ã\82»ã\82¹å\8d\98ä½\8dã\81®å±\9eæ\80§ã\81®å ´å\90\88ã\81\8cã\81\82ã\82\8bã\80\82
+カーネルのバージョンにより、ケーパビリティバウンディングセットは システム共通の属性の場合と、プロセス単位の属性の場合がある。
.PP
-\fBLinux 2.6.25 ã\82\88ã\82\8aå\89\8dã\81®ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88\fP
+\fBLinux 2.6.25 より前のケーパビリティバウンディングセット\fP
.PP
-2.6.25 ã\82\88ã\82\8aå\89\8dã\81®ã\82«ã\83¼ã\83\8dã\83«ã\81§ã\81¯ã\80\81ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88ã\81¯ ã\82·ã\82¹ã\83\86ã\83 å\85±é\80\9aã\81®å±\9eæ\80§ã\81§ã\80\81ã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81®å\85¨ã\81¦ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81«é\81©ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82
+2.6.25 より前のカーネルでは、ケーパビリティバウンディングセットは システム共通の属性で、システム上の全てのスレッドに適用される。
バウンディングセットは \fI/proc/sys/kernel/cap\-bound\fP ファイル経由で参照できる。
-(間違えやすいが、このビットマスク形式のパラメータは、 \fI/proc/sys/kernel/cap\-bound\fP では符号付きの十進数で表現される。)
+(間違えやすいが、このビットマスク形式のパラメーターは、 \fI/proc/sys/kernel/cap\-bound\fP
+では符号付きの十進数で表現される。)
-\fBinit\fP ã\83\97ã\83ã\82»ã\82¹ã\81 ã\81\91ã\81\8cã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88ã\81§ ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\9dã\82\8c以å¤\96ã\81§ã\81¯ã\80\81ã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶
+\fBinit\fP ã\83\97ã\83ã\82»ã\82¹ã\81 ã\81\91ã\81\8cã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88ã\81§ ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\9dã\82\8c以å¤\96ã\81§ã\81¯ã\80\81ã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\83¼
(より正確には、 \fBCAP_SYS_MODULE\fP ケーパビリティを持ったプログラム) が、
-ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88ã\81®ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\81®ã\82¯ã\83ªã\82¢ã\81\8c ã\81§ã\81\8dã\82\8bã\81 ã\81\91ã\81§ã\81\82ã\82\8bã\80\82
+ケーパビリティバウンディングセットのケーパビリティのクリアが できるだけである。
-é\80\9a常ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ã\80\81ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88ã\81¯ã\80\81 \fBCAP_SETPCAP\fP ã\81\8cç\84¡å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\81®å\88¶é\99\90ã\82\92å\8f\96ã\82\8aå\8e»ã\82\8bã\81«ã\81¯
+通常のシステムでは、ケーパビリティバウンディングセットは、 \fBCAP_SETPCAP\fP が無効になっている。 この制限を取り去るには
(取り去るのは危険!)、 \fIinclude/linux/capability.h\fP 内の \fBCAP_INIT_EFF_SET\fP
の定義を修正し、カーネルを再構築する必要がある。
.\"
-ã\82·ã\82¹ã\83\86ã\83 å\85±é\80\9aã\81®ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88æ©\9fè\83½ã\81¯ã\80\81 ã\82«ã\83¼ã\83\8dã\83« 2.2.11 以é\99\8dã\81§ Linux ã\81«è¿½å\8a ã\81\95ã\82\8cã\81\9fã\80\82
+システム共通のケーパビリティバウンディングセット機能は、 カーネル 2.2.11 以降で Linux に追加された。
.PP
-\fBLinux 2.6.25 以é\99\8dã\81®ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88\fP
+\fBLinux 2.6.25 以降のケーパビリティバウンディングセット\fP
.PP
-Linux 2.6.25 以é\99\8dã\81§ã\81¯ã\80\81 ã\80\8cã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88ã\80\8dã\81¯ã\82¹ã\83¬ã\83\83ã\83\89å\8d\98ä½\8dã\81®å±\9eæ\80§ã\81§ã\81\82ã\82\8b
-(ã\82·ã\82¹ã\83\86ã\83 å\85±é\80\9aã\81®ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88ã\81¯ã\82\82ã\81¯ã\82\84å\98å\9c¨ã\81\97ã\81ªã\81\84)ã\80\82
+Linux 2.6.25 以降では、 「ケーパビリティバウンディングセット」はスレッド単位の属性である
+(システム共通のケーパビリティバウンディングセットはもはや存在しない)。
バウンディングセットは \fBfork\fP(2) 時にはスレッドの親プロセスから継承され、 \fBexecve\fP(2) の前後では保持される。
スレッドが \fBCAP_SETPCAP\fP ケーパビリティを持っている場合、そのスレッドは \fBprctl\fP(2) の
-\fBPR_CAPBSET_DROP\fP æ\93\8dä½\9cã\82\92使ã\81£ã\81¦è\87ªèº«ã\81®ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88ã\81\8bã\82\89 ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\82\92å\89\8aé\99¤ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
+\fBPR_CAPBSET_DROP\fP 操作を使って自身のケーパビリティバウンディングセットから ケーパビリティを削除することができる。
いったんケーパビリティをバウンディングセットから削除してしまうと、 スレッドはそのケーパビリティを再度セットすることはできない。 \fBprctl\fP(2)
の \fBPR_CAPBSET_READ\fP 操作を使うことで、スレッドがあるケーパビリティが自身のバウンディングセット
に含まれているかを知ることができる。
.\"
バウンディングセットからケーパビリティを削除しても、 スレッドの継承可能セットからはそのケーパビリティは削除されない。
しかしながら、バウンディングセットからの削除により、 この先そのケーパビリティをスレッドの継承可能セットに追加すること はできなくなる。
-.SS "ユーザ ID 変更のケーパビリティへの影響"
-ユーザ ID が 0 と 0 以外の間で変化する際の振る舞いを従来と同じにするため、 スレッドの実 UID、実効 UID、保存
+.SS "ユーザー ID 変更のケーパビリティへの影響"
+ユーザー ID が 0 と 0 以外の間で変化する際の振る舞いを従来と同じにするため、 スレッドの実 UID、実効 UID、保存
set\-user\-ID、ファイルシステム UID が (\fBsetuid\fP(2), \fBsetresuid\fP(2) などを使って)
変更された際に、カーネルはそのスレッドのケーパビリティセットに 以下の変更を行う:
.IP 1. 3
呼び出し側が \fBCAP_SETPCAP\fP ケーパビリティを持っていない場合、新しい継承可能セットは、 既存の継承可能セットと許可セットの積集合
(AND) の部分集合で なければならない。
.IP 2.
-(Linux 2.6.25 以降) 新しい継承可能セットは、既存の継承可能セットとケーパビリティ・ バウンディングセットの積集合 (AND)
+(Linux 2.6.25 以降) 新しい継承可能セットは、既存の継承可能セットとケーパビリティ バウンディングセットの積集合 (AND)
の部分集合でなければならない。
.IP 3.
新しい許可セットは、既存の許可セットの部分集合でなければならない (つまり、そのスレッドが現在持っていない許可ケーパビリティを
.TP
\fBSECBIT_NO_SETUID_FIXUP\fP
このフラグをセットすると、スレッドの実効 UID とファイルシステム UID が 0 と 0 以外の間で切り替わった場合に、
-カーネルはケーパビリティセットの調整を行わなくなる (「ユーザ ID 変更のケーパビリティへの影響」の節を参照)。
+カーネルはケーパビリティセットの調整を行わなくなる (「ユーザー ID 変更のケーパビリティへの影響」の節を参照)。
.TP
\fBSECBIT_NOROOT\fP
このビットがセットされている場合、 set\-user\-ID\-root プログラムの実行時や、 実効 UID か 実 UID が 0 のプロセスが
存在しないケーパビリティはすべて無効 (0) として表示される。 (\fBCAP_LAST_CAP\fP
より大きい値を持つケーパビリティが存在しないケーパビリティである)。
-\fIlibcap\fP パッケージは、ケーパビリティを設定・取得するための ルーチン群を提供している。これらのインタフェースは、 \fBcapset\fP(2)
+\fIlibcap\fP ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\81¯ã\80\81ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\82\92è¨å®\9aã\83»å\8f\96å¾\97ã\81\99ã\82\8bã\81\9fã\82\81ã\81® ã\83«ã\83¼ã\83\81ã\83³ç¾¤ã\82\92æ\8f\90ä¾\9bã\81\97ã\81¦ã\81\84ã\82\8bã\80\82ã\81\93ã\82\8cã\82\89ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ã\80\81 \fBcapset\fP(2)
と \fBcapget\fP(2) が提供するインターフェースと比べて、より使いやすく、変更される可能性が少ない。 このパッケージでは、
\fBsetcap\fP(8), \fBgetcap\fP(8) というプログラムも提供されている。 パッケージは以下で入手できる。
.br
ケーパビリティを持ったスレッドは自分以外のスレッドの ケーパビリティを操作できる。 しかしながら、これは理論的に可能というだけである。
以下のいずれかの場合においても、どのスレッドも \fBCAP_SETPCAP\fP ケーパビリティを持つことはないからである。
.IP * 2
-2.6.25 ã\82\88ã\82\8aå\89\8dã\81®å®\9fè£\85ã\81§ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 å\85±é\80\9aã\81®ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£ã\83»ã\83\90ã\82¦ã\83³ã\83\87ã\82£ã\83³ã\82°ã\82»ã\83\83ã\83\88 \fI/proc/sys/kernel/cap\-bound\fP
+2.6.25 より前の実装では、システム共通のケーパビリティバウンディングセット \fI/proc/sys/kernel/cap\-bound\fP
ではこのケーパビリティは常に無効になっており、 ソースを変更してカーネルを再コンパイルしない限り、 これを変更することはできない。
.IP *
現在の実装ではファイルケーパビリティが無効になっている場合、 プロセス毎のバウンディングセットからこのケーパビリティを抜いて \fBinit\fP
の最初の 256 文字でもある。
.LP
コンソールにおける、その他の 8859 文字集合のサポートは
-(\fBsetfont\fP(8)) ã\81®ã\82\88ã\81\86ã\81ªã\83¦ã\83¼ã\82¶ã\83¢ã\83¼ã\83\89ã\83»ユーティリティを利用する事で可能になる。
+(\fBsetfont\fP(8)) ã\81®ã\82\88ã\81\86ã\81ªã\83¦ã\83¼ã\82¶ã\83¼ã\83¢ã\83¼ã\83\89ユーティリティを利用する事で可能になる。
このようなユーティリティを利用することにより、コンソールドライバにおけ
るキーボードと EGA グラフィックテーブルの割り当てを変更し、
-"ユーザ割り当て(user mapping)"フォントテーブルを使用することができる。
+"ユーザー割り当て(user mapping)"フォントテーブルを使用することができる。
.LP
以下は、それぞれの集合の簡単な説明である。
.TP
との互換性はない。
.LP
Linux での KOI8\-R のコンソールサポートは、
-ユーザモードのユーティリティで実現されている。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\83¢ã\83¼ã\83\89ã\81®ã\83¦ã\83¼ã\83\86ã\82£ã\83ªã\83\86ã\82£ã\81§å®\9fç\8f¾ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
これはキーボードの割り当てと EGA グラフィックテーブルを変更し、
-コンソールドライバのフォントテーブルに "ユーザ割り当て" を行う。
+コンソールドライバのフォントテーブルに "ユーザー割り当て" を行う。
.SS "GB 2312"
GB 2312 は、簡体文字を表現するための中国の国定標準文字セットである。 JIS X 0208 と同様に、文字は 94x94 の 2
バイトマトリックスに配置され、 EUC\-CN に用いられる。 EUC\-CN は Linux において最も重要なエンコーディングであり、 ASCII と
は、 同じプロセスグループ ID を共有するプロセスの集まりである。 シェルは、一つのコマンドもしくはパイプラインの実行に使われるプロセス群に
対して一つのプロセスグループを生成する (例えば、コマンド "ls\ |\ wc" を実行するために生成される二つのプロセスは
同じプロセスグループに置かれる)。 所属するプロセスグループは \fBsetpgid\fP(2) を使って設定できる。 自身のプロセス ID
-ã\81\8cã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97 ID ã\81¨å\90\8cã\81\98ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\80\81 ã\81\9dã\81®ã\82°ã\83«ã\83¼ã\83\97ã\81®ã\80\8cã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\83»ã\83ªã\83¼ã\83\80ã\83¼ã\80\8dã\81§ã\81\82ã\82\8bã\80\82
+がプロセスグループ ID と同じプロセスは、 そのグループの「プロセスグループリーダー」である。
セッションは、同じセッション ID を共有するプロセスの集まりである。 ある一つのプロセスグループの全メンバーは同じセッション ID を持つ
(つまり、一つのプロセスグループのメンバーは全て同じセッションに所属し、 これにより、セッションとプロセスグループで二階層のプロセス階層が形成できる)。
新たなセッションの生成はプロセスが \fBsetsid\fP(2) を呼び出すことで行う。 \fBsetsid\fP(2) は、 \fBsetsid\fP(2)
-を呼び出したプロセスの PID と同じ値のセッション ID を持つ 新たなセッションを生成する。
-セッションの生成者は「セッション・リーダー」と呼ばれる。
+を呼び出したプロセスの PID と同じ値のセッション ID を持つ 新たなセッションを生成する。 セッションの生成者は「セッションリーダー」と呼ばれる。
あるセッションの全プロセスは一つの \fI制御端末\fP を共有する。 セッションリーダーが最初に端末をオープンした際に制御端末は設定される
(\fBopen\fP(2) の呼び出しで \fBO_NOCTTY\fP フラグが指定された場合を除く)。
\fBkillpg\fP(2), \fBgetpriority\fP(2), \fBsetpriority\fP(2), \fBioprio_get\fP(2),
\fBioprio_set\fP(2), \fBwaitid\fP(2), \fBwaitpid\fP(2) など。 \fBfcntl\fP(2) の操作
\fBF_GETOWN\fP, \fBF_GETOWN_EX\fP, \fBF_SETOWN\fP, \fBF_SETOWN_EX\fP の議論も参照。
-.SS "ユーザ ID とグループ ID"
-各プロセスは、数種類のユーザ ID とグループ ID を持つ。 ユーザ ID、グループ ID は整数で、それぞれ \fIuid_t\fP, \fIgid_t\fP
-型で表現される (これらは \fI<sys/types.h>\fP で定義されている)。
+.SS "ユーザー ID とグループ ID"
+各プロセスは、数種類のユーザー ID とグループ ID を持つ。 ユーザー ID、グループ ID は整数で、それぞれ \fIuid_t\fP,
+\fIgid_t\fP 型で表現される (これらは \fI<sys/types.h>\fP で定義されている)。
-Linux では、各プロセスは以下のような種類のユーザ ID とグループ ID を持つ。
+Linux では、各プロセスは以下のような種類のユーザー ID とグループ ID を持つ。
.IP * 3
-実ユーザ ID と実グループ ID。 これらの ID によりプロセスの所有者が決定される。 プロセスが自分の実ユーザ ID、実グループ ID
+実ユーザー ID と実グループ ID。 これらの ID によりプロセスの所有者が決定される。 プロセスが自分の実ユーザー ID、実グループ ID
を取得するには、それぞれ \fBgetuid\fP(2), \fBgetgid\fP(2) を使用する。
.IP *
-実効ユーザ ID と実効グループ ID。 これらの ID は、メッセージキュー、共有メモリ、セマフォなどの
+実効ユーザー ID と実効グループ ID。 これらの ID は、メッセージキュー、共有メモリー、セマフォなどの
共有リソースにアクセスしようとした際にそのプロセスがアクセス許可を 持っているかをカーネルが判定するのに使用される。 ほとんどの UNIX
システムでは、これらの ID はファイルへのアクセス時の アクセス許可の判定にも使用される。 しかしながら、Linux
-ではファイルへのアクセス許可の判定には 後述のファイルシステム ID が使用される。 プロセスが自分の実効ユーザ ID、実効グループ ID
+ではファイルへのアクセス許可の判定には 後述のファイルシステム ID が使用される。 プロセスが自分の実効ユーザー ID、実効グループ ID
を取得するには、それぞれ \fBgeteuid\fP(2), \fBgetegid\fP(2) を使用する。
.IP *
保存 (saved) set\-user\-ID と保存 set\-group\-ID。 これらの ID は、set\-user\-ID や
set\-group\-ID されたプログラムにおいて、 プログラムの実行時に設定された実効 ID のコピーを保存するために 使用される
-(\fBexecve\fP(2) 参照)。 set\-user\-ID プログラムは、実効ユーザ ID を実ユーザID と保存 set\-user\-ID
+(\fBexecve\fP(2) 参照)。 set\-user\-ID プログラムは、実効ユーザー ID を実ユーザーID と保存 set\-user\-ID
の間で行ったり来たり切り替えることで、特権を得たり落としたりできる。 この切り替えは \fBseteuid\fP(2), \fBsetreuid\fP(2),
\fBsetresuid\fP(2) を呼び出すことで実行できる。 set\-group\-ID プログラムは、 \fBsetegid\fP(2),
\fBsetregid\fP(2), \fBsetresgid\fP(2) を使って同様のことができる。 プロセスが自分の保存 set\-user\-ID、保存
set\-group\-ID を取得するには、 \fBgetresuid(2),\fP \fBgetresgids\fP(2) をそれぞれ使用する。
.IP *
-ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\83¦ã\83¼ã\82¶ ID ã\81¨ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\83»グループ ID (Linux 固有)。 これらの ID は、後述の補助グループ ID
+ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\83¦ã\83¼ã\82¶ã\83¼ ID ã\81¨ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 グループ ID (Linux 固有)。 これらの ID は、後述の補助グループ ID
と組み合わせて使用され、 ファイルへのアクセス権の決定に利用される。詳細は \fBpath_resolution\fP(7) を参照。 プロセスの実効 ID
-(ユーザ ID や グループ ID) が変更されるたびに、 カーネルは自動的に対応するファイルシステム ID を同じ値に変更する。
+(ユーザー ID や グループ ID) が変更されるたびに、 カーネルは自動的に対応するファイルシステム ID を同じ値に変更する。
その結果、ファイルシステム ID は通常は対応する実効 ID と同じ値となり、 ファイルのアクセス権のチェック方法は Linux と他の UNIX
システムで同じである。 ファイルシステム ID は実効 ID とは異なる値にすることができ、 変更は \fBsetfsuid\fP(2) と
\fBsetfsgid\fP(2) を呼び出して行う。
補助グループ数を知ることができる。 プロセスは、自分の補助グループ ID の集合を \fBgetgroups\fP(2) で取得でき、
\fBsetgroups\fP(2) で集合を変更できる。
.PP
-\fBfork\fP(2) で生成された子プロセスは親プロセスのユーザ ID とグループ ID を継承する。 \fBexecve\fP(2)
-の間、プロセスの実ユーザ/グループ ID と補助グループ ID 集合は不変である。 実効 ID と保存セット ID は変更される可能性がある
+\fBfork\fP(2) で生成された子プロセスは親プロセスのユーザー ID とグループ ID を継承する。 \fBexecve\fP(2)
+の間、プロセスの実ユーザー/グループ ID と補助グループ ID 集合は不変である。 実効 ID と保存セット ID は変更される可能性がある
(\fBexecve\fP(2) で説明されている)。
-上記の目的以外にも、プロセスのユーザ ID は他の様々な場面で利用される。
+上記の目的以外にも、プロセスのユーザー ID は他の様々な場面で利用される。
.IP * 3
シグナルを送る許可の判定時 (\fBkill\fP(2) 参照)
.IP *
-プロセスのスケジューリング関連のパラメータ (nice 値、 リアルタイム・スケジューリングポリシーや優先度、CPU affinity、 入出力優先度)
-の設定許可の判定時。 スケジューリング関連のパラメータ設定には \fBsetpriority\fP(2), \fBsched_setaffinity\fP(2),
+プロセスのスケジューリング関連のパラメーター (nice 値、 リアルタイムスケジューリングポリシーや優先度、CPU affinity、 入出力優先度)
+の設定許可の判定時。 スケジューリング関連のパラメーター設定には \fBsetpriority\fP(2), \fBsched_setaffinity\fP(2),
\fBsched_setscheduler\fP(2), \fBsched_setparam\fP(2), \fBsched_setattr\fP(2),
\fBioprio_set\fP(2) が使用される。
.IP *
プロセスが生成できる inotify インスタンス数の上限のチェック時 (\fBinotify\fP(7) 参照)
.SH 準拠
プロセス ID、親プロセス ID、プロセスグループ ID、セッション ID は POSIX.1\-2001 で規定されている。 実 ID、実効
-ID、保存セット ID のユーザ ID / グループ ID および 補助グループ ID は POSIX.1\-2001 で規定されている。
-ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\83¦ã\83¼ã\82¶ ID / グループ ID は Linux による拡張である。
+ID、保存セット ID のユーザー ID / グループ ID および 補助グループ ID は POSIX.1\-2001 で規定されている。
+ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\83¦ã\83¼ã\82¶ã\83¼ ID / グループ ID は Linux による拡張である。
.SH 注意
POSIX のスレッド仕様では、これらの識別子がプロセス内の全スレッドで 共有されることを求めている。 しかしながら、カーネルのレベルでは、Linux
-はスレッド毎に別々の ユーザとグループに関する識別子を管理している。 NPTL スレッド実装が、(例えば \fBsetuid\fP(2),
-\fBsetresuid\fP(2) などの呼び出しによる) ユーザやグループに関する識別子に対する変更が プロセス内の全ての POSIX
+ã\81¯ã\82¹ã\83¬ã\83\83ã\83\89æ¯\8eã\81«å\88¥ã\80\85ã\81® ã\83¦ã\83¼ã\82¶ã\83¼ã\81¨ã\82°ã\83«ã\83¼ã\83\97ã\81«é\96¢ã\81\99ã\82\8bè\98å\88¥å\90ã\82\92管ç\90\86ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 NPTL ã\82¹ã\83¬ã\83\83ã\83\89å®\9fè£\85ã\81\8cã\80\81(ä¾\8bã\81\88ã\81° \fBsetuid\fP(2),
+\fBsetresuid\fP(2) ã\81ªã\81©ã\81®å\91¼ã\81³å\87ºã\81\97ã\81«ã\82\88ã\82\8b) ã\83¦ã\83¼ã\82¶ã\83¼ã\82\84ã\82°ã\83«ã\83¼ã\83\97ã\81«é\96¢ã\81\99ã\82\8bè\98å\88¥å\90ã\81«å¯¾ã\81\99ã\82\8bå¤\89æ\9b´ã\81\8c ã\83\97ã\83ã\82»ã\82¹å\86\85ã\81®å\85¨ã\81¦ã\81® POSIX
スレッドに対して反映されることを保証する ための処理を行っている。
.SH 関連項目
\fBbash\fP(1), \fBcsh\fP(1), \fBps\fP(1), \fBaccess\fP(2), \fBexecve\fP(2),
\fBATADDR_BCAST\fP はローカルなブロードキャストアドレスである。
.SS ソケットオプション
プロトコル固有のソケットオプションはない。
-.SS "/proc インタフェース"
-Appletalk ã\81®ã\82°ã\83ã\83¼ã\83\90ã\83«ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\81®ã\81\84ã\81\8fã\81¤ã\81\8bã\81¯ã\80\81 \fI/proc\fP ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\82\92é\80\9aã\81\97ã\81¦è¨å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿には、
+.SS "/proc ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹"
+Appletalk ã\81®ã\82°ã\83ã\83¼ã\83\90ã\83«ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®ã\81\84ã\81\8fã\81¤ã\81\8bã\81¯ã\80\81 \fI/proc\fP ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92é\80\9aã\81\97ã\81¦è¨å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼には、
\fI/proc/sys/net/atalk/\fP ディレクトリ内のファイルの読み書きでアクセスできる。
.TP
\fIaarp\-expiry\-time\fP
-AARP キャッシュエントリを破棄するまでのタイムインターバル (秒単位)。
+AARP ã\82ã\83£ã\83\83ã\82·ã\83¥ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ç ´æ£\84ã\81\99ã\82\8bã\81¾ã\81§ã\81®ã\82¿ã\82¤ã\83 ã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83« (ç§\92å\8d\98ä½\8d)ã\80\82
.TP
\fIaarp\-resolve\-time\fP
-AARP キャッシュエントリが解決されるまでのタイムインターバル (秒単位)。
+AARP ã\82ã\83£ã\83\83ã\82·ã\83¥ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8c解決ã\81\95ã\82\8cã\82\8bã\81¾ã\81§ã\81®ã\82¿ã\82¤ã\83 ã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83« (ç§\92å\8d\98ä½\8d)ã\80\82
.TP
\fIaarp\-retransmit\-limit\fP
AARP クエリーの最大再送信回数。この回数を越えると、 そのノードは dead であるとみなされる。
.\" EACCES etc.)
.TP
\fBEACCES\fP
-ユーザが行おうとした操作に必要な権限を持っていない。 broadcast フラグをセットせずにブロードキャストアドレスへ送信を行おうとした、
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cè¡\8cã\81\8aã\81\86ã\81¨ã\81\97ã\81\9fæ\93\8dä½\9cã\81«å¿\85è¦\81ã\81ªæ¨©é\99\90ã\82\92æ\8c\81ã\81£ã\81¦ã\81\84ã\81ªã\81\84ã\80\82 broadcast ã\83\95ã\83©ã\82°ã\82\92ã\82»ã\83\83ã\83\88ã\81\9bã\81\9aã\81«ã\83\96ã\83ã\83¼ã\83\89ã\82ã\83£ã\82¹ã\83\88ã\82¢ã\83\89ã\83¬ã\82¹ã\81¸é\80\81ä¿¡ã\82\92è¡\8cã\81\8aã\81\86ã\81¨ã\81\97ã\81\9fã\80\81
実効ユーザー ID が 0 でなく、 \fBCAP_NET_BIND_SERVICE\fP
権限のないプロセスで特権ポートをバインドしようとした、などが考えられる。
.TP
\fBaccept\fP(2) の途中で接続がクローズされた。
.TP
\fBEHOSTUNREACH\fP
-行き先アドレスにマッチするエントリがルーティングテーブルにない。
+è¡\8cã\81\8då\85\88ã\82¢ã\83\89ã\83¬ã\82¹ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\83«ã\83¼ã\83\86ã\82£ã\83³ã\82°ã\83\86ã\83¼ã\83\96ã\83«ã\81«ã\81ªã\81\84ã\80\82
.TP
\fBEINVAL\fP
渡した引数が不正。
パケットが到着していないソケットに対して \fBSIOCGSTAMP\fP が呼ばれた。
.TP
\fBENOMEM\fP と \fBENOBUFS\fP
-メモリが足りない。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\80\82
.TP
\fBENOPKG\fP
カーネルサブシステムが設定されていない。
接続されていないソケットに対して、 接続状態でしか定義されていない操作を行おうとした。
.TP
\fBEPERM\fP
-高い優先度に設定したり、設定を変更したり、 指定したプロセスやグループにシグナルを送るのに必要な権限を ユーザが持っていない。
+é«\98ã\81\84å\84ªå\85\88度ã\81«è¨å®\9aã\81\97ã\81\9fã\82\8aã\80\81è¨å®\9aã\82\92å¤\89æ\9b´ã\81\97ã\81\9fã\82\8aã\80\81 æ\8c\87å®\9aã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\82\84ã\82°ã\83«ã\83¼ã\83\97ã\81«ã\82·ã\82°ã\83\8aã\83«ã\82\92é\80\81ã\82\8bã\81®ã\81«å¿\85è¦\81ã\81ªæ¨©é\99\90ã\82\92 ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cæ\8c\81ã\81£ã\81¦ã\81\84ã\81ªã\81\84ã\80\82
.TP
\fBEPIPE\fP
接続が接続相手によって、予期しないやり方でクローズまたはシャットダウンされた。
\fBESOCKTNOSUPPORT\fP
ソケットが設定されていない。または未知のソケットタイプが要求された。
.SH バージョン
-AppleTalk は Linux 2.0 以降でサポートされている。 \fI/proc\fP インタフェースは Linux 2.2 以降に存在する。
+AppleTalk ã\81¯ Linux 2.0 以é\99\8dã\81§ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 \fI/proc\fP ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ Linux 2.2 以é\99\8dã\81«å\98å\9c¨ã\81\99ã\82\8bã\80\82
.SH 注意
\fBSO_BROADCAST\fP オプションを用いる時には慎重の上にも慎重になってほしい。 Linux ではこれに特権を必要としない。
不注意にブロードキャストアドレスに送信を行うと、 ネットワークの状態が簡単に変更されてしまう。
.\"
.TH ENVIRON 7 2014\-08\-19 Linux "Linux Programmer's Manual"
.SH 名前
-environ \- ユーザ環境
+environ \- ユーザー環境
.SH 書式
.nf
\fBextern char **\fP\fIenviron\fP\fB;\fP
.br
.fi
.SH 説明
-å¤\89æ\95° \fIenviron\fP ã\81¯ã\80\8cç\92°å¢\83 (environment)ã\80\8dã\81¨å\91¼ã\81°ã\82\8cã\82\8bæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81®é\85\8då\88\97ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®é\85\8då\88\97ã\81®æ\9c\80å¾\8cã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81®å\80¤ã\81¯ NULL
-である。 (この変数はユーザープログラムで宣言しなければならないが、 機能検査マクロ \fB_GNU_SOURCE\fP が定義されていればヘッダーファイル
-\fI<unistd.h>\fP で宣言される)。 この文字列配列は、 プロセスを起動する \fBexec\fP(3)
-によって、その起動されたプロセスで利用できるようになる。
+å¤\89æ\95° \fIenviron\fP ã\81¯ã\80\8cç\92°å¢\83 (environment)ã\80\8dã\81¨å\91¼ã\81°ã\82\8cã\82\8bæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®é\85\8då\88\97ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®é\85\8då\88\97ã\81®æ\9c\80å¾\8cã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®å\80¤ã\81¯
+NULL である。 (この変数はユーザープログラムで宣言しなければならないが、 機能検査マクロ \fB_GNU_SOURCE\fP
+が定義されていればヘッダーファイル \fI<unistd.h>\fP で宣言される)。 この文字列配列は、 プロセスを起動する
+\fBexec\fP(3) によって、その起動されたプロセスで利用できるようになる。
通例では、 \fIenviron\fP の文字列は "\fIname\fP\fB=\fP\fIvalue\fP" という書式をとる。 よく用いられる例を以下に示す。
.TP
\fBUSER\fP
-ユーザのログイン名 (BSD 起源のプログラムなどによって使用される)。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83ã\82°ã\82¤ã\83³å\90\8d (BSD èµ·æº\90ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81ªã\81©ã\81«ã\82\88ã\81£ã\81¦ä½¿ç\94¨ã\81\95ã\82\8cã\82\8b)ã\80\82
.TP
\fBLOGNAME\fP
-ユーザのログイン名(System V 起源のプログラムなどによって使用される)。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83ã\82°ã\82¤ã\83³å\90\8d(System V èµ·æº\90ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81ªã\81©ã\81«ã\82\88ã\81£ã\81¦ä½¿ç\94¨ã\81\95ã\82\8cã\82\8b)ã\80\82
.TP
\fBHOME\fP
-ユーザのログインディレクトリ。 \fBlogin\fP(1) がパスワードファイル \fBpasswd\fP(5) から取得して設定する。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83ã\82°ã\82¤ã\83³ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\80\82 \fBlogin\fP(1) ã\81\8cã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\83\95ã\82¡ã\82¤ã\83« \fBpasswd\fP(5) ã\81\8bã\82\89å\8f\96å¾\97ã\81\97ã\81¦è¨å®\9aã\81\99ã\82\8bã\80\82
.TP
\fBLANG\fP
-ロケールの各カテゴリで使用されるロケールの名前。\fBLC_ALL\fP や、 より狭い範囲を対象とする環境変数 (\fBLC_COLLATE\fP,
+ã\83ã\82±ã\83¼ã\83«ã\81®å\90\84ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81§ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\83ã\82±ã\83¼ã\83«ã\81®å\90\8då\89\8dã\80\82\fBLC_ALL\fP ã\82\84ã\80\81 ã\82\88ã\82\8aç\8bã\81\84ç¯\84å\9b²ã\82\92対象ã\81¨ã\81\99ã\82\8bç\92°å¢\83å¤\89æ\95° (\fBLC_COLLATE\fP,
\fBLC_CTYPE\fP, \fBLC_MESSAGES\fP, \fBLC_MONETARY\fP, \fBLC_NUMERIC\fP, \fBLC_TIME\fP など)
によって上書きされることもある (\fBLC_*\fP 環境変数のさらなる詳細は \fBlocale\fP(7) 参照)。
.TP
\fBTMPDIR\fP は、 \fBtmpnam\fP(3) などのルーチンによって作成されるファイル名や \fBsort\fP(1)
や他のプログラムが使用する一時ディレクトリに前置されるパスに影響する。
.LP
-\fBLD_LIBRARY_PATH\fP, \fBLD_PRELOAD\fP ã\81ªã\81©ã\81® LD_* å¤\89æ\95°ã\81¯ã\83\80ã\82¤ã\83\8aã\83\9fã\83\83ã\82¯ã\83ã\83¼ã\83\80ã\83»ã\83ªã\83³ã\82«の動作に影響する。
+\fBLD_LIBRARY_PATH\fP, \fBLD_PRELOAD\fP ã\81ªã\81©ã\81® LD_* å¤\89æ\95°ã\81¯ã\83\80ã\82¤ã\83\8aã\83\9fã\83\83ã\82¯ã\83ã\83¼ã\83\80ã\83¼ã\83ªã\83³ã\82«ã\83¼の動作に影響する。
.LP
\fBPOSIXLY_CORRECT\fP が指定されると、ある種のプログラムやライブラリルーチンは POSIX の規定に従うようになる。
.LP
.SH 説明
\fBepoll\fP API は \fBpoll\fP(2) と同様の処理を行う、つまり、複数のファイルディスク
リプタを監視し、その中のいずれかが入出力可能な状態であるかを確認する。
-\fBepoll\fP API ã\81¯ã\80\81ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81¨ã\83¬ã\83\99ã\83«ã\83\88ã\83ªã\82¬ã\82¤ã\83³ã\82¿フェースの
-いずれとしても使用することができ、監視するファイルディスクリプタの数が多い
+\fBepoll\fP API ã\81¯ã\80\81ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬ã\83¼ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¨ã\83¬ã\83\99ã\83«ã\83\88ã\83ªã\82¬ã\83¼ã\82¤ã\83³ã\82¿ã\83¼フェースの
+ã\81\84ã\81\9aã\82\8cã\81¨ã\81\97ã\81¦ã\82\82使ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\80\81ç\9b£è¦\96ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®æ\95°ã\81\8cå¤\9aã\81\84
場合にも使用できる。 \fBepoll\fP インスタンスの作成や管理を行うために
以下のシステムコールが提供されている:
.IP * 3
\fBepoll_create\fP(2) は \fBepoll\fP インスタンスを作成し、そのインスタンスを参照する
-ファイルディスクリプタを返す。(もっと新しい \fBepoll_create1\fP(2) では、
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82(ã\82\82ã\81£ã\81¨æ\96°ã\81\97ã\81\84 \fBepoll_create1\fP(2) ã\81§ã\81¯ã\80\81
\fBepoll_create\fP(2) の機能が拡張されている)。
.IP *
-特定のファイルディスクリプタに対する監視内容を \fBepoll_ctl\fP(2) で登録する。 \fBepoll\fP
-インスタンスに現在登録されているファイルディスクリプタの集合は \fIepoll\fP 集合と呼ばれることもある。
+ç\89¹å®\9aã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\99ã\82\8bç\9b£è¦\96å\86\85容ã\82\92 \fBepoll_ctl\fP(2) ã\81§ç\99»é\8c²ã\81\99ã\82\8bã\80\82 \fBepoll\fP
+ã\82¤ã\83³ã\82¹ã\82¿ã\83³ã\82¹ã\81«ç\8f¾å\9c¨ç\99»é\8c²ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®é\9b\86å\90\88ã\81¯ \fIepoll\fP é\9b\86å\90\88ã\81¨å\91¼ã\81°ã\82\8cã\82\8bã\81\93ã\81¨ã\82\82ã\81\82ã\82\8bã\80\82
.IP *
\fBepoll_wait\fP(2) は I/O イベントを待つ。
現在利用可能な状態のイベントがなければ、呼び出したスレッドを停止する。
-.SS ã\83¬ã\83\99ã\83«ã\83\88ã\83ªã\82¬ã\81¨ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬
-\fBepoll\fP ã\82¤ã\83\99ã\83³ã\83\88é\85\8dé\80\81 (distribution) ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ã\80\81 ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬ (ET) ã\81¨ã\81\97ã\81¦ã\82\82ã\83¬ã\83\99ã\83«ã\83\88ã\83ªã\82¬ (LT)
+.SS ã\83¬ã\83\99ã\83«ã\83\88ã\83ªã\82¬ã\83¼ã\81¨ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬ã\83¼
+\fBepoll\fP ã\82¤ã\83\99ã\83³ã\83\88é\85\8dé\80\81 (distribution) ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ã\80\81 ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬ã\83¼ (ET) ã\81¨ã\81\97ã\81¦ã\82\82ã\83¬ã\83\99ã\83«ã\83\88ã\83ªã\82¬ã\83¼ (LT)
としても動作させることができる。 二つの配送機構の違いは、次のように説明できる。 このようなシナリオが起こったとしよう:
.IP 1. 3
-パイプの読み込み側を表すファイルディスクリプタ (\fIrfd\fP) が \fBepoll\fP インスタンスに登録される。
+パイプの読み込み側を表すファイルディスクリプター (\fIrfd\fP) が \fBepoll\fP インスタンスに登録される。
.IP 2.
パイプへ書き込むプログラムが 2 kB のデータをパイプの書き込み側へ書き込む。
.IP 3.
-\fBepoll_wait\fP(2) を呼び出すと、読み込み可能 (ready) なファイルディスクリプタとして \fIrfd\fP が返る。
+\fBepoll_wait\fP(2) ã\82\92å\91¼ã\81³å\87ºã\81\99ã\81¨ã\80\81èªã\81¿è¾¼ã\81¿å\8f¯è\83½ (ready) ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¨ã\81\97ã\81¦ \fIrfd\fP ã\81\8cè¿\94ã\82\8bã\80\82
.IP 4.
パイプから読み出すプログラムが、1 kB のデータを \fIrfd\fP から読み出す。
.IP 5.
\fBepoll_wait\fP(2) の呼び出しが行われる。
.PP
-\fIrfd\fP ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8c \fBEPOLLET\fP ã\83\95ã\83©ã\82° (ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬) を使って \fBepoll\fP に追加されていると、
-利用可能なデータがファイル入力バッファにまだ存在するにもかかわらず ステップ \fB5\fP の \fBepoll_wait\fP(2)
+\fIrfd\fP ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c \fBEPOLLET\fP ã\83\95ã\83©ã\82° (ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬ã\83¼) を使って \fBepoll\fP に追加されていると、
+å\88©ç\94¨å\8f¯è\83½ã\81ªã\83\87ã\83¼ã\82¿ã\81\8cã\83\95ã\82¡ã\82¤ã\83«å\85¥å\8a\9bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81¾ã\81 å\98å\9c¨ã\81\99ã\82\8bã\81«ã\82\82ã\81\8bã\81\8bã\82\8fã\82\89ã\81\9a ã\82¹ã\83\86ã\83\83ã\83\97 \fB5\fP ã\81® \fBepoll_wait\fP(2)
の呼び出しでハングする可能性がある。 その一方で、リモートの接続先 (peer) は既に送られたデータに 基づいて応答を期待しているかもしれない。
-このようなことが起こる理由は、エッジトリガイベント配送では、 モニタしているファイルでイベントが起ったときにのみイベントが 配送されるためである。
-したがって、ステップ \fB5\fP では、呼び出し側は結果的に 入力バッファ内にすで存在するデータを待つことになるかもしれない。 上記の例では、 \fB2\fP
+ã\81\93ã\81®ã\82\88ã\81\86ã\81ªã\81\93ã\81¨ã\81\8cèµ·ã\81\93ã\82\8bç\90\86ç\94±ã\81¯ã\80\81ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬ã\83¼ã\82¤ã\83\99ã\83³ã\83\88é\85\8dé\80\81ã\81§ã\81¯ã\80\81 ã\83¢ã\83\8bã\82¿ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81§ã\82¤ã\83\99ã\83³ã\83\88ã\81\8cèµ·ã\81£ã\81\9fã\81¨ã\81\8dã\81«ã\81®ã\81¿ã\82¤ã\83\99ã\83³ã\83\88ã\81\8c é\85\8dé\80\81ã\81\95ã\82\8cã\82\8bã\81\9fã\82\81ã\81§ã\81\82ã\82\8bã\80\82
+したがって、ステップ \fB5\fP では、呼び出し側は結果的に 入力バッファー内にすで存在するデータを待つことになるかもしれない。 上記の例では、 \fB2\fP
で行われた書き込みによって \fIrfd\fP に関するイベントが生成され、 \fB3\fP でイベントが消費 (consume) される。 \fB4\fP
-で行われる読み込み操作では、全部のバッファデータを消費しないので、 ステップ \fB5\fP で行われる \fBepoll_wait\fP(2) の呼び出しが
+ã\81§è¡\8cã\82\8fã\82\8cã\82\8bèªã\81¿è¾¼ã\81¿æ\93\8dä½\9cã\81§ã\81¯ã\80\81å\85¨é\83¨ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83\87ã\83¼ã\82¿ã\82\92æ¶\88è²»ã\81\97ã\81ªã\81\84ã\81®ã\81§ã\80\81 ã\82¹ã\83\86ã\83\83ã\83\97 \fB5\fP ã\81§è¡\8cã\82\8fã\82\8cã\82\8b \fBepoll_wait\fP(2) ã\81®å\91¼ã\81³å\87ºã\81\97ã\81\8c
無期限に停止 (block) するかもしれない。
-\fBEPOLLET\fP ã\83\95ã\83©ã\82°ã\82\92æ\8e¡ç\94¨ã\81\99ã\82\8bã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81§ã\81¯ã\80\81 ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ã\83\96ã\83ã\83\83ã\82¯ã\81\97ã\81ªã\81\84 (nonblocking) ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を
-使うべきである。 これは、ブロックされる読み込みや書き込みによって、 複数のファイルディスクリプタを扱うタスクが 停止してしまうのを避けるためである。
-\fBepoll\fP をエッジトリガ (\fBEPOLLET\fP) インタフェースとして使うために提案される方法は以下の通りである。
+\fBEPOLLET\fP ã\83\95ã\83©ã\82°ã\82\92æ\8e¡ç\94¨ã\81\99ã\82\8bã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81§ã\81¯ã\80\81 ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ã\83\96ã\83ã\83\83ã\82¯ã\81\97ã\81ªã\81\84 (nonblocking) ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を
+使ã\81\86ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ã\80\81ã\83\96ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bèªã\81¿è¾¼ã\81¿ã\82\84æ\9b¸ã\81\8dè¾¼ã\81¿ã\81«ã\82\88ã\81£ã\81¦ã\80\81 è¤\87æ\95°ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92æ\89±ã\81\86ã\82¿ã\82¹ã\82¯ã\81\8c å\81\9cæ¢ã\81\97ã\81¦ã\81\97ã\81¾ã\81\86ã\81®ã\82\92é\81¿ã\81\91ã\82\8bã\81\9fã\82\81ã\81§ã\81\82ã\82\8bã\80\82
+\fBepoll\fP をエッジトリガー (\fBEPOLLET\fP) インターフェースとして使うために提案される方法は以下の通りである。
.RS
.TP 4
\fBi\fP
-ブロックしないファイルディスクリプタと共に使う。
+ã\83\96ã\83ã\83\83ã\82¯ã\81\97ã\81ªã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¨å\85±ã\81«ä½¿ã\81\86ã\80\82
.TP
\fBii\fP
\fBread\fP(2) または \fBwrite\fP(2) が \fBEAGAIN\fP を返した後でのみ、イベントを待つ。
.RE
.PP
-ä¸\80æ\96¹ã\80\81ã\83¬ã\83\99ã\83«ã\83\88ã\83ªã\82¬ã\82¤ã\83³ã\82¿フェースとして使う場合
+ä¸\80æ\96¹ã\80\81ã\83¬ã\83\99ã\83«ã\83\88ã\83ªã\82¬ã\83¼ã\82¤ã\83³ã\82¿ã\83¼フェースとして使う場合
(こちらがデフォルトである、
\fBEPOLLET\fP が指定されなかった場合)、
\fBepoll\fP は単に高速な \fBpoll\fP(2) であり、使い方が同じなので、
\fBpoll\fP(2) が使われているところではどこでも使用することができる。
-エッジトリガを使った場合でも、複数のデータを受信すると複数の \fBepoll\fP イベントが生成されるので、 呼び出し側には
+ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬ã\83¼ã\82\92使ã\81£ã\81\9få ´å\90\88ã\81§ã\82\82ã\80\81è¤\87æ\95°ã\81®ã\83\87ã\83¼ã\82¿ã\82\92å\8f\97ä¿¡ã\81\99ã\82\8bã\81¨è¤\87æ\95°ã\81® \fBepoll\fP ã\82¤ã\83\99ã\83³ã\83\88ã\81\8cç\94\9fæ\88\90ã\81\95ã\82\8cã\82\8bã\81®ã\81§ã\80\81 å\91¼ã\81³å\87ºã\81\97å\81´ã\81«ã\81¯
\fBEPOLLONESHOT\fP フラグを指定するオプションがある。 このフラグは \fBepoll\fP に対して、 \fBepoll_wait\fP(2)
-によるイベントを受信した後で、関連するファイルディスクリプタを無効にさせる。 \fBEPOLLONESHOT\fP フラグが指定された場合、
-\fBepoll_ctl\fP(2) に \fBEPOLL_CTL_MOD\fP を指定してファイルディスクリプタを再度使用できるようにするのは、
+ã\81«ã\82\88ã\82\8bã\82¤ã\83\99ã\83³ã\83\88ã\82\92å\8f\97ä¿¡ã\81\97ã\81\9få¾\8cã\81§ã\80\81é\96¢é\80£ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\84¡å\8a¹ã\81«ã\81\95ã\81\9bã\82\8bã\80\82 \fBEPOLLONESHOT\fP ã\83\95ã\83©ã\82°ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9få ´å\90\88ã\80\81
+\fBepoll_ctl\fP(2) ã\81« \fBEPOLL_CTL_MOD\fP ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\86\8d度使ç\94¨ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81®ã\81¯ã\80\81
呼び出し側の責任である。
.SS "autosleep との関係"
システムが \fI/sys/power/autosleep\fP 経由で \fBautosleep\fP モードになっていて、
の呼び出しが行われるまでの間、システムは起きたままの状態になる。
イベントが上記の時間の範囲を超えてシステムを起きたままの状態にしておく必要がある場合は、 2 番目の \fBepoll_wait\fP(2)
の呼び出しの前に別の \fIwake_lock\fP を取る必要がある。
-.SS "/proc インタフェース"
+.SS "/proc ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹"
.\" Following was added in 2.6.28, but them removed in 2.6.29
.\" .TP
.\" .IR /proc/sys/fs/epoll/max_user_instances " (since Linux 2.6.28)"
.\" This specifies an upper limit on the number of epoll instances
.\" that can be created per real user ID.
-epoll ã\81\8cæ¶\88è²»ã\81\99ã\82\8bã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\81®é\87\8fã\82\92å\88¶é\99\90ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\80\81 以ä¸\8bã\81®ã\82¤ã\83³ã\82¿フェースを使用することができる。
+epoll ã\81\8cæ¶\88è²»ã\81\99ã\82\8bã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\81®é\87\8fã\82\92å\88¶é\99\90ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\80\81 以ä¸\8bã\81®ã\82¤ã\83³ã\82¿ã\83¼フェースを使用することができる。
.TP
\fI/proc/sys/fs/epoll/max_user_watches\fP (Linux 2.6.28 以降)
.\" 2.6.29 (in 2.6.28, the default was 1/32 of lowmem)
-ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81ã\81\82ã\82\8bã\83¦ã\83¼ã\82¶ã\81\8cã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81®å\85¨ã\81¦ã\81® epoll ã\82¤ã\83³ã\82¹ã\82¿ã\83³ã\82¹ã\81« ç\99»é\8c²ã\81§ã\81\8dã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®ç·\8fæ\95°ã\81®ä¸\8aé\99\90ã\82\92è¦\8få®\9aã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ä¸\8aé\99\90ã\81¯å®\9fã\83¦ã\83¼ã\82¶
-ID 単位である。 登録されたファイルディスクリプタ 1 つが消費するメモリ量は、 32 ビットカーネルでおよそ 90 バイト、 64
-ã\83\93ã\83\83ã\83\88ã\82«ã\83¼ã\83\8dã\83«ã\81§ã\81\8aã\82\88ã\81\9d 160 ã\83\90ã\82¤ã\83\88ã\81§ã\81\82ã\82\8bã\80\82 ç\8f¾å\9c¨ã\81®ã\81¨ã\81\93ã\82\8dã\80\81 \fImax_user_watches\fP ã\81®ã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ã\81¯ã\80\81å\88©ç\94¨å\8f¯è\83½ã\81ªã\83¡ã\83¢ã\83ªä¸\8bé\99\90ã\81®
-1/25 (4%) であり、 登録で消費されるメモリ量 (バイト単位) で割った値となる。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81ã\81\82ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81®å\85¨ã\81¦ã\81® epoll ã\82¤ã\83³ã\82¹ã\82¿ã\83³ã\82¹ã\81« ç\99»é\8c²ã\81§ã\81\8dã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ç·\8fæ\95°ã\81®ä¸\8aé\99\90ã\82\92è¦\8få®\9aã\81\99ã\82\8bã\80\82
+この上限は実ユーザー ID 単位である。 登録されたファイルディスクリプター 1 つが消費するメモリー量は、 32 ビットカーネルでおよそ 90
+ã\83\90ã\82¤ã\83\88ã\80\81 64 ã\83\93ã\83\83ã\83\88ã\82«ã\83¼ã\83\8dã\83«ã\81§ã\81\8aã\82\88ã\81\9d 160 ã\83\90ã\82¤ã\83\88ã\81§ã\81\82ã\82\8bã\80\82 ç\8f¾å\9c¨ã\81®ã\81¨ã\81\93ã\82\8dã\80\81 \fImax_user_watches\fP
+のデフォルト値は、利用可能なメモリー下限の 1/25 (4%) であり、 登録で消費されるメモリー量 (バイト単位) で割った値となる。
.SS おすすめな使用例
-ã\83¬ã\83\99ã\83«ã\83\88ã\83ªã\82¬ã\82¤ã\83³ã\82¿フェースとして使用するときの \fBepoll\fP の使い方は \fBpoll\fP(2) と同じである。
-ã\81\97ã\81\8bã\81\97ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬ã\81¨ã\81\97ã\81¦ä½¿ã\81\86å ´å\90\88ã\81¯ã\80\81 ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81®ã\82¤ã\83\99ã\83³ã\83\88ã\83«ã\83¼ã\83\97ã\81§ã\82¹ã\83\88ã\83¼ã\83« (stall) ã\81\97ã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\80\81 使ã\81\84æ\96¹ã\82\92ã\82\88ã\82\8aæ\98\8e確ã\81«ã\81\97ã\81¦ã\81\8aã\81\8få¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82
-この例では、リスナはブロックしないソケットであり、 \fBlisten\fP(2) が呼ばれている。 関数 \fIdo_use_fd()\fP は、
-\fBread\fP(2) または \fBwrite\fP(2) によって \fBEAGAIN\fP が返されるまでは、新しい準備済みのファイルディスクリプタを使う。
-ã\82¤ã\83\99ã\83³ã\83\88é§\86å\8b\95ã\82¹ã\83\86ã\83¼ã\83\88ã\83\9eã\82·ã\83³ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81¯ã\80\81 \fBEAGAIN\fP ã\82\92å\8f\97ä¿¡ã\81\97ã\81\9få¾\8cã\80\81ã\82«ã\83¬ã\83³ã\83\88ã\81®ç\8a¶æ\85\8bã\82\92è¨\98é\8c²ã\81\97ã\81¦ã\81\8aã\81\8fã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\81«ã\82\88ã\82\8aã\80\81次ã\81®
-\fIdo_use_fd()\fP 呼び出しのときに、以前に停止したところから \fBread\fP(2) または \fBwrite\fP(2)
-を継続することができる。
+ã\83¬ã\83\99ã\83«ã\83\88ã\83ªã\82¬ã\83¼ã\82¤ã\83³ã\82¿ã\83¼フェースとして使用するときの \fBepoll\fP の使い方は \fBpoll\fP(2) と同じである。
+ã\81\97ã\81\8bã\81\97ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬ã\83¼ã\81¨ã\81\97ã\81¦ä½¿ã\81\86å ´å\90\88ã\81¯ã\80\81 ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81®ã\82¤ã\83\99ã\83³ã\83\88ã\83«ã\83¼ã\83\97ã\81§ã\82¹ã\83\88ã\83¼ã\83« (stall) ã\81\97ã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\80\81
+使い方をより明確にしておく必要がある。 この例では、リスナはブロックしないソケットであり、 \fBlisten\fP(2) が呼ばれている。 関数
+\fIdo_use_fd()\fP は、 \fBread\fP(2) または \fBwrite\fP(2) によって \fBEAGAIN\fP
+ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\81¾ã\81§ã\81¯ã\80\81æ\96°ã\81\97ã\81\84æº\96å\82\99æ¸\88ã\81¿ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92使ã\81\86ã\80\82 ã\82¤ã\83\99ã\83³ã\83\88é§\86å\8b\95ã\82¹ã\83\86ã\83¼ã\83\88ã\83\9eã\82·ã\83³ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81¯ã\80\81 \fBEAGAIN\fP
+を受信した後、カレントの状態を記録しておくべきである。 これにより、次の \fIdo_use_fd()\fP 呼び出しのときに、以前に停止したところから
+\fBread\fP(2) または \fBwrite\fP(2) を継続することができる。
.in +4n
.nf
.fi
.in
-ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬ã\82¤ã\83³ã\82¿フェースとして使う場合、性能上の理由により、 一度 (\fBEPOLLIN\fP|\fBEPOLLOUT\fP) を指定してから
-(\fBEPOLL_CTL_ADD\fP ã\81§) ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92 \fBepoll\fP ã\82¤ã\83³ã\82¿フェースに追加することができる。 これにより、
+ã\82¨ã\83\83ã\82¸ã\83\88ã\83ªã\82¬ã\83¼ã\82¤ã\83³ã\82¿ã\83¼フェースとして使う場合、性能上の理由により、 一度 (\fBEPOLLIN\fP|\fBEPOLLOUT\fP) を指定してから
+(\fBEPOLL_CTL_ADD\fP ã\81§) ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92 \fBepoll\fP ã\82¤ã\83³ã\82¿ã\83¼フェースに追加することができる。 これにより、
\fBepoll_ctl\fP(2) に \fBEPOLL_CTL_MOD\fP を指定して呼び出すことで \fBEPOLLIN\fP と \fBEPOLLOUT\fP
の連続的な切り替えが避けられる。
.SS 質問と解答
.TP 4
\fBQ0\fP
-\fBepoll\fP 集合内の登録されたファイルディスクリプタを区別するには、 何をキーとして使えばよいか?
+\fBepoll\fP é\9b\86å\90\88å\86\85ã\81®ç\99»é\8c²ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\8cºå\88¥ã\81\99ã\82\8bã\81«ã\81¯ã\80\81 ä½\95ã\82\92ã\82ã\83¼ã\81¨ã\81\97ã\81¦ä½¿ã\81\88ã\81°ã\82\88ã\81\84ã\81\8bï¼\9f
.TP
\fBA0\fP
-キーはファイルディスクリプタ番号とオープンファイル記述 (open file description) の組である (オープンファイル記述は "open
-file handle" とも 呼ばれ、オープンされたファイルのカーネルの内部表現である)。
+キーはファイルディスクリプター番号とオープンファイル記述 (open file description) の組である (オープンファイル記述は
+"open file handle" とも 呼ばれ、オープンされたファイルのカーネルの内部表現である)。
.TP
\fBQ1\fP
-1 つの \fBepoll\fP インスタンスに同じファイルディスクリプタを 2 回登録するとどうなるか?
+1 ã\81¤ã\81® \fBepoll\fP ã\82¤ã\83³ã\82¹ã\82¿ã\83³ã\82¹ã\81«å\90\8cã\81\98ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92 2 å\9b\9eç\99»é\8c²ã\81\99ã\82\8bã\81¨ã\81©ã\81\86ã\81ªã\82\8bã\81\8bï¼\9f
.TP
\fBA1\fP
.\" But a descriptor duplicated by fork(2) can't be added to the
.\"
.\" mtk, Feb 2008
たぶん \fBEEXIST\fP を受け取るだろう。 しかしながら、同じ \fBepoll\fP
-インスタンスに対して複製されたディスクリプタを追加することは可能である (\fBdup\fP(2), \fBdup2\fP(2), \fBfcntl\fP(2)
-\fBF_DUPFD\fP など)。 複製したファイルディスクリプタを異なる \fIevents\fP マスクで登録すれば、イベントをフィルタリングするのに
+ã\82¤ã\83³ã\82¹ã\82¿ã\83³ã\82¹ã\81«å¯¾ã\81\97ã\81¦è¤\87製ã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92追å\8a ã\81\99ã\82\8bã\81\93ã\81¨ã\81¯å\8f¯è\83½ã\81§ã\81\82ã\82\8b (\fBdup\fP(2), \fBdup2\fP(2), \fBfcntl\fP(2)
+\fBF_DUPFD\fP ã\81ªã\81©)ã\80\82 è¤\87製ã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\95°ã\81ªã\82\8b \fIevents\fP ã\83\9eã\82¹ã\82¯ã\81§ç\99»é\8c²ã\81\99ã\82\8cã\81°ã\80\81ã\82¤ã\83\99ã\83³ã\83\88ã\82\92ã\83\95ã\82£ã\83«ã\82¿ã\83ªã\83³ã\82°ã\81\99ã\82\8bã\81®ã\81«
この機能は有用な手法である。
.TP
\fBQ2\fP
-2 つの \fBepoll\fP インスタンスが同じファイルディスクリプタを待ち受けることは可能か? もし可能であれば、イベントは両方の \fBepoll\fP
-ファイルディスクリプタに報告されるか?
+2 ã\81¤ã\81® \fBepoll\fP ã\82¤ã\83³ã\82¹ã\82¿ã\83³ã\82¹ã\81\8cå\90\8cã\81\98ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å¾\85ã\81¡å\8f\97ã\81\91ã\82\8bã\81\93ã\81¨ã\81¯å\8f¯è\83½ã\81\8bï¼\9f ã\82\82ã\81\97å\8f¯è\83½ã\81§ã\81\82ã\82\8cã\81°ã\80\81ã\82¤ã\83\99ã\83³ã\83\88ã\81¯ä¸¡æ\96¹ã\81® \fBepoll\fP
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å ±å\91\8aã\81\95ã\82\8cã\82\8bã\81\8bï¼\9f
.TP
\fBA2\fP
イベントは両方に報告される。 しかしながら、これを正しく扱うには注意深くプログラミングする必要が あるかもしれない。
.TP
\fBQ3\fP
-\fBepoll\fP ファイルディスクリプタ自身は poll/epoll/select が可能か?
+\fBepoll\fP ファイルディスクリプター自身は poll/epoll/select が可能か?
.TP
\fBA3\fP
-可能である。 \fBepoll\fP ファイルディスクリプタに処理待ちのイベントがある場合は、 読み出し可能だと通知されることだろう。
+å\8f¯è\83½ã\81§ã\81\82ã\82\8bã\80\82 \fBepoll\fP ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å\87¦ç\90\86å¾\85ã\81¡ã\81®ã\82¤ã\83\99ã\83³ã\83\88ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\81¯ã\80\81 èªã\81¿å\87ºã\81\97å\8f¯è\83½ã\81 ã\81¨é\80\9aç\9f¥ã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\81 ã\82\8dã\81\86ã\80\82
.TP
\fBQ4\fP
-\fBepoll\fP ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92è\87ªèº«ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿集合に 入れようとするとどうなるか?
+\fBepoll\fP ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è\87ªèº«ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼集合に 入れようとするとどうなるか?
.TP
\fBA4\fP
-\fBepoll_ctl\fP(2) の呼び出しは (\fBEINVAL\fP で) 失敗するだろう。 ただし \fBepoll\fP ファイルディスクリプタを他の
-\fBepoll\fP ファイルディスクリプタ集合の内部に追加することは可能である。
+\fBepoll_ctl\fP(2) ã\81®å\91¼ã\81³å\87ºã\81\97ã\81¯ (\fBEINVAL\fP ã\81§) 失æ\95\97ã\81\99ã\82\8bã\81 ã\82\8dã\81\86ã\80\82 ã\81\9fã\81 ã\81\97 \fBepoll\fP ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ä»\96ã\81®
+\fBepoll\fP ファイルディスクリプター集合の内部に追加することは可能である。
.TP
\fBQ5\fP
-\fBepoll\fP ファイルディスクリプタを UNIX ドメインソケットで他のプロセスに送ることは可能か?
+\fBepoll\fP ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92 UNIX ã\83\89ã\83¡ã\82¤ã\83³ã\82½ã\82±ã\83\83ã\83\88ã\81§ä»\96ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«é\80\81ã\82\8bã\81\93ã\81¨ã\81¯å\8f¯è\83½ã\81\8bï¼\9f
.TP
\fBA5\fP
-可能だが、これをすることに意味はない。 なぜなら、受信側のプロセスが \fBepoll\fP 集合内のファイルディスクリプタのコピーを持っていないからである。
+可能だが、これをすることに意味はない。 なぜなら、受信側のプロセスが \fBepoll\fP
+集合内のファイルディスクリプターのコピーを持っていないからである。
.TP
\fBQ6\fP
-ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\99ã\82\8bã\81¨ã\80\81ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は全ての \fBepoll\fP 集合から自動的に削除されるか?
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\99ã\82\8bã\81¨ã\80\81ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は全ての \fBepoll\fP 集合から自動的に削除されるか?
.TP
\fBA6\fP
-削除されるが、以下の点に注意が必要である。 ファイルディスクリプタはオープンファイル記述 (\fBopen\fP(2) 参照) への参照である。
-ディスクリプタの複製を \fBdup\fP(2), \fBdup2\fP(2), \fBfcntl\fP(2) の \fBF_DUPFD\fP や \fBfork\fP(2)
-経由で行う度に、同じオープンファイル記述を参照する新規のファイル ディスクリプタが生成される。
-オープンファイル記述自体は、自身を参照する全てのファイルディスクリプタ がクローズされるまで存在し続ける。 ファイルディスクリプタが \fBepoll\fP
-集合から削除されるのは、対応するオープンファイル記述を参照している 全てのファイルディスクリプタがクローズされた後である
-(\fBepoll_ctl\fP(2) \fBEPOLL_CTL_DEL\fP を使ってそのディスクリプタを明示的に削除した場合にも削除される)。 このことは、
-\fBepoll\fP 集合に属しているあるファイルディスクリプタをクローズした後であっても、
-å\90\8cã\81\98ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿°ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bä»\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bé\96\93ã\81¯ã\80\81 ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿å®\9bã\81«ã\82¤ã\83\99ã\83³ã\83\88ã\81\8cå ±å\91\8aã\81\95ã\82\8cã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\81¨
-いうことを意味する。
+å\89\8aé\99¤ã\81\95ã\82\8cã\82\8bã\81\8cã\80\81以ä¸\8bã\81®ç\82¹ã\81«æ³¨æ\84\8fã\81\8cå¿\85è¦\81ã\81§ã\81\82ã\82\8bã\80\82 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿° (\fBopen\fP(2) å\8f\82ç\85§) ã\81¸ã\81®å\8f\82ç\85§ã\81§ã\81\82ã\82\8bã\80\82
+ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®è¤\87製ã\82\92 \fBdup\fP(2), \fBdup2\fP(2), \fBfcntl\fP(2) ã\81® \fBF_DUPFD\fP ã\82\84 \fBfork\fP(2)
+çµ\8cç\94±ã\81§è¡\8cã\81\86度ã\81«ã\80\81å\90\8cã\81\98ã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿°ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bæ\96°è¦\8fã\81®ã\83\95ã\82¡ã\82¤ã\83« ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cç\94\9fæ\88\90ã\81\95ã\82\8cã\82\8bã\80\82
+オープンファイル記述自体は、自身を参照する全てのファイルディスクリプター がクローズされるまで存在し続ける。 ファイルディスクリプターが
+\fBepoll\fP 集合から削除されるのは、対応するオープンファイル記述を参照している 全てのファイルディスクリプターがクローズされた後である
+(\fBepoll_ctl\fP(2) \fBEPOLL_CTL_DEL\fP ã\82\92使ã\81£ã\81¦ã\81\9dã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92æ\98\8e示ç\9a\84ã\81«å\89\8aé\99¤ã\81\97ã\81\9få ´å\90\88ã\81«ã\82\82å\89\8aé\99¤ã\81\95ã\82\8cã\82\8b)ã\80\82 ã\81\93ã\81®ã\81\93ã\81¨ã\81¯ã\80\81
+\fBepoll\fP é\9b\86å\90\88ã\81«å±\9eã\81\97ã\81¦ã\81\84ã\82\8bã\81\82ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\81\9få¾\8cã\81§ã\81\82ã\81£ã\81¦ã\82\82ã\80\81
+å\90\8cã\81\98ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿°ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bä»\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bé\96\93ã\81¯ã\80\81
+ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼å®\9bã\81«ã\82¤ã\83\99ã\83³ã\83\88ã\81\8cå ±å\91\8aã\81\95ã\82\8cã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\81¨ ã\81\84ã\81\86ã\81\93ã\81¨ã\82\92æ\84\8få\91³ã\81\99ã\82\8bã\80\82
.TP
\fBQ7\fP
2 つ以上のイベントが \fBepoll_wait\fP(2) コールの間に発生した場合、それらはまとめて報告されるか、 それとも別々に報告されるか?
まとめて報告されるだろう。
.TP
\fBQ8\fP
-ファイルディスクリプタに対する操作は、 既に集められているがまだ報告されていないイベントに影響するか?
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\99ã\82\8bæ\93\8dä½\9cã\81¯ã\80\81 æ\97¢ã\81«é\9b\86ã\82\81ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8cã\81¾ã\81 å ±å\91\8aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\82¤ã\83\99ã\83³ã\83\88ã\81«å½±é\9f¿ã\81\99ã\82\8bã\81\8bï¼\9f
.TP
\fBA8\fP
-既存のファイルディスクリプタに対して 2 つの操作を行うことができる。 この場合、削除には意味がない。 変更すると、使用可能な I/O
+æ\97¢å\98ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ 2 ã\81¤ã\81®æ\93\8dä½\9cã\82\92è¡\8cã\81\86ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\81®å ´å\90\88ã\80\81å\89\8aé\99¤ã\81«ã\81¯æ\84\8få\91³ã\81\8cã\81ªã\81\84ã\80\82 å¤\89æ\9b´ã\81\99ã\82\8bã\81¨ã\80\81使ç\94¨å\8f¯è\83½ã\81ª I/O
が再び読み込まれる。
.TP
\fBQ9\fP
-\fBEPOLLET\fP フラグ (エッジトリガ動作) を使っている場合、 \fBEAGAIN\fP を受け取るまで、
-継続してファイルディスクリプタを読み書きする必要があるか?
+\fBEPOLLET\fP フラグ (エッジトリガー動作) を使っている場合、 \fBEAGAIN\fP を受け取るまで、
+ç¶\99ç¶\9aã\81\97ã\81¦ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92èªã\81¿æ\9b¸ã\81\8dã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\81\8bï¼\9f
.TP
\fBA9\fP
-\fBepoll_wait\fP(2) からイベントを受け取ることは、 そのファイルディスクリプタが要求された I/O 操作に対して準備済みである、
-ということをユーザに示すものである。 次の (ブロックしない) read/write で \fBEAGAIN\fP
-ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bã\81¾ã\81§ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯æº\96å\82\99æ¸\88ã\81¿ã\81§ã\81\82ã\82\8bã\81¨ è\80\83ã\81\88ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿をいつどのように使うかは、
-全くユーザに任されてる。
+\fBepoll_wait\fP(2) ã\81\8bã\82\89ã\82¤ã\83\99ã\83³ã\83\88ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bã\81\93ã\81¨ã\81¯ã\80\81 ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cè¦\81æ±\82ã\81\95ã\82\8cã\81\9f I/O æ\93\8dä½\9cã\81«å¯¾ã\81\97ã\81¦æº\96å\82\99æ¸\88ã\81¿ã\81§ã\81\82ã\82\8bã\80\81
+ã\81¨ã\81\84ã\81\86ã\81\93ã\81¨ã\82\92ã\83¦ã\83¼ã\82¶ã\83¼ã\81«ç¤ºã\81\99ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82 次ã\81® (ã\83\96ã\83ã\83\83ã\82¯ã\81\97ã\81ªã\81\84) read/write ã\81§ \fBEAGAIN\fP
+ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bã\81¾ã\81§ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯æº\96å\82\99æ¸\88ã\81¿ã\81§ã\81\82ã\82\8bã\81¨ è\80\83ã\81\88ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼をいつどのように使うかは、
+å\85¨ã\81\8fã\83¦ã\83¼ã\82¶ã\83¼ã\81«ä»»ã\81\95ã\82\8cã\81¦ã\82\8bã\80\82
.sp
パケット指向やトークン指向のファイル (例えば、データグラムソケット、 canonical モードの端末) では、 読み込み用 / 書き込み用の I/O
空間の末尾を検知する唯一の方法は \fBEAGAIN\fP になるまで read/write を行うことである。
.sp
ストリーム指向のファイル (例えば、パイプ、FIFO、ストリームソケット) では、 読み込み用 / 書き込み用の I/O 空間が使い尽くされた状態は、
-対象となるファイルディスクリプタから読み込んだデータ量または 書き込んだデータ量をチェックすることでも検知できる。
+対象ã\81¨ã\81ªã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8bã\82\89èªã\81¿è¾¼ã\82\93ã\81 ã\83\87ã\83¼ã\82¿é\87\8fã\81¾ã\81\9fã\81¯ æ\9b¸ã\81\8dè¾¼ã\82\93ã\81 ã\83\87ã\83¼ã\82¿é\87\8fã\82\92ã\83\81ã\82§ã\83\83ã\82¯ã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\82\82æ¤\9cç\9f¥ã\81§ã\81\8dã\82\8bã\80\82
例えば、ある特定の量のデータを読み込むために \fBread\fP(2) を呼んだときに、 \fBread\fP(2)
-ã\81\8cè¿\94ã\81\97ã\81\9fã\83\90ã\82¤ã\83\88æ\95°ã\81\8cã\81\9dã\82\8cã\82\88ã\82\8aå°\91ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\80\81 ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®èªã\81¿è¾¼ã\81¿ç\94¨ I/O 空é\96\93ã\81\8c 使ã\81\84å°½ã\81\8fã\81\95ã\82\8cã\81\9fã\81\93ã\81¨ã\81\8cå\88\86ã\81\8bã\82\8bã\80\82 \fBwrite\fP(2)
-を使って書き込みをするときも、同じことが言える (監視しているファイルディスクリプタが常にストリーム指向のファイルを
+ã\81\8cè¿\94ã\81\97ã\81\9fã\83\90ã\82¤ã\83\88æ\95°ã\81\8cã\81\9dã\82\8cã\82\88ã\82\8aå°\91ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\80\81 ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®èªã\81¿è¾¼ã\81¿ç\94¨ I/O 空é\96\93ã\81\8c 使ã\81\84å°½ã\81\8fã\81\95ã\82\8cã\81\9fã\81\93ã\81¨ã\81\8cå\88\86ã\81\8bã\82\8bã\80\82
+\fBwrite\fP(2) を使って書き込みをするときも、同じことが言える (監視しているファイルディスクリプターが常にストリーム指向のファイルを
参照していることを保証できない場合には、後者の手法の使用を避けること)。
.SS ありがちな落とし穴と回避方法
.TP
-\fBo 飢餓 (starvation) (エッジトリガ)\fP
+\fBo 飢餓 (starvation) (エッジトリガー)\fP
.PP
大きな I/O 空間がある場合、 その I/O 空間のデータを全て処理 (drain) しようとすると、
他のファイルが処理されず、飢餓を発生させることがある (この問題は \fBepoll\fP に固有のものではない)。
.PP
-この問題の解決法は、準備済み状態のリストを管理して、 関連する data 構造体の中でファイルディスクリプタが 利用可能であるとマークすることである。
+ã\81\93ã\81®å\95\8fé¡\8cã\81®è§£æ±ºæ³\95ã\81¯ã\80\81æº\96å\82\99æ¸\88ã\81¿ç\8a¶æ\85\8bã\81®ã\83ªã\82¹ã\83\88ã\82\92管ç\90\86ã\81\97ã\81¦ã\80\81 é\96¢é\80£ã\81\99ã\82\8b data æ§\8bé\80 ä½\93ã\81®ä¸ã\81§ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c å\88©ç\94¨å\8f¯è\83½ã\81§ã\81\82ã\82\8bã\81¨ã\83\9eã\83¼ã\82¯ã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\81\82ã\82\8bã\80\82
それによって、利用可能なすべてのファイルの中で どのファイルを処理する必要があるかを憶えることができ、 しかも順番に処理 (round robin)
-することができる。 既に利用可能であるファイルディスクリプタに対して それ以後に受け取るイベントを無視することもできる。
+ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 æ\97¢ã\81«å\88©ç\94¨å\8f¯è\83½ã\81§ã\81\82ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦ ã\81\9dã\82\8c以å¾\8cã\81«å\8f\97ã\81\91å\8f\96ã\82\8bã\82¤ã\83\99ã\83³ã\83\88ã\82\92ç\84¡è¦\96ã\81\99ã\82\8bã\81\93ã\81¨ã\82\82ã\81§ã\81\8dã\82\8bã\80\82
.TP
\fBo イベントキャッシュを使っている場合\fP
.PP
-イベントキャッシュを使っている場合、 または \fBepoll_wait\fP(2) から返された全てのファイルディスクリプタを格納している場合、
+ã\82¤ã\83\99ã\83³ã\83\88ã\82ã\83£ã\83\83ã\82·ã\83¥ã\82\92使ã\81£ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81 ã\81¾ã\81\9fã\81¯ \fBepoll_wait\fP(2) ã\81\8bã\82\89è¿\94ã\81\95ã\82\8cã\81\9få\85¨ã\81¦ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92æ ¼ç´\8dã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81
クローズされたことを動的にマークする (つまり前のイベントの処理によってマークされる) 方法を提供すべきである。 \fBepoll_wait\fP(2)
から 100 個のイベントを受け取り、 イベント #47 ではある条件でイベント #13 が閉じられると仮定する。 イベント #13
-ã\81®æ§\8bé\80 ä½\93ã\82\92å\89\8aé\99¤ã\81\97ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92 \fBclose\fP(2) ã\81\99ã\82\8bã\81¨ã\80\81ã\82¤ã\83\99ã\83³ã\83\88ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81¯ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を待つイベントが
+ã\81®æ§\8bé\80 ä½\93ã\82\92å\89\8aé\99¤ã\81\97ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92 \fBclose\fP(2) ã\81\99ã\82\8bã\81¨ã\80\81ã\82¤ã\83\99ã\83³ã\83\88ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81¯ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を待つイベントが
存在するといって、混乱が起きる。
.PP
-この問題を解決する 1 つの方法は、イベント 47 の処理をしている間に、 ファイルディスクリプタ 13 を削除して \fBclose\fP(2)
+この問題を解決する 1 つの方法は、イベント 47 の処理をしている間に、 ファイルディスクリプター 13 を削除して \fBclose\fP(2)
するために \fBepoll_ctl\fP(\fBEPOLL_CTL_DEL\fP) を呼び出し、関連付けられた data 構造体を削除済みとマークして、
-クリーンアップリストにリンクすることである。 バッチ処理の中でファイルディスクリプタ 13 についての 他のイベントを見つけた場合、
-そのファイルディスクリプタが以前に削除されたものであると分かるので、 混乱は起きない。
+クリーンアップリストにリンクすることである。 バッチ処理の中でファイルディスクリプター 13 についての 他のイベントを見つけた場合、
+ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8c以å\89\8dã\81«å\89\8aé\99¤ã\81\95ã\82\8cã\81\9fã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\81¨å\88\86ã\81\8bã\82\8bã\81®ã\81§ã\80\81 æ··ä¹±ã\81¯èµ·ã\81\8dã\81ªã\81\84ã\80\82
.SH バージョン
.\" Its interface should be finalized in Linux kernel 2.5.66.
\fBepoll\fP API は Linux カーネル 2.5.44 に導入された。 glibc でのサポートはバージョン 2.3.2 で追加された。
\fB#include <features.h>\fP
.fi
.SH 説明
-機能検査マクロ (feature test macro) により、プログラマは プログラムがコンパイルされる際にシステムのヘッダファイルにより
+æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83 (feature test macro) ã\81«ã\82\88ã\82\8aã\80\81ã\83\97ã\83ã\82°ã\83©ã\83\9eã\81¯ ã\83\97ã\83ã\82°ã\83©ã\83 ã\81\8cã\82³ã\83³ã\83\91ã\82¤ã\83«ã\81\95ã\82\8cã\82\8bé\9a\9bã\81«ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\82\88ã\82\8a
公開される定義を制御することができる。
-\fB注意:\fP 機能検査マクロを機能させるには、機能検査マクロの定義を 「どのヘッダファイルのインクルードよりも前で」行わなければならない。
+\fB注æ\84\8f:\fP æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83ã\82\92æ©\9fè\83½ã\81\95ã\81\9bã\82\8bã\81«ã\81¯ã\80\81æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83ã\81®å®\9a義ã\82\92 ã\80\8cã\81©ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\82\88ã\82\8aã\82\82å\89\8dã\81§ã\80\8dè¡\8cã\82\8fã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
これを実現するには、 コンパイルコマンドで指定する方法 (\fIcc \-DMACRO=value\fP) と、ソースコード内で必要なマクロの定義を
-どのヘッダのインクルードよりも前で行う方法がある。
+ã\81©ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\82\88ã\82\8aã\82\82å\89\8dã\81§è¡\8cã\81\86æ\96¹æ³\95ã\81\8cã\81\82ã\82\8bã\80\82
機能検査マクロを使うと、非標準の定義が公開されないようにでき、 移植性のあるアプリケーションを作成するのに役立つ。
他のマクロを使うと、デフォルトでは公開されない非標準の定義を 公開することができる。 以下で説明する機能検査マクロのそれぞれの正確な影響を確認するには、
-ヘッダファイル \fI<features.h>\fP を調べればよい。
+ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83« \fI<features.h>\fP ã\82\92調ã\81¹ã\82\8cã\81°ã\82\88ã\81\84ã\80\82
.SS マニュアルページでの機能検査マクロの要件の規定
関数が機能検査マクロの定義を必要とする場合、 マニュアルページの書式 (SYNOPSIS) の節に 以下の形式の注釈を入れる (以下の例は
\fBacct\fP(2) のマニュアルページからの引用である)。
.RE
.PP
\fB||\fP は、 \fBacct\fP(2) の定義を \fI<unistd.h>\fP
-から得るには、以下のマクロの定義のいずれかを、どのヘッダファイルの インクルードよりも前で行わなければならないことを意味する。
+ã\81\8bã\82\89å¾\97ã\82\8bã\81«ã\81¯ã\80\81以ä¸\8bã\81®ã\83\9eã\82¯ã\83ã\81®å®\9a義ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\82\92ã\80\81ã\81©ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81® ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\82\88ã\82\8aã\82\82å\89\8dã\81§è¡\8cã\82\8fã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\81\93ã\81¨ã\82\92æ\84\8få\91³ã\81\99ã\82\8bã\80\82
.RS
.nf
このマクロは暗黙のうちに定義される。
.TP
\fB_POSIX_C_SOURCE\fP
-このマクロを定義すると、ヘッダファイルで以下の定義が公開される。
+ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\82\92å®\9a義ã\81\99ã\82\8bã\81¨ã\80\81ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81§ä»¥ä¸\8bã\81®å®\9a義ã\81\8cå\85¬é\96\8bã\81\95ã\82\8cã\82\8bã\80\82
.RS
.IP \(bu 3
値が 1 の場合、POSIX.1\-1990 と ISO C (1990) に準拠する定義が公開される。
このマクロは廃止予定である。 このマクロが定義されると、値に関わらず、 \fB_POSIX_C_SOURCE\fP を値 1 で定義するのと等価となる。
.TP
\fB_XOPEN_SOURCE\fP
-このマクロを定義すると、ヘッダファイルで以下の定義が公開される。
+ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\82\92å®\9a義ã\81\99ã\82\8bã\81¨ã\80\81ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81§ä»¥ä¸\8bã\81®å®\9a義ã\81\8cå\85¬é\96\8bã\81\95ã\82\8cã\82\8bã\80\82
.RS
.IP \(bu 3
-どんな値でも、ヘッダファイルで POSIX.1, POSIX.2, XPG4 に準拠する定義が公開される。
+ã\81©ã\82\93ã\81ªå\80¤ã\81§ã\82\82ã\80\81ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81§ POSIX.1, POSIX.2, XPG4 ã\81«æº\96æ\8b ã\81\99ã\82\8bå®\9a義ã\81\8cå\85¬é\96\8bã\81\95ã\82\8cã\82\8bã\80\82
.IP \(bu
値が 500 以上の場合、 SUSv2 (UNIX 98) 関連の定義が追加で公開される。
.IP \(bu
64 ビットシステムは、もともと 2 ギガバイトより大きなファイルを 扱えるので、64 ビットシステムではこのマクロは効果を持たない。
.TP
\fB_BSD_SOURCE\fP (glibc 2.20 以降では非推奨)
-このマクロを定義すると、値に関わらず、ヘッダファイルで BSD 由来の定義が公開される。
+ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\82\92å®\9a義ã\81\99ã\82\8bã\81¨ã\80\81å\80¤ã\81«é\96¢ã\82\8fã\82\89ã\81\9aã\80\81ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81§ BSD ç\94±æ\9d¥ã\81®å®\9a義ã\81\8cå\85¬é\96\8bã\81\95ã\82\8cã\82\8bã\80\82
バージョン 2.18 以前の glibc では、このマクロを定義すると、相容れない標準が存在する状況において BSD 由来の定義を優先するようになる。
ただし、 \fB_SVID_SOURCE\fP, \fB_POSIX_SOURCE\fP, \fB_POSIX_C_SOURCE\fP,
\fB_DEFAULT_SOURCE\fP の\fI両方\fPを定義すること。
.TP
\fB_SVID_SOURCE\fP (glibc 2.20 以降では非推奨)
-このマクロを定義すると (値に関わらず) ヘッダファイルで System V 由来の定義が公開される (SVID == System V
+ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\82\92å®\9a義ã\81\99ã\82\8bã\81¨ (å\80¤ã\81«é\96¢ã\82\8fã\82\89ã\81\9a) ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81§ System V ç\94±æ\9d¥ã\81®å®\9a義ã\81\8cå\85¬é\96\8bã\81\95ã\82\8cã\82\8b (SVID == System V
Interface Definition; \fBstandards\fP(7) 参照)。
glibc 2.20 以降、 \fB_BSD_SOURCE\fP と同様にこのマクロは非推奨となっている。
.TP
\fB_ATFILE_SOURCE\fP (glibc 2.4 以降)
-ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\82\92å®\9a義ã\81\99ã\82\8bã\81¨ (å\80¤ã\81«é\96¢ã\82\8fã\82\89ã\81\9a) ã\83\98ã\83\83ã\83\80ã\83\95ã\82¡ã\82¤ã\83«ã\81§ å\90\8då\89\8dã\81®æ\9c«å°¾ã\81\8c "at" ã\81®å\90\84種ã\81®é\96¢æ\95°ã\81®å®\9a義ã\81\8cå\85¬é\96\8bã\81\95ã\82\8cã\82\8bã\80\82 \fBopenat\fP(2) å\8f\82ç\85§ã\80\82
-glibc 2.10 以降では、 \fB_POSIX_C_SOURCE\fP が 200809L 以上の値で定義された場合には、
+ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\82\92å®\9a義ã\81\99ã\82\8bã\81¨ (å\80¤ã\81«é\96¢ã\82\8fã\82\89ã\81\9a) ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81§ å\90\8då\89\8dã\81®æ\9c«å°¾ã\81\8c "at" ã\81®å\90\84種ã\81®é\96¢æ\95°ã\81®å®\9a義ã\81\8cå\85¬é\96\8bã\81\95ã\82\8cã\82\8bã\80\82 \fBopenat\fP(2)
+参照。 glibc 2.10 以降では、 \fB_POSIX_C_SOURCE\fP が 200809L 以上の値で定義された場合には、
このマクロも暗黙のうちに定義される。
.TP
\fB_GNU_SOURCE\fP
\fB_SVID_SOURCE\fP も暗黙のうちに定義されていた。
.TP
\fB_REENTRANT\fP
-ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\82\92å®\9a義ã\81\99ã\82\8bã\81¨ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\83ªã\82¨ã\83³ã\83\88ã\83©ã\83³ã\83\88 (å\86\8då\85¥å\8f¯è\83½) ã\81ªé\96¢æ\95° å®\9a義ã\81\8cå\85¬é\96\8bã\81\95ã\82\8cã\82\8bã\80\82ã\83\9eã\83«ã\83\81ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\81¯ã\80\81ã\81\93ã\81®ä»£ã\82\8fã\82\8aã\81« \fIcc\ \-pthread\fP ã\82\92使ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82
+このマクロを定義すると、いくつかのリエントラント (再入可能) な関数 定義が公開される。マルチスレッドプログラムでは、この代わりに \fIcc\ \-pthread\fP を使用すること。
.TP
\fB_THREAD_SAFE\fP
\fB_REENTRANT\fP の同義語。 他のいくつかの実装との互換性を提供するためのもの。
.\" * From: Jakub Jelinek <jakub at redhat dot com>
.\" * To: gcc-patches at gcc dot gnu dot org
.\" * Date: Tue, 21 Sep 2004 04:16:40 -0400
-ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\82\92å®\9a義ã\81\99ã\82\8bã\81¨ã\80\81æ\96\87å\97å\88\97ã\82\84ã\83¡ã\83¢ã\83ªã\81®æ\93\8dä½\9cã\82\92è¡\8cã\81\86æ§\98ã\80\85ã\81ªé\96¢æ\95°ã\82\92使ç\94¨ã\81\99ã\82\8bé\9a\9bã\81«ã\83\90ã\83\83ã\83\95ã\82¡ã\82ªã\83¼ã\83\90ã\83¼ã\83\95ã\83ã\83¼ã\82\92æ¤\9cå\87ºã\81\99ã\82\8bã\81\9fã\82\81ã\81®è»½ã\82\81ã\81®ã\83\81ã\82§ã\83\83ã\82¯ã\81\8cå®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\82\8bã\80\82ã\81\99ã\81¹ã\81¦ã\81®ã\83\90ã\83\83ã\83\95ã\82¡オーバーフローが検出されるわけではなく、あくまでよくある例についてだけである。
+ã\81\93ã\81®ã\83\9eã\82¯ã\83ã\82\92å®\9a義ã\81\99ã\82\8bã\81¨ã\80\81æ\96\87å\97å\88\97ã\82\84ã\83¡ã\83¢ã\83ªã\83¼ã\81®æ\93\8dä½\9cã\82\92è¡\8cã\81\86æ§\98ã\80\85ã\81ªé\96¢æ\95°ã\82\92使ç\94¨ã\81\99ã\82\8bé\9a\9bã\81«ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82ªã\83¼ã\83\90ã\83¼ã\83\95ã\83ã\83¼ã\82\92æ¤\9cå\87ºã\81\99ã\82\8bã\81\9fã\82\81ã\81®è»½ã\82\81ã\81®ã\83\81ã\82§ã\83\83ã\82¯ã\81\8cå®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\82\8bã\80\82ã\81\99ã\81¹ã\81¦ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼オーバーフローが検出されるわけではなく、あくまでよくある例についてだけである。
ついてだけである。 現在の実装では、以下の関数にチェックが追加されている: \fBmemcpy\fP(3), \fBmempcpy\fP(3),
\fBmemmove\fP(3), \fBmemset\fP(3), \fBstpcpy\fP(3), \fBstrcpy\fP(3), \fBstrncpy\fP(3),
\fB_GNU_SOURCE\fP, \fB_FORTIFY_SOURCE\fP, \fB_REENTRANT\fP, \fB_THREAD_SAFE\fP は Linux
(glibc) 固有である。
.SH 注意
-\fI<features.h>\fP は Linux/glibc 固有のヘッダファイルである。
-ä»\96ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\81«ã\82\82å\90\8cæ§\98ã\81®ç\9b®ç\9a\84ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cã\81\82ã\82\8bã\81\8cã\80\81æ\99®é\80\9aã\81¯é\81\95ã\81\86å\90\8då\89\8dã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81ä»\96ã\81®ã\83\98ã\83\83ã\83\80ファイルにより必要に応じて
+\fI<features.h>\fP ã\81¯ Linux/glibc å\9bºæ\9c\89ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81§ã\81\82ã\82\8bã\80\82
+ä»\96ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\81«ã\82\82å\90\8cæ§\98ã\81®ç\9b®ç\9a\84ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cã\81\82ã\82\8bã\81\8cã\80\81æ\99®é\80\9aã\81¯é\81\95ã\81\86å\90\8då\89\8dã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81ä»\96ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ファイルにより必要に応じて
自動的にインクルードされる。機能検査マクロを利用するために 明示的にインクルードする必要はない。
上記の機能検査マクロのうちどれが定義されたかにしたがって、 \fI<features.h>\fP は、他の glibc
-ヘッダファイルでチェックされる各種の他のマクロを、 内部で定義する。これらのマクロの名前はアンダースコア 2つで始まる (例えば
-\fB__USE_MISC\fP)。 ユーザプログラムはこれらのマクロを \fI決して\fP 直接定義すべきではない。
+ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81§ã\83\81ã\82§ã\83\83ã\82¯ã\81\95ã\82\8cã\82\8bå\90\84種ã\81®ä»\96ã\81®ã\83\9eã\82¯ã\83ã\82\92ã\80\81 å\86\85é\83¨ã\81§å®\9a義ã\81\99ã\82\8bã\80\82ã\81\93ã\82\8cã\82\89ã\81®ã\83\9eã\82¯ã\83ã\81®å\90\8då\89\8dã\81¯ã\82¢ã\83³ã\83\80ã\83¼ã\82¹ã\82³ã\82¢ 2ã\81¤ã\81§å§\8bã\81¾ã\82\8b (ä¾\8bã\81\88ã\81°
+\fB__USE_MISC\fP)ã\80\82 ã\83¦ã\83¼ã\82¶ã\83¼ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\81\93ã\82\8cã\82\89ã\81®ã\83\9eã\82¯ã\83ã\82\92 \fI決ã\81\97ã\81¦\fP ç\9b´æ\8e¥å®\9a義ã\81\99ã\81¹ã\81\8dã\81§ã\81¯ã\81ªã\81\84ã\80\82
代わりに、上記のリストにある適切な機能検査マクロを利用すべきである。
.SH 例
下記のプログラムを使うと、各種の機能検査マクロが glibc のバージョン に応じてどのように設定されるかや、どの機能検査マクロが明示的に
-è¨å®\9aã\81\95ã\82\8cã\82\8bã\81\8bã\80\81ã\82\92調ã\81¹ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 以ä¸\8bã\81«ç¤ºã\81\99ã\82·ã\82§ã\83«ã\83»ã\82»ã\83\83ã\82·ã\83§ã\83³ã\81¯ã\80\81 glibc 2.10 ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81®å®\9fè¡\8cçµ\90æ\9e\9cã\81®ä¾\8bã\81§ã\81\82ã\82\8bã\80\82
+設定されるか、を調べることができる。 以下に示すシェルセッションは、 glibc 2.10 のシステムでの実行結果の例である。
.in +4n
.nf
FIFO 特殊ファイル(名前付きパイプ)はパイプに似ているが、 ファイルシステムの一部に関連付けられている点が異っている。
複数のプロセスが読み込みや書き込みのためにオープンすること ができる。プロセスが FIFO を通しデータを交換する場合、
実際にそれをファイルシステムには書き込まず、カーネルは全ての データを内部的に渡す。このように、FIFO 特殊ファイルはファイルシステム
-上には内容を持たないので、ファイルシステムのエントリは プロセスがそのファイルシステム上の名前を使用してそのパイプに
+ä¸\8aã\81«ã\81¯å\86\85容ã\82\92æ\8c\81ã\81\9fã\81ªã\81\84ã\81®ã\81§ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81®å\90\8då\89\8dã\82\92使ç\94¨ã\81\97ã\81¦ã\81\9dã\81®ã\83\91ã\82¤ã\83\97ã\81«
アクセスできるように参照ポイントを提供しているに過ぎない。
.PP
カーネルは、少なくとも一つのプロセスによってオープンされている FIFO 特殊ファイルについて、それぞれ一つのパイプのみを管理している。
.\"
.TH FUTEX 7 2012\-08\-05 Linux "Linux Programmer's Manual"
.SH 名前
-futex \- 高速ユーザ空間ロック機構
+futex \- 高速ユーザー空間ロック機構
.SH 書式
.nf
\fB#include <linux/futex.h>\fP
.fi
.SH 説明
.PP
-Linux カーネルは、ユーザ空間で高速なロック機構やセマフォを使用するための 基礎的要素として futex ("Fast user\-space
-mutexes"; 高速ユーザ空間 mutex) を 提供している。 futex は非常に基本的なもので、 POSIX mutex
+Linux カーネルは、ユーザー空間で高速なロック機構やセマフォを使用するための 基礎的要素として futex ("Fast user\-space
+mutexes"; 高速ユーザー空間 mutex) を 提供している。 futex は非常に基本的なもので、 POSIX mutex
のような高度なロック機構の概念を構築するのに役立っている。
.PP
このページはすべての設計決定を記述するようにはなっておらず、 アプリケーションやライブラリの開発に関係することがらに限っている。
実際にはプログラマの多くは直接は futex を扱わないが、その代わり futex に基づいて構築されたシステムライブラリ (例えば NPTL
スレッド) に 依存することになるだろう。
.PP
-futex は異なるプロセス間で共有することのできるメモリ片で識別される。 これらの異なるプロセスでは、同じアドレスが付与されている必要はない。
+futex は異なるプロセス間で共有することのできるメモリー片で識別される。 これらの異なるプロセスでは、同じアドレスが付与されている必要はない。
裸の姿では futex のセマンティクスはセマフォと同じである。 futex は不可分操作で (atomically)
-インクリメントしたりデクリメントしたりできる カウンタで、プロセスは値が正になるのを待つことができる。
+ã\82¤ã\83³ã\82¯ã\83ªã\83¡ã\83³ã\83\88ã\81\97ã\81\9fã\82\8aã\83\87ã\82¯ã\83ªã\83¡ã\83³ã\83\88ã\81\97ã\81\9fã\82\8aã\81§ã\81\8dã\82\8b ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81§ã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81¯å\80¤ã\81\8cæ£ã\81«ã\81ªã\82\8bã\81®ã\82\92å¾\85ã\81¤ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
.PP
-futex の操作は、競合がない場合には完全にユーザ空間で行なわれる。 カーネルは競合が起こった場合の仲裁に関与するだけである。
+futex の操作は、競合がない場合には完全にユーザー空間で行なわれる。 カーネルは競合が起こった場合の仲裁に関与するだけである。
良識ある設計では競合が起こらないよう努力するが、 futex も競合状態に関して最適化されている。
.PP
裸の姿では、 futex は不可分なアセンブリ命令でのみ操作される アラインメントの揃った int 型の変数である。 複数のプロセスはこの int
-å\9e\8bå¤\89æ\95°ã\82\92ã\80\81 \fBmmap\fP(2) ã\82\92ç\94¨ã\81\84ã\82\8bã\81\8bã\80\81 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92ä»\8bã\81\99ã\82\8bã\81\8bã\80\81 ã\83¡ã\83¢ã\83ª空間を共有する (この場合、
-ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81¯ä¸\80è\88¬ç\9a\84ã\81«ã\83\9eã\83«ã\83\81ã\83»ã\82¹ã\83¬ã\83\83ã\83\89ã\81§ã\81\82ã\82\8bã\81¨å\91¼ã\81°ã\82\8cã\82\8b) ã\81\8bæ\96¹æ³\95ã\81§å\85±æ\9c\89ã\81\99ã\82\8bã\80\82
+å\9e\8bå¤\89æ\95°ã\82\92ã\80\81 \fBmmap\fP(2) ã\82\92ç\94¨ã\81\84ã\82\8bã\81\8bã\80\81 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92ä»\8bã\81\99ã\82\8bã\81\8bã\80\81 ã\83¡ã\83¢ã\83ªã\83¼空間を共有する (この場合、
+アプリケーションは一般的にマルチスレッドであると呼ばれる) か方法で共有する。
.SS セマンティクス
.PP
-futex の操作はすべてユーザ空間から始まるが、必要に応じて \fBfutex\fP(2) システムコールを用いてカーネルと通信する。
+futex の操作はすべてユーザー空間から始まるが、必要に応じて \fBfutex\fP(2) システムコールを用いてカーネルと通信する。
.PP
futex を "up" するには、 ホスト CPU に対し int 型変数を不可分操作でインクリメントするような、 適切なアセンブリ命令を実行する。
そのあと、実際に 0 から 1 に変化したかどうかをチェックし、 変化していれば待ちプロセス (waiter) はないということであり、操作は完了する。
これは競合のない場合であり、高速でよく起こるはずである。
.PP
-競合がある場合、不可分操作のインクリメントでカウンタは \-1 (または他の負の数)
-から変化する。これが検出されると、待ちプロセスがあるということである。 ユーザ空間ではカウンタを 1 に設定し、 \fBFUTEX_WAKE\fP
+競å\90\88ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\80\81ä¸\8då\8f¯å\88\86æ\93\8dä½\9cã\81®ã\82¤ã\83³ã\82¯ã\83ªã\83¡ã\83³ã\83\88ã\81§ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\81¯ \-1 (ã\81¾ã\81\9fã\81¯ä»\96ã\81®è² ã\81®æ\95°)
+から変化する。これが検出されると、待ちプロセスがあるということである。 ユーザー空間ではカウンターを 1 に設定し、 \fBFUTEX_WAKE\fP
を用いてカーネルに待ちプロセスを wake (起床) させるよう指示する。
.PP
-futex ã\81®ç\8d²å¾\97ã\82\92å¾\85ã\81¤ã\80\81ã\81\99ã\81ªã\82\8fã\81¡ futex ã\82\92 "down" ã\81\99ã\82\8bã\81«ã\81¯å\8f\8d対ã\81®æ\93\8dä½\9cã\82\92è¡\8cã\81ªã\81\86ã\80\82 ä¸\8då\8f¯å\88\86æ\93\8dä½\9cã\81§ã\82«ã\82¦ã\83³ã\82¿ã\82\92ã\83\87ã\82¯ã\83ªã\83¡ã\83³ã\83\88ã\81\97ã\80\81ã\82«ã\82¦ã\83³ã\82¿が 0
+futex ã\81®ç\8d²å¾\97ã\82\92å¾\85ã\81¤ã\80\81ã\81\99ã\81ªã\82\8fã\81¡ futex ã\82\92 "down" ã\81\99ã\82\8bã\81«ã\81¯å\8f\8d対ã\81®æ\93\8dä½\9cã\82\92è¡\8cã\81ªã\81\86ã\80\82 ä¸\8då\8f¯å\88\86æ\93\8dä½\9cã\81§ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\82\92ã\83\87ã\82¯ã\83ªã\83¡ã\83³ã\83\88ã\81\97ã\80\81ã\82«ã\82¦ã\83³ã\82¿ã\83¼が 0
に変化したかどうかを チェックする。変化していれば操作は完了し futex は競合していないということである。 0
-ã\81«ã\81ªã\82\89ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\82«ã\82¦ã\83³ã\82¿ã\82\92 \-1 ã\81«è¨å®\9aã\81\97ã\80\81 ä»\96ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\81\9dã\81® futex ã\82\92 up ã\81\99ã\82\8bã\81®ã\82\92å¾\85ã\81¤ã\82\88ã\81\86ã\82«ã\83¼ã\83\8dã\83«ã\81«è¦\81æ±\82ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
-これは \fBFUTEX_WAIT\fP を行なうことで実現される。
+ã\81«ã\81ªã\82\89ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81¯ã\82«ã\82¦ã\83³ã\82¿ã\83¼ã\82\92 \-1 ã\81«è¨å®\9aã\81\97ã\80\81 ä»\96ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\81\9dã\81® futex ã\82\92 up
+ã\81\99ã\82\8bã\81®ã\82\92å¾\85ã\81¤ã\82\88ã\81\86ã\82«ã\83¼ã\83\8dã\83«ã\81«è¦\81æ±\82ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\81\93ã\82\8cã\81¯ \fBFUTEX_WAIT\fP ã\82\92è¡\8cã\81ªã\81\86ã\81\93ã\81¨ã\81§å®\9fç\8f¾ã\81\95ã\82\8cã\82\8bã\80\82
.PP
\fBfutex\fP(2) システムコールには、省略可能な引数としてタイムアウトを渡すことができ、 カーネルはその futex が up
されるのをどれくらいの期間待つべきかを 指定することができる。この場合、セマンティクスはもっと複雑になるため、 より詳細な情報を得るにはプログラマは
2.5.40 以降で利用可能である。
.SH 注意
.PP
-再び繰り返しておくが、裸の futex はエンドユーザが容易に使える概念として 意図されたものではない。
-実装者は、アセンブリ言語に慣れており、以下に挙げる futex ユーザ空間ライブラリの ソースを読み終えていることが要求される。
+å\86\8dã\81³ç¹°ã\82\8aè¿\94ã\81\97ã\81¦ã\81\8aã\81\8fã\81\8cã\80\81裸ã\81® futex ã\81¯ã\82¨ã\83³ã\83\89ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8c容æ\98\93ã\81«ä½¿ã\81\88ã\82\8bæ¦\82念ã\81¨ã\81\97ã\81¦ æ\84\8få\9b³ã\81\95ã\82\8cã\81\9fã\82\82ã\81®ã\81§ã\81¯ã\81ªã\81\84ã\80\82
+実装者は、アセンブリ言語に慣れており、以下に挙げる futex ユーザー空間ライブラリの ソースを読み終えていることが要求される。
.PP
.\" .SH "AUTHORS"
.\" .PP
また三つのタイプをブラケット表記の要素として追加している。
(iii) 領域指定 X\-Y は X と Y に挟まれた (両端含む) すべての文字を意味する。 このとき、カレントロケール (current
-locale) の \fBLC_COLLATE\fP カテゴリで定義されている照合順序が用いられる。
+locale) ã\81® \fBLC_COLLATE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81§å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bç\85§å\90\88é \86åº\8fã\81\8cç\94¨ã\81\84ã\82\89ã\82\8cã\82\8bã\80\82
(iv) 名前付き文字クラス: 以下のようなものである。
.nf
.fi
これを用いれば "\fI[a\-z]\fP" の代わりに "\fI[[:lower:]]\fP" のような指定ができる。 またデンマークのように、アルファベットの
\(aqz\(aq 以降に 3 つの文字が存在するような場合でも、同じような動作が期待できる。 これらの文字クラスはカレントロケールの
-\fBLC_CTYPE\fP カテゴリで定義されている。
+\fBLC_CTYPE\fP ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81§å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
(v) 照合順序におけるシンボル: "\fI[.ch.]\fP" や "\fI[.a\-acute.]\fP" のように "\fI[.\fP" と "\fI.]\fP"
で挟まれた文字列は、カレントロケールで定義された照合順序の要素となる。 ある一つの要素が複数の文字からなる場合もありうることに注意。
このディレクトリには、シングルユーザーモードで システムの起動や修理を行う際に必要な実行形式ファイルが含まれる。
.TP
\fI/boot\fP
-ブートローダが用いる静的なファイルが含まれている。 このディレクトリにはブートプロセスの間に必要なファイルだけが置かれる。
+ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83¼ã\81\8cç\94¨ã\81\84ã\82\8bé\9d\99ç\9a\84ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81«ã\81¯ã\83\96ã\83¼ã\83\88ã\83\97ã\83ã\82»ã\82¹ã\81®é\96\93ã\81«å¿\85è¦\81ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\81 ã\81\91ã\81\8cç½®ã\81\8bã\82\8cã\82\8bã\80\82
マップインストーラや設定ファイルは \fI/sbin\fP や \fI/etc\fP に置くべきである。
.TP
\fI/dev\fP
ファイルシステムは、実行中プロセスやカーネルの情報を提供する。 この疑似ファイルシステムの詳細は、 \fBproc\fP(5) で説明されている。
.TP
\fI/root\fP
-通常ここが root ユーザのホームディレクトリになる (なくてもよい)。
+é\80\9a常ã\81\93ã\81\93ã\81\8c root ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\9bã\83¼ã\83 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81«ã\81ªã\82\8b (ã\81ªã\81\8fã\81¦ã\82\82ã\82\88ã\81\84)ã\80\82
.TP
\fI/sbin\fP
\fI/bin\fP と同様に、 このディレクトリにはシステムの起動に必要なコマンドが含まれる。
ここには、システムのリリースのたびごとに変更されうる情報が含まれる。 ここは以前は \fI/usr/src/linux/include/linux\fP
にシンボリックリンクされており、 オペレーティングシステム固有の情報が得られるようになっていた。
-(ここに置くインクルードファイルは、 現在の libc およびユーザ空間で正しく動作するものでなければならない。 しかし Linux のカーネルソースは
-ユーザプログラムといっしょに使うようには設計されていないし、 あなたが使っている libc も関知しない。 \fI/usr/include/asm\fP と
-\fI/usr/include/linux\fP を適当なカーネルツリーへのリンクにしたりすると、破綻するのは目に見えている。 Debian
-ではこうせずに、libc*\-dev package が提供する、 安定したカーネルバージョンのヘッダファイルを置いている。)
+(ここに置くインクルードファイルは、 現在の libc およびユーザー空間で正しく動作するものでなければならない。 しかし Linux
+のカーネルソースは ユーザープログラムといっしょに使うようには設計されていないし、 あなたが使っている libc も関知しない。
+\fI/usr/include/asm\fP と \fI/usr/include/linux\fP
+を適当なカーネルツリーへのリンクにしたりすると、破綻するのは目に見えている。 Debian ではこうせずに、libc*\-dev package
+が提供する、 安定したカーネルバージョンのヘッダーファイルを置いている。)
.TP
\fI/usr/include/g++\fP
GNU C++ コンパイラ用のインクルードファイルが含まれている。
サイトローカルにインストールされたプログラムの関連ファイルの置き場所。
.TP
\fI/usr/local/include\fP
-ローカルな C コンパイラのヘッダファイルの置き場所。
+ã\83ã\83¼ã\82«ã\83«ã\81ª C ã\82³ã\83³ã\83\91ã\82¤ã\83©ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81®ç½®ã\81\8då ´æ\89\80ã\80\82
.TP
\fI/usr/local/info\fP
サイトローカルにインストールされたプログラムの info ページの置き場所。
サイトローカルにインストールされたシステム管理コマンドの置き場所。
.TP
\fI/usr/local/share\fP
-同じ OS ならアーキテクチャが異なっても共有できる、 ローカルなアプリケーションデータの置き場所。
+å\90\8cã\81\98 OS ã\81ªã\82\89ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81\8cç\95°ã\81ªã\81£ã\81¦ã\82\82å\85±æ\9c\89ã\81§ã\81\8dã\82\8bã\80\81 ã\83ã\83¼ã\82«ã\83«ã\81ªã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\83\87ã\83¼ã\82¿ã\81®ç½®ã\81\8då ´æ\89\80ã\80\82
.TP
\fI/usr/local/src\fP
サイトローカルにインストールされたソフトウェアのソースコードの置き場所。
のマウント、システムの修理などに必要なものであってはならない。
.TP
\fI/usr/share\fP
-このディレクトリには、アプリケーションごとに固有なデータ (同じ OS ならアーキテクチャが違っていても共有できるもの)
+ã\81\93ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81«ã\81¯ã\80\81ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81\94ã\81¨ã\81«å\9bºæ\9c\89ã\81ªã\83\87ã\83¼ã\82¿ (å\90\8cã\81\98 OS ã\81ªã\82\89ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81\8cé\81\95ã\81£ã\81¦ã\81\84ã\81¦ã\82\82å\85±æ\9c\89ã\81§ã\81\8dã\82\8bã\82\82ã\81®)
がサブディレクトリ単位で置かれる。 以前には \fI/usr/doc\fP, \fI/usr/lib\fP, \fI/usr/man\fP
などにあった内容が、多くここに置かれている。
.TP
すべてのマニュアルページで同じ言語とコードセットを使用するシステムでは、 \fI<locale>\fP は省略されることがある。
.TP
\fI/usr/share/misc\fP
-同じ OS ならアーキテクチャが違っていても共有できる、雑多なデータの置き場所。
+å\90\8cã\81\98 OS ã\81ªã\82\89ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81\8cé\81\95ã\81£ã\81¦ã\81\84ã\81¦ã\82\82å\85±æ\9c\89ã\81§ã\81\8dã\82\8bã\80\81é\9b\91å¤\9aã\81ªã\83\87ã\83¼ã\82¿ã\81®ç½®ã\81\8då ´æ\89\80ã\80\82
.TP
\fI/usr/share/nls\fP
母国語サポート (native language support) 用のメッセージカタログの置き場所。
\fI/opt\fP 用の可変データの置き場所。
.TP
\fI/var/mail\fP
-ユーザのメールボックスの置き場所。 \fI/var/spool/mail\fP を置き換えた。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83¡ã\83¼ã\83«ã\83\9cã\83\83ã\82¯ã\82¹ã\81®ç½®ã\81\8då ´æ\89\80ã\80\82 \fI/var/spool/mail\fP ã\82\92ç½®ã\81\8dæ\8f\9bã\81\88ã\81\9fã\80\82
.TP
\fI/var/msgs\fP
歴史的な理由からまだ残っている。
歴史的な理由からまだ残っている。
.TP
\fI/var/run\fP
-実行時の可変ファイルが置かれる。 例えばプロセス識別子 (PID) を保持するファイルや、 ユーザのログイン情報ファイル \fI(utmp)\fP
+å®\9fè¡\8cæ\99\82ã\81®å\8f¯å¤\89ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cç½®ã\81\8bã\82\8cã\82\8bã\80\82 ä¾\8bã\81\88ã\81°ã\83\97ã\83ã\82»ã\82¹è\98å\88¥å\90 (PID) ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\82\84ã\80\81 ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83ã\82°ã\82¤ã\83³æ\83\85å ±ã\83\95ã\82¡ã\82¤ã\83« \fI(utmp)\fP
などである。 ここのファイルは、通常システム起動時に削除される。
.TP
\fI/var/spool\fP
.LP
Linux では ICMP エラーパケットのレートをそれぞれの送り先に対して 制限している。 \fBICMP_REDIRECT\fP と
\fBICMP_DEST_UNREACH\fP も到着したパケットの行き先経路 (destination route) を制限する。
-.SS "/proc インタフェース"
+.SS "/proc ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹"
.\" FIXME . better description needed
-ICMP ã\81§ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82°ã\83ã\83¼ã\83\90ã\83«ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\82\92è¨å®\9aã\81\99ã\82\8bã\81\9fã\82\81ã\81® \fI/proc\fP ã\83\95ã\82¡ã\82¤ã\83«ç¾¤ã\81\8cç\94¨æ\84\8fã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿には、
-\fI/proc/sys/net/ipv4/\fP ディレクトリ内のファイルの読み書きでアクセスできる。 これらのパラメータのほとんどは特定の ICMP
+ICMP ã\81§ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82°ã\83ã\83¼ã\83\90ã\83«ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8bã\81\9fã\82\81ã\81® \fI/proc\fP ã\83\95ã\82¡ã\82¤ã\83«ç¾¤ã\81\8cç\94¨æ\84\8fã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼には、
+\fI/proc/sys/net/ipv4/\fP ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªå\86\85ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®èªã\81¿æ\9b¸ã\81\8dã\81§ã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®ã\81»ã\81¨ã\82\93ã\81©ã\81¯ç\89¹å®\9aã\81® ICMP
タイプに対するレート制限 (rate limitation) である。 Linux 2.2 は ICMP の制限にトークンバケットフィルタ (token
bucket filter) を用いる。 それぞれの値は、バーストの後にトークンバケットフィルタがクリア
されるまでのタイムアウトを秒単位で表したものである。最小単位(jiffy)は システム依存の単位で i386 システムは通常 10ms、alpha や
.TP
\fIicmp_errors_use_inbound_ifaddr\fP (ブール値; デフォルト: 無効; Linux 2.6.12 以降)
.\" The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
-これを無効にすると、ICMP エラーメッセージは、 出力インタフェースのプライマリアドレスで送信される。
+ã\81\93ã\82\8cã\82\92ç\84¡å\8a¹ã\81«ã\81\99ã\82\8bã\81¨ã\80\81ICMP ã\82¨ã\83©ã\83¼ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81¯ã\80\81 å\87ºå\8a\9bã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®ã\83\97ã\83©ã\82¤ã\83\9eã\83ªã\82¢ã\83\89ã\83¬ã\82¹ã\81§é\80\81ä¿¡ã\81\95ã\82\8cã\82\8bã\80\82
-ã\81\93ã\82\8cã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81¨ã\80\81ã\82¨ã\83©ã\83¼ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81¯ ICMP ã\82¨ã\83©ã\83¼ã\81®å\8e\9få\9b ã\81¨ã\81ªã\81£ã\81\9fã\83\91ã\82±ã\83\83ã\83\88ã\82\92 å\8f\97ä¿¡ã\81\97ã\81\9fã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81®ã\83\97ã\83©ã\82¤ã\83\9eアドレスで送信される。
-この動作は、多くのネットワーク管理者がルータに対して期待しているものであり、 これにより複雑なネットワークレイアウトのデバッグがより容易になる。
+ã\81\93ã\82\8cã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81¨ã\80\81ã\82¨ã\83©ã\83¼ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81¯ ICMP ã\82¨ã\83©ã\83¼ã\81®å\8e\9få\9b ã\81¨ã\81ªã\81£ã\81\9fã\83\91ã\82±ã\83\83ã\83\88ã\82\92 å\8f\97ä¿¡ã\81\97ã\81\9fã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®ã\83\97ã\83©ã\82¤ã\83\9eã\83ªアドレスで送信される。
+ã\81\93ã\81®å\8b\95ä½\9cã\81¯ã\80\81å¤\9aã\81\8fã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ç®¡ç\90\86è\80\85ã\81\8cã\83«ã\83¼ã\82¿ã\83¼ã\81«å¯¾ã\81\97ã\81¦æ\9c\9få¾\85ã\81\97ã\81¦ã\81\84ã\82\8bã\82\82ã\81®ã\81§ã\81\82ã\82\8aã\80\81 ã\81\93ã\82\8cã\81«ã\82\88ã\82\8aè¤\87é\9b\91ã\81ªã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\83¬ã\82¤ã\82¢ã\82¦ã\83\88ã\81®ã\83\87ã\83\90ã\83\83ã\82°ã\81\8cã\82\88ã\82\8a容æ\98\93ã\81«ã\81ªã\82\8bã\80\82
-é\81¸æ\8a\9eã\81\95ã\82\8cã\81\9fã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81§ã\83\97ã\83©ã\82¤ã\83\9eã\83ªã\82¢ã\83\89ã\83¬ã\82¹ã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81 ã\81\93ã\81®è¨å®\9aã\81«é\96¢ã\82\8fã\82\89ã\81\9aã\80\81æ\9c\80å\88\9dã\81®ã\83«ã\83¼ã\83\97ã\83\90ã\83\83ã\82¯ä»¥å¤\96ã\81®ã\82¤ã\83³ã\82¿フェースで、
-プライマリアドレスを持つインタフェースのプライマリアドレスが使用される点に 注意すること。
+é\81¸æ\8a\9eã\81\95ã\82\8cã\81\9fã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81§ã\83\97ã\83©ã\82¤ã\83\9eã\83ªã\82¢ã\83\89ã\83¬ã\82¹ã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81 ã\81\93ã\81®è¨å®\9aã\81«é\96¢ã\82\8fã\82\89ã\81\9aã\80\81æ\9c\80å\88\9dã\81®ã\83«ã\83¼ã\83\97ã\83\90ã\83\83ã\82¯ä»¥å¤\96ã\81®ã\82¤ã\83³ã\82¿ã\83¼フェースで、
+ã\83\97ã\83©ã\82¤ã\83\9eã\83ªã\82¢ã\83\89ã\83¬ã\82¹ã\82\92æ\8c\81ã\81¤ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®ã\83\97ã\83©ã\82¤ã\83\9eã\83ªã\82¢ã\83\89ã\83¬ã\82¹ã\81\8c使ç\94¨ã\81\95ã\82\8cã\82\8bç\82¹ã\81« 注æ\84\8fã\81\99ã\82\8bã\81\93ã\81¨ã\80\82
.TP
\fIicmp_ignore_bogus_error_responses\fP (ブール値; デフォルト: 無効; Linux 2.2 以降)
.\" precisely: since 2.1.32
.\" The following taken from 2.6.28-rc4 Documentation/networking/ip-sysctl.txt
-ルータの中には、RFC1122 に違反し、ブロードキャストフレームに対して 偽の応答を送信するものがある。
-このような違反は通常カーネルの警告としてログに記録される。 このパラメータを有効にすると、カーネルはこのような警告を出さなくなり、
+ã\83«ã\83¼ã\82¿ã\83¼ã\81®ä¸ã\81«ã\81¯ã\80\81RFC1122 ã\81«é\81\95å\8f\8dã\81\97ã\80\81ã\83\96ã\83ã\83¼ã\83\89ã\82ã\83£ã\82¹ã\83\88ã\83\95ã\83¬ã\83¼ã\83 ã\81«å¯¾ã\81\97ã\81¦ å\81½ã\81®å¿\9cç\94ã\82\92é\80\81ä¿¡ã\81\99ã\82\8bã\82\82ã\81®ã\81\8cã\81\82ã\82\8bã\80\82
+ã\81\93ã\81®ã\82\88ã\81\86ã\81ªé\81\95å\8f\8dã\81¯é\80\9a常ã\82«ã\83¼ã\83\8dã\83«ã\81®è¦å\91\8aã\81¨ã\81\97ã\81¦ã\83ã\82°ã\81«è¨\98é\8c²ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81¨ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81¯ã\81\93ã\81®ã\82\88ã\81\86ã\81ªè¦å\91\8aã\82\92å\87ºã\81\95ã\81ªã\81\8fã\81ªã\82\8aã\80\81
ログファイルに雑音のような情報が記録されるのを避けることができる。
.TP
\fIicmp_paramprob_rate\fP (Linux 2.2 から 2.4.9 まで)
.\" Precisely: from 2.1.102
-\fBICMP_PARAMETERPROB\fP パケットの最大送信レート。 これらのパケットは不正な IP ヘッダを持つパケットが到着した場合に
+\fBICMP_PARAMETERPROB\fP ã\83\91ã\82±ã\83\83ã\83\88ã\81®æ\9c\80大é\80\81ä¿¡ã\83¬ã\83¼ã\83\88ã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\83\91ã\82±ã\83\83ã\83\88ã\81¯ä¸\8dæ£ã\81ª IP ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92æ\8c\81ã\81¤ã\83\91ã\82±ã\83\83ã\83\88ã\81\8cå\88°ç\9d\80ã\81\97ã\81\9få ´å\90\88ã\81«
送信される。
.TP
\fIicmp_ratelimit\fP (integer; default: 1000; Linux 2.4.10 以降)
\fBIN_DELETE | IN_ISDIR\fP イベントが生成される。
.RE
.SS "/proc インターフェース"
-以下のインターフェースは、inotify で消費される カーネルメモリの総量を制限するのに使用できる:
+以ä¸\8bã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ã\80\81inotify ã\81§æ¶\88è²»ã\81\95ã\82\8cã\82\8b ã\82«ã\83¼ã\83\8dã\83«ã\83¡ã\83¢ã\83ªã\83¼ã\81®ç·\8fé\87\8fã\82\92å\88¶é\99\90ã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81§ã\81\8dã\82\8b:
.TP
\fI/proc/sys/fs/inotify/max_queued_events\fP
このファイルの値は、アプリケーションが \fBinotify_init\fP(2) を呼び出すときに使用され、対応する inotify インスタンスについて
キューに入れられるイベントの数の上限を設定する。 この制限を超えたイベントは破棄されるが、 \fBIN_Q_OVERFLOW\fP イベントが常に生成される。
.TP
\fI/proc/sys/fs/inotify/max_user_instances\fP
-1 つの実ユーザ ID に対して生成できる inotify インスタンスの数の上限を指定する。
+1 つの実ユーザー ID に対して生成できる inotify インスタンスの数の上限を指定する。
.TP
\fI/proc/sys/fs/inotify/max_user_watches\fP
作成可能な監視対象の数の実 UID 単位の上限を指定する。
Linux 2.6.25 以降では、シグナル駆動 (signal\-driven) I/O の通知が inotify
ファイルディスクリプターについて利用可能である。 \fBfcntl\fP(2) に書かれている (\fBO_ASYNC\fP フラグを設定するための)
-\fBF_SETFL\fP, \fBF_SETOWN\fP, \fBF_SETSIG\fP の議論を参照のこと。 シグナルハンドラに渡される \fIsiginfo_t\fP
+\fBF_SETFL\fP, \fBF_SETOWN\fP, \fBF_SETSIG\fP ã\81®è°è«\96ã\82\92å\8f\82ç\85§ã\81®ã\81\93ã\81¨ã\80\82 ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«æ¸¡ã\81\95ã\82\8cã\82\8b \fIsiginfo_t\fP
構造体は、以下のフィールドが設定される (\fIsiginfo_t\fP は \fBsigaction\fP(2) で説明されている)。 \fIsi_fd\fP には
inotify ファイルディスクリプター番号が、 \fIsi_signo\fP にはシグナル番号が、 \fIsi_code\fP には \fBPOLL_IN\fP が、
\fIsi_band\fP には \fBPOLLIN\fP が設定される。
inotify ファイルディスクリプターに対して 連続して生成される出力 inotify イベントが同一の場合 (\fIwd\fP, \fImask\fP,
\fIcookie\fP, \fIname\fP が等しい場合)、 前のイベントがまだ読み込まれていなければ、 連続するイベントが 1 つのイベントにまとめられる
-(ただし「バグ」の節も参照のこと)。 これによりイベントキューに必要なカーネルメモリ量が減るが、
+(ただし「バグ」の節も参照のこと)。 これによりイベントキューに必要なカーネルメモリー量が減るが、
これはまたアプリケーションがファイルイベント数を信頼性を持って数えるのに inotify を使用できないということでもある。
inotify ファイルディスクリプターの読み込みで返されるイベントは、 順序付けられたキューになる。
\fBFIONREAD\fP \fBioctl\fP(2) は inotify ファイルディスクリプターから何バイト読み込めるかを返す。
.SS 制限と警告
-inotify API では、inotify イベントが発生するきっかけとなったユーザやプロセスに関する情報は提供されない。とりわけ、inotify
+inotify API ã\81§ã\81¯ã\80\81inotify ã\82¤ã\83\99ã\83³ã\83\88ã\81\8cç\99ºç\94\9fã\81\99ã\82\8bã\81\8dã\81£ã\81\8bã\81\91ã\81¨ã\81ªã\81£ã\81\9fã\83¦ã\83¼ã\82¶ã\83¼ã\82\84ã\83\97ã\83ã\82»ã\82¹ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\81¯æ\8f\90ä¾\9bã\81\95ã\82\8cã\81ªã\81\84ã\80\82ã\81¨ã\82\8aã\82\8fã\81\91ã\80\81inotify
経由でイベントを監視しているプロセスが、自分自身がきっかけとなったイベントと他のプロセスがきっかけとなったイベントを区別する簡単な手段はない。
inotify は、ファイルシステム API 経由でユーザー空間プログラムがきっかけとなったイベントだけを報告する。 結果として、 inotify
発見的な方法を使うと、ほとんどの場合でイベントの組をうまく見つけることができるが、 いくつかの場合に見逃すことが避けられず、 アプリケーションが
\fBIN_MOVED_FROM\fP と \fBIN_MOVED_TO\fP イベントが無関係だとみなしてしまう可能性がある。
結果的に、監視対象ディスクリプターが破棄され再作成された場合、これらの監視対象ディスクリプターは、処理待ちイベントの監視対象ディスクリプターと一貫性のないものになってしまう
-(inotify ファイルディスクリプタの再作成とキャッシュの再構成はこの状況に対処するのに有用な方法なのだが)。
+(inotify ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®å\86\8dä½\9cæ\88\90ã\81¨ã\82ã\83£ã\83\83ã\82·ã\83¥ã\81®å\86\8dæ§\8bæ\88\90ã\81¯ã\81\93ã\81®ç\8a¶æ³\81ã\81«å¯¾å\87¦ã\81\99ã\82\8bã\81®ã\81«æ\9c\89ç\94¨ã\81ªæ\96¹æ³\95ã\81ªã\81®ã\81 ã\81\8c)ã\80\82
また、アプリケーションは、 \fBIN_MOVED_FROM\fP イベントが今行った \fBread\fP(2)
の呼び出しで返されたバッファーのちょうど一番最後のイベントで、 \fBIN_MOVED_TO\fP イベントは次の \fBread\fP(2)
その他の雑多なことについて説明している。
.SH 注意
.SS 著者と著作権
-著者と著作権に関しては各マニュアルページのソースのヘッダを参照すること。 これらはページごとに異なる可能性があることに注意してほしい。
+è\91\97è\80\85ã\81¨è\91\97ä½\9c権ã\81«é\96¢ã\81\97ã\81¦ã\81¯å\90\84ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81®ã\82½ã\83¼ã\82¹ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82 ã\81\93ã\82\8cã\82\89ã\81¯ã\83\9aã\83¼ã\82¸ã\81\94ã\81¨ã\81«ç\95°ã\81ªã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\80\82
.SH 関連項目
\fBstandards\fP(7)
.SH この文書について
3 つあり、 \fBtcp\fP(7) ソケットをオープンする場合 \fBSOCK_STREAM\fP、 \fBudp\fP(7)
ソケットをオープンする場合 \fBSOCK_DGRAM\fP、 IP プロトコルに直接アクセスする
ために \fBraw\fP(7) ソケットをオープンする場合には \fBSOCK_RAW\fP である。
-\fIprotocol\fP は送受信される IP ヘッダに書かれる IP プロトコルである。
+\fIprotocol\fP ã\81¯é\80\81å\8f\97ä¿¡ã\81\95ã\82\8cã\82\8b IP ã\83\98ã\83\83ã\83\80ã\83¼ã\81«æ\9b¸ã\81\8bã\82\8cã\82\8b IP ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81§ã\81\82ã\82\8bã\80\82
指定できる値は、 TCP ソケットには 0 か \fBIPPROTO_TCP\fP、 UDP ソケットには
0 か \fBIPPROTO_UDP\fP に限られる。 \fBSOCK_RAW\fP に対しては、 RFC\ 1700 で定義
されている有効な IANA IP プロトコルを、 割り当てられている番号で指定する
のソケット単位の設定である。
.TP
\fBIP_HDRINCL\fP (Linux 2.0 以降)
-æ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81¨ã\80\81ã\83¦ã\83¼ã\82¶ã\81¯ IP ã\83\98ã\83\83ã\83\80ã\82\92ã\83¦ã\83¼ã\82¶ã\83¼ã\83\87ã\83¼ã\82¿ã\81®å\89\8dã\81«ä¸\8eã\81\88ã\82\8bã\80\82 \fBSOCK_RAW\fP ã\82½ã\82±ã\83\83ã\83\88ã\81§ã\81®ã\81¿æ\9c\89å\8a¹ã\81§ã\81\82ã\82\8bã\80\82詳細ã\81¯ \fBraw\fP(7)
-を見よ。このフラグが有効になっていると、 \fBIP_OPTIONS\fP, \fBIP_TTL\fP, \fBIP_TOS\fP は無視される。
+æ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81¨ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ IP ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92ã\83¦ã\83¼ã\82¶ã\83¼ã\83\87ã\83¼ã\82¿ã\81®å\89\8dã\81«ä¸\8eã\81\88ã\82\8bã\80\82 \fBSOCK_RAW\fP ã\82½ã\82±ã\83\83ã\83\88ã\81§ã\81®ã\81¿æ\9c\89å\8a¹ã\81§ã\81\82ã\82\8bã\80\82詳細ã\81¯
+\fBraw\fP(7) を見よ。このフラグが有効になっていると、 \fBIP_OPTIONS\fP, \fBIP_TTL\fP, \fBIP_TOS\fP は無視される。
.TP
\fBIP_MSFILTER\fP (since Linux 2.4.22 以降 / 2.5.68 以降)
このオプションを使うと、 高度なフィルタリング API へアクセスできる。 この API ではすべての状態にアクセスできる。 引き数は
.sp
\fBMCAST_INCLUDE\fP と \fBMCAST_EXCLUDE\fP の 2 つのマクロがあり、 フィルタリングモードを指定するのに使用できる。
また、 \fBIP_MSFILTER_SIZE\fP(n) マクロがあり、 送信元リストに \fIn\fP 個の送信元が入った \fIip_msfilter\fP
-構造体を格納するのに必要なメモリ量を判定することができる。
+構造体を格納するのに必要なメモリー量を判定することができる。
.IP
マルチキャスト送信元フィルタリングの全容は RFC\ 3376 を参照のこと。
.TP
全ての送信パケットでフラグメント不許可フラグ (don't\-fragment flag) が必ず
セットされるようになる。 \fBSOCK_STREAM\fP でないソケットでは、
パケットを MTU のサイズの塊に分割したり、必要に応じて再送したりするのは、
-ユーザが責任を持って行う必要がある。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8c責任ã\82\92æ\8c\81ã\81£ã\81¦è¡\8cã\81\86å¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82
既知の Path MTU よりも大きなデータグラムの送信が要求されると、
カーネルは (\fBEMSGSIZE\fP で) 送信を拒否する。
\fBIP_PMTUDISC_WANT\fP の場合は、 Path MTU に基づいて必要であればデータグラム
.\" FIXME . this is an ugly hack
接続していないソケットに対して path MTU discovery プロセスを立ち上げるには、 大きなデータグラムサイズ (最大 64K
-ヘッダバイト長) からはじめて、 path MTU が更新されるまでサイズを縮めていくことも可能である。
+ã\83\98ã\83\83ã\83\80ã\83¼ã\83\90ã\82¤ã\83\88é\95·) ã\81\8bã\82\89ã\81¯ã\81\98ã\82\81ã\81¦ã\80\81 path MTU ã\81\8cæ\9b´æ\96°ã\81\95ã\82\8cã\82\8bã\81¾ã\81§ã\82µã\82¤ã\82ºã\82\92縮ã\82\81ã\81¦ã\81\84ã\81\8fã\81\93ã\81¨ã\82\82å\8f¯è\83½ã\81§ã\81\82ã\82\8bã\80\82
path MTU の値をまず見積もってみるには、宛先アドレスに \fBconnect\fP(2) を使ってデータグラムソケットを接続し、
\fBgetsockopt\fP(2) を \fBIP_MTU\fP オプションとともに呼び、 MTU を取得することである。
.TP
\fBIP_OPTIONS\fP (Linux 2.0 以降)
.\" Precisely: 1.3.30
-ã\81\93ã\81®ã\82½ã\82±ã\83\83ã\83\88ã\81\8bã\82\89é\80\81ã\82\89ã\82\8cã\82\8bã\83\91ã\82±ã\83\83ã\83\88å\85¨ã\81¦ã\81«ä»\98é\9a\8fã\81\99ã\82\8b IP ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92 è¨å®\9aã\83»å\8f\96å¾\97ã\81\99ã\82\8bã\80\82ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92ä¿\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿と
+ã\81\93ã\81®ã\82½ã\82±ã\83\83ã\83\88ã\81\8bã\82\89é\80\81ã\82\89ã\82\8cã\82\8bã\83\91ã\82±ã\83\83ã\83\88å\85¨ã\81¦ã\81«ä»\98é\9a\8fã\81\99ã\82\8b IP ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92 è¨å®\9aã\83»å\8f\96å¾\97ã\81\99ã\82\8bã\80\82ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92ä¿\9då\98ã\81\97ã\81¦ã\81\84ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼と
オプションの長さとを引き数に取る。 \fBsetsockopt\fP(2) を呼び出すと、ソケットに関連づけられる IP オプションを設定できる。 IPv4
におけるオプションのサイズの最大値は 40 バイトである。 用いることのできるオプションについては RFC\ 791 を見よ。
\fBSOCK_STREAM\fP ソケットに対する初期接続要求パケットに IP オプションが含まれていると、
-ルーティングヘッダを付けて戻されてくる初期パケットの IP オプションに同じオプションがセットされる。接続が確立された後、
+ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\82°ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92ä»\98ã\81\91ã\81¦æ\88»ã\81\95ã\82\8cã\81¦ã\81\8fã\82\8bå\88\9dæ\9c\9fã\83\91ã\82±ã\83\83ã\83\88ã\81® IP ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81«å\90\8cã\81\98ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82æ\8e¥ç¶\9aã\81\8c確ç«\8bã\81\95ã\82\8cã\81\9få¾\8cã\80\81
やってきたパケットのオプションを変更することはできない。 デフォルトでは。外部から受信したパケットの全ての source routing オプション
-の処理は無効となっており、 \fI/proc\fP インタフェースの \fIaccept_source_route\fP
+ã\81®å\87¦ç\90\86ã\81¯ç\84¡å\8a¹ã\81¨ã\81ªã\81£ã\81¦ã\81\8aã\82\8aã\80\81 \fI/proc\fP ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81® \fIaccept_source_route\fP
を使うとこれを有効にできる。これを無効にしていても timestamps など の他のオプションの処理は行われる。データグラムソケットでは、 IP
オプションはローカルユーザーしか設定できない。 \fBgetsockopt\fP(2) を \fBIP_OPTIONS\fP
-をつけて呼ぶと、現在送信に用いられている IP オプションを 引き数に与えたバッファに取得できる。
+ã\82\92ã\81¤ã\81\91ã\81¦å\91¼ã\81¶ã\81¨ã\80\81ç\8f¾å\9c¨é\80\81ä¿¡ã\81«ç\94¨ã\81\84ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8b IP ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92 å¼\95ã\81\8dæ\95°ã\81«ä¸\8eã\81\88ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«å\8f\96å¾\97ã\81§ã\81\8dã\82\8bã\80\82
.TP
\fBIP_PKTINFO\fP (Linux 2.2 以降)
.\" Precisely: 2.1.68
.\" FIXME . elaborate on that.
.\" This field is grossly misnamed
\fIipi_ifindex\fP はパケットが受信されたインターフェースの、他と重ならないインデックスである。 \fIipi_spec_dst\fP
-はパケットのローカルアドレスである。 \fIipi_addr\fP はパケットヘッダにある宛先アドレスである。 \fBIP_PKTINFO\fP が
+ã\81¯ã\83\91ã\82±ã\83\83ã\83\88ã\81®ã\83ã\83¼ã\82«ã\83«ã\82¢ã\83\89ã\83¬ã\82¹ã\81§ã\81\82ã\82\8bã\80\82 \fIipi_addr\fP ã\81¯ã\83\91ã\82±ã\83\83ã\83\88ã\83\98ã\83\83ã\83\80ã\83¼ã\81«ã\81\82ã\82\8bå®\9bå\85\88ã\82¢ã\83\89ã\83¬ã\82¹ã\81§ã\81\82ã\82\8bã\80\82 \fBIP_PKTINFO\fP ã\81\8c
\fBsendmsg\fP(2) に渡されて、かつ \fIipi_spec_dst\fP が 0 以外の場合、 \fIipi_spec_dst\fP
はルーティングテーブルを検索する際にローカルな送信元アドレスとして使用され、 IP source route オプションを設定するのにも使用される。
\fIipi_ifindex\fP が 0 以外の場合、このインデックスによって指定されるインターフェースの プライマリローカルアドレスで
.IP
\fIee_errno\fP にはキューに入っているエラーの \fIerrno\fP 番号が入る。 \fIee_origin\fP
にはエラーが発生した場所を示すコードが入る。 その他のフィールドはプロトコル依存である。 \fBSO_EE_OFFENDER\fP
-ã\83\9eã\82¯ã\83ã\81¯ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fè£\9cå\8a©ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8bã\82\89 ã\82¨ã\83©ã\83¼ã\81®ç\99ºç\94\9fã\81\97ã\81\9fã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す。 アドレスが不明な場合、
+ã\83\9eã\82¯ã\83ã\81¯ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fè£\9cå\8a©ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8bã\82\89 ã\82¨ã\83©ã\83¼ã\81®ç\99ºç\94\9fã\81\97ã\81\9fã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す。 アドレスが不明な場合、
\fIsockaddr\fP 構造体の \fIsa_family\fP フィールドは \fBAF_UNSPEC\fP となり、その他のフィールド値は不定である。
.IP
.\" FIXME . Is it a good idea to document that? It is a dubious feature.
IP は以下のような \fIsock_extended_err\fP 構造体を用いる: \fIee_origin\fP は、エラー
が ICMP パケットとして受信された場合には \fBSO_EE_ORIGIN_ICMP\fP にセットされ、
ローカルで起こった場合には \fBSO_EE_ORIGIN_LOCAL\fP にセットされる。 不明な値は
-無視される。 \fIee_type\fP と \fIee_code\fP は ICMP ヘッダの type フィールドと
+ç\84¡è¦\96ã\81\95ã\82\8cã\82\8bã\80\82 \fIee_type\fP ã\81¨ \fIee_code\fP ã\81¯ ICMP ã\83\98ã\83\83ã\83\80ã\83¼ã\81® type ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¨
code フィールドの値にセットされる。 \fIee_info\fP には \fBEMSGSIZE\fP エラーに対す
る discover された MTU が入る。 メッセージにはエラーを引き起こしたノードの
\fIsockaddr_in\fP 構造体も含まれる。 これには \fBSO_EE_OFFENDER\fP マクロを使ってア
\fBIP_RECVOPTS\fP (Linux 2.2 以降)
.\" Precisely: 2.1.15
到着した全ての IP オプションを \fBIP_OPTION\fP コントロールメッセージに入れてユーザーに渡す。
-ルーティングヘッダとその他のオプションとは、 ローカルホストに対してはあらかじめ記入されている。 \fBSOCK_STREAM\fP
+ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\82°ã\83\98ã\83\83ã\83\80ã\83¼ã\81¨ã\81\9dã\81®ä»\96ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¨ã\81¯ã\80\81 ã\83ã\83¼ã\82«ã\83«ã\83\9bã\82¹ã\83\88ã\81«å¯¾ã\81\97ã\81¦ã\81¯ã\81\82ã\82\89ã\81\8bã\81\98ã\82\81è¨\98å\85¥ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 \fBSOCK_STREAM\fP
ソケットではサポートされていない。
.TP
\fBIP_RECVORIGDSTADDR\fP (Linux 2.6.29 以降)
.TP
\fBIP_RECVTOS\fP (Linux 2.2 以降)
.\" Precisely: 2.1.68
-æ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81¨ã\80\81 \fBIP_TOS\fP è£\9cå\8a©ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81\8cå\88°ç\9d\80ã\83\91ã\82±ã\83\83ã\83\88ã\81¨ã\81¨ã\82\82ã\81«æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\82\8cã\81«ã\81¯ã\83\91ã\82±ã\83\83ã\83\88ã\83\98ã\83\83ã\83\80ã\81® Service/Precedence
-フィールドのタイプを指定するバイトデータが含まれている。 ブール整数値のフラグをとる。
+æ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81¨ã\80\81 \fBIP_TOS\fP è£\9cå\8a©ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81\8cå\88°ç\9d\80ã\83\91ã\82±ã\83\83ã\83\88ã\81¨ã\81¨ã\82\82ã\81«æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\82\8cã\81«ã\81¯ã\83\91ã\82±ã\83\83ã\83\88ã\83\98ã\83\83ã\83\80ã\83¼ã\81®
+Service/Precedence フィールドのタイプを指定するバイトデータが含まれている。 ブール整数値のフラグをとる。
.TP
\fBIP_RECVTTL\fP (Linux 2.2 以降)
.\" Precisely: 2.1.68
(foreign address) を持つクライアントやサーバの両方として動作できるようになる。 \fB注意\fP:
この機能が動作するためには、自分以外のアドレス宛のパケットが透過プロキシが動作するマシン (すなわちソケットオプション
\fBIP_TRANSPARENT\fP を利用するアプリケーションが動作しているシステム) 経由で転送されるように、 ルーティングが設定される必要がある。
-このソケットオプションを有効にするには、スーパーユーザ特権 (\fBCAP_NET_ADMIN\fP ケーパビリティ) が必要である。
+このソケットオプションを有効にするには、スーパーユーザー特権 (\fBCAP_NET_ADMIN\fP ケーパビリティ) が必要である。
.IP
iptables の TPROXY ターゲットで透過プロキシリダイレクション
(TProxy redirection) を行うには、リダイレクトされるソケットに対して
を返す。
.IP
引き数は \fIip_mreq_source\fP 構造体である。 \fBIP_ADD_SOURCE_MEMBERSHIP\fP の項に説明がある。
-.SS "/proc インタフェース"
+.SS "/proc ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹"
.\" FIXME As at 2.6.12, 14 Jun 2005, the following are undocumented:
.\" ip_queue_maxlen
.\" ip_conntrack_max
.\"
-IP ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81§ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82°ã\83ã\83¼ã\83\90ã\83«ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\82\92è¨å®\9aã\81\99ã\82\8bã\81\9fã\82\81ã\81® \fI/proc\fP ã\83\95ã\82¡ã\82¤ã\83«ç¾¤ã\81\8cç\94¨æ\84\8fã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿には、
+IP ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81§ã\81¯ã\80\81ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82°ã\83ã\83¼ã\83\90ã\83«ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8bã\81\9fã\82\81ã\81® \fI/proc\fP ã\83\95ã\82¡ã\82¤ã\83«ç¾¤ã\81\8cç\94¨æ\84\8fã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼には、
\fI/proc/sys/net/ipv4/\fP ディレクトリ内のファイルの読み書きでアクセスできる。 \fIBoolean\fP
-と書かれたインタフェースは整数値をとり、 0 以外の値 ("true") は対応するオプションが有効、 0 値 ("false")
+ã\81¨æ\9b¸ã\81\8bã\82\8cã\81\9fã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯æ\95´æ\95°å\80¤ã\82\92ã\81¨ã\82\8aã\80\81 0 以å¤\96ã\81®å\80¤ ("true") ã\81¯å¯¾å¿\9cã\81\99ã\82\8bã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cæ\9c\89å\8a¹ã\80\81 0 å\80¤ ("false")
は無効、であることを意味する。
.TP
\fIip_always_defrag\fP (Boolean; Linux 2.2.13 以降)
ファイアウォールがローカル側のネットワークに唯一のリンクを持っている 場合や、透過プロクシの場合に限って有効にすべきである。
通常のルーターやホストでは決して使用することのないように。 さもないとフラグメントが別のリンクを経由して伝わる場合に、
-通信のフラグメント化ができなくなってしまう。 またフラグメント再構築処理はメモリと CPU 時間のコストが非常に大きい。
+é\80\9aä¿¡ã\81®ã\83\95ã\83©ã\82°ã\83¡ã\83³ã\83\88å\8c\96ã\81\8cã\81§ã\81\8dã\81ªã\81\8fã\81ªã\81£ã\81¦ã\81\97ã\81¾ã\81\86ã\80\82 ã\81¾ã\81\9fã\83\95ã\83©ã\82°ã\83¡ã\83³ã\83\88å\86\8dæ§\8bç¯\89å\87¦ç\90\86ã\81¯ã\83¡ã\83¢ã\83ªã\83¼ã\81¨ CPU æ\99\82é\96\93ã\81®ã\82³ã\82¹ã\83\88ã\81\8cé\9d\9e常ã\81«å¤§ã\81\8dã\81\84ã\80\82
.\"
これはマスカレードや透過プロクシが設定されると、 不思議な仕組みによって自動的に有効になる。
.TP
\fIip_dynaddr\fP (ブール値; デフォルト: 無効; Linux 2.0.31 以降)
.\"
-動的ソケットアドレスと、インターフェースアドレスが変更された際の マスカレードエントリの再書き込みを有効にする。 ダイアルアップインターフェースで、
+å\8b\95ç\9a\84ã\82½ã\82±ã\83\83ã\83\88ã\82¢ã\83\89ã\83¬ã\82¹ã\81¨ã\80\81ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8cå¤\89æ\9b´ã\81\95ã\82\8cã\81\9fé\9a\9bã\81® ã\83\9eã\82¹ã\82«ã\83¬ã\83¼ã\83\89ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å\86\8dæ\9b¸ã\81\8dè¾¼ã\81¿ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\80\82 ã\83\80ã\82¤ã\82¢ã\83«ã\82¢ã\83\83ã\83\97ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81§ã\80\81
IP アドレスが変更される場合に便利である。
.TP
\fIip_forward\fP (ブール値; デフォルト: 無効; Linux 1.2 以降)
有効になっていると、デフォルトで TCP ソケットに対する Path MTU Discoverty を行わない。 Path MTU Discovery
は、 正しく設定されていない (ICMP パケットを全てドロップする) ファイアウォールや、 (point\-to\-point リンクで双方の MTU
が一致していない場合など) 正しく設定されていないインターフェースが経路上に存在すると失敗してしまう。 Path MTU Discovery
-をグローバルに無効にするよりは、 壊れているルータを直すほうが良い。 Path MTU Discovery を無効にするとネットワークのコストが
+ã\82\92ã\82°ã\83ã\83¼ã\83\90ã\83«ã\81«ç\84¡å\8a¹ã\81«ã\81\99ã\82\8bã\82\88ã\82\8aã\81¯ã\80\81 å£\8aã\82\8cã\81¦ã\81\84ã\82\8bã\83«ã\83¼ã\82¿ã\83¼ã\82\92ç\9b´ã\81\99ã\81»ã\81\86ã\81\8cè\89¯ã\81\84ã\80\82 Path MTU Discovery ã\82\92ç\84¡å\8a¹ã\81«ã\81\99ã\82\8bã\81¨ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\81®ã\82³ã\82¹ã\83\88ã\81\8c
大きくなってしまうからである。
.TP
\fIip_nonlocal_bind\fP (ブール値; デフォルト: 無効; Linux 2.4 以降)
\fIip6frag_time\fP (integer; default: 30)
.\"
.\" The following is from 2.6.12: Documentation/networking/ip-sysctl.txt
-IPv6 フラグメントをメモリに保持しておく時間 (秒単位)。
+IPv6 ã\83\95ã\83©ã\82°ã\83¡ã\83³ã\83\88ã\82\92ã\83¡ã\83¢ã\83ªã\83¼ã\81«ä¿\9dæ\8c\81ã\81\97ã\81¦ã\81\8aã\81\8fæ\99\82é\96\93 (ç§\92å\8d\98ä½\8d)ã\80\82
.TP
\fIip6frag_secret_interval\fP (integer; default: 600)
IPv6 フラグメントの hash secret の生成間隔 (hash secret の寿命) (秒単位)。
\fBsocket\fP(7) に記述されている ioctl は、すべて \fBip\fP にも適用される。
.PP
.\" FIXME Add a discussion of multicasting
-ジェネリックデバイスのパラメータを設定する ioctl については \fBnetdevice\fP(7) に記述されている。
+ã\82¸ã\82§ã\83\8dã\83ªã\83\83ã\82¯ã\83\87ã\83\90ã\82¤ã\82¹ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8b ioctl ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ \fBnetdevice\fP(7) ã\81«è¨\98è¿°ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
.SH エラー
.\" FIXME document all errors.
.\" We should really fix the kernels to give more uniform
\fBaccept\fP(2) の途中で接続がクローズされた。
.TP
\fBEHOSTUNREACH\fP
-å®\9bå\85\88ã\82¢ã\83\89ã\83¬ã\82¹ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bæ\9c\89å\8a¹ã\81ªã\82¨ã\83³ã\83\88ã\83ªã\81\8cã\83«ã\83¼ã\83\86ã\82£ã\83³ã\82°ã\83\86ã\83¼ã\83\96ã\83«ã\81« å\98å\9c¨ã\81\97ã\81ªã\81\84ã\80\82ã\81\93ã\81®ã\82¨ã\83©ã\83¼ã\81¯ã\83ªã\83¢ã\83¼ã\83\88ã\83«ã\83¼ã\82¿ã\81\8bã\82\89ã\81®ã\80\81 ã\81\82ã\82\8bã\81\84ã\81¯ã\83ã\83¼ã\82«ã\83«ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\82°ã\83\86ã\83¼ã\83\96ã\83«ã\81¸ã\81®
-ICMP メッセージによって引き起こされることがある。
+å®\9bå\85\88ã\82¢ã\83\89ã\83¬ã\82¹ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bæ\9c\89å\8a¹ã\81ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\83«ã\83¼ã\83\86ã\82£ã\83³ã\82°ã\83\86ã\83¼ã\83\96ã\83«ã\81« å\98å\9c¨ã\81\97ã\81ªã\81\84ã\80\82ã\81\93ã\81®ã\82¨ã\83©ã\83¼ã\81¯ã\83ªã\83¢ã\83¼ã\83\88ã\83«ã\83¼ã\82¿ã\83¼ã\81\8bã\82\89ã\81®ã\80\81
+あるいはローカルルーティングテーブルへの ICMP メッセージによって引き起こされることがある。
.TP
\fBEINVAL\fP
不正な引き数が渡された。送信操作において、 \fIblackhole\fP ルートに送信しようとするとこのエラーが起こることがある。
データグラムが path MTU よりも大きく、フラグメント化もできない。
.TP
\fBENOBUFS\fP, \fBENOMEM\fP
-空ã\81\8dã\83¡ã\83¢ã\83ªã\81\8c足ã\82\8aã\81ªã\81\84ã\80\82 ã\81\93ã\81®ã\82¨ã\83©ã\83¼ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\82¢ã\83ã\82±ã\83¼ã\82·ã\83§ã\83³ã\81\8cã\82½ã\82±ã\83\83ã\83\88ã\83\90ã\83\83ã\83\95ã\82¡の 大きさによって制限されていることを意味しているのが通常であるが、
+空ã\81\8dã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\80\82 ã\81\93ã\81®ã\82¨ã\83©ã\83¼ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83ã\82±ã\83¼ã\82·ã\83§ã\83³ã\81\8cã\82½ã\82±ã\83\83ã\83\88ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼の 大きさによって制限されていることを意味しているのが通常であるが、
100% そうだというわけではない。
.TP
\fBENOENT\fP
\fBcapabilities\fP(7), \fBicmp\fP(7), \fBipv6\fP(7), \fBnetlink\fP(7), \fBraw\fP(7),
\fBsocket\fP(7), \fBtcp\fP(7), \fBudp\fP(7)
.PP
-RFC\ 791: 元々の IP 仕様。 RFC\ 1122: IPv4 ホストの要件。 RFC\ 1812: IPv4 ルータの要件。
+RFC\ 791: å\85\83ã\80\85ã\81® IP ä»\95æ§\98ã\80\82 RFC\ 1122: IPv4 ã\83\9bã\82¹ã\83\88ã\81®è¦\81件ã\80\82 RFC\ 1812: IPv4 ã\83«ã\83¼ã\82¿ã\83¼ã\81®è¦\81件ã\80\82
.SH この文書について
この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.78 の一部
である。プロジェクトの説明とバグ報告に関する情報は
\fBIPV6_ADDRFORM\fP
\fBAF_INET6\fP ソケットを別のアドレスファミリーのソケットに変える。 現在は \fBAF_INET\fP
のみが変更先のアドレスファミリーとしてサポートされている。 これが許可されるのは、IPv6 が接続され、 v4\-mapped\-on\-v6
-ã\82¢ã\83\89ã\83¬ã\82¹ã\81«ã\83\90ã\82¤ã\83³ã\83\89ã\81\95ã\82\8cã\81\9få ´å\90\88ã\81«é\99\90ã\82\89ã\82\8cã\82\8bã\80\82 å¼\95ã\81\8dæ\95°ã\81¯ \fBAF_INET\fP ã\81\8cå\85¥ã\81£ã\81¦ã\81\84ã\82\8bæ\95´æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81\82ã\82\8bã\80\82 v4\-mapped ã\82½ã\82±ã\83\83ã\83\88ã\82\92ã\80\81IPv6
-API を扱えないプログラムに対して ファイルディスクリプターとして渡す場合に便利。
+ã\82¢ã\83\89ã\83¬ã\82¹ã\81«ã\83\90ã\82¤ã\83³ã\83\89ã\81\95ã\82\8cã\81\9få ´å\90\88ã\81«é\99\90ã\82\89ã\82\8cã\82\8bã\80\82 å¼\95ã\81\8dæ\95°ã\81¯ \fBAF_INET\fP ã\81\8cå\85¥ã\81£ã\81¦ã\81\84ã\82\8bæ\95´æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 v4\-mapped
+ソケットを、IPv6 API を扱えないプログラムに対して ファイルディスクリプターとして渡す場合に便利。
.TP
\fBIPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP\fP
-multicast グループのメンバーを制御する。 引き数は \fIstruct ipv6_mreq\fP 構造体へのポインタ。
+multicast ã\82°ã\83«ã\83¼ã\83\97ã\81®ã\83¡ã\83³ã\83\90ã\83¼ã\82\92å\88¶å¾¡ã\81\99ã\82\8bã\80\82 å¼\95ã\81\8dæ\95°ã\81¯ \fIstruct ipv6_mreq\fP æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82
.TP
\fBIPV6_MTU\fP
\fBgetsockopt\fP(): ソケットの、既知の path MTU を取得する。ソケットが接続している場合のみ有効である。整数を返す。
\fBsetsockopt\fP(): そのソケットに対して用いる MTU の値を設定する。 MTU の大きさは、 そのデバイスの MTU または (Path
-MTU Discovery が可能なら) その経路の MTU の大きさ以下でなければならない。 引き数は整数へのポインタ。
+MTU Discovery ã\81\8cå\8f¯è\83½ã\81ªã\82\89) ã\81\9dã\81®çµ\8cè·¯ã\81® MTU ã\81®å¤§ã\81\8dã\81\95以ä¸\8bã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 å¼\95ã\81\8dæ\95°ã\81¯æ\95´æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82
.TP
\fBIPV6_MTU_DISCOVER\fP
そのソケットでの Path MTU Discovery を制御する。 詳細は \fBip\fP(7) の \fBIP_MTU_DISCOVER\fP を参照。
.TP
\fBIPV6_MULTICAST_HOPS\fP
-そのソケットでの multicast の hop 数の上限値を設定する。 引き数は整数へのポインタである。 \-1
+ã\81\9dã\81®ã\82½ã\82±ã\83\83ã\83\88ã\81§ã\81® multicast ã\81® hop æ\95°ã\81®ä¸\8aé\99\90å\80¤ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82 å¼\95ã\81\8dæ\95°ã\81¯æ\95´æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 \-1
を指定すると経路のデフォルトを用いることを意味する。 それ以外の場合は 0 から 255 の範囲を指定する。
.TP
\fBIPV6_MULTICAST_IF\fP
そのソケットでの、送信 multicast パケットに用いるデバイスを設定する。 これは \fBSOCK_DGRAM\fP および \fBSOCK_RAW\fP
-各ソケットでのみ許される。 引き数はインターフェースのインデックスの整数値 (\fBnetdevice\fP(7) を参照) へのポインタである。
+å\90\84ã\82½ã\82±ã\83\83ã\83\88ã\81§ã\81®ã\81¿è¨±ã\81\95ã\82\8cã\82\8bã\80\82 å¼\95ã\81\8dæ\95°ã\81¯ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\81®æ\95´æ\95°å\80¤ (\fBnetdevice\fP(7) ã\82\92å\8f\82ç\85§) ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBIPV6_MULTICAST_LOOP\fP
-ソケットが、自分自身の送信した multicast パケットを監視するかどうかを制御する。 引き数はブール値へのポインタ。
+ã\82½ã\82±ã\83\83ã\83\88ã\81\8cã\80\81è\87ªå\88\86è\87ªèº«ã\81®é\80\81ä¿¡ã\81\97ã\81\9f multicast ã\83\91ã\82±ã\83\83ã\83\88ã\82\92ç\9b£è¦\96ã\81\99ã\82\8bã\81\8bã\81©ã\81\86ã\81\8bã\82\92å\88¶å¾¡ã\81\99ã\82\8bã\80\82 å¼\95ã\81\8dæ\95°ã\81¯ã\83\96ã\83¼ã\83«å\80¤ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82
.TP
\fBIPV6_RECVPKTINFO\fP (Linux 2.6.14 以降)
データグラムの到着時における \fBIPV6_PKTINFO\fP 制御メッセージを配送するかどうかを設定する。 制御メッセージは RFC 3542 に基づき
.nh
\fBIPV6_RTHDR, IPV6_AUTHHDR, IPV6_DSTOPTS, IPV6_HOPOPTS, IPV6_FLOWINFO, IPV6_HOPLIMIT\fP
.hy
-受信パケットのデータグラムに拡張ヘッダが含まれている場合の、 制御メッセージの配送を設定する。 \fBIPV6_RTHDR\fP: routing
-ヘッダを配送するかどうか。 \fBIPV6_AUTHHDR\fP: authentication ヘッダを配送するかどうか。 \fBIPV6_DSTOPTS\fP:
-destination オプションを配送するかどうか。 \fBIPV6_HOPOPTS\fP: hop オプションを配送するかどうか。
-\fBIPV6_FLOWINFO\fP: flow ID を含む整数を配送するかどうか。 \fBIPV6_HOPLIMIT\fP: パケットの hop
-カウントを含む整数を配送するかどうか。 制御メッセージはソケットオプションのものと同じタイプを持つ。 これらのすべてのヘッダオプションは、
-適切な制御メッセージを \fBsendmsg\fP(2) の制御バッファーに書きこめば、 送信パケットにでも設定できる。 \fBSOCK_DGRAM\fP
-ソケットまたは \fBSOCK_RAW\fP ソケットでのみ許される。引き数はブール値へのポインタ。
+受信パケットのデータグラムに拡張ヘッダーが含まれている場合の、 制御メッセージの配送を設定する。 \fBIPV6_RTHDR\fP: routing
+ヘッダーを配送するかどうか。 \fBIPV6_AUTHHDR\fP: authentication ヘッダーを配送するかどうか。
+\fBIPV6_DSTOPTS\fP: destination オプションを配送するかどうか。 \fBIPV6_HOPOPTS\fP: hop
+オプションを配送するかどうか。 \fBIPV6_FLOWINFO\fP: flow ID を含む整数を配送するかどうか。 \fBIPV6_HOPLIMIT\fP:
+パケットの hop カウントを含む整数を配送するかどうか。 制御メッセージはソケットオプションのものと同じタイプを持つ。
+これらのすべてのヘッダーオプションは、 適切な制御メッセージを \fBsendmsg\fP(2) の制御バッファーに書きこめば、
+送信パケットにでも設定できる。 \fBSOCK_DGRAM\fP ソケットまたは \fBSOCK_RAW\fP
+ソケットでのみ許される。引き数はブール値へのポインター。
.TP
\fBIPV6_RECVERR\fP
非同期エラー (asynchronous error) オプションの受信を制御する。 詳細は \fBip\fP(7) の \fBIP_RECVERR\fP
-を参照。 引き数はブール値へのポインタ。
+ã\82\92å\8f\82ç\85§ã\80\82 å¼\95ã\81\8dæ\95°ã\81¯ã\83\96ã\83¼ã\83«å\80¤ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82
.TP
\fBIPV6_ROUTER_ALERT\fP
このソケットで、router alert hop\-by\-hop オプションの付いた転送パケットを 通すかどうかを制御する。 \fBSOCK_RAW\fP
ソケットでのみ許可される。 tap されたパケットはカーネルによっては転送されない。そうしたパケットを 再度送信するのはユーザーの責任である。
-引き数は整数 (integer) へのポインタ。 正の整数は傍受を行う router alert オプション値を示す。 オプション値がこの整数である
+å¼\95ã\81\8dæ\95°ã\81¯æ\95´æ\95° (integer) ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\80\82 æ£ã\81®æ\95´æ\95°ã\81¯å\82\8då\8f\97ã\82\92è¡\8cã\81\86 router alert ã\82ªã\83\97ã\82·ã\83§ã\83³å\80¤ã\82\92示ã\81\99ã\80\82 ã\82ªã\83\97ã\82·ã\83§ã\83³å\80¤ã\81\8cã\81\93ã\81®æ\95´æ\95°ã\81§ã\81\82ã\82\8b
router alert オプションの付いたパケットは ソケットに配送される。負の整数を指定すると、このソケットへの router alert
オプションの付いたパケットの配送が行われない。
.TP
\fBIPV6_UNICAST_HOPS\fP
-そのソケットでの unicast の hop 数の上限値を設定する。 引き数は整数へのポインタである。 \-1
+ã\81\9dã\81®ã\82½ã\82±ã\83\83ã\83\88ã\81§ã\81® unicast ã\81® hop æ\95°ã\81®ä¸\8aé\99\90å\80¤ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82 å¼\95ã\81\8dæ\95°ã\81¯æ\95´æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 \-1
を指定すると経路のデフォルトを用いることを意味する。 それ以外の場合は 0 から 255 の範囲を指定する。
.TP
\fBIPV6_V6ONLY\fP (Linux 2.4.21 以降および 2.6 以降)
このフラグを偽 (0) に設定すると、そのソケットはパケットの送受信に IPv6 アドレスと IPv4\-mapped IPv6
アドレスの両方を使用できる。
-引き数はブール値の入った整数へのポインタである。
+å¼\95ã\81\8dæ\95°ã\81¯ã\83\96ã\83¼ã\83«å\80¤ã\81®å\85¥ã\81£ã\81\9fæ\95´æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.\" FLOWLABEL_MGR, FLOWINFO_SEND
このフラグのデフォルト値はファイル \fI/proc/sys/net/ipv6/bindv6only\fP の内容により定義される。
.SH エラー
.TP
\fBENODEV\fP
-ユーザがリンクローカルの IPv6 アドレスを \fBbind\fP(2) しようとしたが、
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\83ªã\83³ã\82¯ã\83ã\83¼ã\82«ã\83«ã\81® IPv6 ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92 \fBbind\fP(2) ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81\9fã\81\8cã\80\81
指定された \fIsockaddr_in6\fP 構造体の \fIsin6_scope_id\fP が
有効なインターフェースのインデックスでなかった。
.SH バージョン
を他の構造体に含んでいるようなプログラムでは 保たれないかもしれない。 これは i386 のような 32 ビットのホストでは問題にならない。
.PP
\fIsin6_flowinfo\fP フィールドは Linux 2.4 で登場した。 これが渡されたアドレス長に含まれていると、
-カーネルに透過的に渡され、読まれる。 より長いアドレスバッファを渡し、 そして送信アドレスの長さをチェックするようなプログラムは
+ã\82«ã\83¼ã\83\8dã\83«ã\81«é\80\8fé\81\8eç\9a\84ã\81«æ¸¡ã\81\95ã\82\8cã\80\81èªã\81¾ã\82\8cã\82\8bã\80\82 ã\82\88ã\82\8aé\95·ã\81\84ã\82¢ã\83\89ã\83¬ã\82¹ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92渡ã\81\97ã\80\81 ã\81\9dã\81\97ã\81¦é\80\81ä¿¡ã\82¢ã\83\89ã\83¬ã\82¹ã\81®é\95·ã\81\95ã\82\92ã\83\81ã\82§ã\83\83ã\82¯ã\81\99ã\82\8bã\82\88ã\81\86ã\81ªã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯
うまく動かないかもしれない。
.SH 注意
\fIsockaddr_in6\fP 構造体はジェネリックな \fIsockaddr\fP よりも大きい。 すべてのアドレスタイプが \fIstruct
IPv6 拡張 API は、現在まだ RFC\ 2292 を完全には実装していない。 2.2
カーネルは受信オプションをほぼ完全にサポートサポートしているが、 glibc2.1 には IPv6 オプションを生成するマクロが存在していない。
.PP
-EH および AH ヘッダ での IPSec のサポートは存在しない。
+EH および AH ヘッダー での IPSec のサポートは存在しない。
.PP
フローラベル管理はまだ完全でなく、ここにも記述されていない。
.PP
に関する情報の名残、特に \fIlibc4\fP や \fIlibc5\fP への言及、が残っており、
歴史を見ることができる。
.SS "他の C ライブラリ"
-あまり広くは使われていないが、Linux 用の他の C ライブラリがいくつかある。 これらのライブラリは、一般的には、機能とメモリ使用量の両方の面で
+あまり広くは使われていないが、Linux 用の他の C ライブラリがいくつかある。 これらのライブラリは、一般的には、機能とメモリー使用量の両方の面で
glibc より小さく、通常は小さなバイナリを作成することを目的としており、 おそらく組み込み Linux システム用の開発に焦点を当てたものである。
このようなライブラリとしては、
.UR http://www.uclibc.org/
このヘッダーファイルで宣言されている関数には、 現在のロケールを設定する \fBsetlocale\fP(3)
と、数値のフォーマット方法についての情報を取得する \fBlocaleconv\fP(3) がある。
.PP
-ロケール情報は、 プログラムが必要とすると思われるいくつかのカテゴリに分かれており、 それらはマクロとして宣言されている。 これらのマクロを
-\fBsetlocale\fP(3) 関数の最初の引き数に用いると、 各カテゴリを望むロケールに設定できる。
+ã\83ã\82±ã\83¼ã\83«æ\83\85å ±ã\81¯ã\80\81 ã\83\97ã\83ã\82°ã\83©ã\83 ã\81\8cå¿\85è¦\81ã\81¨ã\81\99ã\82\8bã\81¨æ\80\9dã\82\8fã\82\8cã\82\8bã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81«å\88\86ã\81\8bã\82\8cã\81¦ã\81\8aã\82\8aã\80\81 ã\81\9dã\82\8cã\82\89ã\81¯ã\83\9eã\82¯ã\83ã\81¨ã\81\97ã\81¦å®£è¨\80ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®ã\83\9eã\82¯ã\83ã\82\92
+\fBsetlocale\fP(3) é\96¢æ\95°ã\81®æ\9c\80å\88\9dã\81®å¼\95ã\81\8dæ\95°ã\81«ç\94¨ã\81\84ã\82\8bã\81¨ã\80\81 å\90\84ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\82\92æ\9c\9bã\82\80ã\83ã\82±ã\83¼ã\83«ã\81«è¨å®\9aã\81§ã\81\8dã\82\8bã\80\82
.TP
\fBLC_ADDRESS\fP (GNU 拡張、 glibc 2.2 以降)
.\" See ISO/IEC Technical Report 14652
\fBLC_MESSAGES\fP
このカテゴリーは、 メッセージ表示に使用する言語と、 肯定的・否定的な回答をどのように表示するかに影響する。 この情報を簡単に使用するために、 GNU
C ライブラリには \fBgettext\fP(3), \fBngettext\fP(3), \fBrpmatch\fP(3) 関数が含まれている。 GNU
-gettext ã\83\95ã\82¡ã\83\9fã\83ªã\83¼ã\81«å±\9eã\81\99ã\82\8bé\96¢æ\95°ã\81¯ã\80\81ã\82«ã\83\86ã\82´ã\83ªã\81\8c \fB"C"\fP 以å¤\96ã\81®æ\9c\89å\8a¹ã\81ªã\83ã\82±ã\83¼ã\83«ã\81«è¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81ç\92°å¢\83å¤\89æ\95° \fBLANGUAGE\fP ã\81«ã\82\82å¾\93ã\81\86
-(\fBLANGUAGE\fP はコロン区切りのロケールのリストである)。 このカテゴリーは \fBcatopen\fP(3) の動作にも影響する。
+gettext ã\83\95ã\82¡ã\83\9fã\83ªã\83¼ã\81«å±\9eã\81\99ã\82\8bé\96¢æ\95°ã\81¯ã\80\81ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81\8c \fB"C"\fP 以å¤\96ã\81®æ\9c\89å\8a¹ã\81ªã\83ã\82±ã\83¼ã\83«ã\81«è¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81ç\92°å¢\83å¤\89æ\95° \fBLANGUAGE\fP
+にも従う (\fBLANGUAGE\fP はコロン区切りのロケールのリストである)。 このカテゴリーは \fBcatopen\fP(3) の動作にも影響する。
.TP
\fBLC_MEASUREMENT\fP (GNU 拡張、 glibc 2.2 以降)
ロケールの測定系 (つまり、メートル法かアメリカでよく使われる単位か) に関連する設定を変更する。 この情報が必要なアプリケーションは
\fBnl_langinfo\fP(3) を使って非標準の要素である \fB_NL_MEASUREMENT_MEASUREMENT\fP を取得できる。 この要素は
-1 (メートル法) か 2 (アメリカでよく使われる単位) の値が入った文字列へのポインタを返す。
+1 (ã\83¡ã\83¼ã\83\88ã\83«æ³\95) ã\81\8b 2 (ã\82¢ã\83¡ã\83ªã\82«ã\81§ã\82\88ã\81\8f使ã\82\8fã\82\8cã\82\8bå\8d\98ä½\8d) ã\81®å\80¤ã\81\8cå\85¥ã\81£ã\81\9fæ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.TP
\fBLC_NAME\fP (GNU 拡張、 glibc 2.2 以降)
.\" See ISO/IEC Technical Report 14652
.IP 1.
環境変数 \fBLC_ALL\fP が設定されている場合には \fBLC_ALL\fP の値が使用される。
.IP 2.
-ä¸\8aè¨\98ã\81®ã\82«ã\83\86ã\82´ã\83ªã\81®ã\81©ã\82\8cã\81\8bã\81¨å\90\8cã\81\98å\90\8då\89\8dã\81®ç\92°å¢\83å¤\89æ\95°ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81 ã\81\9dã\81®ã\82«ã\83\86ã\82´ã\83ªにはその値が使用される。
+ä¸\8aè¨\98ã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼ã\81®ã\81©ã\82\8cã\81\8bã\81¨å\90\8cã\81\98å\90\8då\89\8dã\81®ç\92°å¢\83å¤\89æ\95°ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81 ã\81\9dã\81®ã\82«ã\83\86ã\82´ã\83ªã\83¼にはその値が使用される。
.IP 3.
環境変数 \fBLANG\fP が設定されている場合には \fBLANG\fP の値が使用される。
.PP
.TH MAILADDR 7 2004\-09\-15 Linux "Linux User's Manual"
.UC 5
.SH 名前
-mailaddr \- ã\83¡ã\83¼ã\83«ã\83»ã\82¢ã\83\89ã\83¬ã\82¹ã\81®èª¬æ\98\8e
+mailaddr \- メールアドレスの説明
.SH 説明
.nh
-ã\81\93ã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83»ã\83\9aã\83¼ã\82¸ã\81§ã\81¯ã\80\81ã\82¤ã\83³ã\82¿ã\83¼ã\83\8dã\83\83ã\83\88ã\81§ä½¿ç\94¨ã\81\95ã\82\8cã\82\8b SMTP ã\83¡ã\83¼ã\83«ã\83» ã\82¢ã\83\89ã\83¬ã\82¹ã\81®ç°¡å\8d\98ã\81ªç´¹ä»\8bã\82\92è¡\8cã\81\86ã\80\82ã\83¡ã\83¼ã\83«ã\83»アドレスは一般的には
+ã\81\93ã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81§ã\81¯ã\80\81ã\82¤ã\83³ã\82¿ã\83¼ã\83\8dã\83\83ã\83\88ã\81§ä½¿ç\94¨ã\81\95ã\82\8cã\82\8b SMTP ã\83¡ã\83¼ã\83« ã\82¢ã\83\89ã\83¬ã\82¹ã\81®ç°¡å\8d\98ã\81ªç´¹ä»\8bã\82\92è¡\8cã\81\86ã\80\82ã\83¡ã\83¼ã\83«アドレスは一般的には
.PP
user@domain
.PP
-ã\81®å½¢ã\81§ã\81\82ã\82\8bã\80\82 domain ã\81¯ã\82µã\83\96ã\83»ã\83\89ã\83¡ã\82¤ã\83³ã\81®é\9a\8e層ã\82\92 ã\83\89ã\83\83ã\83\88 (.) ã\81§ å\8cºå\88\87ã\81£ã\81¦ã\81¤ã\81ªã\81\84ã\81 ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82 以ä¸\8bã\81®ä¾\8bã\81¯å\85¨ã\81¦å\90\8cã\81\98ã\82¢ã\83\89ã\83¬ã\82¹ã\81®æ£ã\81\97ã\81\84表è¨\98æ³\95ã\81§ã\81\82ã\82\8b:
+の形である。 domain はサブドメインの階層を ドット (.) で 区切ってつないだものである。 以下の例は全て同じアドレスの正しい表記法である:
.PP
eric@monet.berkeley.edu
.br
"Eric P. Allman" <eric@monet.berkeley.edu>
.SS 省略形
.PP
-å¤\9aã\81\8fã\81®ã\83¡ã\83¼ã\83«ã\83»ã\82·ã\82¹ã\83\86ã\83 ã\81\8cã\83\89ã\83¡ã\82¤ã\83³å\90\8dã\81®ç\9c\81ç\95¥å½¢ã\82\92許ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ä¾\8bã\81\88ã\81° berkeley.edu ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ Eric Allman ã\81«ã\83¡ã\83¼ã\83«ã\82\92é\80\81ã\82\8bã\81\9fã\82\81ã\81«
+多くのメールシステムがドメイン名の省略形を許している。 例えば berkeley.edu のユーザーは Eric Allman にメールを送るために
"eric@monet" が使用できるかもしれない。 『この動作は推奨されるものではない』 正しく動作する場合もあるが、それをあてにすべきではない。
.SS 経路アドレス
.PP
これは通信文を hosta に送り、そこから hostb に送り、最終的に hostc に
送ることを指定している。多くのホストは経路アドレスを無視して直接 hostc に送る。
.PP
-ä»\8aã\81§ã\81¯çµ\8cè·¯ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8c使ã\82\8fã\82\8cã\82\8bã\81\93ã\81¨ã\81¯ã\81»ã\81¨ã\82\93ã\81©ã\81ªã\81\84ã\80\82 å\8f¤ã\81\84ã\83¡ã\83¼ã\83«ã\83»ã\82¢ã\83¼ã\82«ã\82¤ã\83\96ã\81§æ\99\82ã\80\85ã\81«ç\9b®ã\81«ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\80\82 ä¸\80è\88¬ã\81«ã\81¯å®\9fé\9a\9bã\81®ã\82¢ã\83\89ã\83¬ã\82¹ã\82\92æ±\82ã\82\81ã\82\8bã\81\9fã\82\81ã\81«
+今では経路アドレスが使われることはほとんどない。 古いメールアーカイブで時々に目にすることがある。 一般には実際のアドレスを求めるために
"user@hostc" 以外の全て部分を無視 することもできる。
.SS "ポストマスター (postmaster)"
.PP
-å\85¨ã\81¦ã\81®ã\82µã\82¤ã\83\88ã\81¯ã\80\81ã\83¡ã\83¼ã\83«ã\83»ã\82·ã\82¹ã\83\86ã\83 ã\81®å\95\8fé¡\8cã\82\92ç\9f¥ã\82\89ã\81\9bã\82\8bå®\9bã\81¦å\85\88ã\81¨ã\81\97ã\81¦ã\80\81 "postmaster" ã\81¨ã\81\84ã\81\86ã\83¦ã\83¼ã\82¶か別名定義 (alias) を用意しなければ
+å\85¨ã\81¦ã\81®ã\82µã\82¤ã\83\88ã\81¯ã\80\81ã\83¡ã\83¼ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81®å\95\8fé¡\8cã\82\92ç\9f¥ã\82\89ã\81\9bã\82\8bå®\9bã\81¦å\85\88ã\81¨ã\81\97ã\81¦ã\80\81 "postmaster" ã\81¨ã\81\84ã\81\86ã\83¦ã\83¼ã\82¶ã\83¼か別名定義 (alias) を用意しなければ
ならない。 "postmaster" のアドレスは大文字、小文字の区別はされない。
.SH ファイル
\fI/etc/aliases\fP
\fBman\fP [\fIsection\fP] \fItitle\fP
.SH 説明
このページでは、 Linux \fIman\-pages\fP プロジェクトのマニュアルページを書く際に 従うべき決まり事について説明する。 Linux
-\fIman\-pages\fP プロジェクトは Linux カーネルおよび GNU C ライブラリが提供するユーザ空間 API
+\fIman\-pages\fP プロジェクトは Linux カーネルおよび GNU C ライブラリが提供するユーザー空間 API
のドキュメント作成を行っている。Linux システムのマニュアルページのセクション 2 のページのほとんどと、セクション 3, 4, 5, 7
の多くのページが、このプロジェクトにより提供されている。このページで説明されている決まり事は、他のプロジェクトの
マニュアルページを書く作者にも役立つことだろう。
マニュアルのセクションは、習慣的に以下のような定義が用いられている:
.TP 10
\fB1 コマンド (プログラム)\fP
-シェルの中からユーザが実行できるコマンド。
+ã\82·ã\82§ã\83«ã\81®ä¸ã\81\8bã\82\89ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cå®\9fè¡\8cã\81§ã\81\8dã\82\8bã\82³ã\83\9eã\83³ã\83\89ã\80\82
.TP
\fB2 システムコール\fP
カーネルが処理しなければならない関数。
関数に対しては、必要なデータ宣言や \fB#include\fP 指定を書き、関数宣言を続ける。
.\" FIXME . Say something here about compiler options
-ヘッダファイルから関数 (や変数) の定義を得るために 機能検査マクロ (feature test macro) を定義しなければならない場合、 書式
+ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81\8bã\82\89é\96¢æ\95° (ã\82\84å¤\89æ\95°) ã\81®å®\9a義ã\82\92å¾\97ã\82\8bã\81\9fã\82\81ã\81« æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83 (feature test macro) ã\82\92å®\9a義ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84å ´å\90\88ã\80\81 æ\9b¸å¼\8f
(SYNOPSIS) に必要な機能検査マクロを記載すべきである。 機能検査マクロについては \fBfeature_test_macros\fP(7)
で説明されている。
.TP
.\" section).
ファイルや標準入力をどのように処理し、標準出力や標準エラー出力を どのように生成するかといったことについて述べる。
内部動作や実装の詳細については省略する (ただしそれが動作の理解にどうしても必要なら別)。 通常の場合について記述する。
-ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³ã\83»ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81®èª¬æ\98\8eã\81«ã\81¯ã\80\81 \fBã\82ªã\83\97ã\82·ã\83§ã\83³\fP ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\82\92ç\94¨ã\81\84ã\82\8bã\80\82
+プログラムのコマンドラインオプションの説明には、 \fBオプション\fP のセクションを用いる。
システムコールやライブラリ関数の新しい動作や新しいフラグについて説明する際は、 変更が取り込まれたカーネルや C
ライブラリのバージョンを注記に入れるように気を付けること。 フラグにこの情報の注記を入れる方法としては、推奨される方法は、 以下のように \fB.TP\fP
フラグの説明...
.RE
.IP
-バージョン情報を入れておくのは、 古いバージョンのカーネルや C ライブラリを使わざるを得ないユーザにとって、 特に有用である
+ã\83\90ã\83¼ã\82¸ã\83§ã\83³æ\83\85å ±ã\82\92å\85¥ã\82\8cã\81¦ã\81\8aã\81\8fã\81®ã\81¯ã\80\81 å\8f¤ã\81\84ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81®ã\82«ã\83¼ã\83\8dã\83«ã\82\84 C ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\82\92使ã\82\8fã\81\96ã\82\8bã\82\92å¾\97ã\81ªã\81\84ã\83¦ã\83¼ã\82¶ã\83¼ã\81«ã\81¨ã\81£ã\81¦ã\80\81 ç\89¹ã\81«æ\9c\89ç\94¨ã\81§ã\81\82ã\82\8b
(例えば、組み込みシステムではよくあることである)。
.TP
\fBオプション (OPTIONS)\fP
-ã\83\97ã\83ã\82°ã\83©ã\83 ã\81\8cå\8f\97ã\81\91ä»\98ã\81\91ã\82\8bã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³ã\83»ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¨ã\81\9dã\81®å ´å\90\88ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®æ\8c¯è\88\9eã\81\84ã\81\8cã\81©ã\81\86å¤\89ã\82\8fã\82\8bã\81\8bã\81®èª¬æ\98\8eã\80\82
+プログラムが受け付けるコマンドラインオプションとその場合プログラムの振舞いがどう変わるかの説明。
.\" .TP
.\" .B USAGE
Notes)\fP という名前のサブセクション (\fBSS\fP) を設けると便利なこともある。
セクション 2 では、 システムコールに対する C
-ライブラリのラッパー関数とカーネルが提供する素のシステムコールのインタフェースの間で違いがある場合に、その違いを説明する注記を記載する際には \fIC
+ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81®ã\83©ã\83\83ã\83\91ã\83¼é\96¢æ\95°ã\81¨ã\82«ã\83¼ã\83\8dã\83«ã\81\8cæ\8f\90ä¾\9bã\81\99ã\82\8bç´ ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®é\96\93ã\81§é\81\95ã\81\84ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\81«ã\80\81ã\81\9dã\81®é\81\95ã\81\84ã\82\92説æ\98\8eã\81\99ã\82\8b注è¨\98ã\82\92è¨\98è¼\89ã\81\99ã\82\8bé\9a\9bã\81«ã\81¯ \fIC
ライブラリとカーネル ABI の違い\fP という見出しを使うこと。
.TP
\fBバグ (BUGS)\fP
.PP
ファイル名 (パス名、またはヘッダーファイルへの参照) は常にイタリック体にする (例: \fI<stdio.h>\fP)。 ただし、書式
(SYNOPSIS) セクションは例外で、 インクルードファイルはボールドにする (例: \fB#include <stdio.h>\fP)。
-æ¨\99æº\96ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\83\98ã\83\83ã\83\80ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bé\9a\9bã\81¯ã\80\81 é\80\9a常ã\81® C è¨\80èª\9eã\81¨å\90\8cæ§\98ã\81«å±±æ\8b¬å¼§ã\81§ã\83\98ã\83\83ã\83\80ファイルを囲ぬで指定する (例:
+æ¨\99æº\96ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bé\9a\9bã\81¯ã\80\81 é\80\9a常ã\81® C è¨\80èª\9eã\81¨å\90\8cæ§\98ã\81«å±±æ\8b¬å¼§ã\81§ã\83\98ã\83\83ã\83\80ã\83¼ファイルを囲ぬで指定する (例:
\fI<stdio.h>\fP)。
.PP
通常、大文字で表現する特殊マクロはボールドで表す (例えば \fBMAXINT\fP)。 例外として NULL はボールドにしない。
.IP * 3
サンプルプログラムは C で記載すること。
.IP *
-サンプルプログラムは、 インタフェースについて文章で簡単に説明できる以上のことを示す場合にだけ
-必要かつ有用である。インタフェースを呼び出す以外に何もしないサンプル プログラムは普通はほとんど役に立たない。
+ã\82µã\83³ã\83\97ã\83«ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯ã\80\81 ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«ã\81¤ã\81\84ã\81¦æ\96\87ç« ã\81§ç°¡å\8d\98ã\81«èª¬æ\98\8eã\81§ã\81\8dã\82\8b以ä¸\8aã\81®ã\81\93ã\81¨ã\82\92示ã\81\99å ´å\90\88ã\81«ã\81 ã\81\91
+å¿\85è¦\81ã\81\8bã\81¤æ\9c\89ç\94¨ã\81§ã\81\82ã\82\8bã\80\82ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92å\91¼ã\81³å\87ºã\81\99以å¤\96ã\81«ä½\95ã\82\82ã\81\97ã\81ªã\81\84ã\82µã\83³ã\83\97ã\83« ã\83\97ã\83ã\82°ã\83©ã\83 ã\81¯æ\99®é\80\9aã\81¯ã\81»ã\81¨ã\82\93ã\81©å½¹ã\81«ç«\8bã\81\9fã\81ªã\81\84ã\80\82
.IP *
サンプルプログラムはかなり短めにすること (100行未満が望ましく、50行未満が理想的である)。
.IP *
.IP *
セッションログをスペース 4 つで字下げすること
.IP *
-ユーザの入力文をボールドにして、システムが生成する出力と区別できるようにすること
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81®å\85¥å\8a\9bæ\96\87ã\82\92ã\83\9cã\83¼ã\83«ã\83\89ã\81«ã\81\97ã\81¦ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81\8cç\94\9fæ\88\90ã\81\99ã\82\8bå\87ºå\8a\9bã\81¨å\8cºå\88¥ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\93ã\81¨
.PP
サンプルプログラムがどんな風になっていればよいかの例については、 \fBwait\fP(2) と \fBpipe\fP(2) を参照すること。
.SH 例
.SS その他のマクロや文字列
.PP
以下に、他のマクロや定義済みの文字列を示す。 特に記述がない限り、マクロを使うと改行が行われる (テキストの現在の行を終了する)。 多くのマクロは
-「優先インデント (prevailing indent)」を設定したり、使用する。 優先インデントの値は、どのマクロからもパラメータ \fIi\fP
+「優先インデント (prevailing indent)」を設定したり、使用する。 優先インデントの値は、どのマクロからもパラメーター \fIi\fP
によって指定できる (以下に示す)。 マクロでは \fIi\fP を省略することもでき、その場合は現在の優先インデントの値が用いられる。
これにより結果として、インデントされた段落が連続している場合、 インデントの値を再指定しなくてもインデント量を同じにすることができる。 通常の
(インデントされていない) 段落が登場すると、 優先インデントの値はデフォルトの値 (0.5 インチ) にリセットされる。
パラグラフ間の間隔を引き数にセットする (省略されると d=0.4v となる)。
.TP
\fB\&.SS\fP\fI t\fP
-サブヘッダ \fIt\fP (\fB\&.SH\fP のようなものだが、サブセクションのために用いる)。
+サブヘッダー \fIt\fP (\fB\&.SH\fP のようなものだが、サブセクションのために用いる)。
.SS 定義済みの文字列
\fBman\fP パッケージには、以下のような定義済みの文字列がある:
.IP \e*R
\fB\e*(xx\fP, \fB\e(xx\fP, \fB\e$N\fP, \fB\enx\fP, \fB\en(xx\fP, \fB\efx\fP, \fB\ef(xx\fP.
グラフィックの描画にはエスケープシーケンスは用いないほうが良い。
.PP
-\fBbp\fP (改頁) にはオプションパラメータを用いないこと。 \fBsp\fP (垂直スペース) には正の値のみを用いること。 man や mdoc
+\fBbp\fP (æ\94¹é \81) ã\81«ã\81¯ã\82ªã\83\97ã\82·ã\83§ã\83³ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ç\94¨ã\81\84ã\81ªã\81\84ã\81\93ã\81¨ã\80\82 \fBsp\fP (å\9e\82ç\9b´ã\82¹ã\83\9aã\83¼ã\82¹) ã\81«ã\81¯æ£ã\81®å\80¤ã\81®ã\81¿ã\82\92ç\94¨ã\81\84ã\82\8bã\81\93ã\81¨ã\80\82 man ã\82\84 mdoc
マクロパッケージにあるマクロと、 名前が同じで機能の異なるマクロを定義 (\fBde\fP) しないこと。そのような再定義は無視される可能性が高い。
正方向へのインデント (\fBin\fP) には、負のインデントを対応させること (このマクロの代わりに \fBRS\fP と \fBRE\fP
マクロを使った方がよいのだが)。 条件テスト (\fBif\fP,\fBie\fP) は状態として \(aqt\(aq または \(aqn\(aq
だけを持つようにすること。 変換 (\fBtr\fP) には無視できるものだけを使うこと。 フォントの変更 (\fBft\fP と \fB\ef\fP
エスケープシーケンス) には 1, 2, 3, 4, R, I, B, P, CW のみを用いること (ft
-コマンドの場合はパラメータを指定しなくてもよい)。
+ã\82³ã\83\9eã\83³ã\83\89ã\81®å ´å\90\88ã\81¯ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92æ\8c\87å®\9aã\81\97ã\81ªã\81\8fã\81¦ã\82\82ã\82\88ã\81\84)ã\80\82
.PP
この制限を越えて機能を用いる場合は、いくつかのツールを使って、 その結果を注意してチェックすること。追加した機能が安全だと
確信したら、この文書の管理者にその安全なコマンドまたはシーケンスを 教えてほしい。リストに追加する。
.Pq Tn BSD .
.El
.Ss ページレイアウトマクロ
-セクションヘッダ、段落の終わり、リスト、表示など。
+ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\80\81段è\90½ã\81®çµ\82ã\82\8fã\82\8aã\80\81ã\83ªã\82¹ã\83\88ã\80\81表示ã\81ªã\81©ã\80\82
.Bl -tag -width flag -compact
.It Li \&.Sh
-ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®ã\83\98ã\83\83ã\83\80ã\80\82 æ£ã\81\97ã\81\84ã\83\98ã\83\83ã\83\80は、現れる順に:
+ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\80\82 æ£ã\81\97ã\81\84ã\83\98ã\83\83ã\83\80ã\83¼は、現れる順に:
.Bl -tag -width "RETURN VALUE" -compact
.It Ar NAME
名前のセクション。
.It Ar SYNOPSIS
利用法。
.It Ar DESCRIPTION
-一般的な説明。オプションやパラメータの説明も含む。
+ä¸\80è\88¬ç\9a\84ã\81ªèª¬æ\98\8eã\80\82ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\84ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®èª¬æ\98\8eã\82\82å\90«ã\82\80ã\80\82
.It Ar RETURN VALUE
セクション 2 や 3 の関数コール。
.It Ar ENVIRONMENT
.It Ar BUGS
瑕疵や警告。
.It Ar other
-筆者の判断でヘッダをあつらえてもよい。
+ç\86è\80\85ã\81®å\88¤æ\96ã\81§ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92ã\81\82ã\81¤ã\82\89ã\81\88ã\81¦ã\82\82ã\82\88ã\81\84ã\80\82
.El
.It Li \&.Ss
-サブセクションのヘッダ。
+ã\82µã\83\96ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\80\82
.It Li \&.Pp
段落の区切り。 垂直スペース (一行)。
.It Li \&.D1
.It Fl ohang Ta 飛び出しラベルリスト
.It Fl inset Ta ラベル付きリストの挿入・継続
.El
-.It リストパラメータ
+.It リストパラメーター
.Bl -tag -width "xcompact " -compact
.It Fl offset
(全てのリスト) 上記の
詳細は個々の作者に任せたページレイアウトベースのものでした。
.Nm \-mdoc
では、ページレイアウトマクロは
-タイトル、セクションのヘッダ、ディスプレイ、リストのマクロからなる
+ã\82¿ã\82¤ã\83\88ã\83«ã\80\81ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\80\81ã\83\87ã\82£ã\82¹ã\83\97ã\83¬ã\82¤ã\80\81ã\83ªã\82¹ã\83\88ã\81®ã\83\9eã\82¯ã\83ã\81\8bã\82\89ã\81ªã\82\8b
.Em "ページ構造領域"
を形成しています。これらの項目は整形された
ページでのテキストの物理的な位置に影響を持ちます。
の関連ファイルを記述するための日常使用されるインフォーマルな言葉の
サブセットであるマクロとして定義されています。
マニュアル領域のマクロはコマンド名、コマンド行の引数とオプション、
-関数名、関数のパラメータ、パス名、変数名、他のマニュアルページへの
+é\96¢æ\95°å\90\8dã\80\81é\96¢æ\95°ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\80\81ã\83\91ã\82¹å\90\8dã\80\81å¤\89æ\95°å\90\8dã\80\81ä»\96ã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81¸ã\81®
クロスリファレンスなどを扱います。
-これらの領域の項目は作者とマニュアルページの将来のユーザの両者に
+ã\81\93ã\82\8cã\82\89ã\81®é \98å\9f\9fã\81®é \85ç\9b®ã\81¯ä½\9cè\80\85ã\81¨ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81®å°\86æ\9d¥ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ä¸¡è\80\85ã\81«
とって価値のあるものです。
マニュアル間で一貫性を高めることによって将来のドキュメントツールへの
移行が容易になることが望まれます。
.Pp
-マニュアルのエントリは、実際の長さに関わらず、
+ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ã\80\81å®\9fé\9a\9bã\81®é\95·ã\81\95ã\81«é\96¢ã\82\8fã\82\89ã\81\9aã\80\81
また男女の区別をするような意図なしで、
.Ux
のマニュアルページを通して、
単純に man ページとして参照されています。
.Sh さあ、始めよう
通常チュートリアルドキュメントは、そこに示された題材をすぐに使いたい時
-に読むものですので、このドキュメントのユーザはせっかちな人だと仮定して
+ã\81«èªã\82\80ã\82\82ã\81®ã\81§ã\81\99ã\81®ã\81§ã\80\81ã\81\93ã\81®ã\83\89ã\82ã\83¥ã\83¡ã\83³ã\83\88ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ã\81\9bã\81£ã\81\8bã\81¡ã\81ªäººã\81 ã\81¨ä»®å®\9aã\81\97ã\81¦
います。このドキュメントの残りの部分で説明されている題材は以下のような
構成になっています。
.Bl -enum -offset indent
.It
.Tn "ページ構造領域"
.Bl -tag -width flag -compact -offset indent
-.It "セクションヘッダ"
+.It "セクションヘッダー"
.It "段落と行スペース"
.It "キープ"
.It "ディスプレイ"
たとえば、関数マクロ
.Ql \&.Fn
では最初の引数は関数名であり、残りの
-引数が関数のパラメータであることが必要です。
+å¼\95æ\95°ã\81\8cé\96¢æ\95°ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\81\93ã\81¨ã\81\8cå¿\85è¦\81ã\81§ã\81\99ã\80\82
.Tn "ANSI C"
の括弧で
-å\9b²ã\81¾ã\82\8cã\81\9fã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83ªã\82¹ã\83\88ã\81«ã\81\8aã\81\91ã\82\8bé\96¢æ\95°ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿の宣言の規定により、
-各パラメータは最低でも 2 語の文字列となります。
+å\9b²ã\81¾ã\82\8cã\81\9fã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\83ªã\82¹ã\83\88ã\81«ã\81\8aã\81\91ã\82\8bé\96¢æ\95°ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼の宣言の規定により、
+å\90\84ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯æ\9c\80ä½\8eã\81§ã\82\82 2 èª\9eã\81®æ\96\87å\97å\88\97ã\81¨ã\81ªã\82\8aã\81¾ã\81\99ã\80\82
たとえば
.Fa int foo
のようになります。
の
.Xr troff
のすべてのマクロを実装するには処理速度およ
-びメモリ使用量の点でかなり高価な方法となります。
+びメモリー使用量の点でかなり高価な方法となります。
.Xr groff
では高価な処理にはなりませんが、移植性のため、この方法は
空白を含めることが最も必要である以下のマクロだけに限っています。
.Pp
.Dl Fn fetch char *str
.Pp
-パラメータのリストが改行の境界をまたぐ場合に何がおこるかについては、
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®ã\83ªã\82¹ã\83\88ã\81\8cæ\94¹è¡\8cã\81®å¢\83ç\95\8cã\82\92ã\81¾ã\81\9fã\81\90å ´å\90\88ã\81«ä½\95ã\81\8cã\81\8aã\81\93ã\82\8bã\81\8bã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\80\81
.Sx バグ
のセクションを参照してください。
.Ss 行末の空白文字
.Sx タイトルマクロ
で議論されています。
.Pp
-テンプレート中の残りの項目はセクションのヘッダ
+テンプレート中の残りの項目はセクションのヘッダー
.Pq Li \&.Sh
であり、
それらのうち
と
.Sx DESCRIPTION
は必須項目です。
-これらのヘッダについては
+ã\81\93ã\82\8cã\82\89ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\81«ã\81¤ã\81\84ã\81¦ã\81¯
.Sx マニュアル領域
を説明した後、
.Sx ページ構造領域
.Sh タイトルマクロ
タイトルマクロはページ構造領域の最初の部分ですが、man ページを
前日に書き始めたいという人のために、最初に分けて記述されます。
-3 つのヘッダマクロでドキュメントか man ページのタイトル、
+3 ã\81¤ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\9eã\82¯ã\83ã\81§ã\83\89ã\82ã\83¥ã\83¡ã\83³ã\83\88ã\81\8b man ã\83\9aã\83¼ã\82¸ã\81®ã\82¿ã\82¤ã\83\88ã\83«ã\80\81
オペレーティングシステム、および原著の日付を指定します。
これらのマクロはドキュメントの最初に一度だけ呼び出されるもので、
-ヘッダとフッタを構成するためだけに使用されます。
+ã\83\98ã\83\83ã\83\80ã\83¼ã\81¨ã\83\95ã\83\83ã\82¿ã\82\92æ§\8bæ\88\90ã\81\99ã\82\8bã\81\9fã\82\81ã\81 ã\81\91ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\81¾ã\81\99ã\80\82
.Bl -tag -width 6n
.It Li \&.Dt ドキュメントタイトル セクション番号 [ボリューム]
.\" .Cl
マクロを用いた
.Ux
コマンドの記述です。
-3 番目はコマンドを通常の言葉の感覚でユーザに示したものです。
+3 ç\95ªç\9b®ã\81¯ã\82³ã\83\9eã\83³ã\83\89ã\82\92é\80\9a常ã\81®è¨\80è\91\89ã\81®æ\84\9fè¦\9aã\81§ã\83¦ã\83¼ã\82¶ã\83¼ã\81«ç¤ºã\81\97ã\81\9fã\82\82ã\81®ã\81§ã\81\99ã\80\82
これはすなわち、man ページのテキスト中でのコマンドの議論となります。
.Pp
最初のケースでは、
.Ss コンフィギュレーション宣言 (セクション 4 のみ)
.Ql \&.Cd
マクロはセクション 4 のマニュアルにおいて、
-デバイスインタフェースの
+ã\83\87ã\83\90ã\82¤ã\82¹ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®
.Xr config 8
による宣言の説明に使われます。
このマクロは引用符 (二重引用符のみ) で囲まれた引数を取ることができます。
は解析され、呼び出し可能です。
.Ss 関数の引数
.Ql \&.Fa
-マクロは関数の引数 (パラメータ) を
+マクロは関数の引数 (パラメーター) を
マニュアルの
.Sx SYNOPSIS
のセクション外、
もしくは
.Sx SYNOPSIS
のセクション内で参照する場合に使われます。
-パラメータのリストが
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®ã\83ªã\82¹ã\83\88ã\81\8c
.Ql \&.Fn
マクロでは長すぎる場合は、
囲って使うマクロ
の呼び出しの終了を意味することに
注意して下さい (閉じ括弧がその点で挿入されます)。
.Pp
-9 個以上のパラメータをとる関数 (これは滅多にないことですが) では、
+9 å\80\8b以ä¸\8aã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ã\81¨ã\82\8bé\96¢æ\95° (ã\81\93ã\82\8cã\81¯æ»\85å¤\9aã\81«ã\81ªã\81\84ã\81\93ã\81¨ã\81§ã\81\99ã\81\8c) ã\81§ã\81¯ã\80\81
.Ql \&.Fo
マクロ (関数オープン) と
.Ql \&.Fc
マクロは解析され、呼び出し可能です。
.Ss セクションの相互参照
.Ql \&.Sx
-マクロは同一文書内でのセクションのヘッダへの参照を
+ã\83\9eã\82¯ã\83ã\81¯å\90\8cä¸\80æ\96\87æ\9b¸å\86\85ã\81§ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\81¸ã\81®å\8f\82ç\85§ã\82\92
指定します。これは解析され、呼び出し可能です。
.Pp
.Bl -tag -width "Li \&.Sx FILES" -offset 14n
.Ql \&.Xo
が使われていません。
.Sh ページ構造のドメイン
-.Ss セクションヘッダ
-以下にリストされている、最初の 3 つのセクションヘッダマクロ
+.Ss セクションヘッダー
+以ä¸\8bã\81«ã\83ªã\82¹ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\81æ\9c\80å\88\9dã\81® 3 ã\81¤ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\83\9eã\82¯ã\83
.Ql \&.Sh
はすべての man ページで必須のものです。
-残りのセクションヘッダはマニュアルページの作者の裁量において、
+æ®\8bã\82\8aã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\81¯ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81®ä½\9cè\80\85ã\81®è£\81é\87\8fã\81«ã\81\8aã\81\84ã\81¦ã\80\81
推奨されているものです。
.Ql \&.Sh
マクロは 9 つまでの引数を取ることができます。
.It \&.Sh 名前
.Sh 名前
(NAME) マクロは必須のものです。
-これが指定されていないと、ヘッダとフッタ、それにデフォルトの
+ã\81\93ã\82\8cã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\81¨ã\80\81ã\83\98ã\83\83ã\83\80ã\83¼ã\81¨ã\83\95ã\83\83ã\82¿ã\80\81ã\81\9dã\82\8cã\81«ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®
ページレイアウトが設定されず、結果はかなり好ましくないものになるでしょう。
.Sx NAME
セクションは最低 3 つの項目からなります。
.Pp
以下の
.Ql \&.Sh
-のセクションヘッダはマニュアルページの好ましい
+ã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\83\98ã\83\83ã\83\80ã\83¼ã\81¯ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81®å¥½ã\81¾ã\81\97ã\81\84
レイアウトの一部であり、一貫性を保つために適切に使われなければ
なりません。これらは使われる順番にリストされています。
.Bl -tag -width SYNOPSIS
あきらかな問題はここで記述します...
.El
.Pp
-ユーザ指定の
+ユーザー指定の
.Ql \&.Sh
セクションを追加することができます。
たとえば、このセクションは以下のように設定されています。
でリストしました。
このリストのタイプは
.Tn TeX
-のユーザに非常に人気のあるものですが、
+ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81«é\9d\9e常ã\81«äººæ°\97ã\81®ã\81\82ã\82\8bã\82\82ã\81®ã\81§ã\81\99ã\81\8cã\80\81
tag リストで構成されたページを何ページも読んだ後には幾分変に見える
でしょう。以下のリストタイプを
.Ql ".Bl"
.Tn I/O
の回数
.It UID
-プロセスの所有者の数字表記によるユーザID
+プロセスの所有者の数字表記によるユーザーID
.It PPID
親プロセスの数字表記によるID、プロセスの優先度
(割り込み不可のウエイトであるときには非正値)
\&.Tn I/O
\&の回数
\&.It UID
-\&プロセスの所有者の数字表記によるユーザID
+\&プロセスの所有者の数字表記によるユーザーID
\&.It PPID
\&親プロセスの数字表記によるID、プロセスの優先度
\&(割り込み不可のウエイトであるときには非正値)
.Sh 診断
.Nm \-mdoc
は限られたデバッグ機能しか持っていませんが、
-引数名と内部レジスタやマクロ名との衝突のような
+å¼\95æ\95°å\90\8dã\81¨å\86\85é\83¨ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\82\84ã\83\9eã\82¯ã\83å\90\8dã\81¨ã\81®è¡\9dçª\81ã\81®ã\82\88ã\81\86ã\81ª
潜在的なエラーを検出するのに役立ちます。 (A って何?)
-レジスタは
+ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81¯
.Xr troff
での演算用記憶クラスであり、
1 文字か 2 文字の名称がついています。
.Xr ditroff
での
.Nm \-mdoc
-のすべての内部レジスタは
+ã\81®ã\81\99ã\81¹ã\81¦ã\81®å\86\85é\83¨ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81¯
.Ql \&Ar
のように2 文字からなる <大文字><小文字> の形式か、
.Ql \&aR
の形式を取ります。
さらに混乱することに、
.Xr troff
-はそれ自身の内部レジスタを持ち、
+ã\81¯ã\81\9dã\82\8cè\87ªèº«ã\81®å\86\85é\83¨ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\82\92æ\8c\81ã\81¡ã\80\81
それらすべては小文字 2 文字か、ドットに文字もしくはメタ文字が続く形式を取ります。
紹介例の 1 つに、エスケープシーケンス
.Ql \e&
でマクロ名を
-解釈させない方法がありました。これは内部レジスタ名にも有効です。
+解釈させない方法がありました。これは内部レジスター名にも有効です。
.Pp
.\" Every callable macro name has a corresponding register
.\" of the same name (<upper_case><lower_case>).
.\" w[0-9] width tag/label stack
.\" .Ed
.\" .Pp
-エスケープされていないレジスタ名が引数リストに指定されると、
+エスケープされていないレジスター名が引数リストに指定されると、
予期できない振舞いとなります。
一般的には、テキストのかなり大きな部分が出力されるべきところに
出力されないとか、リストのタグのような小さな文字列が消えてしまうとか、
とその長さが
出力されています。引数の長さが 2 文字であれば、
その引数が実行可能
-(ゼロでない値を含むすべてのレジスタは実行可能なように見えます)
+(ã\82¼ã\83ã\81§ã\81ªã\81\84å\80¤ã\82\92å\90«ã\82\80ã\81\99ã\81¹ã\81¦ã\81®ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81¯å®\9fè¡\8cå\8f¯è\83½ã\81ªã\82\88ã\81\86ã\81«è¦\8bã\81\88ã\81¾ã\81\99)
かどうかテストされます。
3 番目の行ではそのクラスで指定されているスペースとクラスタイプが
出力されています。
は先の例と同様に長さ 2 と表示されています。
しかし、
.Ql \e&aC
-という名称のレジスタが見つからず、
+ã\81¨ã\81\84ã\81\86å\90\8d称ã\81®ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81\9aã\80\81
タイプは文字列と判断されています。
.Pp
この他の診断は使用方法を報告するものであり、
このパッケージでは改ページと、
.Xr nroff
で改ページ時に通常挿入
-されるヘッダとフッタは禁止されており、マニュアルをオンラインで効率良く
+ã\81\95ã\82\8cã\82\8bã\83\98ã\83\83ã\83\80ã\83¼ã\81¨ã\83\95ã\83\83ã\82¿ã\81¯ç¦\81æ¢ã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\82\92ã\82ªã\83³ã\83©ã\82¤ã\83³ã\81§å\8a¹ç\8e\87è\89¯ã\81\8f
見ることができるようになっています。現在の所、
.Fl T Ns Ar ascii
が
において 0 にセットする
ことができる
.Ql \&cR
-の名称を持つレジスタが古いスタイルの振る舞い
+ã\81®å\90\8d称ã\82\92æ\8c\81ã\81¤ã\83¬ã\82¸ã\82¹ã\82¿ã\83¼ã\81\8cå\8f¤ã\81\84ã\82¹ã\82¿ã\82¤ã\83«ã\81®æ\8c¯ã\82\8bè\88\9eã\81\84
を実現するために用意されています。
.Sh ファイル
.Bl -tag -width /usr/share/man0/template.doc -compact
.Pp
あらかじめ定義されている文字列は文書において宣言されていません。
.Pp
-セクション 3f はヘッダルーチンには追加されていません。
+ã\82»ã\82¯ã\82·ã\83§ã\83³ 3f ã\81¯ã\83\98ã\83\83ã\83\80ã\83¼ã\83«ã\83¼ã\83\81ã\83³ã\81«ã\81¯è¿½å\8a ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\9bã\82\93ã\80\82
.Pp
.Ql \&.Nm
フォントは
ことがあり、行がフィルモードであるときには全くおかしな結果になること
があります。
.Pp
-nroff 使ç\94¨æ\99\82ã\81«ã\80\81(æ\9c\80å\88\9dã\81®ã\83\98ã\83\83ã\83\80ã\81¨ã\83\95ã\83\83ã\82¿ä»¥å¤\96ã\81®) æ\94¹ã\83\9aã\83¼ã\82¸æ\99\82ã\81®ã\83\98ã\83\83ã\83\80と
+nroff 使ç\94¨æ\99\82ã\81«ã\80\81(æ\9c\80å\88\9dã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\81¨ã\83\95ã\83\83ã\82¿ä»¥å¤\96ã\81®) æ\94¹ã\83\9aã\83¼ã\82¸æ\99\82ã\81®ã\83\98ã\83\83ã\83\80ã\83¼と
フッタの挿入を行わないようにするのに使用される命令によって、
ときどき見るに耐えない部分的な行詰め (や空行) がページの末尾に
発生する場合がある。
から 31 までの優先度を実装することだけであり、実装によってはこの範囲の優先度しかサポートされていない。
.PP
この節の残りでは、POSIX メッセージキューの Linux の実装の詳細 について説明する。
-.SS ライブラリインタフェースとシステムコール
-ほとんどの場合、上記の \fBmq_*\fP() ライブラリインタフェースは、同じ名前の下位層のシステムコールを
+.SS ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¨ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«
+ã\81»ã\81¨ã\82\93ã\81©ã\81®å ´å\90\88ã\80\81ä¸\8aè¨\98ã\81® \fBmq_*\fP() ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ã\80\81å\90\8cã\81\98å\90\8då\89\8dã\81®ä¸\8bä½\8d層ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\92
使って実装されている。この枠組みにあてはまらないものを 以下の表に示す。
.RS
.TS
.SS リンク
POSIX メッセージキュー API を使用したプログラムは \fIcc \-lrt\fP でコンパイルし、リアルタイムライブラリ \fIlibrt\fP
とリンクしなければならない。
-.SS "/proc インタフェース"
-以ä¸\8bã\81®ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\82\92使ã\81£ã\81¦ã\80\81 POSIX ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\81\8cæ¶\88è²»ã\81\99ã\82\8bã\82«ã\83¼ã\83\8dã\83« ã\83¡ã\83¢ã\83ªの量を制限したり、
+.SS "/proc ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹"
+以ä¸\8bã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92使ã\81£ã\81¦ã\80\81 POSIX ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\81\8cæ¶\88è²»ã\81\99ã\82\8bã\82«ã\83¼ã\83\8dã\83« ã\83¡ã\83¢ã\83ªã\83¼の量を制限したり、
新規のメッセージキューのデフォルト属性を設定したりすることができる。
.TP
\fI/proc/sys/fs/mqueue/msg_default\fP (Linux 3.5 以降)
はこの上限値を超えてメッセージキューを作成できる。
.SS リソース制限
リソース上限 \fBRLIMIT_MSGQUEUE\fP は、プロセスの実 UID に対応する全メッセージキューが消費する
-メモリ空間の量に対して上限を設定する。 \fBgetrlimit\fP(2) を参照。
+メモリー空間の量に対して上限を設定する。 \fBgetrlimit\fP(2) を参照。
.SS メッセージキューファイルシステムのマウント
Linux では、メッセージキューは仮想ファイルシステム内に作成される (他の実装でも同様の機能が提供されているものもあるが、
-詳細は違っているだろう)。 以下のコマンドを使うことで (スーパーユーザは) このファイルシステムをマウントできる:
+詳細ã\81¯é\81\95ã\81£ã\81¦ã\81\84ã\82\8bã\81 ã\82\8dã\81\86)ã\80\82 以ä¸\8bã\81®ã\82³ã\83\9eã\83³ã\83\89ã\82\92使ã\81\86ã\81\93ã\81¨ã\81§ (ã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯) ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\82\92ã\83\9eã\82¦ã\83³ã\83\88ã\81§ã\81\8dã\82\8b:
.in +4n
.nf
\fBSIGNO\fP
\fBSIGEV_SIGNAL\fP に使用されるシグナル番号。
.SS メッセージキュー記述子のポーリング
-Linux では、メッセージキュー記述子は実際はファイル記述子 (file descriptor) であり、 \fBselect\fP(2),
+Linux では、メッセージキュー記述子は実際はファイルディスクリプター (file descriptor) であり、 \fBselect\fP(2),
\fBpoll\fP(2), \fBepoll\fP(7) を使って監視することができる。 この機能の移植性はない。
.SS "IPC 名前空間"
System V IPC オブジェクトと IPC 名前空間の相互の影響に関する議論は \fBnamespaces\fP(7) を参照。
.SH 注意
System V メッセージキュー (\fBmsgget\fP(2), \fBmsgsnd\fP(2), \fBmsgrcv\fP(2) など)
はプロセス間でメッセージをやり取りするための古い API である。 POSIX メッセージキューは System V メッセージキューよりもうまく
-設計されたインタフェースを提供している。 一方で、POSIX メッセージキューは System V メッセージキューと比べると
+è¨è¨\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 ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\81¯ System V ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\81¨æ¯\94ã\81¹ã\82\8bã\81¨
利用できるシステムが少ない (特に、古いシステムでは少ない)。
現在のことろ (バージョン 2.6.26 時点)、 Linux は POSIX メッセージキューに対するアクセス制御リスト (ACL) に
.TP
\fBsetns\fP(2)
\fBsetns\fP(2) システムコールを使うと、呼び出したプロセスを既存の名前空間に参加させることができる。 参加する名前空間は、 以下で説明する
-\fI/proc/[pid]/ns\fP ファイルのいずれか一つを参照するファイルディスクリプタを使って指定する。
+\fI/proc/[pid]/ns\fP ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bä¸\80ã\81¤ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92使ã\81£ã\81¦æ\8c\87å®\9aã\81\99ã\82\8bã\80\82
.TP
\fBunshare\fP(2)
\fBunshare\fP(2) システムコールは、 呼び出したプロセスを新しい名前空間に移動する。 呼び出し時の \fIflags\fP
.SS "/proc/[pid]/ns/ ディレクトリ"
.\" See commit 6b4e306aa3dc94a0545eb9279475b1ab6209a31f
各プロセスには \fI/proc/[pid]/ns/\fP サブディレクトリがあり、 このサブディレクトリには \fBsetns\fP(2)
-での操作がサポートされている名前空間単位にエントリが存在する。
+ã\81§ã\81®æ\93\8dä½\9cã\81\8cã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå\90\8då\89\8d空é\96\93å\8d\98ä½\8dã\81«ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\80\82
.in +4n
.nf
その名前空間のすべてのプロセスが終了した場合でも、 \fIpid\fP で指定したプロセスの対応する名前空間を保持することができる。
このディレクトリ内のファイルのいずれか (またはこれらのファイルのいずれかにバインドマウントされたファイル) をオープンすると、 \fIpid\fP
-で指定されたプロセスの対応する名前空間に対するファイルハンドルが返される。 このファイルディスクリプタがオープンされている限り、
-その名前空間のすべてのプロセスが終了した場合であっても、 その名前空間は存在し続ける。 このファイルディスクリプタは \fBsetns\fP(2)
+ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81®å¯¾å¿\9cã\81\99ã\82\8bå\90\8då\89\8d空é\96\93ã\81«å¯¾ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\8fã\83³ã\83\89ã\83«ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bé\99\90ã\82\8aã\80\81
+ã\81\9dã\81®å\90\8då\89\8d空é\96\93ã\81®ã\81\99ã\81¹ã\81¦ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cçµ\82äº\86ã\81\97ã\81\9få ´å\90\88ã\81§ã\81\82ã\81£ã\81¦ã\82\82ã\80\81 ã\81\9dã\81®å\90\8då\89\8d空é\96\93ã\81¯å\98å\9c¨ã\81\97ç¶\9aã\81\91ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ \fBsetns\fP(2)
に渡すことができる。
Linux 3.7 以前では、これらのファイルはハードリンクとして見えていた。 Linux 3.8 以降では、これらはシンボリックリンクとして見える。
各 IPC 名前空間はそれぞれ、 独自の System V IPC 識別子の集合と独自の POSIX メッセージキューファイルシステムを持つ。 IPC
名前空間に作成されたオブジェクトは、 その名前空間のメンバーの他のすべてのプロセスにも見えるが、 他の IPC 名前空間のプロセスには見えない。
-以下の \fI/proc\fP インタフェースは各 IPC 名前空間で別のものとなる。
+以ä¸\8bã\81® \fI/proc\fP ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯å\90\84 IPC å\90\8då\89\8d空é\96\93ã\81§å\88¥ã\81®ã\82\82ã\81®ã\81¨ã\81ªã\82\8bã\80\82
.IP * 3
-\fI/proc/sys/fs/mqueue\fP の POSIX メッセージキューインタフェース。
+\fI/proc/sys/fs/mqueue\fP ã\81® POSIX ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82ã\83¥ã\83¼ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\80\82
.IP *
-\fI/proc/sys/kernel\fP の System V IPC インタフェース。 すなわち、 \fImsgmax\fP, \fImsgmnb\fP,
+\fI/proc/sys/kernel\fP ã\81® System V IPC ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\80\82 ã\81\99ã\81ªã\82\8fã\81¡ã\80\81 \fImsgmax\fP, \fImsgmnb\fP,
\fImsgmni\fP, \fIsem\fP, \fIshmall\fP, \fIshmmax\fP, \fIshmmni\fP, \fIshm_rmid_forced\fP。
.IP *
-\fI/proc/sysvipc\fP の System V IPC インタフェース。
+\fI/proc/sysvipc\fP ã\81® System V IPC ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\80\82
.PP
IPC 名前空間が破棄されたときに (すなわち、その名前空間のメンバーの最後のプロセスが終了したときに)、 その名前空間内のすべての IPC
オブジェクトが自動的に破棄される。
そのプロセスのマウント名前空間で現在マウントされている全ファイルシステムの一覧を表示する。 このファイルのフォーマットは \fBfstab\fP(5)
に記載されている。 カーネルバージョン 2.6.15 以降では、このファイルをポーリングすることができる。
すなわち、このファイルを読み出し用にオープンした後、 このファイルの変化 (ファイルシステムのマウントやアンマウント) が発生すると、
-\fBselect\fP(2) はファイルディスクリプタが読み出し可能になったと印を付け、 \fBpoll\fP(2) や \fBepoll_wait\fP(2)
+\fBselect\fP(2) ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cèªã\81¿å\87ºã\81\97å\8f¯è\83½ã\81«ã\81ªã\81£ã\81\9fã\81¨å\8d°ã\82\92ä»\98ã\81\91ã\80\81 \fBpoll\fP(2) ã\82\84 \fBepoll_wait\fP(2)
はファイルがエラー状態になったかのように印を付ける。
\fI/proc/[pid]/mountstats\fP ファイル (Linux 2.6.17 以降に存在) は、 そのプロセスのマウントポイントに関する情報
.SH 説明
この man ページでは、ネットワークデバイスを設定するために 用いるソケットインターフェースについて解説する。
-Linux はネットワークデバイスを設定するための標準的な ioctl を いくつか備えている。これらはどんなソケットのファイルディスクリプタにも
+Linux ã\81¯ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\83\87ã\83\90ã\82¤ã\82¹ã\82\92è¨å®\9aã\81\99ã\82\8bã\81\9fã\82\81ã\81®æ¨\99æº\96ç\9a\84ã\81ª ioctl ã\82\92 ã\81\84ã\81\8fã\81¤ã\81\8bå\82\99ã\81\88ã\81¦ã\81\84ã\82\8bã\80\82ã\81\93ã\82\8cã\82\89ã\81¯ã\81©ã\82\93ã\81ªã\82½ã\82±ã\83\83ã\83\88ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ã\82\82
用いることができる。ファミリーやタイプは何でもよい。 これらの ioctl のほとんどは \fIifreq\fP 構造体を渡す。
.in +4n
.in
通常、ユーザーによる設定対象デバイスの指定は、 \fIifr_name\fP にインターフェースの名前をセットすることによって行う。
-他の構造体の全てのメンバは、メモリを共有する。
+ä»\96ã\81®æ§\8bé\80 ä½\93ã\81®å\85¨ã\81¦ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\80\82
.SS ioctl
「特権が必要」と記述されている ioctl を実行するには、 実効ユーザー ID が 0 か、 \fBCAP_NET_ADMIN\fP
権限が必要である。これが満たされていない場合は \fBEPERM\fP が返される。
デバイスのハードウェアブロードキャストアドレスを \fIifr_hwaddr\fP の値に設定する。この操作には特権が必要である。
.TP
\fBSIOCGIFMAP\fP, \fBSIOCSIFMAP\fP
-ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\82\92 \fIifr_map\fP ã\82\92ç\94¨ã\81\84ã\81¦å\8f\96å¾\97ã\83»è¨å®\9aã\81\99ã\82\8bã\80\82 ã\83\91ã\83©ã\83¡ã\83¼ã\82¿の設定は特権が必要な操作である。
+ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92 \fIifr_map\fP ã\82\92ç\94¨ã\81\84ã\81¦å\8f\96å¾\97ã\83»è¨å®\9aã\81\99ã\82\8bã\80\82 ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼の設定は特権が必要な操作である。
.in +4n
.nf
.fi
.in
-ifmap 構造体の解釈はデバイスドライバとアーキテクチャに依存する。
+ifmap æ§\8bé\80 ä½\93ã\81®è§£é\87\88ã\81¯ã\83\87ã\83\90ã\82¤ã\82¹ã\83\89ã\83©ã\82¤ã\83\90ã\81¨ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.TP
\fBSIOCADDMULTI\fP, \fBSIOCDELMULTI\fP
デバイスのリンク層のマルチキャストフィルターから、 \fIifr_hwaddr\fP のアドレスを追加・削除する。これらの操作には特権が必要である。
.in +4n
.nf
struct ifconf {
- int ifc_len; /* バッファサイズ */
+ int ifc_len; /* ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82º */
union {
- char *ifc_buf; /* バッファアドレス */
+ char *ifc_buf; /* ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ */
struct ifreq *ifc_req; /* 構造体の配列 */
};
};
.fi
.in
-\fIifc_req\fP ã\81\8c NULL ã\81®å ´å\90\88ã\80\81 \fBSIOCGIFCONF\fP ã\81¯ã\81\99ã\81¹ã\81¦ã\81®å\8f\96å¾\97ã\81§ã\81\8dã\82\8bã\82¢ã\83\89ã\83¬ã\82¹ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bã\81®ã\81«å¿\85è¦\81ã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88æ\95°)
-を \fIifc_len\fP に格納して返す。 それ以外の場合は、\fIifc_req\fP には \fIifreq\fP 構造体の配列へのポインタを渡す。
-この構造体の配列には現在アクティブな L3 インターフェースアドレスがすべて格納される。 \fIifc_len\fP はバイト単位の配列のサイズを渡す。
-\fIifreq\fP 構造体内では、 \fIifr_name\fP にインターフェース名が、 \fIifr_addr\fP にそのアドレスが入る。
-実際に格納されたバイト数は \fIifc_len\fP で返される。
+\fIifc_req\fP ã\81\8c NULL ã\81®å ´å\90\88ã\80\81 \fBSIOCGIFCONF\fP ã\81¯ã\81\99ã\81¹ã\81¦ã\81®å\8f\96å¾\97ã\81§ã\81\8dã\82\8bã\82¢ã\83\89ã\83¬ã\82¹ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bã\81®ã\81«å¿\85è¦\81ã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82º
+(バイト数) を \fIifc_len\fP に格納して返す。 それ以外の場合は、\fIifc_req\fP には \fIifreq\fP
+構造体の配列へのポインターを渡す。 この構造体の配列には現在アクティブな L3 インターフェースアドレスがすべて格納される。 \fIifc_len\fP
+はバイト単位の配列のサイズを渡す。 \fIifreq\fP 構造体内では、 \fIifr_name\fP にインターフェース名が、 \fIifr_addr\fP
+にそのアドレスが入る。 実際に格納されたバイト数は \fIifc_len\fP で返される。
\fIifc_len\fP で指定されたサイズがすべてのアドレスを格納するのに不十分な場合、 カーネルは超過分をスキップし、成功を返す。
この状況になった場合、それを検出する信頼できる方法はない。 したがって、 前もって \fIifc_req\fP を NULL に設定して
-\fBSIOCGIFCONF\fP を呼び出して必要なバッファサイズを決定するか、 返された \fIifc_len\fP と元の値の差分が
-\fIsizeof(struct ifreq)\fP よりも小さい場合は必ずバッファを大きくして再度呼び出すか、 のいずれかを行うことが推奨される。
+\fBSIOCGIFCONF\fP ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81¦å¿\85è¦\81ã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\82\92決å®\9aã\81\99ã\82\8bã\81\8bã\80\81 è¿\94ã\81\95ã\82\8cã\81\9f \fIifc_len\fP ã\81¨å\85\83ã\81®å\80¤ã\81®å·®å\88\86ã\81\8c
+\fIsizeof(struct ifreq)\fP ã\82\88ã\82\8aã\82\82å°\8fã\81\95ã\81\84å ´å\90\88ã\81¯å¿\85ã\81\9aã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92大ã\81\8dã\81\8fã\81\97ã\81¦å\86\8d度å\91¼ã\81³å\87ºã\81\99ã\81\8bã\80\81 ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\82\92è¡\8cã\81\86ã\81\93ã\81¨ã\81\8cæ\8e¨å¥¨ã\81\95ã\82\8cã\82\8bã\80\82
.\" Slaving isn't supported in 2.2
.\" .
.SH 説明
netlink はカーネルモジュールとユーザー空間のプロセス間で 情報をやりとりするために用いられる。 netlink は、ユーザープロセスに対しては
標準的なソケットベースのインターフェースを、 カーネルモジュールにはカーネルの内部 API を提供する。 カーネル内部のインターフェースについてはこの
-man ページでは記述しない。 また、netlink キャラクタデバイスを用いた obsolete な netlink
+man ã\83\9aã\83¼ã\82¸ã\81§ã\81¯è¨\98è¿°ã\81\97ã\81ªã\81\84ã\80\82 ã\81¾ã\81\9fã\80\81netlink ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\83\87ã\83\90ã\82¤ã\82¹ã\82\92ç\94¨ã\81\84ã\81\9f obsolete ã\81ª netlink
インターフェースもあるが、これもこの文書では解説しない。 これは過去互換性のためだけに用意されている。
netlink はデータグラム指向のサービスである。 \fIsocket_type\fP には \fBSOCK_RAW\fP と \fBSOCK_DGRAM\fP
ファミリーは以下の通り。
.TP
\fBNETLINK_ROUTE\fP
-ルーティングとリンクの更新を受信する。 (IPv4 と IPv6 両方の) ルーティングテーブル・ IP アドレス・リンクパラメータ・近傍設定
+ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\82°ã\81¨ã\83ªã\83³ã\82¯ã\81®æ\9b´æ\96°ã\82\92å\8f\97ä¿¡ã\81\99ã\82\8bã\80\82 (IPv4 ã\81¨ IPv6 両æ\96¹ã\81®) ã\83«ã\83¼ã\83\86ã\82£ã\83³ã\82°ã\83\86ã\83¼ã\83\96ã\83«ã\83» IP ã\82¢ã\83\89ã\83¬ã\82¹ã\83»ã\83ªã\83³ã\82¯ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\83»è¿\91å\82\8dè¨å®\9a
(neighbor setup)・ キューイングルール (queueing dicipline)・トラフィッククラス・
パケットのクラス分類の修正に用いることができるだろう (\fBrtnetlink\fP(7) を見よ)。
.TP
.\" Author: Steffen Klassert <steffen.klassert@secunet.com>
カーネル暗号 API で登録された暗号に関する情報を要求したり、 カーネル暗号 API の設定を行ったりするための netlink インターフェース。
.PP
-netlink メッセージはバイトストリームからなり、 一つ以上の \fInlmsghdr\fP ヘッダと、それに対応するペイロード (payload)
+netlink ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81¯ã\83\90ã\82¤ã\83\88ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81\8bã\82\89ã\81ªã\82\8aã\80\81 ä¸\80ã\81¤ä»¥ä¸\8aã\81® \fInlmsghdr\fP ã\83\98ã\83\83ã\83\80ã\83¼ã\81¨ã\80\81ã\81\9dã\82\8cã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83\9aã\82¤ã\83ã\83¼ã\83\89 (payload)
が含まれる。 バイトストリームには、標準の \fBNLMSG_*\fP マクロによってのみアクセスすべきである。 より詳しい情報は \fBnetlink\fP(3)
を見よ。
-マルチパートメッセージ (一つ以上の \fInlmsghdr\fP ヘッダと、それに対応するペイロードが 一つバイトストリームに含まれる) においては、
-å\85\88é ã\81®ã\83\98ã\83\83ã\83\80ã\83»å¾\8cç¶\9aã\81®ã\83\98ã\83\83ã\83\80ã\81«ã\81¯ \fBNLM_F_MULTI\fP ã\83\95ã\83©ã\82°ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82ã\81\9fã\81 ã\81\97æ\9c\80å¾\8cã\81®ã\83\98ã\83\83ã\83\80だけは例外で、 \fBNLMSG_DONE\fP
+ã\83\9eã\83«ã\83\81ã\83\91ã\83¼ã\83\88ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ (ä¸\80ã\81¤ä»¥ä¸\8aã\81® \fInlmsghdr\fP ã\83\98ã\83\83ã\83\80ã\83¼ã\81¨ã\80\81ã\81\9dã\82\8cã\81«å¯¾å¿\9cã\81\99ã\82\8bã\83\9aã\82¤ã\83ã\83¼ã\83\89ã\81\8c ä¸\80ã\81¤ã\83\90ã\82¤ã\83\88ã\82¹ã\83\88ã\83ªã\83¼ã\83 ã\81«å\90«ã\81¾ã\82\8cã\82\8b) ã\81«ã\81\8aã\81\84ã\81¦ã\81¯ã\80\81
+å\85\88é ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83»å¾\8cç¶\9aã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\81«ã\81¯ \fBNLM_F_MULTI\fP ã\83\95ã\83©ã\82°ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82ã\81\9fã\81 ã\81\97æ\9c\80å¾\8cã\81®ã\83\98ã\83\83ã\83\80ã\83¼だけは例外で、 \fBNLMSG_DONE\fP
タイプとなる。
それぞれの \fBnlmsghdr\fP の後にはペイロードが続く。
.in +4n
.nf
struct nlmsghdr {
- __u32 nlmsg_len; /* ヘッダを含むメッセージの長さ */
+ __u32 nlmsg_len; /* ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92å\90«ã\82\80ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81®é\95·ã\81\95 */
__u16 nlmsg_type; /* メッセージの内容のタイプ */
__u16 nlmsg_flags; /* 追加フラグ */
__u32 nlmsg_seq; /* シーケンス番号 */
.nf
struct nlmsgerr {
int error; /* 負または 0 の errno は応答を表す */
- struct nlmsghdr msg; /* エラーを起こしたメッセージのヘッダ */
+ struct nlmsghdr msg; /* エラーを起こしたメッセージのヘッダー */
};
.fi
.in
lB l.
GET 要求における追加フラグビット
_
-NLM_F_ROOT:単一のエントリではなくテーブル全体を返す。
+NLM_F_ROOT:å\8d\98ä¸\80ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81§ã\81¯ã\81ªã\81\8fã\83\86ã\83¼ã\83\96ã\83«å\85¨ä½\93ã\82\92è¿\94ã\81\99ã\80\82
NLM_F_MATCH:T{
-メッセージの内容で渡された基準 (criteria) にマッチする全てのエントリを返す。
+ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81®å\86\85容ã\81§æ¸¡ã\81\95ã\82\8cã\81\9få\9fºæº\96 (criteria) ã\81«ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bå\85¨ã\81¦ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¿\94ã\81\99ã\80\82
まだ実装されていない。
T}
.\" FIXME NLM_F_ATOMIC is not used anymore?
\fInlmsg_seq\fP と \fInlmsg_pid\fP は netlink のコアには見えない (opaque)。
netlink は信頼性の高いプロトコルではない。 netlink はメッセージを行き先に届けるために最善を尽くすが、
-メモリが足りなかったりエラーが起こったりすると メッセージを取りこぼすこともある。 信頼性の高い転送を行いたいときは、
+ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\8bã\81£ã\81\9fã\82\8aã\82¨ã\83©ã\83¼ã\81\8cèµ·ã\81\93ã\81£ã\81\9fã\82\8aã\81\99ã\82\8bã\81¨ ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92å\8f\96ã\82\8aã\81\93ã\81¼ã\81\99ã\81\93ã\81¨ã\82\82ã\81\82ã\82\8bã\80\82 ä¿¡é ¼æ\80§ã\81®é«\98ã\81\84転é\80\81ã\82\92è¡\8cã\81\84ã\81\9fã\81\84ã\81¨ã\81\8dã\81¯ã\80\81
送信者は受信者に応答を要求することもできる。 これには \fBNLM_F_ACK\fP フラグをセットする。 応答は \fBNLMSG_ERROR\fP
パケットのエラーフィールドを 0 にしたものになる。 アプリケーションは自分自身のメッセージを受けたときには、 応答を生成しなければならない。
カーネルは失敗したパケットに対して、 \fBNLMSG_ERROR\fP メッセージを送ろうとする。 ユーザープロセスはこの慣習にも従う必要がある。
-しかし、どのような場合でもカーネルからユーザーへの 信頼性の高い転送は不可能である。 ソケットバッファが満杯の場合、カーネルは netlink
+ã\81\97ã\81\8bã\81\97ã\80\81ã\81©ã\81®ã\82\88ã\81\86ã\81ªå ´å\90\88ã\81§ã\82\82ã\82«ã\83¼ã\83\8dã\83«ã\81\8bã\82\89ã\83¦ã\83¼ã\82¶ã\83¼ã\81¸ã\81® ä¿¡é ¼æ\80§ã\81®é«\98ã\81\84転é\80\81ã\81¯ä¸\8då\8f¯è\83½ã\81§ã\81\82ã\82\8bã\80\82 ã\82½ã\82±ã\83\83ã\83\88ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cæº\80æ\9d¯ã\81®å ´å\90\88ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81¯ netlink
メッセージを送信できない。 メッセージは取りこぼされて、カーネルとユーザー空間プロセスは、 カーネルの状態についての同じビューを持つことができなくなる。
これが起こったこと (\fBrecvmsg\fP(2) によって \fBENOBUFS\fP エラーが返される) を検知して再び同期させるのは、
アプリケーションの責任である。
マルチキャストグループ向けメッセージを受信した場合、これ対する応答は
送り主の PID とマルチキャストグループとに送り返すべきである。
さらに、Linux のカーネルサブシステムによっては、
-他のユーザもメッセージの送受信ができる場合がある。
+ä»\96ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82\82ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81®é\80\81å\8f\97ä¿¡ã\81\8cã\81§ã\81\8dã\82\8bå ´å\90\88ã\81\8cã\81\82ã\82\8bã\80\82
Linux 3.0 の時点では、
\fBNETLINK_KOBJECT_UEVENT\fP, \fBNETLINK_GENERIC\fP, \fBNETLINK_ROUTE\fP,
-\fBNETLINK_SELINUX\fP グループでは他のユーザがメッセージを受信することができる。
-他のユーザがメッセージを送信できるグループは存在しない。
+\fBNETLINK_SELINUX\fP ã\82°ã\83«ã\83¼ã\83\97ã\81§ã\81¯ä»\96ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92å\8f\97ä¿¡ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
+ä»\96ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82\92é\80\81ä¿¡ã\81§ã\81\8dã\82\8bã\82°ã\83«ã\83¼ã\83\97ã\81¯å\98å\9c¨ã\81\97ã\81ªã\81\84ã\80\82
.SH バージョン
netlink へのソケットインターフェースは Linux 2.2 の新機能である。
.\"
.TH NUMA 7 2012\-08\-05 Linux "Linux Programmer's Manual"
.SH 名前
-numa \- é\9d\9e対称å\9e\8bã\83¡ã\83¢ã\83ªã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£の概要
+numa \- é\9d\9e対称å\9e\8bã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼の概要
.SH 説明
-非対称型メモリアクセス (Non\-Uniform Memory Access; NUMA) は、
-ã\83¡ã\83¢ã\83ªã\81\8cè¤\87æ\95°ã\81®ã\83¡ã\83¢ã\83ªノードに分割されているマルチプロセッサシステム
-のことである。メモリノードへのアクセス時間は、アクセス元の CPU と
+é\9d\9e対称å\9e\8bã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\82¯ã\82»ã\82¹ (Non\-Uniform Memory Access; NUMA) ã\81¯ã\80\81
+ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cè¤\87æ\95°ã\81®ã\83¡ã\83¢ã\83ªã\83¼ノードに分割されているマルチプロセッサシステム
+ã\81®ã\81\93ã\81¨ã\81§ã\81\82ã\82\8bã\80\82ã\83¡ã\83¢ã\83ªã\83¼ã\83\8eã\83¼ã\83\89ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹æ\99\82é\96\93ã\81¯ã\80\81ã\82¢ã\82¯ã\82»ã\82¹å\85\83ã\81® CPU ã\81¨
アクセス先のノードの相対的な位置関係に依存する
(これに対し、対称型マルチプロセッサシステムでは、どの CPU から
-どのメモリへのアクセス時間も同じである)。
-通常は、 NUMA システムの各 CPU にはローカルのメモリノードがあり、
-そのメモリノードには、他の CPU のローカルノードや全ての CPU で
-共有されるバス上のメモリよりも早くアクセスすることができる。
+ã\81©ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹æ\99\82é\96\93ã\82\82å\90\8cã\81\98ã\81§ã\81\82ã\82\8b)ã\80\82
+é\80\9a常ã\81¯ã\80\81 NUMA ã\82·ã\82¹ã\83\86ã\83 ã\81®å\90\84 CPU ã\81«ã\81¯ã\83ã\83¼ã\82«ã\83«ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\8eã\83¼ã\83\89ã\81\8cã\81\82ã\82\8aã\80\81
+ã\81\9dã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\8eã\83¼ã\83\89ã\81«ã\81¯ã\80\81ä»\96ã\81® CPU ã\81®ã\83ã\83¼ã\82«ã\83«ã\83\8eã\83¼ã\83\89ã\82\84å\85¨ã\81¦ã\81® CPU ã\81§
+å\85±æ\9c\89ã\81\95ã\82\8cã\82\8bã\83\90ã\82¹ä¸\8aã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\82\88ã\82\8aã\82\82æ\97©ã\81\8fã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
.SS "NUMA システムコール"
Linux カーネルには、次に示す NUMA 関連のシステムコールが実装されている:
\fBget_mempolicy\fP(2), \fBmbind\fP(2), \fBmigrate_pages\fP(2),
を使用すべきである。下記の「ライブラリによるサポート」を参照。
.SS "/proc/[number]/numa_maps (Linux 2.6.14 以降)"
.\" See also Changelog-2.6.14
-このファイルは、プロセスの NUMA メモリポリシーと割り当てに関する
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81® NUMA ã\83¡ã\83¢ã\83ªã\83¼ã\83\9dã\83ªã\82·ã\83¼ã\81¨å\89²ã\82\8aå½\93ã\81¦ã\81«é\96¢ã\81\99ã\82\8b
情報を表示する。
-各行に、そのプロセスが使用しているメモリ領域に関する情報が表示される。その他の情報 \(em
-そのメモリ領域に適用されているメモリポリシーや、そのページがどのノード上に割り当てられているか、など \(em もあわせて表示される。
+各行に、そのプロセスが使用しているメモリー領域に関する情報が表示される。その他の情報 \(em
+そのメモリー領域に適用されているメモリーポリシーや、そのページがどのノード上に割り当てられているか、など \(em もあわせて表示される。
\fInuma_maps\fP は読み出し専用のファイルである。 \fI/proc/<pid>/numa_maps\fP から読み出しが行われると、
-カーネルはそのプロセスの仮想アドレス空間をスキャンし、 メモリの使用状況を報告する。
-プロセスのメモリ領域の情報が 1 行に 1 領域で表示される。
+ã\82«ã\83¼ã\83\8dã\83«ã\81¯ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ä»®æ\83³ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\82\92ã\82¹ã\82ã\83£ã\83³ã\81\97ã\80\81 ã\83¡ã\83¢ã\83ªã\83¼ã\81®ä½¿ç\94¨ç\8a¶æ³\81ã\82\92å ±å\91\8aã\81\99ã\82\8bã\80\82
+プロセスのメモリー領域の情報が 1 行に 1 領域で表示される。
-各行の最初のフィールドはメモリ領域の開始アドレスを示す。 このフィールドは \fI/proc/<pid>/maps\fP
+各行の最初のフィールドはメモリー領域の開始アドレスを示す。 このフィールドは \fI/proc/<pid>/maps\fP
ファイルの内容と対応している。 \fI/proc/<pid>/maps\fP
-には、メモリ領域の末尾のアドレスや、アクセス許可や共有といった他の情報も含まれる。
+には、メモリー領域の末尾のアドレスや、アクセス許可や共有といった他の情報も含まれる。
-2 番目のフィールドは、 そのメモリ領域に現在適用されているメモリポリシーを示す。 適用されているポリシーは、
-必ずしもそのプロセスがこのメモリ領域に対して設定したポリシーとは限らない点に注意すること。
+2 番目のフィールドは、 そのメモリー領域に現在適用されているメモリーポリシーを示す。 適用されているポリシーは、
+必ずしもそのプロセスがこのメモリー領域に対して設定したポリシーとは限らない点に注意すること。
特に、
プロセスがその領域に対して「デフォルト」ポリシーを設定した場合、その領域に適用されるポリシーはプロセスのポリシーとなり、それが「デフォルト」ポリシーとなる場合もあればそうでない場合もある。
-行の残りの部分には、そのメモリ領域に割り当てられたページに関する情報が入る。以下に詳細を示す。
+行の残りの部分には、そのメモリー領域に割り当てられたページに関する情報が入る。以下に詳細を示す。
.TP
\fIN<node>=<nr_pages>\fP
\fI<node>\fP に割り当てられているページ数。 \fI<nr_pages>\fP には、
-ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cç\8f¾å\9c¨ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81\97ã\81¦ã\81\84ã\82\8bã\83\9aã\83¼ã\82¸ã\81 ã\81\91ã\81\8cå\90«ã\81¾ã\82\8cã\82\8bã\80\82 ã\83\9aã\83¼ã\82¸ã\81®ç§»å\8b\95ã\82\84ã\83¡ã\83¢ã\83ªã\81®å\86\8då\88©ç\94¨ã\81«ã\82\88ã\82\8aã\80\81 ã\81\93ã\81®ã\83¡ã\83¢ã\83ª領域に関連付けられているが、
+ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cç\8f¾å\9c¨ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81\97ã\81¦ã\81\84ã\82\8bã\83\9aã\83¼ã\82¸ã\81 ã\81\91ã\81\8cå\90«ã\81¾ã\82\8cã\82\8bã\80\82 ã\83\9aã\83¼ã\82¸ã\81®ç§»å\8b\95ã\82\84ã\83¡ã\83¢ã\83ªã\83¼ã\81®å\86\8då\88©ç\94¨ã\81«ã\82\88ã\82\8aã\80\81 ã\81\93ã\81®ã\83¡ã\83¢ã\83ªã\83¼領域に関連付けられているが、
一時的にマッピングされていないページが存在する場合がある。 プロセスがそれらのページを参照しようとした後には、 これらのページは再び現れる可能性がある。
-メモリ領域が共有メモリやファイルマッピングの場合には、 そのメモリ領域内に別のページを他のプロセスがマッピングしている場合もある。
+メモリー領域が共有メモリーやファイルマッピングの場合には、 そのメモリー領域内に別のページを他のプロセスがマッピングしている場合もある。
.TP
\fIfile=<filename>\fP
-そのメモリ領域に関連付けられているファイル。 ファイルがプライベート (非公開) でマッピングされている場合、 書き込みアクセスがあると、
-このメモリ領域に書き込み時コピー (Copy\-On\-Write) ページが生成されることがある。 これらのページは無名ページ (anonymous
+そのメモリー領域に関連付けられているファイル。 ファイルがプライベート (非公開) でマッピングされている場合、 書き込みアクセスがあると、
+このメモリー領域に書き込み時コピー (Copy\-On\-Write) ページが生成されることがある。 これらのページは無名ページ (anonymous
page) として表示される。
.TP
\fIheap\fP
-ヒープに使用されているメモリ範囲。
+ヒープに使用されているメモリー範囲。
.TP
\fIstack\fP
-スタックに使用されているメモリ範囲。
+スタックに使用されているメモリー範囲。
.TP
\fIhuge\fP
-ヒュージメモリの範囲。表示されるページ数は、
+ã\83\92ã\83¥ã\83¼ã\82¸ã\83¡ã\83¢ã\83ªã\83¼ã\81®ç¯\84å\9b²ã\80\82表示ã\81\95ã\82\8cã\82\8bã\83\9aã\83¼ã\82¸æ\95°ã\81¯ã\80\81
通常の大きさのページではなく、ヒュージページの数である。
.TP
\fIanon=<pages>\fP
-メモリ範囲内の無名ページ (anonymous page) の数。
+メモリー範囲内の無名ページ (anonymous page) の数。
.TP
\fIdirty=<pages>\fP
dirty (変更された) ページの数。
.TP
\fImapmax=<count>\fP
スキャン中に検出した mapcount (一つのページをマッピングしているプロセス数) の最大値。 この値は、
-そのメモリ領域でどの程度の共有が行われているかの指標として使うことができる。
+そのメモリー領域でどの程度の共有が行われているかの指標として使うことができる。
.TP
\fIswapcache=<count>\fP
スワップデバイスに対応するエントリーが存在するページ数。
.TP
\fIactive=<pages>\fP
アクティブリストに入っているページ数。 このフィールドが表示されるのは、
-値がこのメモリ領域のページ数と異なる場合だけである。このフィールドが表示されるということは、 このメモリ領域に、まもなくスワッパ (swapper)
+値がこのメモリー領域のページ数と異なる場合だけである。このフィールドが表示されるということは、 このメモリー領域に、まもなくスワッパ (swapper)
によりこの領域から削除される可能性がある inactive なページが存在することを意味する。
.TP
\fIwriteback=<pages>\fP
可能である。
.SS ライブラリによるサポート
システムコールの定義を得るには \fI\-lnuma\fP でリンクすること。
-\fIlibnuma\fP と必要なヘッダファイル \fI<numaif.h>\fP は
+\fIlibnuma\fP ã\81¨å¿\85è¦\81ã\81ªã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83« \fI<numaif.h>\fP ã\81¯
\fInumactl\fP パッケージで提供されている。
ただし、アプリケーションはこれらのシステムコールを直接利用すべきでない。
.UE
で入手できる。
このパッケージが収録されている Linux ディストリビューションもある。
-ディストリビューションによっては、開発用のライブラリとヘッダファイルは
+ã\83\87ã\82£ã\82¹ã\83\88ã\83ªã\83\93ã\83¥ã\83¼ã\82·ã\83§ã\83³ã\81«ã\82\88ã\81£ã\81¦ã\81¯ã\80\81é\96\8bç\99ºç\94¨ã\81®ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81¨ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81¯
別パッケージ \fInumactl\-devel\fP で提供されている。
.SH 関連項目
\fBget_mempolicy\fP(2), \fBmbind\fP(2), \fBmove_pages\fP(2), \fBset_mempolicy\fP(2),
packet ソケットを使うと、ユーザー空間で物理層の上に プロトコルモジュールを実装することができる。
\fIsocket_type\fP には \fBSOCK_RAW\fP と \fBSOCK_DGRAM\fP のいずれかを指定する。 \fBSOCK_RAW\fP
-ã\81¯ã\83ªã\83³ã\82¯ã\83¬ã\83\99ã\83«ã\83\98ã\83\83ã\83\80ã\82\92å\90«ã\82\80 raw ã\83\91ã\82±ã\83\83ã\83\88ã\82\92ã\80\81 \fBSOCK_DGRAM\fP ã\81¯ã\83ªã\83³ã\82¯ã\83¬ã\83\99ã\83«ã\83\98ã\83\83ã\83\80が削除された加工済みパケットを示す。
-リンクレベルヘッダ情報は \fIsockaddr_ll\fP で共通のフォーマットで入手できる。 \fIprotocol\fP には IEEE 802.3
+ã\81¯ã\83ªã\83³ã\82¯ã\83¬ã\83\99ã\83«ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92å\90«ã\82\80 raw ã\83\91ã\82±ã\83\83ã\83\88ã\82\92ã\80\81 \fBSOCK_DGRAM\fP ã\81¯ã\83ªã\83³ã\82¯ã\83¬ã\83\99ã\83«ã\83\98ã\83\83ã\83\80ã\83¼が削除された加工済みパケットを示す。
+リンクレベルヘッダー情報は \fIsockaddr_ll\fP で共通のフォーマットで入手できる。 \fIprotocol\fP には IEEE 802.3
プロトコル番号を ネットワークバイトオーダーで指定する。 指定できるプロトコルのリストは、インクルードファイル
\fI<linux/if_ether.h>\fP を参照。プロトコルを \fBhtons(ETH_P_ALL)\fP
にすると、全てのプロトコルが受信される。 外部から来たパケットのうち指定したプロトコルのものは、
\fBSOCK_RAW\fP パケットでは、パケットをデバイスドライバと受け渡しする際、 パケットデータに変更が行われることはない。
パケットの受信時には、アドレスの解析だけは行われ、 標準的な \fIsockaddr_ll\fP
-ã\82¢ã\83\89ã\83¬ã\82¹æ§\8bé\80 ä½\93ã\81«æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82ã\83\91ã\82±ã\83\83ã\83\88ã\81®é\80\81ä¿¡æ\99\82ã\81«ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\81\8cæ\8c\87å®\9aã\81\99ã\82\8b ã\83\90ã\83\83ã\83\95ã\82¡ã\81«ç\89©ç\90\86層ã\81®ã\83\98ã\83\83ã\83\80が含まれている必要がある。
+ã\82¢ã\83\89ã\83¬ã\82¹æ§\8bé\80 ä½\93ã\81«æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82ã\83\91ã\82±ã\83\83ã\83\88ã\81®é\80\81ä¿¡æ\99\82ã\81«ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cæ\8c\87å®\9aã\81\99ã\82\8b ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ç\89©ç\90\86層ã\81®ã\83\98ã\83\83ã\83\80ã\83¼が含まれている必要がある。
パケットはそのまま修正を受けずに、行き先アドレスから決定される インターフェースのネットワークドライバにキューイングされる。
-デバイスドライバによっては、他のヘッダを常に追加するものもある。 \fBSOCK_RAW\fP は Linux 2.0 の obosolete な
+ã\83\87ã\83\90ã\82¤ã\82¹ã\83\89ã\83©ã\82¤ã\83\90ã\81«ã\82\88ã\81£ã\81¦ã\81¯ã\80\81ä»\96ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92常ã\81«è¿½å\8a ã\81\99ã\82\8bã\82\82ã\81®ã\82\82ã\81\82ã\82\8bã\80\82 \fBSOCK_RAW\fP ã\81¯ Linux 2.0 ã\81® obosolete ã\81ª
\fBAF_INET/SOCK_PACKET\fP と似ているが、互換性があるわけではない。
-\fBSOCK_DGRAM\fP はやや高位のレベルで動作する。物理ヘッダは、パケットがユーザーに 渡される前に削除される。 \fBSOCK_DGRAM\fP の
-packet ソケットを通して送られるパケットは、 \fIsockaddr_ll\fP の行き先アドレスの情報に基づき、適切な物理層のヘッダが付加されてから、
-キューに送られる。
+\fBSOCK_DGRAM\fP ã\81¯ã\82\84ã\82\84é«\98ä½\8dã\81®ã\83¬ã\83\99ã\83«ã\81§å\8b\95ä½\9cã\81\99ã\82\8bã\80\82ç\89©ç\90\86ã\83\98ã\83\83ã\83\80ã\83¼ã\81¯ã\80\81ã\83\91ã\82±ã\83\83ã\83\88ã\81\8cã\83¦ã\83¼ã\82¶ã\83¼ã\81« 渡ã\81\95ã\82\8cã\82\8bå\89\8dã\81«å\89\8aé\99¤ã\81\95ã\82\8cã\82\8bã\80\82 \fBSOCK_DGRAM\fP ã\81®
+packet ソケットを通して送られるパケットは、 \fIsockaddr_ll\fP
+ã\81®è¡\8cã\81\8då\85\88ã\82¢ã\83\89ã\83¬ã\82¹ã\81®æ\83\85å ±ã\81«å\9fºã\81¥ã\81\8dã\80\81é\81©å\88\87ã\81ªç\89©ç\90\86層ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\81\8cä»\98å\8a ã\81\95ã\82\8cã\81¦ã\81\8bã\82\89ã\80\81 ã\82ã\83¥ã\83¼ã\81«é\80\81ã\82\89ã\82\8cã\82\8bã\80\82
デフォルトでは、指定したプロトコル型のパケットはすべて packet ソケットに送られる。特定のインターフェースからのパケットだけを
取得したい場合には、 \fIstruct sockaddr_ll\fP にアドレスを指定して \fBbind\fP(2) を呼び、 packet
\fBconnect\fP(2) 操作は packet ソケットではサポートされていない。
\fBMSG_TRUNC\fP フラグが \fBrecvmsg\fP(2), \fBrecv\fP(2), \fBrecvfrom\fP(2) に渡されると、
-(バッファサイズより大きかったとしても) 常に実際に通信された パケットの長さが返される。
+(ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\82\88ã\82\8a大ã\81\8dã\81\8bã\81£ã\81\9fã\81¨ã\81\97ã\81¦ã\82\82) 常ã\81«å®\9fé\9a\9bã\81«é\80\9aä¿¡ã\81\95ã\82\8cã\81\9f ã\83\91ã\82±ã\83\83ã\83\88ã\81®é\95·ã\81\95ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82
.SS アドレスのタイプ
\fIsockaddr_ll\fP はデバイスに依存しない物理層のアドレスである。
.in
\fImr_ifindex\fP は、ステータスを変更したいインターフェースの インターフェース番号である。 \fImr_type\fP
-パラメータは実行する動作を指定する: \fBPACKET_MR_PROMISC\fP は、共有している媒体からの全てのパケットを受信できるようにする
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯å®\9fè¡\8cã\81\99ã\82\8bå\8b\95ä½\9cã\82\92æ\8c\87å®\9aã\81\99ã\82\8b: \fBPACKET_MR_PROMISC\fP ã\81¯ã\80\81å\85±æ\9c\89ã\81\97ã\81¦ã\81\84ã\82\8båª\92ä½\93ã\81\8bã\82\89ã\81®å\85¨ã\81¦ã\81®ã\83\91ã\82±ã\83\83ã\83\88ã\82\92å\8f\97ä¿¡ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8b
(しばしば "無差別モード (promiscuous mode)" と呼ばれる)。 \fBPACKET_MR_MULTICAST\fP は、そのソケットを、
\fImr_address\fP と \fImr_alen\fP で指定される物理層のマルチキャストブループにバインドする。
\fBPACKET_MR_ALLMULTI\fP は socket を up にして、そのインターフェースに到達したすべての
この整数オプションを設定すると、パケットの前に追加で領域が予約される。
.TP
\fBPACKET_RX_RING\fP
-é\9d\9eå\90\8cæ\9c\9fã\81§ã\81®ã\83\91ã\82±ã\83\83ã\83\88å\8f\97ä¿¡ç\94¨ã\81®ã\83¡ã\83¢ã\83ªã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83ªã\83³ã\82°ã\83\90ã\83\83ã\83\95ã\82¡を作成する。 パケットソケットはアプリケーションのアドレス空間に連続する領域を確保し、
+é\9d\9eå\90\8cæ\9c\9fã\81§ã\81®ã\83\91ã\82±ã\83\83ã\83\88å\8f\97ä¿¡ç\94¨ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83ªã\83³ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼を作成する。 パケットソケットはアプリケーションのアドレス空間に連続する領域を確保し、
そこにパケットスロットの配列を構成し、 (最大 \fItp_snaplen\fP 個の) パケットを順にスロットにコピーする。 各パケットの前には
\fItpacket_auxdata\fP に似たメタデータ構造体が置かれる。
プロトコルフィールドには、データの、メタデータヘッダーの先頭からのオフセットが入る。 \fItp_net\fP にはネットワーク層へのオフセットが格納される。
.TP
\fBPACKET_TX_RING\fP (Linux 2.6.31 以降)
.\" commit 69e3c75f4d541a6eb151b3ef91f34033cb3ad6e1
-ã\83\91ã\82±ã\83\83ã\83\88é\80\81ä¿¡ç\94¨ã\81®ã\83¡ã\83¢ã\83ªã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83ªã\83³ã\82°ã\83\90ã\83\83ã\83\95ã\82¡を作成する。 このオプションは \fBPACKET_RX_RING\fP と同様で、同じ引き数を取る。
+ã\83\91ã\82±ã\83\83ã\83\88é\80\81ä¿¡ç\94¨ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\97ã\81\95ã\82\8cã\81\9fã\83ªã\83³ã\82°ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼を作成する。 このオプションは \fBPACKET_RX_RING\fP と同様で、同じ引き数を取る。
アプリケーションは \fItp_status\fP が \fBTP_STATUS_AVAILABLE\fP のスロットにパケットを書き込み、
\fItp_status\fP を \fBTP_STATUS_SEND_REQUEST\fP に変更することでそのパケットの送信を予約する。
パケットの送信準備ができたら、アプリケーションは続けて \fBsend\fP(2) 系のシステムコールを呼び出す。 システムコールの引き数 \fIbuf\fP と
デフォルトでは、パケットはカーネルの qdisc (トラフィック制御) レイヤー経由で渡される。 これは大半のユースケースに合っている。
ネットワークに対して可能な限りパケットを送信する (例えば pkggen と同様の方法で負荷対象のデバイスを試験する)
のにパケットソケットを使うトラフィック生成アプライアンスでは、この整数オプションを 1 に設定することで qdisc レイヤーを飛ばすことができる。
-qdisc レイヤーでのパケットバッファが行われなくなるという副作用がある。 これにより、
+qdisc ã\83¬ã\82¤ã\83¤ã\83¼ã\81§ã\81®ã\83\91ã\82±ã\83\83ã\83\88ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cè¡\8cã\82\8fã\82\8cã\81ªã\81\8fã\81ªã\82\8bã\81¨ã\81\84ã\81\86å\89¯ä½\9cç\94¨ã\81\8cã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\81«ã\82\88ã\82\8aã\80\81
ネットワークデバイスの送信キューの使用量が高い場合にパケット廃棄が起きやすくなる。
.SS ioctl
.\" FIXME Document SIOCGSTAMPNS
不明なマルチキャストグループアドレスが渡された。
.TP
\fBEFAULT\fP
-ã\83¦ã\83¼ã\82¶ã\81\8c渡ã\81\97ã\81\9fã\83¡ã\83¢ã\83ªアドレスが不正。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8c渡ã\81\97ã\81\9fã\83¡ã\83¢ã\83ªã\83¼アドレスが不正。
.TP
\fBEINVAL\fP
引き数が不正。
インターフェースが up でない。
.TP
\fBENOBUFS\fP
-パケットに割り当てるメモリが足りない。
+ã\83\91ã\82±ã\83\83ã\83\88ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\80\82
.TP
\fBENODEV\fP
デバイス名が不明。あるいはインターフェースアドレスで指定された インターフェースインデックスが不明。
インターフェースアドレスに不正なインターフェースインデックスが含まれている。
.TP
\fBEPERM\fP
-この操作を行うのに必要な権限をユーザが持っていない。
+ã\81\93ã\81®æ\93\8dä½\9cã\82\92è¡\8cã\81\86ã\81®ã\81«å¿\85è¦\81ã\81ªæ¨©é\99\90ã\82\92ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cæ\8c\81ã\81£ã\81¦ã\81\84ã\81ªã\81\84ã\80\82
上記以外のエラーが、低レベルのドライバで生成されることがある。
.SH バージョン
移植性の必要なプログラムでは、 \fBpcap\fP(3) 経由で \fBAF_PACKET\fP を用いることをお薦めする。ただし、この方法では
\fBAF_PACKET\fP の機能すべてを利用することはできない。
-\fBSOCK_DGRAM\fP packet ソケットは、IEEE 802.3 フレームの IEEE 802.2 LLC ヘッダの
+\fBSOCK_DGRAM\fP packet ã\82½ã\82±ã\83\83ã\83\88ã\81¯ã\80\81IEEE 802.3 ã\83\95ã\83¬ã\83¼ã\83 ã\81® IEEE 802.2 LLC ã\83\98ã\83\83ã\83\80ã\83¼ã\81®
生成や解析を行おうとしない。 \fBETH_P_802_3\fP が送信プロトコルに指定されると、カーネルは 802.3 フレームを 生成して length
-フィールドに書き込む。 完全に準拠したパケットを得るためにはユーザーが LLC ヘッダを 与える必要がある。到着した 802.3 パケットでは、
-DSAP/SSAP protocol の各フィールドは多重化 (multiplex) されていない。 代わりにこれらは LLC ヘッダが前置された
+ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«æ\9b¸ã\81\8dè¾¼ã\82\80ã\80\82 å®\8cå\85¨ã\81«æº\96æ\8b ã\81\97ã\81\9fã\83\91ã\82±ã\83\83ã\83\88ã\82\92å¾\97ã\82\8bã\81\9fã\82\81ã\81«ã\81¯ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8c LLC ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92 ä¸\8eã\81\88ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82å\88°ç\9d\80ã\81\97ã\81\9f 802.3 ã\83\91ã\82±ã\83\83ã\83\88ã\81§ã\81¯ã\80\81
+DSAP/SSAP protocol ã\81®å\90\84ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯å¤\9aé\87\8då\8c\96 (multiplex) ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82 代ã\82\8fã\82\8aã\81«ã\81\93ã\82\8cã\82\89ã\81¯ LLC ã\83\98ã\83\83ã\83\80ã\83¼ã\81\8cå\89\8dç½®ã\81\95ã\82\8cã\81\9f
\fBETH_P_802_2\fP プロトコルとして与えられる。したがって、 \fBETH_P_802_3\fP にバインドすることはできない。かわりに
\fBETH_P_802_2\fP にバインドし、自分自身でプロトコルの多重化を行うこと。 送信のデフォルトは、プロトコルフィールドを持つ 標準の
Ethernet DIX encapsulation である。
解決過程に再帰が含まれる点に注意すること。 カーネルをスタックオーバーフローや サービス拒否 (denial of service) から守るため、
再帰の最大の深さとシンボリックリンクを辿る最大回数に制限がある。 最大値を超えた場合 \fBELOOP\fP エラーが返される ("Too many
levels of symbolic links")。
-.SS "ステップ 3: 最後のエントリを見つける"
+.SS "ã\82¹ã\83\86ã\83\83ã\83\97 3: æ\9c\80å¾\8cã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92è¦\8bã\81¤ã\81\91ã\82\8b"
パス名の最後の構成要素の検索は、前のステップで説明した 他の全ての構成要素と同じように実行されるが、2 つの違いがある。 (i)
最後の構成要素はディレクトリである必要がない (パス解決過程に関する限りはどちらでも構わない \(em 特定のシステムコールが要求するものによって、
ディレクトリでなければならない場合もあるし、 ディレクトリ以外でなければならない場合もある)。 (ii)
-構成要素が見つからない場合にエラーにする必要はない \(em その構成要素を作成するだけでよい場合もある。 最後のエントリの詳細な扱いは、
+æ§\8bæ\88\90è¦\81ç´ ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\84å ´å\90\88ã\81«ã\82¨ã\83©ã\83¼ã\81«ã\81\99ã\82\8bå¿\85è¦\81ã\81¯ã\81ªã\81\84 \(em ã\81\9dã\81®æ§\8bæ\88\90è¦\81ç´ ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81 ã\81\91ã\81§ã\82\88ã\81\84å ´å\90\88ã\82\82ã\81\82ã\82\8bã\80\82 æ\9c\80å¾\8cã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®è©³ç´°ã\81ªæ\89±ã\81\84ã\81¯ã\80\81
特定のシステムコールの man ページで説明されている。
.SS ". と .."
-慣習として、全てのディレクトリはエントリ "." と ".." を持つ。 これらはそれぞれ、そのディレクトリ自身とその親ディレクトリを参照する。
+慣習として、全てのディレクトリはエントリー "." と ".." を持つ。 これらはそれぞれ、そのディレクトリ自身とその親ディレクトリを参照する。
-パス解決過程では、これらのエントリが物理的なファイルシステムに 実際に存在するか否かに関わらず、慣習的な意味を持つと仮定する。
+ã\83\91ã\82¹è§£æ±ºé\81\8eç¨\8bã\81§ã\81¯ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cç\89©ç\90\86ç\9a\84ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81« å®\9fé\9a\9bã\81«å\98å\9c¨ã\81\99ã\82\8bã\81\8bå\90¦ã\81\8bã\81«é\96¢ã\82\8fã\82\89ã\81\9aã\80\81æ\85£ç¿\92ç\9a\84ã\81ªæ\84\8få\91³ã\82\92æ\8c\81ã\81¤ã\81¨ä»®å®\9aã\81\99ã\82\8bã\80\82
ルートより上に辿ることはできない: "/.." は "/" と同じである。
.SS マウント位置
この場合、Linux は \fBENOENT\fP を返す。
.SS 許可
ファイルの許可ビットは、3 組の 3 ビットから構成される。 \fBchmod\fP(1) と \fBstat\fP(2) を参照すること。
-呼び出し元のプロセスの実効ユーザ ID がファイルの所有者 ID と等しい場合、 3 つのうち最初のグループが使われる。 ファイルのグループ ID
+呼び出し元のプロセスの実効ユーザー ID がファイルの所有者 ID と等しい場合、 3 つのうち最初のグループが使われる。 ファイルのグループ ID
が呼び出し元のプロセスの実効グループ ID または (\fBsetgroups\fP(2) で設定される) 呼び出し元のプロセスの補助
(supplementary) グループ ID と 等しい場合、3 つのうち 2 番目のグループが使われる。 どちらにも当てはまらない場合、3
番目のグループが使われる。
3 ビットが使われる場合、最初のビットは読み込み許可を決定し、 2 番目のビットは書き込み許可を決定する。 また 3
番目のビットは、通常のファイルの場合は実行許可を表し、 ディレクトリの場合は検索許可を表す。
-Linux は、許可のチェックにおいて、実効ユーザ ID ではなく fsuid を使う。 通常は fsuid は実効ユーザ ID と等しいが、fsuid
-はシステムコール \fBsetfsuid\fP(2) で変更することができる。
+Linux は、許可のチェックにおいて、実効ユーザー ID ではなく fsuid を使う。 通常は fsuid は実効ユーザー ID
+ã\81¨ç\89ã\81\97ã\81\84ã\81\8cã\80\81fsuid ã\81¯ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83« \fBsetfsuid\fP(2) ã\81§å¤\89æ\9b´ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
-(ここで "fsuid" は "file system user ID" を表している。 この概念は「プロセスが同じ実効ユーザ ID を持つプロセスに
-同時にシグナルを送ることができる」というユーザ空間 NFS サーバを 実装する際に必要であった。 これは今では廃れてしまった。
+(ここで "fsuid" は "file system user ID" を表している。 この概念は「プロセスが同じ実効ユーザー ID を持つプロセスに
+同時にシグナルを送ることができる」というユーザー空間 NFS サーバを 実装する際に必要であった。 これは今では廃れてしまった。
\fBsetfsuid\fP(2) を使うべきではない。
.\" FIXME . say something about filesystem mounted read-only ?
-å\90\8cæ§\98ã\81«ã\80\81Linux ã\81§ã\81¯å®\9få\8a¹ã\82°ã\83«ã\83¼ã\83\97 ID ã\81®ä»£ã\82\8fã\82\8aã\81« fsgid ("ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\83»ã\82°ã\83«ã\83¼ã\83\97ID") ã\82\92使ã\81\86ã\80\82 \fBsetfsgid\fP(2)
+同様に、Linux では実効グループ ID の代わりに fsgid ("ファイルシステムグループID") を使う。 \fBsetfsgid\fP(2)
を参照すること。
-.SS "許可の確認をスキップする: スーパーユーザとケーパビリティ"
+.SS "許å\8f¯ã\81®ç¢ºèª\8dã\82\92ã\82¹ã\82ã\83\83ã\83\97ã\81\99ã\82\8b: ã\82¹ã\83¼ã\83\91ã\83¼ã\83¦ã\83¼ã\82¶ã\83¼ã\81¨ã\82±ã\83¼ã\83\91ã\83\93ã\83ªã\83\86ã\82£"
.\" (but for exec at least one x bit must be set) -- AEB
.\" but there is variation across systems on this point: for
.\" example, HP-UX and Tru64 are as described by AEB. However,
.\" on some implementations (e.g., Solaris, FreeBSD),
.\" access(X_OK) by superuser will report success, regardless
.\" of the file's execute permission bits. -- MTK (Oct 05)
-伝統的な UNIX システムでは、スーパーユーザ (\fIroot\fP, ユーザ ID 0) は非常に強力であり、ファイルアクセス時の
+伝統的な UNIX システムでは、スーパーユーザー (\fIroot\fP, ユーザー ID 0) は非常に強力であり、ファイルアクセス時の
許可による制限を全てスキップする。
-Linux では、スーパーユーザ権限が複数のケーパビリティに分割されている (\fBcapabilities\fP(7) 参照)。ファイルの許可の確認には、
-\fBCAP_DAC_OVERRIDE\fP と \fBCAP_DAC_READ_SEARCH\fP の 2つのケーパビリティが関係する (プロセスの fsuid
-が 0 の場合、そのプロセスはこれらのケーパビリティを持つ)。
+Linux では、スーパーユーザー権限が複数のケーパビリティに分割されている (\fBcapabilities\fP(7)
+参照)。ファイルの許可の確認には、 \fBCAP_DAC_OVERRIDE\fP と \fBCAP_DAC_READ_SEARCH\fP の
+2つのケーパビリティが関係する (プロセスの fsuid が 0 の場合、そのプロセスはこれらのケーパビリティを持つ)。
\fBCAP_DAC_OVERRIDE\fP ケーパビリティは全ての許可チェックを上書きする。 実際には、対象となるファイルの 3 つの実行許可ビットのうちの
少なくとも 1 つが設定されている場合のみ、実行を許可する。
PID 名前空間の正しい操作のためには "init" プロセスは不可欠であるという事実を反映したものである。 この場合、 その PID
名前空間へのそれ以降の \fBfork\fP(2) はエラー \fBENOMEM\fP で失敗する。 "init" プロセスが終了している PID
名前空間に新しいプロセスを作成することはできない。 このような状況は、 例えば、 名前空間にいたプロセスに対応する
-\fI/proc/[pid]/ns/pid\fP ファイルに対してオープンしたファイルディスクリプタを使って、 "init"
+\fI/proc/[pid]/ns/pid\fP ã\83\95ã\82¡ã\82¤ã\83«ã\81«å¯¾ã\81\97ã\81¦ã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92使ã\81£ã\81¦ã\80\81 "init"
プロセスが終了した後にその名前空間に \fBsetns\fP(2) を行った場合に起こり得る。 \fBunshare\fP(2)
を呼び出した後にも、この状況は起こり得る。 それ以降に \fBfork\fP(2) で作成された最初の子プロセスが終了すると、 それ以降の
\fBfork\fP(2) の呼び出しは \fBNOMEM\fP で失敗する。
プロセスは (\fBsetns\fP(2) を \fBCLONE_NEWPID\fP で使うなどで) 子供の PID 名前空間に自由に入ることができるが、
逆の方向には移動できない。 つまり、 プロセスは先祖の名前空間 (親、親の親など) に入ることはできない。 PID 名前空間の変更は一方向の操作である。
.SS "setns(2) と unshare(2) の動作"
-PID 名前空間のファイルディスクリプタを指定して \fBsetns\fP(2) を呼び出したり、 \fBCLONE_NEWPID\fP フラグ付きで
+PID å\90\8då\89\8d空é\96\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ \fBsetns\fP(2) ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9fã\82\8aã\80\81 \fBCLONE_NEWPID\fP ã\83\95ã\83©ã\82°ä»\98ã\81\8dã\81§
\fBunshare\fP(2) を呼び出したりすると、 その結果作成された子プロセスは呼び出し元とは異なる PID 名前空間に置かれる。
しかし、これらの呼び出しでは呼び出し元プロセスの PID 名前空間は変更されない。 なぜなら、PID 名前空間を変更してしまうと、 呼び出し元が認識する
(\fBgetpid\fP() が返す) 自分の PID が変わってしまい、 多くのアプリケーションやライブラリが正しく動作しなくなるからである。
パイプと FIFO (名前付きパイプともいう) は、 単方向のプロセス間通信チャネルを提供する。 パイプには「読み出し側」と「書き込み側」がある。
パイプの書き込み側で書き込まれたデータは、 パイプの読み出し側から読み出すことができる。
-ã\83\91ã\82¤ã\83\97ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81«ã\81¯ \fBpipe\fP(2) ã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82 \fBpipe\fP(2) ã\81¯æ\96°ã\81\97ã\81\84ã\83\91ã\82¤ã\83\97ã\82\92ä½\9cæ\88\90ã\81\97ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を二つ返す。
-ディスクリプタのうち、一方はパイプの読み出し側を、もう一方は 書き込み側を参照している。 パイプは関連するプロセス間の通信を作成するのに使用できる。
+ã\83\91ã\82¤ã\83\97ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81«ã\81¯ \fBpipe\fP(2) ã\82\92使ç\94¨ã\81\99ã\82\8bã\80\82 \fBpipe\fP(2) ã\81¯æ\96°ã\81\97ã\81\84ã\83\91ã\82¤ã\83\97ã\82\92ä½\9cæ\88\90ã\81\97ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を二つ返す。
+ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\81\86ã\81¡ã\80\81ä¸\80æ\96¹ã\81¯ã\83\91ã\82¤ã\83\97ã\81®èªã\81¿å\87ºã\81\97å\81´ã\82\92ã\80\81ã\82\82ã\81\86ä¸\80æ\96¹ã\81¯ æ\9b¸ã\81\8dè¾¼ã\81¿å\81´ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ã\83\91ã\82¤ã\83\97ã\81¯é\96¢é\80£ã\81\99ã\82\8bã\83\97ã\83ã\82»ã\82¹é\96\93ã\81®é\80\9aä¿¡ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81§ã\81\8dã\82\8bã\80\82
例は \fBpipe\fP(2) を参照。
FIFO (First In First Out の省略) はファイルシステムでの名前を持ち、 \fBopen\fP(2) を使ってオープンできる
パイプにより提供される通信チャネルは「バイトストリーム」であり、 メッセージ境界の概念はない。
-ã\83\91ã\82¤ã\83\97ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿å\81´ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿が すべてクローズされた後で、そのパイプから \fBread\fP(2) を行おうとした場合、
+ã\83\91ã\82¤ã\83\97ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿å\81´ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼が すべてクローズされた後で、そのパイプから \fBread\fP(2) を行おうとした場合、
end\-of\-file (ファイル末尾) が見える (\fBread\fP(2) は 0 を返す)。
-ã\83\91ã\82¤ã\83\97ã\81®èªã\81¿å\87ºã\81\97å\81´ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿が すべてクローズされた後で、 \fBwrite\fP(2) を行うと、呼び出し元プロセスに
+ã\83\91ã\82¤ã\83\97ã\81®èªã\81¿å\87ºã\81\97å\81´ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼が すべてクローズされた後で、 \fBwrite\fP(2) を行うと、呼び出し元プロセスに
\fBSIGPIPE\fP シグナルが送られる。 呼び出し元プロセスがこのシグナルを無視しているときには、 \fBwrite\fP(2) はエラー
\fBEPIPE\fP で失敗する。 \fBpipe\fP(2) と \fBfork\fP(2) を使用するアプリケーションでは、 \fBclose\fP(2)
-ã\82\92é\81©å\88\87ã\81«ä½¿ã\81£ã\81¦ä¸\8då¿\85è¦\81ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿の複製を クローズすべきである。こうすることで、必要な時に確実に end\-of\-file や
+ã\82\92é\81©å\88\87ã\81«ä½¿ã\81£ã\81¦ä¸\8då¿\85è¦\81ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼の複製を クローズすべきである。こうすることで、必要な時に確実に end\-of\-file や
\fBSIGPIPE\fP/\fBEPIPE\fP が配送されるようになる。
パイプには \fBlseek\fP(2) を行うことはできない。
に行われること、つまりパイプへの出力データの書き込みは 連続したシーケンスとして行われることを必須としている (MUST)。 \fBPIPE_BUF\fP
バイトより多くのデータを書き込み場合は atomic とはならない、 つまりパイプへの他のプロセスによるデータの書き込みが間に入る 可能性がある。
POSIX.1\-2001 の仕様では、 \fBPIPE_BUF\fP は最小でも 512 バイトであることが要求されている (Linux では
-\fBPIPE_BUF\fP ã\81¯ 4096 ã\83\90ã\82¤ã\83\88ã\81§ã\81\82ã\82\8b)ã\80\82 æ£ç¢ºã\81ªå\8b\95ä½\9cã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿が nonblocking (\fBO_NONBLOCK\fP)
+\fBPIPE_BUF\fP ã\81¯ 4096 ã\83\90ã\82¤ã\83\88ã\81§ã\81\82ã\82\8b)ã\80\82 æ£ç¢ºã\81ªå\8b\95ä½\9cã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼が nonblocking (\fBO_NONBLOCK\fP)
かどうか、パイプへの書き込みが複数から行われるかどうか、および 書き込みを行うバイト数 \fIn\fP により決定される。
.TP
\fBO_NONBLOCK\fP 無効, \fIn\fP <= \fBPIPE_BUF\fP
.SH 名前
posixoptions \- POSIX 標準の選択可能な部分
.SH 説明
-POSIX 標準 (以下の情報は POSIX.1\-2001 の抜粋) は 互換システムの動作とインタフェースのセットを記述している。
-ã\81\97ã\81\8bã\81\97ã\80\81å¤\9aã\81\8fã\81®ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81¯é\81¸æ\8a\9eå\8f¯è\83½ã\81§ã\81\82ã\82\8aã\80\81 ã\82³ã\83³ã\83\91ã\82¤ã\83«æ\99\82ã\81«ã\82¤ã\83³ã\82¿フェースが使用可能かをテストする機能テストマクロと、 実行時にテストする関数
+POSIX æ¨\99æº\96 (以ä¸\8bã\81®æ\83\85å ±ã\81¯ POSIX.1\-2001 ã\81®æ\8a\9cç²\8b) ã\81¯ äº\92æ\8f\9bã\82·ã\82¹ã\83\86ã\83 ã\81®å\8b\95ä½\9cã\81¨ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®ã\82»ã\83\83ã\83\88ã\82\92è¨\98è¿°ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
+ã\81\97ã\81\8bã\81\97ã\80\81å¤\9aã\81\8fã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯é\81¸æ\8a\9eå\8f¯è\83½ã\81§ã\81\82ã\82\8aã\80\81 ã\82³ã\83³ã\83\91ã\82¤ã\83«æ\99\82ã\81«ã\82¤ã\83³ã\82¿ã\83¼フェースが使用可能かをテストする機能テストマクロと、 実行時にテストする関数
\fBsysconf\fP(3), \fBfpathconf\fP(3), \fBpathconf\fP(3), \fBconfstr\fP(3) がある。
シェルスクリプトでは \fBgetconf\fP(1) を使うことができる。 詳細は \fBsysconf\fP(3) を参照すること。
.LP
.in -4
.fi
.SS "AIO \- _POSIX_ASYNCHRONOUS_IO \- _SC_ASYNCHRONOUS_IO"
-ヘッダ \fI<aio.h>\fP が存在する。 以下の関数が存在する。
+ヘッダー \fI<aio.h>\fP が存在する。 以下の関数が存在する。
.br
.nf
.in +4
.in -4
.fi
-\fBCLOCK_REALTIME\fP が関数 \fIclock_settime\fP() で変更された場合、絶対時間に関係する全てのタイマのセットに影響する。
+\fBCLOCK_REALTIME\fP が関数 \fIclock_settime\fP()
+で変更された場合、絶対時間に関係する全てのタイマーのセットに影響する。
.SS "CPT \- _POSIX_CPUTIME \- _SC_CPUTIME"
.\" .SS "FD"
.\" Fortran development
.in -4
.fi
.SS "MF \- _POSIX_MAPPED_FILES \- _SC_MAPPED_FILES"
-共有メモリがサポートされている。 インクルードファイル \fI<sys/mman.h>\fP が存在する。 次の関数が存在する。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\83\95ã\82¡ã\82¤ã\83« \fI<sys/mman.h>\fP ã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\80\82 次ã\81®é\96¢æ\95°ã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\80\82
\fImmap\fP(), \fImsync\fP(), \fImunmap\fP().
.SS "ML \- _POSIX_MEMLOCK \- _SC_MEMLOCK"
-共有メモリがコア内にロックできる。 次の関数が存在する。 \fImlockall\fP(), \fImunlockall\fP().
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\82³ã\82¢å\86\85ã\81«ã\83ã\83\83ã\82¯ã\81§ã\81\8dã\82\8bã\80\82 次ã\81®é\96¢æ\95°ã\81\8cå\98å\9c¨ã\81\99ã\82\8bã\80\82 \fImlockall\fP(), \fImunlockall\fP().
.SS "MR/MLR \- _POSIX_MEMLOCK_RANGE \- _SC_MEMLOCK_RANGE"
より詳細に、範囲をコア内にロックできる。 次の関数が存在する。 \fImlock\fP(), \fImunlock\fP().
.SS "MPR \- _POSIX_MEMORY_PROTECTION \- _SC_MEMORY_PROTECTION"
.SH 名前
pthreads \- POSIX スレッド
.SH 説明
-POSIX.1 ã\81¯ã\80\81ä¸\80è\88¬ã\81« POSIX ã\82¹ã\83¬ã\83\83ã\83\89ã\82\84 Pthreads ã\81¨ã\81\97ã\81¦ç\9f¥ã\82\89ã\82\8cã\82\8b ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\83\97ã\83ã\82°ã\83©ã\83\9fã\83³ã\82°ã\81®ã\82¤ã\83³ã\82¿フェース群
-(関数、ヘッダファイル) を規定している。一つのプロセスは複数のスレッドを持つことができ、 全てのスレッドは同じプログラムを実行する。
-これらのスレッドは同じ大域メモリ (データとヒープ領域) を共有するが、 各スレッドは自分専用のスタック (自動変数) を持つ。
+POSIX.1 ã\81¯ã\80\81ä¸\80è\88¬ã\81« POSIX ã\82¹ã\83¬ã\83\83ã\83\89ã\82\84 Pthreads ã\81¨ã\81\97ã\81¦ç\9f¥ã\82\89ã\82\8cã\82\8b ã\82¹ã\83¬ã\83\83ã\83\89ã\83\97ã\83ã\82°ã\83©ã\83\9fã\83³ã\82°ã\81®ã\82¤ã\83³ã\82¿ã\83¼フェース群
+(é\96¢æ\95°ã\80\81ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«) ã\82\92è¦\8få®\9aã\81\97ã\81¦ã\81\84ã\82\8bã\80\82ä¸\80ã\81¤ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81¯è¤\87æ\95°ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\82\92æ\8c\81ã\81¤ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\80\81 å\85¨ã\81¦ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81¯å\90\8cã\81\98ã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92å®\9fè¡\8cã\81\99ã\82\8bã\80\82
+これらのスレッドは同じ大域メモリー (データとヒープ領域) を共有するが、 各スレッドは自分専用のスタック (自動変数) を持つ。
POSIX.1 はスレッド間でどのような属性を共有するかについても定めている (つまり、これらの属性はスレッド単位ではなくプロセス全体で共通である):
.IP \- 3
.IP \- 3
制御端末
.IP \- 3
-ユーザ ID とグループ ID
+ユーザー ID とグループ ID
.IP \- 3
-オープンするファイルディスクリプタ
+オープンするファイルディスクリプター
.IP \- 3
レコードのロック (\fBfcntl\fP(3) 参照)
.IP \- 3
.IP \- 3
ファイルモード作成マスク (\fBumask\fP(2))
.IP \- 3
-ã\82«ã\83¬ã\83³ã\83\88ã\83»ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ª (\fBchdir\fP(2)) ã\81¨ã\83«ã\83¼ã\83\88ã\83»ディレクトリ (\fBchroot\fP(2))
+ã\82«ã\83¬ã\83³ã\83\88ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ª (\fBchdir\fP(2)) ã\81¨ã\83«ã\83¼ã\83\88ディレクトリ (\fBchroot\fP(2))
.IP \- 3
-ã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83«ã\83»ã\82¿ã\82¤ã\83\9e (\fBsetitimer\fP(2)) ã\81¨ POSIX ã\82¿ã\82¤ã\83\9e (\fBtimer_create\fP(2))
+ã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83«ã\82¿ã\82¤ã\83\9eã\83¼ (\fBsetitimer\fP(2)) ã\81¨ POSIX ã\82¿ã\82¤ã\83\9eã\83¼ (\fBtimer_create\fP(2))
.IP \- 3
nice 値 (\fBsetpriority\fP(2))
.IP \- 3
.IP \- 3
代替シグナルスタック (\fBsigaltstack\fP(2))
.IP \- 3
-ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\83»ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\81®ã\83\9dã\83ªã\82·ã\83¼ã\81¨å\84ªå\85\88度 (\fBsched\fP(7))
+リアルタイムスケジューリングのポリシーと優先度 (\fBsched\fP(7))
.PP
以下の Linux 特有の機能もスレッド単位である:
.IP \- 3
しかしながら、新しいプロセスは \fBexecve\fP(2) を呼んだスレッドと同じ PID を持つ。正しくは メインスレッドと同じ PID
を持つべきである。
.IP \- 3
-スレッド間でユーザ ID とグループ ID が共有されない このことは、set\-user\-ID プログラムで面倒な事態を招いたり、 アプリケーションが
+スレッド間でユーザー ID とグループ ID が共有されない このことは、set\-user\-ID プログラムで面倒な事態を招いたり、 アプリケーションが
\fBseteuid\fP(2) などを使って信用情報 (credentials) を変更した場合に Pthreads 関数が失敗する原因となる。
.IP \- 3
スレッド間で共通のセッション ID やプロセスグループ ID を共有しない。
.IP \- 3
-ã\82¹ã\83¬ã\83\83ã\83\89é\96\93ã\81§ \fBfcntl\fP(2) ã\82\92使ã\81£ã\81¦ä½\9cæ\88\90ã\81\95ã\82\8cã\82\8bã\83¬ã\82³ã\83¼ã\83\89ã\83»ã\83ã\83\83ã\82¯ã\82\92å\85±æ\9c\89ã\81\97ã\81ªã\81\84ã\80\82
+スレッド間で \fBfcntl\fP(2) を使って作成されるレコードロックを共有しない。
.IP \- 3
\fBtimes\fP(2) と \fBgetrusage\fP(2) が返す情報がプロセス全体の情報でなくスレッド単位の情報である。
.IP \- 3
スレッド間でセマフォのアンドゥ値 (\fBsemop\fP(2) 参照) を共有しない。
.IP \- 3
-ã\82¹ã\83¬ã\83\83ã\83\89é\96\93ã\81§ã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83«ã\83»ã\82¿ã\82¤ã\83\9eを共有しない。
+ã\82¹ã\83¬ã\83\83ã\83\89é\96\93ã\81§ã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83«ã\82¿ã\82¤ã\83\9eã\83¼を共有しない。
.IP \- 3
スレッドは共通の nice 値を共有しない。
.IP \- 3
(仕様では、新しいスレッドは代替シグナルスタックが定義されていない状態 で開始されるべきとされている。
2つのスレッドが共有されている代替シグナルスタック上で同時に シグナルの処理を行った場合、予測不可能なプログラムのエラーが 起こり得る。)
.SS NPTL
-NPTL ã\81§ã\81¯ã\80\81ä¸\80ã\81¤ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®å\85¨ã\81¦ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81¯å\90\8cã\81\98ã\82¹ã\83¬ã\83\83ã\83\89ã\83»ã\82°ã\83«ã\83¼ã\83\97 ã\81«å±\9eã\81\99ã\82\8b; ã\82¹ã\83¬ã\83\83ã\83\89ã\83»グループの全メンバーは同じ PID を共有する。 NPTL
+NPTL ã\81§ã\81¯ã\80\81ä¸\80ã\81¤ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®å\85¨ã\81¦ã\81®ã\82¹ã\83¬ã\83\83ã\83\89ã\81¯å\90\8cã\81\98ã\82¹ã\83¬ã\83\83ã\83\89ã\82°ã\83«ã\83¼ã\83\97 ã\81«å±\9eã\81\99ã\82\8b; ã\82¹ã\83¬ã\83\83ã\83\89グループの全メンバーは同じ PID を共有する。 NPTL
は管理スレッド (manager thread) を利用しない。 NPTL は内部でリアルタイムシグナルのうち最初の 2つの番号を使用しており
(\fBsignal\fP(7) 参照)、これらのシグナルはアプリケーションでは使用できない。
.IP \- 3
スレッド間でリソース制限を共有しない (カーネル 2.6.10 で修正された)。
.IP \- 3
-ã\82¹ã\83¬ã\83\83ã\83\89é\96\93ã\81§ã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83«ã\83»ã\82¿ã\82¤ã\83\9eを共有しない (カーネル 2.6.12 で修正された)。
+ã\82¹ã\83¬ã\83\83ã\83\89é\96\93ã\81§ã\82¤ã\83³ã\82¿ã\83¼ã\83\90ã\83«ã\82¿ã\82¤ã\83\9eã\83¼を共有しない (カーネル 2.6.12 で修正された)。
.IP \- 3
メインスレッドだけが \fBsetsid\fP(2) を使って新しいセッションを開始することができる (カーネル 2.6.16 で修正された)。
.IP \- 3
-ã\83¡ã\82¤ã\83³ã\82¹ã\83¬ã\83\83ã\83\89ã\81 ã\81\91ã\81\8c \fBsetpgid\fP(2) ã\82\92使ã\81£ã\81¦ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\82\92ã\83\97ã\83ã\82»ã\82¹ã\83»ã\82°ã\83«ã\83¼ã\83\97ã\83»リーダーにすることができる (カーネル 2.6.16
+ã\83¡ã\82¤ã\83³ã\82¹ã\83¬ã\83\83ã\83\89ã\81 ã\81\91ã\81\8c \fBsetpgid\fP(2) ã\82\92使ã\81£ã\81¦ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\82\92ã\83\97ã\83ã\82»ã\82¹ã\82°ã\83«ã\83¼ã\83\97リーダーにすることができる (カーネル 2.6.16
で修正された)。
.IP \- 3
スレッドはそれぞれの独自の代替シグナルスタックの設定を持つ。 しかし、新しいスレッドの代替シグナルスタックの設定は
.PP
NPTL の実装では以下の点についても注意すること:
.IP \- 3
-ã\82¹ã\82¿ã\83\83ã\82¯ã\82µã\82¤ã\82ºã\81®ã\83ªã\82½ã\83¼ã\82¹ã\81®ã\82½ã\83\95ã\83\88ã\83»ã\83ªã\83\9fã\83\83ã\83\88 (\fBsetrlimit\fP(2) ã\81® \fBRLIMIT_STACK\fP ã\81®èª¬æ\98\8eã\82\92å\8f\82ç\85§) ã\81\8c
-\fIunlimited\fP 以å¤\96ã\81®å\80¤ã\81«è¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81ã\82½ã\83\95ã\83\88ã\83»ã\83ªã\83\9fã\83\83ã\83\88ã\81®å\80¤ã\81\8c æ\96°ã\81\97ã\81\84ã\82¹ã\83¬ã\83\83ã\83\89ã\81®ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ã\82µã\82¤ã\82ºã\81¨ã\81ªã\82\8bã\80\82
+スタックサイズのリソースのソフトリミット (\fBsetrlimit\fP(2) の \fBRLIMIT_STACK\fP の説明を参照) が
+\fIunlimited\fP 以外の値に設定されている場合、ソフトリミットの値が 新しいスレッドのデフォルトのスタックサイズとなる。
設定を有効にするためには、プログラムを実行する前にリミット値を 設定しておかなければならない。たいていは、シェルの組み込みコマンドの \fIulimit
\-s\fP (C シェルでは \fIlimit stacksize\fP) を使って設定する。
.SS スレッド実装の判定
.fi
.SS "スレッドの実装の選択: LD_ASSUME_KERNEL"
LinuxThreads と NPTL の両方をサポートしている glibc (glibc 2.3.\fIx\fP) があるシステムでは、
-\fBLD_ASSUME_KERNEL\fP 環境変数を使うことで、動的リンカがデフォルトで 選択するスレッド実装を上書きすることができる。
-この変数により、動的リンカが特定のバージョンのカーネル上で 動作していると仮定するように指定する。 NPTL
+\fBLD_ASSUME_KERNEL\fP ç\92°å¢\83å¤\89æ\95°ã\82\92使ã\81\86ã\81\93ã\81¨ã\81§ã\80\81å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81\8cã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ é\81¸æ\8a\9eã\81\99ã\82\8bã\82¹ã\83¬ã\83\83ã\83\89å®\9fè£\85ã\82\92ä¸\8aæ\9b¸ã\81\8dã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
+ã\81\93ã\81®å¤\89æ\95°ã\81«ã\82\88ã\82\8aã\80\81å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81\8cç\89¹å®\9aã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81®ã\82«ã\83¼ã\83\8dã\83«ä¸\8aã\81§ å\8b\95ä½\9cã\81\97ã\81¦ã\81\84ã\82\8bã\81¨ä»®å®\9aã\81\99ã\82\8bã\82\88ã\81\86ã\81«æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 NPTL
が必要とするサポート機能を提供していないカーネルバージョンを 指定することで、強制的に LinuxThreads を使うことができる
(このようなことをする最もありそうな場面は、 LinuxThreads の標準非準拠な振舞いに依存する (壊れた) アプリケーション
を動作させる場合だろう)。 以下に例を示す:
.\"
.TH PTY 7 2005\-10\-10 Linux "Linux Programmer's Manual"
.SH 名前
-pty \- 擬似端末インタフェース
+pty \- æ\93¬ä¼¼ç«¯æ\9c«ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹
.SH 説明
-擬似端末 (pseudoterminal; "pty" と略されることもある) は、 双方向通信チャンネルを提供する仮想キャラクタデバイスのペアである。
-チャンネルの一方の端点は \fIマスタ (master)\fP と呼ばれ、もう一方の端点は \fIスレーブ (slave)\fP と呼ばれる。
-擬似端末のスレーブは、伝統的な端末と全く同じ動作をするインタフェースを 提供する。端末に接続されることを想定しているプロセスは擬似端末の
-スレーブをオープンすることができ、それ以降はマスタ側をオープン しているプログラムからそのプロセスを制御することができる。
-端末で入力されたのと同じように、 マスタ側に書き込まれた全てのデータは、スレーブ側のプロセスに送られる。 例えば、マスタデバイスに割り込みキャラクタ
-(通常は control\-C) を書き込むと、 スレーブに接続されているフォアグラウンド・プロセスグループに対して 割り込みシグナル
-(\fBSIGINT\fP) が生成される。 反対に、擬似端末のスレーブ側に書き込まれた全てのデータは、
-マスタ側に接続されているプロセスから読み出すことができる。 擬似端末は、ネットワークログインサービス (\fBssh\fP(1), \fBrlogin\fP(1),
-\fBtelnet\fP(1)) や端末エミュレータ、 \fBscript\fP(1), \fBscreen\fP(1), \fBexpect\fP(1)
-などのアプリケーションで使用されている。
+擬似端末 (pseudoterminal; "pty" と略されることもある) は、
+双方向通信チャンネルを提供する仮想キャラクターデバイスのペアである。 チャンネルの一方の端点は \fIマスタ (master)\fP
+と呼ばれ、もう一方の端点は \fIスレーブ (slave)\fP と呼ばれる。 擬似端末のスレーブは、伝統的な端末と全く同じ動作をするインターフェースを
+提供する。端末に接続されることを想定しているプロセスは擬似端末の スレーブをオープンすることができ、それ以降はマスタ側をオープン
+しているプログラムからそのプロセスを制御することができる。 端末で入力されたのと同じように、
+マスタ側に書き込まれた全てのデータは、スレーブ側のプロセスに送られる。 例えば、マスタデバイスに割り込みキャラクター (通常は control\-C)
+を書き込むと、 スレーブに接続されているフォアグラウンドプロセスグループに対して 割り込みシグナル (\fBSIGINT\fP) が生成される。
+反対に、擬似端末のスレーブ側に書き込まれた全てのデータは、 マスタ側に接続されているプロセスから読み出すことができる。
+擬似端末は、ネットワークログインサービス (\fBssh\fP(1), \fBrlogin\fP(1), \fBtelnet\fP(1)) や端末エミュレータ、
+\fBscript\fP(1), \fBscreen\fP(1), \fBexpect\fP(1) などのアプリケーションで使用されている。
歴史的に見ると BSD と System V の2種類の擬似端末の API が発展してきている。 SUSv1 は System V API
に基づいた擬似端末 API を標準化しており、 擬似端末を使用する新しいプログラムはすべてこの API を採用すべきである。
(カーネルのコンフィギュレーションで BSD 風の擬似端末を無効にすることができる)。 新しいアプリケーションでは、UNIX 98
擬似端末を使用すべきである。
.SS "UNIX 98 擬似端末"
-æ\9cªä½¿ç\94¨ã\81® UNIX 98 æ\93¬ä¼¼ç«¯æ\9c«ã\83\9eã\82¹ã\82¿ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8bã\81«ã\81¯ \fBposix_openpt\fP(3) ã\82\92å\91¼ã\81³å\87ºã\81\99 (ã\81\93ã\81®é\96¢æ\95°ã\81¯ã\83\9eã\82¹ã\82¿ã\83»ã\82¯ã\83ã\83¼ã\83³ã\83»デバイス
+æ\9cªä½¿ç\94¨ã\81® UNIX 98 æ\93¬ä¼¼ç«¯æ\9c«ã\83\9eã\82¹ã\82¿ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8bã\81«ã\81¯ \fBposix_openpt\fP(3) ã\82\92å\91¼ã\81³å\87ºã\81\99 (ã\81\93ã\81®é\96¢æ\95°ã\81¯ã\83\9eã\82¹ã\82¿ã\82¯ã\83ã\83¼ã\83³デバイス
(master clone device), \fI/dev/ptmx\fP をオープンする; \fBpts\fP(4) を参照)。
プログラム固有の初期化処理を実行し、 \fBgrantpt\fP(3) を使ってスレーブデバイスの所有権や許可を変更し、 \fBunlockpt\fP(3)
を使ってスレーブのロック解除を行うと、 \fBptsname\fP(3) が返す名前を渡して \fBopen\fP(2) を呼び出すことにより
が成功するまでこれを繰り返す。 マスタを open すると、対応する擬似端末のスレーブも open できるようになる (スレーブの名前は、マスタの名前の
"pty" を "tty" に置き換えたものである)。
.SH ファイル
-\fI/dev/ptmx\fP (UNIX 98 ã\83\9eã\82¹ã\82¿ã\83»ã\82¯ã\83ã\83¼ã\83³ã\83»デバイス)
+\fI/dev/ptmx\fP (UNIX 98 ã\83\9eã\82¹ã\82¿ã\82¯ã\83ã\83¼ã\83³デバイス)
.br
\fI/dev/pts/*\fP (UNIX 98 スレーブデバイス)
.br
.br
\fI/dev/tty[p\-za\-e][0\-9a\-f]\fP (BSD スレーブデバイス)
.SH 注意
-ã\83\91ã\82±ã\83\83ã\83\88ã\83»ã\83¢ã\83¼ã\83\89æ\93\8dä½\9cã\81®å\88¶å¾¡ã\82\92è¡\8cã\81\86 \fBTIOCPKT\fP \fBioctl\fP(2) ã\81®èª¬æ\98\8eã\81¯ \fBtty_ioctl\fP(4) ã\81«æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
+パケットモード操作の制御を行う \fBTIOCPKT\fP \fBioctl\fP(2) の説明は \fBtty_ioctl\fP(4) に書かれている。
BSD \fBioctl\fP(2) の \fBTIOCSTOP\fP, \fBTIOCSTART\fP, \fBTIOCUCNTL\fP, \fBTIOCREMOTE\fP
はこれまでのところ Linux では実装されていない。
.br
\fBraw_socket = socket(AF_INET, SOCK_RAW, int \fP\fIprotocol\fP\fB);\fP
.SH 説明
-raw ソケットを使うと、新しい IPv4 プロトコルをユーザ空間で 実装できるようになる。 raw ソケットは、リンクレベルヘッダを 含まない raw
-データグラムの送受信ができる。
+raw ソケットを使うと、新しい IPv4 プロトコルをユーザー空間で 実装できるようになる。 raw ソケットは、リンクレベルヘッダーを 含まない
+raw データグラムの送受信ができる。
IPv4 レイヤは、扱っているソケットで \fBIP_HDRINCL\fP ソケットオプションが有効になっていなければ、 パケットを送信するときに IP
-ã\83\98ã\83\83ã\83\80ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\80\82 \fBIP_HDRINCL\fP ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cæ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81¨ã\81\8dã\81¯ã\80\81ã\83\91ã\82±ã\83\83ã\83\88ã\81«ã\81¯ IP ã\83\98ã\83\83ã\83\80が含まれていなければならない。
-受信時には、 IP ヘッダは常にパケットに含まれている。
+ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\80\82 \fBIP_HDRINCL\fP ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cæ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81¨ã\81\8dã\81¯ã\80\81ã\83\91ã\82±ã\83\83ã\83\88ã\81«ã\81¯ IP ã\83\98ã\83\83ã\83\80ã\83¼が含まれていなければならない。
+å\8f\97ä¿¡æ\99\82ã\81«ã\81¯ã\80\81 IP ã\83\98ã\83\83ã\83\80ã\83¼ã\81¯å¸¸ã\81«ã\83\91ã\82±ã\83\83ã\83\88ã\81«å\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
実効ユーザー ID が 0 のプロセスか、 \fBCAP_NET_RAW\fP 権限を持つプロセスだけが raw ソケットをオープンすることができる。
この raw ソケットに指定された \fIprotocol\fP 番号にマッチする全てのパケットとエラーとが、このソケットに渡される。
許可されているプロトコルのリストは RFC\ 1700 の割り当て番号と \fBgetprotobyname\fP(3) を見よ。
-\fBIPPROTO_RAW\fP のプロトコルは暗黙のうちに \fBIP_HDRINCL\fP を有効にするので、 渡されたヘッダで指定された、あらゆる IP
+\fBIPPROTO_RAW\fP ã\81®ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81¯æ\9a\97é»\99ã\81®ã\81\86ã\81¡ã\81« \fBIP_HDRINCL\fP ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81®ã\81§ã\80\81 渡ã\81\95ã\82\8cã\81\9fã\83\98ã\83\83ã\83\80ã\83¼ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\80\81ã\81\82ã\82\89ã\82\86ã\82\8b IP
プロトコルを送信できる。 \fBIPPROTO_RAW\fP 経由でのあらゆる IP プロトコルの受信は、 raw ソケットを用いては行えない。
.RS
.TS
tab(:) allbox;
c s
l l.
-IP ヘッダフィールド。 \fBIP_HDRINCL\fP によって送信時に変更される。
+IP ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\80\82 \fBIP_HDRINCL\fP ã\81«ã\82\88ã\81£ã\81¦é\80\81ä¿¡æ\99\82ã\81«å¤\89æ\9b´ã\81\95ã\82\8cã\82\8bã\80\82
IP チェックサム:常に変更される。
ソースアドレス:元の値が 0 の時に変更される。
パケット ID:元の値が 0 の時に変更される。
.RE
.sp
.PP
-\fBIP_HERINCL\fP が指定されていて、 IP ヘッダに 0 でない送信先アドレスが記入されていた場合は、
+\fBIP_HERINCL\fP ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81¦ã\80\81 IP ã\83\98ã\83\83ã\83\80ã\83¼ã\81« 0 ã\81§ã\81ªã\81\84é\80\81ä¿¡å\85\88ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8cè¨\98å\85¥ã\81\95ã\82\8cã\81¦ã\81\84ã\81\9få ´å\90\88ã\81¯ã\80\81
その送信先アドレスがパケットの経路を決めるのに用いられる。 \fBMSG_DONTROUTE\fP が指定されている時には、
送信先アドレスはローカルなインターフェースを参照するものでなければならない。 さもないと、ルーティングテーブルの参照はいずれにせよ行われるが、
ゲートウェイが必要な経路は無視される。
-\fBIP_HDRINCL\fP がセットされていなければ、 raw ソケットの IP ヘッダオプションを \fBsetsockopt\fP(2)
+\fBIP_HDRINCL\fP ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\91ã\82\8cã\81°ã\80\81 raw ã\82½ã\82±ã\83\83ã\83\88ã\81® IP ã\83\98ã\83\83ã\83\80ã\83¼ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92 \fBsetsockopt\fP(2)
を用いて設定することができる。詳細な情報は \fBip\fP(7) を見よ。
-Linux 2.2 では、 IP ヘッダの全てのフィールドとオプションとを IP ソケットオプションによって設定できる。したがって raw
+Linux 2.2 ã\81§ã\81¯ã\80\81 IP ã\83\98ã\83\83ã\83\80ã\83¼ã\81®å\85¨ã\81¦ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¨ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¨ã\82\92 IP ã\82½ã\82±ã\83\83ã\83\88ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81«ã\82\88ã\81£ã\81¦è¨å®\9aã\81§ã\81\8dã\82\8bã\80\82ã\81\97ã\81\9fã\81\8cã\81£ã\81¦ raw
ソケットが必要になるのは、新しいプロトコルを設計する場合か、 ユーザーインターフェースを持たないプロトコル (ICMP など) を扱う場合に 限られる。
-パケットは、受信されるとまずプロトコルにバインドしている raw ソケットに渡され、 その後で他のプロトコルハンドラ
+パケットは、受信されるとまずプロトコルにバインドしている raw ソケットに渡され、 その後で他のプロトコルハンドラー
(カーネルのプロトコルモジュールなど) に渡される。
.SS アドレスのフォーマット
raw ソケットは標準の \fIsockaddr_in\fP アドレス構造体を用いる。定義は \fBip\fP(7) でなされている。 \fIsin_port\fP
.PP
さらに、データグラムソケットに使える全ての \fBip\fP(7) \fBSOL_IP\fP ソケットオプションがサポートされている。
.SS エラー処理
-ネットワークで生じたエラーがユーザに渡されるのは、 ソケットが接続済みの場合か \fBIP_RECVERR\fP フラグが有効になっている場合に限られる。
+ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\81§ç\94\9fã\81\98ã\81\9fã\82¨ã\83©ã\83¼ã\81\8cã\83¦ã\83¼ã\82¶ã\83¼ã\81«æ¸¡ã\81\95ã\82\8cã\82\8bã\81®ã\81¯ã\80\81 ã\82½ã\82±ã\83\83ã\83\88ã\81\8cæ\8e¥ç¶\9aæ¸\88ã\81¿ã\81®å ´å\90\88ã\81\8b \fBIP_RECVERR\fP ã\83\95ã\83©ã\82°ã\81\8cæ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«é\99\90ã\82\89ã\82\8cã\82\8bã\80\82
接続済みのソケットに対しては、 \fBEMSGSIZE\fP および \fBEPROTO\fP だけが渡される (互換性のため)。 \fBIP_RECVERR\fP
を設定すると、全てのネットワークエラーがエラーキューに保存される。
.SH エラー
ユーザーが broadcast フラグを設定していないソケットを用いて ブロードキャストアドレスに送信を行おうとした。
.TP
\fBEFAULT\fP
-不正なメモリアドレスが与えられた。
+ä¸\8dæ£ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8cä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fã\80\82
.TP
\fBEINVAL\fP
引き数が不正。
属性を持つプロセスだけがこれを行うことができる。
.TP
\fBEPROTO\fP
-パラメータの問題を報告する ICMP エラーを受け取った。
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®å\95\8fé¡\8cã\82\92å ±å\91\8aã\81\99ã\82\8b ICMP ã\82¨ã\83©ã\83¼ã\82\92å\8f\97ã\81\91å\8f\96ã\81£ã\81\9fã\80\82
.SH バージョン
\fBIP_RECVERR\fP と \fBICMP_FILTER\fP は Linux 2.2 で登場した。これらは Linux での拡張であり、
移植性の必要なプログラムでは用いるべきでない。
\fBEMSGSIZE\fP を返す。 \fBEMSGSIZE\fP を返された場合、アプリケーションはパケットサイズを小さくすべきである。 ソケットオプション
\fBIP_MTU_DISCOVER\fP または \fI/proc/sys/net/ipv4/ip_no_pmtu_disc\fP ファイルを使って Path
MTU Discovery を無効にすることもできる (詳細は \fBip\fP(7) を参照)。 Path MTU Discovery
-を無効にした場合は、パケットサイズが インタフェースの MTU よりも大きいと raw ソケットはそのパケットを フラグメント化して送出する。
+ã\82\92ç\84¡å\8a¹ã\81«ã\81\97ã\81\9få ´å\90\88ã\81¯ã\80\81ã\83\91ã\82±ã\83\83ã\83\88ã\82µã\82¤ã\82ºã\81\8c ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81® MTU ã\82\88ã\82\8aã\82\82大ã\81\8dã\81\84ã\81¨ raw ã\82½ã\82±ã\83\83ã\83\88ã\81¯ã\81\9dã\81®ã\83\91ã\82±ã\83\83ã\83\88ã\82\92 ã\83\95ã\83©ã\82°ã\83¡ã\83³ã\83\88å\8c\96ã\81\97ã\81¦é\80\81å\87ºã\81\99ã\82\8bã\80\82
しかしながら、性能と信頼性の理由から Path MTU Discovery を 無効にするのは推奨できない。
\fBbind\fP(2) システムコールを用いると、 raw ソケットを 特定のローカルアドレスにバインドさせることができる。
ソケットの両方に渡される (raw ソケットが複数あればそれぞれに渡される)。 移植性の必要なプログラムではこの機能に依存するべきではない。 他の多くの
BSD におけるソケットの実装ではこの点において制限がある。
-Linux はユーザーから渡されたヘッダを決して変更しない (ただし \fBIP_HDRINCL\fP の説明にあるように、 0
+Linux ã\81¯ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8bã\82\89渡ã\81\95ã\82\8cã\81\9fã\83\98ã\83\83ã\83\80ã\83¼ã\82\92決ã\81\97ã\81¦å¤\89æ\9b´ã\81\97ã\81ªã\81\84 (ã\81\9fã\81 ã\81\97 \fBIP_HDRINCL\fP ã\81®èª¬æ\98\8eã\81«ã\81\82ã\82\8bã\82\88ã\81\86ã\81«ã\80\81 0
をいくつか埋める場合を除く)。 これは他の多くの raw ソケットの実装では異なる。
一般に raw ソケットは移植性がないことが多いので、 移植性が必要なプログラムでは避けるべきである。
.\" FIXME . ? all these macros could be moved to rtnetlink(3)
\fBrtnetlink\fP はカーネルのルーティングテーブルを読んだり変更したり するためのものである。これはカーネルが内部のサブシステムと
通信するためにも用いられているが、それはここでは記述しない。 この man ページではユーザー空間のプログラムとの通信に関してのみ述べる。
-ネットワーク経路・IP アドレス・リンクパラメータ・ 近傍設定 (neighbor setup)・キューイングルール (queueing
+ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯çµ\8cè·¯ã\83»IP ã\82¢ã\83\89ã\83¬ã\82¹ã\83»ã\83ªã\83³ã\82¯ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\83» è¿\91å\82\8dè¨å®\9a (neighbor setup)ã\83»ã\82ã\83¥ã\83¼ã\82¤ã\83³ã\82°ã\83«ã\83¼ã\83« (queueing
dicipline)・ トラフィッククラス・パケットのクラス分類などが、すべて \fBNETLINK_ROUTE\fP ソケットを通して制御できる。
\fBrtnetlink\fP は netlink メッセージをベースにしている。詳細は \fBnetlink\fP(7) を見ること。
.SS ルーティング属性
-rtnetlink メッセージには、初期ヘッダの後に付加的な属性を 持つものがある。
+rtnetlink ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81«ã\81¯ã\80\81å\88\9dæ\9c\9fã\83\98ã\83\83ã\83\80ã\83¼ã\81®å¾\8cã\81«ä»\98å\8a ç\9a\84ã\81ªå±\9eæ\80§ã\82\92 æ\8c\81ã\81¤ã\82\82ã\81®ã\81\8cã\81\82ã\82\8bã\80\82
.in +4n
.nf
\fBRTM_NEWROUTE\fP, \fBRTM_DELROUTE\fP, \fBRTM_GETROUTE\fP
ネットワーク経路の情報を生成・削除・取得する。 これらのメッセージは \fIrtmsg\fP 構造体を伴う。そのあとにいくつかの \fIrtattr\fP
構造体を続けることもできる。 \fBRTM_GETROUTE\fP で \fIrtm_dst_len\fP と \fIrtm_src_len\fP に 0
-をセットすると、 指定されたルーティングテーブルの全てのエントリを所得する。 \fIrtm_table\fP と \fIrtm_protocol\fP
+ã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\81¨ã\80\81 æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83«ã\83¼ã\83\86ã\82£ã\83³ã\82°ã\83\86ã\83¼ã\83\96ã\83«ã\81®å\85¨ã\81¦ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92æ\89\80å¾\97ã\81\99ã\82\8bã\80\82 \fIrtm_table\fP ã\81¨ \fIrtm_protocol\fP
以外の他のフィールドに 0 を入れると、ワイルドカードを意味する。
.nf
\fB(これらの値を埋めること!)\fP
.TP
\fBRTM_NEWNEIGH\fP, \fBRTM_DELNEIGH\fP, \fBRTM_GETNEIGH\fP
-近傍テーブル (neighbor table) のエントリ (例えば ARP エントリ) の情報を追加・削除・取得する。 このメッセージは
+近傍テーブル (neighbor table) のエントリー (例えば ARP エントリー) の情報を追加・削除・取得する。 このメッセージは
\fIndmsg\fP 構造体を伴う。
.nf
.TS
tab(:);
l l.
-NUD_INCOMPLETE:現在レゾルブ中のキャッシュエントリ
-NUD_REACHABLE:動作確認済みのキャッシュエントリ
-NUD_STALE:期限切れのキャッシュエントリ
-NUD_DELAY:タイマ待ちのキャッシュエントリ
-NUD_PROBE:再確認中のキャッシュエントリ
-NUD_FAILED:不正なキャッシュエントリ
+NUD_INCOMPLETE:現在レゾルブ中のキャッシュエントリー
+NUD_REACHABLE:動作確認済みのキャッシュエントリー
+NUD_STALE:期限切れのキャッシュエントリー
+NUD_DELAY:タイマー待ちのキャッシュエントリー
+NUD_PROBE:再確認中のキャッシュエントリー
+NUD_FAILED:不正なキャッシュエントリー
NUD_NOARP:行き先キャッシュのないデバイス
-NUD_PERMANENT:静的なエントリ
+NUD_PERMANENT:静的なエントリー
.TE
有効な \fIndm_flags\fP は以下の通り:
.TS
tab(:);
l l.
-NTF_PROXY:プロクシ arp エントリ
+NTF_PROXY:プロクシ arp エントリー
NTF_ROUTER:IPv6 ルータ
.TE
NDA_CACHEINFO:キャッシュの統計
.TE
-\fIrta_type\fP フィールドが \fBNDA_CACHEINFO\fP の場合には、 \fIstruct nda_cacheinfo\fP ヘッダが続く。
+\fIrta_type\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81\8c \fBNDA_CACHEINFO\fP ã\81®å ´å\90\88ã\81«ã\81¯ã\80\81 \fIstruct nda_cacheinfo\fP ã\83\98ã\83\83ã\83\80ã\83¼ã\81\8cç¶\9aã\81\8fã\80\82
.TP
\fBRTM_NEWRULE\fP, \fBRTM_DELRULE\fP, \fBRTM_GETRULE\fP
ルーティングルールを追加・削除・取得する。 \fIstruct rtmsg\fP を伴う。
.SS 特権とリソース制限
2.6.12 より前のバージョンの Linux カーネルでは、 特権スレッド (\fBCAP_SYS_NICE\fP ケーパビリティを持つスレッド) だけが
0 以外の静的優先度を設定する (すなわち、リアルタイムスケジューリングポリシーを設定する) ことができる。 非特権スレッドができる変更は
-\fBSCHED_OTHER\fP ポリシーを設定することだけであり、さらに、 この変更を行えるのは、 呼び出し元の実効ユーザ ID
-がポリシーの変更対象スレッド (\fIpid\fP で指定されたスレッド) の実ユーザ ID か実効ユーザ ID と 一致する場合だけである。
+\fBSCHED_OTHER\fP ポリシーを設定することだけであり、さらに、 この変更を行えるのは、 呼び出し元の実効ユーザー ID
+がポリシーの変更対象スレッド (\fIpid\fP で指定されたスレッド) の実ユーザー ID か実効ユーザー ID と 一致する場合だけである。
\fBSCHED_DEADLINE\fP ポリシーを設定、変更するには、スレッドが特権 (\fBCAP_SYS_NICE\fP) を持っていなければならない。
.IP *
\fBRLIMIT_RTPRIO\fP ソフトリミットが 0 の場合、優先度を下げるか、 リアルタイムでないポリシーへ切り替えるかの変更だけが許可される。
.IP *
-ある非特権スレッドが別のスレッドに対してこれらの変更を行う際にも、 同じルールが適用される。変更を行えるのは、変更を行おうとするスレッド の実効ユーザ
-ID が変更対象のスレッドの実ユーザ ID か実効ユーザ ID と 一致している場合に限られる。
+ある非特権スレッドが別のスレッドに対してこれらの変更を行う際にも、 同じルールが適用される。変更を行えるのは、変更を行おうとするスレッド の実効ユーザー
+ID が変更対象のスレッドの実ユーザー ID か実効ユーザー ID と 一致している場合に限られる。
.IP *
.\" commit c02aa73b1d18e43cfd79c2f193b225e84ca497c8
\fBSCHED_IDLE\fP ポリシーの場合には特別なルールが適用される。 2.6.39 より前の Linux
I/O 待ちで停止したより高い優先度のスレッドは再びスケジューリングされる 前にいくらかの応答時間がかかる。デバイスドライバーを書く場合には "slow
interrupt" 割り込みハンドラーを使用することで この応答時間を劇的に減少させることができる。
.SS その他
-子プロセスは \fBfork\fP(2) の際に親プロセスのスケジューリングポリシーとパラメータを継承する。 \fBexecve\fP(2)
-の前後で、スケジューリングポリシーとパラメータは保持される。
+å\90ã\83\97ã\83ã\82»ã\82¹ã\81¯ \fBfork\fP(2) ã\81®é\9a\9bã\81«è¦ªã\83\97ã\83ã\82»ã\82¹ã\81®ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\9dã\83ªã\82·ã\83¼ã\81¨ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92ç¶\99æ\89¿ã\81\99ã\82\8bã\80\82 \fBexecve\fP(2)
+ã\81®å\89\8då¾\8cã\81§ã\80\81ã\82¹ã\82±ã\82¸ã\83¥ã\83¼ã\83ªã\83³ã\82°ã\83\9dã\83ªã\82·ã\83¼ã\81¨ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ä¿\9dæ\8c\81ã\81\95ã\82\8cã\82\8bã\80\82
リアルタイムプロセスは大抵、ページングの待ち時間を避けるために \fBmlock\fP(2) や \fBmlockall\fP(2)
-を使ってメモリロックをしなければならない。
+ã\82\92使ã\81£ã\81¦ã\83¡ã\83¢ã\83ªã\83¼ã\83ã\83\83ã\82¯ã\82\92ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
.SH 注意
.PP
もともとは、標準の Linux は一般目的のオペレーティングシステムとして 設計されており、バックグラウンドプロセスや対話的アプリケーション、
\fBsem_close\fP(3) を使ってセマフォをクローズできる。 あるセマフォをどのプロセスも使用しなくなると、 \fBsem_unlink\fP(3)
を使ってそのセマフォをシステムから削除することができる。
.TP
-\fBå\90\8då\89\8dã\81ªã\81\97ã\82»ã\83\9eã\83\95ã\82© (ã\83¡ã\83¢ã\83ªã\83\99ã\83¼ã\82¹ã\83»セマフォ)\fP
-名前なしセマフォは名前を持たない。その代わり、セマフォは、 複数スレッド間で共有されるメモリ領域、もしくは複数プロセス間で
-共有されたメモリ領域に置かれる (前者を \fIスレッド共有セマフォ (thread\-shared semaphore)\fP、 後者を
+\fBå\90\8då\89\8dã\81ªã\81\97ã\82»ã\83\9eã\83\95ã\82© (ã\83¡ã\83¢ã\83ªã\83¼ã\83\99ã\83¼ã\82¹セマフォ)\fP
+名前なしセマフォは名前を持たない。その代わり、セマフォは、 複数スレッド間で共有されるメモリー領域、もしくは複数プロセス間で
+共有されたメモリー領域に置かれる (前者を \fIスレッド共有セマフォ (thread\-shared semaphore)\fP、 後者を
\fIプロセス共有セマフォ (process\-shared semaphore)\fP
-と呼ぶ)。スレッド共有セマフォは、同じプロセス内のスレッド間で共有される メモリ領域、例えば大域変数 (global variable) に配置される。
-ã\83\97ã\83ã\82»ã\82¹å\85±æ\9c\89ã\82»ã\83\9eã\83\95ã\82©ã\81¯ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªé \98å\9f\9f (ä¾\8bã\81\88ã\81°ã\80\81 \fBshmget\fP(2) ã\82\92使ã\81£ã\81¦ä½\9cæ\88\90ã\81§ã\81\8dã\82\8b System V å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\84
-\fBshm_open\fP(3) を使って作成できる POSIX 共有メモリ・オブジェクト) 内に配置しなければならない。
+と呼ぶ)。スレッド共有セマフォは、同じプロセス内のスレッド間で共有される メモリー領域、例えば大域変数 (global variable)
+ã\81«é\85\8dç½®ã\81\95ã\82\8cã\82\8bã\80\82 ã\83\97ã\83ã\82»ã\82¹å\85±æ\9c\89ã\82»ã\83\9eã\83\95ã\82©ã\81¯ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼é \98å\9f\9f (ä¾\8bã\81\88ã\81°ã\80\81 \fBshmget\fP(2) ã\82\92使ã\81£ã\81¦ä½\9cæ\88\90ã\81§ã\81\8dã\82\8b System V
+共有メモリーセグメントや \fBshm_open\fP(3) を使って作成できる POSIX 共有メモリーオブジェクト) 内に配置しなければならない。
名前なしセマフォは、使用する前に \fBsem_init\fP(3) を使って初期化しなければならない。 セマフォは \fBsem_post\fP(3) と
-\fBsem_wait\fP(3) を使って操作できる。 セマフォがもはや必要なくなったときや、 セマフォが置かれているメモリを解放する前には、
+\fBsem_wait\fP(3) ã\82\92使ã\81£ã\81¦æ\93\8dä½\9cã\81§ã\81\8dã\82\8bã\80\82 ã\82»ã\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å\89\8dã\81«ã\81¯ã\80\81
\fBsem_destroy\fP(3) を使ってセマフォを破棄すべきである。
.PP
この節の残りでは、POSIX セマフォの Linux の実装の詳細 について説明する。
\fBNAME_MAX\fP ではなく \fBNAME_MAX\fP\fI\-4\fP となっている理由である。)
Linux 2.6.19 以降では、このディレクトリ配下のファイルに対して ACL を
-設定でき、オブジェクトへの許可をユーザ単位、グループ単位で制御することが できる。
+設定でき、オブジェクトへの許可をユーザー単位、グループ単位で制御することが できる。
.SH 準拠
POSIX.1\-2001.
.SH 注意
System V セマフォ (\fBsemget\fP(2), \fBsemop\fP(2) など) は古いセマフォ API である。 POSIX セマフォは
-System V よりも 簡単で、うまく設計されたインタフェースを提供している。 一方で、POSIX セマフォは System V セマフォと比べると
+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¨
利用できるシステムが少ない (特に、古いシステムでは少ない)。
.SH 例
各種の POSIX セマフォ関数を使用した例が \fBsem_wait\fP(3) に記載されている。
.\"
.TH SHM_OVERVIEW 7 2010\-09\-10 Linux "Linux Programmer's Manual"
.SH 名前
-shm_overview \- POSIX 共有メモリの概要
+shm_overview \- POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81®æ¦\82è¦\81
.SH 説明
-POSIX 共有メモリ API を使用すると、メモリのある領域を共有して、 プロセス間で情報をやり取りすることができる。
+POSIX 共有メモリー API を使用すると、メモリーのある領域を共有して、 プロセス間で情報をやり取りすることができる。
この API では以下のインターフェースが採用されている。
.TP 15
\fBshm_open\fP(3)
新しいオブジェクトを生成しオープンする、もしくは 既存のオブジェクトをオープンする。これは \fBopen\fP(2)
-と同じである。下記にある他のインターフェースで使用する ファイルディスクリプタを返す。
+ã\81¨å\90\8cã\81\98ã\81§ã\81\82ã\82\8bã\80\82ä¸\8bè¨\98ã\81«ã\81\82ã\82\8bä»\96ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81§ä½¿ç\94¨ã\81\99ã\82\8b ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
.TP
\fBftruncate\fP(2)
-共有メモリオブジェクトの大きさを設定する。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®å¤§ã\81\8dã\81\95ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82
.TP
\fBmmap\fP(2)
-呼び出したプロセスの仮想アドレス空間に共有メモリオブジェクトを マップする。
+å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81®ä»®æ\83³ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81«å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92 ã\83\9eã\83\83ã\83\97ã\81\99ã\82\8bã\80\82
.TP
\fBmunmap\fP(2)
-呼び出したプロセスの仮想アドレス空間から 共有メモリオブジェクトをアンマップする。
+å\91¼ã\81³å\87ºã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81®ä»®æ\83³ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81\8bã\82\89 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ã\82¢ã\83³ã\83\9eã\83\83ã\83\97ã\81\99ã\82\8bã\80\82
.TP
\fBshm_unlink\fP(3)
-共有メモリオブジェクト名を削除する。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88å\90\8dã\82\92å\89\8aé\99¤ã\81\99ã\82\8bã\80\82
.TP
\fBclose\fP(2)
-\fBshm_open\fP(3) ã\81§å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cä¸\8dè¦\81ã\81«ã\81ªã\81£ã\81\9fé\9a\9bã\81«ã\80\81 ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿をクローズする。
+\fBshm_open\fP(3) ã\81§å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cä¸\8dè¦\81ã\81«ã\81ªã\81£ã\81\9fé\9a\9bã\81«ã\80\81 ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼をクローズする。
.TP
\fBfstat\fP(2)
-その共有メモリオブジェクトについての情報が入った \fIstat\fP 構造体を取得する。 このシステムコールが返す情報には、オブジェクトのサイズ
+ã\81\9dã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81«ã\81¤ã\81\84ã\81¦ã\81®æ\83\85å ±ã\81\8cå\85¥ã\81£ã\81\9f \fIstat\fP æ§\8bé\80 ä½\93ã\82\92å\8f\96å¾\97ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81\8cè¿\94ã\81\99æ\83\85å ±ã\81«ã\81¯ã\80\81ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\82µã\82¤ã\82º
(\fIst_size\fP)、 許可属性 (\fIst_mode\fP)、 所有者 (\fIst_uid\fP)、 グループ (\fIst_gid\fP) がある。
.TP
\fBfchown\fP(2)
-共有メモリオブジェクトの所有権を変更する。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®æ\89\80æ\9c\89権ã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82
.TP
\fBfchmod\fP(2)
-共有メモリオブジェクトの許可属性を変更する。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®è¨±å\8f¯å±\9eæ\80§ã\82\92å¤\89æ\9b´ã\81\99ã\82\8bã\80\82
.SS Versions
-POSIX 共有メモリは Linux 2.4 と glibc 2.2 以降でサポートされている。
+POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81¯ Linux 2.4 ã\81¨ glibc 2.2 以é\99\8dã\81§ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
.SS 持続性
-POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¯ã\82«ã\83¼ã\83\8dã\83«å\86\85ã\81§ä¿\9dæ\8c\81ã\81\95ã\82\8cã\82\8bã\80\82 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªオブジェクトは、システムがシャットダウンされるか、
+POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¯ã\82«ã\83¼ã\83\8dã\83«å\86\85ã\81§ä¿\9dæ\8c\81ã\81\95ã\82\8cã\82\8bã\80\82 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトは、システムがシャットダウンされるか、
全てのプロセスがそのオブジェクトをアンマップし、 \fBshm_unlink\fP(3) で削除されるまで、存在し続ける。
.SS リンク
-POSIX 共有メモリ API を使用したプログラムは \fIcc \-lrt\fP でコンパイルし、リアルタイムライブラリ \fIlibrt\fP
+POSIX 共有メモリー API を使用したプログラムは \fIcc \-lrt\fP でコンパイルし、リアルタイムライブラリ \fIlibrt\fP
とリンクしなければならない。
-.SS ファイルシステム経由での共有メモリオブジェクトへのアクセス
-Linux では、共有メモリオブジェクトは通常 \fI/dev/shm\fP 以下にマウントされる仮想ファイルシステム (\fItmpfs\fP)
+.SS ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 çµ\8cç\94±ã\81§ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹
+Linux ã\81§ã\81¯ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¯é\80\9a常 \fI/dev/shm\fP 以ä¸\8bã\81«ã\83\9eã\82¦ã\83³ã\83\88ã\81\95ã\82\8cã\82\8bä»®æ\83³ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 (\fItmpfs\fP)
内に作成される。 カーネル 2.6.19 以降の Linux では、 仮想ファイルシステム内のオブジェクトの許可属性の制御に、 アクセス制御リスト
(ACL; access control lists) を使うことができる。
.SH 準拠
POSIX.1\-2001.
.SH 注意
-通常は、共有メモリオブジェクトにアクセスするプロセスは、 POSIX セマフォなどを使ってプロセス間で同期をとらなければならない。
+é\80\9a常ã\81¯ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8bã\83\97ã\83ã\82»ã\82¹ã\81¯ã\80\81 POSIX ã\82»ã\83\9eã\83\95ã\82©ã\81ªã\81©ã\82\92使ã\81£ã\81¦ã\83\97ã\83ã\82»ã\82¹é\96\93ã\81§å\90\8cæ\9c\9fã\82\92ã\81¨ã\82\89ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
-System V 共有メモリ (\fBshmget\fP(2), \fBshmop\fP(2) など) は古い共有メモリ API である。 POSIX
-å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\81¯ã\80\81ã\82\88ã\82\8aç°¡å\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 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\81¯ System V å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\81¨æ¯\94ã\81¹ã\82\8bã\81¨
-利用できるシステムが少ない (特に、古いシステムでは少ない)。
+System V 共有メモリー (\fBshmget\fP(2), \fBshmop\fP(2) など) は古い共有メモリー API である。 POSIX
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81¯ã\80\81ã\82\88ã\82\8aç°¡å\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 å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\81¯ System V
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\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
.SH 関連項目
\fBfchmod\fP(2), \fBfchown\fP(2), \fBfstat\fP(2), \fBftruncate\fP(2), \fBmmap\fP(2),
\fBmprotect\fP(2), \fBmunmap\fP(2), \fBshmget\fP(2), \fBshmop\fP(2), \fBshm_open\fP(3),
\fBSIGEV_SIGNAL\fP
\fIsigev_signo\fP で指定されたシグナルを送信することで、プロセスへの通知を行う。
.IP
-\fBsigaction\fP(2) の \fBSA_SIGINFO\fP フラグを使った登録されたシグナルハンドラによりシグナルが捕捉されると、
-シグナルハンドラの 2 番目の引き数として渡された \fIsiginfo_t\fP 構造体の以下のフィールドが設定される。
+\fBsigaction\fP(2) ã\81® \fBSA_SIGINFO\fP ã\83\95ã\83©ã\82°ã\82\92使ã\81£ã\81\9fç\99»é\8c²ã\81\95ã\82\8cã\81\9fã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aã\82·ã\82°ã\83\8aã\83«ã\81\8cæ\8d\95æ\8d\89ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81® 2 ç\95ªç\9b®ã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦æ¸¡ã\81\95ã\82\8cã\81\9f \fIsiginfo_t\fP æ§\8bé\80 ä½\93ã\81®ä»¥ä¸\8bã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81\8cè¨å®\9aã\81\95ã\82\8cã\82\8bã\80\82
.RS 8
.TP 10
\fIsi_code\fP
シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方法によりシグナルが配送された際にプロセスが
どのような振舞いをするかが決まる。
-後述の表の "動作" の欄のエントリは各シグナルのデフォルトの 処理方法を示しており、以下のような意味を持つ。
+å¾\8cè¿°ã\81®è¡¨ã\81® "å\8b\95ä½\9c" ã\81®æ¬\84ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯å\90\84ã\82·ã\82°ã\83\8aã\83«ã\81®ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81® å\87¦ç\90\86æ\96¹æ³\95ã\82\92示ã\81\97ã\81¦ã\81\8aã\82\8aã\80\81以ä¸\8bã\81®ã\82\88ã\81\86ã\81ªæ\84\8få\91³ã\82\92æ\8c\81ã\81¤ã\80\82
.IP Term
デフォルトの動作はプロセス終了。
.IP Ign
デフォルトの動作は、プロセスが停止中の場合にその実行の再開。
.PP
プロセスは、 \fBsigaction\fP(2) や \fBsignal\fP(2) を使って、シグナルの処理方法を変更することができる
-(\fBsignal\fP(2) の方がシグナルハンドラを設定する際の移植性が低い; 詳細は \fBsignal\fP(2) を参照)。
+(\fBsignal\fP(2) ã\81®æ\96¹ã\81\8cã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92è¨å®\9aã\81\99ã\82\8bé\9a\9bã\81®ç§»æ¤\8dæ\80§ã\81\8cä½\8eã\81\84; 詳細ã\81¯ \fBsignal\fP(2) ã\82\92å\8f\82ç\85§)ã\80\82
シグナルの配送時に起こる動作として プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行する、シグナルを無視する、
-\fIシグナルハンドラ (signal handler)\fP でシグナルを捕捉する。シグナルハンドラとは、シグナル配送時に
-自動的に起動されるプログラマ定義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック上で起動される。
-シグナルハンドラが代替スタック (alternate stack) を使用するように設定する
+\fIシグナルハンドラー (signal handler)\fP でシグナルを捕捉する。シグナルハンドラーとは、シグナル配送時に
+è\87ªå\8b\95ç\9a\84ã\81«èµ·å\8b\95ã\81\95ã\82\8cã\82\8bã\83\97ã\83ã\82°ã\83©ã\83\9eå®\9a義ã\81®é\96¢æ\95°ã\81§ã\81\82ã\82\8bã\80\82 (ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯é\80\9a常ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\82¹ã\82¿ã\83\83ã\82¯ä¸\8aã\81§èµ·å\8b\95ã\81\95ã\82\8cã\82\8bã\80\82
+ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8c代æ\9b¿ã\82¹ã\82¿ã\83\83ã\82¯ (alternate stack) ã\82\92使ç\94¨ã\81\99ã\82\8bã\82\88ã\81\86ã\81«è¨å®\9aã\81\99ã\82\8b
こともできる。代替スタックを使用するように設定する方法と、どのような際に 代替スタックが役に立つかについての議論については
\fBsigaltstack\fP(2) を参照のこと。
シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーションでは、あるシグナルの処理方法は 全てのスレッドで同じである。
\fBfork\fP(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コピーを継承する。 \fBexecve\fP(2)
-の前後で、ハンドラが設定されているシグナルの処理方法はデフォルトにリセットされ、 無視が設定されているシグナルの処理方法は変更されずそのままとなる。
+ã\81®å\89\8då¾\8cã\81§ã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82·ã\82°ã\83\8aã\83«ã\81®å\87¦ç\90\86æ\96¹æ³\95ã\81¯ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81«ã\83ªã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\80\81 ç\84¡è¦\96ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82·ã\82°ã\83\8aã\83«ã\81®å\87¦ç\90\86æ\96¹æ³\95ã\81¯å¤\89æ\9b´ã\81\95ã\82\8cã\81\9aã\81\9dã\81®ã\81¾ã\81¾ã\81¨ã\81ªã\82\8bã\80\82
.SS シグナルの送信
以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信することができる。
.TP 16
指定されたプロセスに付属データとともにリアルタイムシグナルを送る。
.SS シグナルが捕捉されるのを待つ
以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやスレッドの実行を中断 (suspend) することができる
-(ハンドラが設定されていないシグナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。
+(ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\82·ã\82°ã\83\8aã\83«ã\81«ã\82\88ã\82\8aã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81\8cçµ\82äº\86ã\81\97ã\81\9f å ´å\90\88ã\81«ã\82\82å®\9fè¡\8cã\81®å\81\9cæ¢ã\81¯çµ\82äº\86ã\81\99ã\82\8b)ã\80\82
.TP 16
\fBpause\fP(2)
何かシグナルが捕捉されるまで実行を停止する。
\fBsigsuspend\fP(2)
一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいずれかが捕捉されるまで 実行を中断する。
.SS シグナルの同期受信
-シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 シグナルを同期 (synchronously)
+シグナルハンドラー経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 シグナルを同期 (synchronously)
して受け付けることもできる。 同期して受け付けるとは、シグナルが配送されるまで実行を停止 (block)
するということである。シグナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返す。 これを行う一般的な方法が二つある。
.IP * 2
\fBsigwaitinfo\fP(2), \fBsigtimedwait\fP(2), \fBsigwait\fP(3)
は、指定されたシグナル集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数でも、配送されたシグナルに関する情報が返される。
.IP *
-\fBsignalfd\fP(2) が返すファイルディスクリプタを使うと、呼び出し元に配送された シグナルに関する情報を読み出すことができる。
-このファイルディスクリプタからの \fBread\fP(2) は、 \fBsignalfd\fP(2)
+\fBsignalfd\fP(2) ã\81\8cè¿\94ã\81\99ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92使ã\81\86ã\81¨ã\80\81å\91¼ã\81³å\87ºã\81\97å\85\83ã\81«é\85\8dé\80\81ã\81\95ã\82\8cã\81\9f ã\82·ã\82°ã\83\8aã\83«ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92èªã\81¿å\87ºã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8bã\82\89ã\81® \fBread\fP(2) ã\81¯ã\80\81 \fBsignalfd\fP(2)
の呼び出し時に指定されたシグナル集合のシグナルの一つが呼び出し元に 配送されるまで停止 (block) する。 \fBread\fP(2)
-が返すバッファにはシグナルに関する情報を格納した構造体が入っている。
+ã\81\8cè¿\94ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\81¯ã\82·ã\82°ã\83\8aã\83«ã\81«é\96¢ã\81\99ã\82\8bæ\83\85å ±ã\82\92æ ¼ç´\8dã\81\97ã\81\9fæ§\8bé\80 ä½\93ã\81\8cå\85¥ã\81£ã\81¦ã\81\84ã\82\8bã\80\82
.SS シグナルマスクと処理待ちシグナル
シグナルは \fIブロック (block)\fP されることがある。ブロックされると、そのシグナルは その後ブロックを解除されるまで配送されなくなる。
シグナルが生成されてから配送されるまでの間、そのシグナルは \fI処理待ち (pending)\fP であると呼ばれる。
\fBfork\fP(2) 経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合で初期化される。 \fBexecve\fP(2)
の前後で、処理待ちのシグナル集合は保持される。
.SS 標準シグナル
-Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアーキテクチャ依存であり、"値" 欄に示す通りである。
+Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアーキテクチャー依存であり、"値" 欄に示す通りである。
(3つの値が書かれているものは、 1つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm
-や他のほとんどのアーキテクチャでの有効な値、最後が mips での値である。 (parisc での値は記載されて\fIいない\fP。 parisc
-でのシグナル番号は Linux カーネルソースを参照してほしい)。 \- はそのアーキテクチャにおいて対応するシグナルがないことを示す。)
+ã\82\84ä»\96ã\81®ã\81»ã\81¨ã\82\93ã\81©ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81®æ\9c\89å\8a¹ã\81ªå\80¤ã\80\81æ\9c\80å¾\8cã\81\8c mips ã\81§ã\81®å\80¤ã\81§ã\81\82ã\82\8bã\80\82 (parisc ã\81§ã\81®å\80¤ã\81¯è¨\98è¼\89ã\81\95ã\82\8cã\81¦\fIã\81\84ã\81ªã\81\84\fPã\80\82 parisc
+ã\81§ã\81®ã\82·ã\82°ã\83\8aã\83«ç\95ªå\8f·ã\81¯ Linux ã\82«ã\83¼ã\83\8dã\83«ã\82½ã\83¼ã\82¹ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81»ã\81\97ã\81\84)ã\80\82 \- ã\81¯ã\81\9dã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\81\8aã\81\84ã\81¦å¯¾å¿\9cã\81\99ã\82\8bã\82·ã\82°ã\83\8aã\83«ã\81\8cã\81ªã\81\84ã\81\93ã\81¨ã\82\92示ã\81\99ã\80\82)
最初に、POSIX.1\-1990 に定義されているシグナルを示す。
.TS
SIGABRT \06 Core \fBabort\fP(3) からの中断 (Abort) シグナル
SIGFPE \08 Core 浮動小数点例外
SIGKILL \09 Term Kill シグナル
-SIGSEGV 11 Core 不正なメモリ参照
+SIGSEGV 11 Core 不正なメモリー参照
SIGPIPE 13 Term パイプ破壊:
読み手の無いパイプへの書き出し
SIGALRM 14 Term \fBalarm\fP(2) からのタイマーシグナル
SIGTERM 15 Term 終了 (termination) シグナル
-SIGUSR1 30,10,16 Term ユーザ定義シグナル 1
-SIGUSR2 31,12,17 Term ユーザ定義シグナル 2
+SIGUSR1 30,10,16 Term ユーザー定義シグナル 1
+SIGUSR2 31,12,17 Term ユーザー定義シグナル 2
SIGCHLD 20,17,18 Ign 子プロセスの一時停止 (stop) または終了
SIGCONT 19,18,25 Cont 一時停止 (stop) からの再開
SIGSTOP 17,19,23 Stop プロセスの一時停止 (stop)
____
lB c c l.
シグナル 値 動作 コメント
-SIGBUS 10,7,10 Core バスエラー (不正なメモリアクセス)
+SIGBUS 10,7,10 Core ã\83\90ã\82¹ã\82¨ã\83©ã\83¼ (ä¸\8dæ£ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\82¯ã\82»ã\82¹)
SIGPOLL Term ポーリング可能なイベント (Sys V)。
\fBSIGIO\fP と同義
-SIGPROF 27,27,29 Term profiling タイマの時間切れ
+SIGPROF 27,27,29 Term profiling ã\82¿ã\82¤ã\83\9eã\83¼ã\81®æ\99\82é\96\93å\88\87ã\82\8c
SIGSYS 12,31,12 Core ルーチンへの引き数が不正 (SVr4)
SIGTRAP 5 Core トレース/ブレークポイント トラップ
SIGURG 16,23,21 Ign ソケットの緊急事態 (urgent condition) (4.2BSD)
.TE
Linux 2.2 以前では、 \fBSIGSYS\fP, \fBSIGXCPU\fP, \fBSIGXFSZ\fP および SPARC と MIPS
-以å¤\96ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81§ã\81® \fBSIGBUS\fP ã\81®ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®æ\8c¯ã\82\8bè\88\9eã\81\84ã\81¯ (ã\82³ã\82¢ã\83\80ã\83³ã\83\97å\87ºå\8a\9bã\81ªã\81\97ã\81®) ã\83\97ã\83ã\82»ã\82¹çµ\82äº\86ã\81§ã\81\82ã\81£ã\81\9fã\80\82 (ä»\96ã\81® UNIX ã\82·ã\82¹ã\83\86ã\83 ã\81«ã\82\82
-\fBSIGXCPU\fP と \fBSIGXFSZ\fP のデフォルトの動作がコアダンプなしのプロセス終了のものがある。) Linux 2.4
+以å¤\96ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81® \fBSIGBUS\fP ã\81®ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®æ\8c¯ã\82\8bè\88\9eã\81\84ã\81¯ (ã\82³ã\82¢ã\83\80ã\83³ã\83\97å\87ºå\8a\9bã\81ªã\81\97ã\81®) ã\83\97ã\83ã\82»ã\82¹çµ\82äº\86ã\81§ã\81\82ã\81£ã\81\9fã\80\82 (ä»\96ã\81® UNIX
+システムにも \fBSIGXCPU\fP と \fBSIGXFSZ\fP のデフォルトの動作がコアダンプなしのプロセス終了のものがある。) Linux 2.4
では、POSIX.1\-2001 での要求仕様に準拠して、 これらのシグナルで、プロセスを終了させ、コアダンプを出力する ようになっている。
次にその他の各種シグナルを示す。
\fBSIGIO\fP は (POSIX.1\-2001 に規定されていないが) いくつかの他の UNIX システムでは デフォルト動作は無視である。
.\" parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
-\fBSIGUNUSED\fP が定義されている場合には、ほとんどのアーキテクチャで \fBSIGSYS\fP の同義語となっている。
+\fBSIGUNUSED\fP ã\81\8cå®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81ã\81»ã\81¨ã\82\93ã\81©ã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ \fBSIGSYS\fP ã\81®å\90\8c義èª\9eã\81¨ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\80\82
.SS リアルタイムシグナル
Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 POSIX.1b のリアルタイム拡張で定義されて
いるものであり、現在では POSIX.1\-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マクロ \fBSIGRTMIN\fP と
リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグナルの場合、そのシグナルがブロックされている間に
同じシグナルの複数のインスタンスが配送されても、 1 つだけがキューに入れられる。
.IP 2. 4
-シグナルが \fBsigqueue\fP(3) を用いて送信された場合、 付属データ (整数かポインタ) をシグナルと共に送信できる。 受信側プロセスが
-\fBsigaction\fP(2) に \fBSA_SIGINFO\fP フラグを指定してシグナルハンドラを設定した場合、 このデータは
-\fIsiginfo_t\fP 構造体の \fIsi_value\fP フィールド経由でハンドラの第 2 引き数として渡され、 利用することができる。
-さらに、この構造体の \fIsi_pid\fP と \fIsi_uid\fP フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を
+シグナルが \fBsigqueue\fP(3) を用いて送信された場合、 付属データ (整数かポインター) をシグナルと共に送信できる。 受信側プロセスが
+\fBsigaction\fP(2) ã\81« \fBSA_SIGINFO\fP ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92è¨å®\9aã\81\97ã\81\9få ´å\90\88ã\80\81 ã\81\93ã\81®ã\83\87ã\83¼ã\82¿ã\81¯
+\fIsiginfo_t\fP æ§\8bé\80 ä½\93ã\81® \fIsi_value\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89çµ\8cç\94±ã\81§ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81®ç¬¬ 2 å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦æ¸¡ã\81\95ã\82\8cã\80\81 å\88©ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
+さらに、この構造体の \fIsi_pid\fP と \fIsi_uid\fP フィールドでシグナルを送信したプロセスの PID と実ユーザー ID を
得ることができる。
.IP 3. 4
リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイムシグナルは送信された順番に到着する。
\fI/proc/sys/kernel/rtsig\-max\fP ファイルで見ることができ、 (権限があれば) 変更もできる。 関係するファイルとして、
\fI/proc/sys/kernel/rtsig\-nr\fP を見ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることができる。
Linux 2.6.8 で、これらの \fI/proc\fP 経由のインターフェースは、 \fBRLIMIT_SIGPENDING\fP
-リソース制限に置き換えられた。 これは、キューに入るシグナル数に関してユーザ単位に 上限を指定するものである。 詳しくは \fBsetrlimit\fP(2)
-を参照。
+リソース制限に置き換えられた。 これは、キューに入るシグナル数に関してユーザー単位に 上限を指定するものである。 詳しくは
+\fBsetrlimit\fP(2) を参照。
.SS "非同期シグナルで安全な関数 (async\-signal\-safe functions)"
.PP
-シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログラム実行の任意の箇所で中断される可能性があるためである。 POSIX
+シグナルハンドラー関数には非常に注意しなければならない。 他の場所の処理はプログラム実行の任意の箇所で中断される可能性があるためである。 POSIX
には「安全な関数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断し、かつ \fIhandler\fP
が安全でない関数を呼び出した場合、プログラムの挙動は未定義である。
POSIX.1\-2004 (POSIX.1\-2001 Technical Corrigendum (正誤表) 2 とも言う) では、
-シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規定されている。
+シグナルハンドラー内での安全な呼び出しを保証することが必須の関数として 以下が規定されている。
.in +4
.nf
utimes()
.fi
.in
-.SS シグナルハンドラによるシステムコールやライブラリ関数への割り込み
-システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動されると、以下のどちらかとなる。
+.SS ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8bã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\84ã\83©ã\82¤ã\83\96ã\83©ã\83ªé\96¢æ\95°ã\81¸ã\81®å\89²ã\82\8aè¾¼ã\81¿
+ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\84ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81\8cå\81\9cæ¢ (block) ã\81\97ã\81¦ã\81\84ã\82\8bé\96\93ã\81«ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8c èµ·å\8b\95ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81以ä¸\8bã\81®ã\81©ã\81¡ã\82\89ã\81\8bã\81¨ã\81ªã\82\8bã\80\82
.IP * 2
シグナルが返った後、呼び出しは自動的に再スタートされる。
.IP *
呼び出しはエラー \fBEINTR\fP で失敗する。
.PP
-これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シグナルハンドラが \fBSA_RESTART\fP フラグ
+ã\81\93ã\82\8cã\82\89ã\81®äº\8cã\81¤ã\81®æ\8c\99å\8b\95ã\81®ã\81\86ã\81¡ã\81©ã\81¡ã\82\89ã\81\8cèµ·ã\81\93ã\82\8bã\81\8bã\81¯ã\80\81ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\82¤ã\82¹ã\81«ã\82\88ã\82\8aä¾\9då\98ã\81\97ã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8c \fBSA_RESTART\fP ã\83\95ã\83©ã\82°
(\fBsigaction\fP(2) 参照) を使って設定されていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux
における詳細を以下で説明する。
.\" The following system calls use ERESTARTSYS,
.\" so that they are restartable
-以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラにより割り込まれた場合、 \fBSA_RESTART\fP
-フラグが使用されていれば、シグナルハンドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外の場合は、その呼び出しはエラー
+以ä¸\8bã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\82¤ã\82¹ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\81®å\91¼ã\81³å\87ºã\81\97ã\81\8cå\81\9cæ¢ã\81\97ã\81¦ã\81\84ã\82\8bé\96\93ã\81« ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9få ´å\90\88ã\80\81 \fBSA_RESTART\fP
+ã\83\95ã\83©ã\82°ã\81\8c使ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8cã\81°ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cè¿\94ã\81£ã\81\9få¾\8cã\81« ã\81\9dã\81®å\91¼ã\81³å\87ºã\81\97ã\81¯è\87ªå\8b\95ç\9a\84ã\81«å\86\8dã\82¹ã\82¿ã\83¼ã\83\88ã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\81«ã\81ªã\82\8bã\80\82 ã\81\9dã\82\8c以å¤\96ã\81®å ´å\90\88ã\81¯ã\80\81ã\81\9dã\81®å\91¼ã\81³å\87ºã\81\97ã\81¯ã\82¨ã\83©ã\83¼
\fBEINTR\fP で失敗することになる。
.RS 4
.IP * 2
(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出しが無期限に停止 (block) する
可能性のあるデバイスのことで、例としては端末、パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 \fBeventfd\fP(2),
\fBsignalfd\fP(2), \fBtimerfd\fP(2), \fBfanotify\fP(7), \fBinotify\fP(7)
-のファイルディスクリプタに対する \fBread\fP(2) も「遅い」操作と考えられる。 (Linux 3.8 より前であh, \fBinotify\fP(7)
-ファイルディスクリプタからの読み出しは再開できなかった。シグナルハンドラーによって割り込まれた場合、 \fBread\fP(2) は常にエラー
-\fBEINTR\fP で失敗していた。) 遅いデバイスに対する I/O 呼び出しが、 シグナルハンドラにより割り込まれた時点までに何らかのデータを
+ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾ã\81\99ã\82\8b \fBread\fP(2) ã\82\82ã\80\8cé\81\85ã\81\84ã\80\8dæ\93\8dä½\9cã\81¨è\80\83ã\81\88ã\82\89ã\82\8cã\82\8bã\80\82 (Linux 3.8 ã\82\88ã\82\8aå\89\8dã\81§ã\81\82ï½\88ï¼\8c \fBinotify\fP(7)
+ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8bã\82\89ã\81®èªã\81¿å\87ºã\81\97ã\81¯å\86\8dé\96\8bã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9fã\80\82ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\81£ã\81¦å\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9få ´å\90\88ã\80\81 \fBread\fP(2) ã\81¯å¸¸ã\81«ã\82¨ã\83©ã\83¼
+\fBEINTR\fP ã\81§å¤±æ\95\97ã\81\97ã\81¦ã\81\84ã\81\9fã\80\82) é\81\85ã\81\84ã\83\87ã\83\90ã\82¤ã\82¹ã\81«å¯¾ã\81\99ã\82\8b I/O å\91¼ã\81³å\87ºã\81\97ã\81\8cã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9fæ\99\82ç\82¹ã\81¾ã\81§ã\81«ä½\95ã\82\89ã\81\8bã\81®ã\83\87ã\83¼ã\82¿ã\82\92
すでに転送していれば、呼び出しは成功ステータス (通常は、転送されたバイト数) を返すことだろう。
.IP *
停止 (block) する可能性のある \fBopen\fP(2) (例えば、FIFO のオープン時; \fBfifo\fP(7) 参照)。
.PP
.\" These are the system calls that give EINTR or ERESTARTNOHAND
.\" on interruption by a signal handler.
-以下のインターフェイスは、 \fBSA_RESTART\fP を使っているどうかに関わらず、シグナルハンドラにより割り込まれた後、
-再スタートすることは決してない。 これらは、シグナルハンドラにより割り込まれると、常にエラー \fBEINTR\fP で失敗する。
+以ä¸\8bã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\82¤ã\82¹ã\81¯ã\80\81 \fBSA_RESTART\fP ã\82\92使ã\81£ã\81¦ã\81\84ã\82\8bã\81©ã\81\86ã\81\8bã\81«é\96¢ã\82\8fã\82\89ã\81\9aã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9få¾\8cã\80\81
+å\86\8dã\82¹ã\82¿ã\83¼ã\83\88ã\81\99ã\82\8bã\81\93ã\81¨ã\81¯æ±ºã\81\97ã\81¦ã\81ªã\81\84ã\80\82 ã\81\93ã\82\8cã\82\89ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\82\8bã\81¨ã\80\81常ã\81«ã\82¨ã\83©ã\83¼ \fBEINTR\fP ã\81§å¤±æ\95\97ã\81\99ã\82\8bã\80\82
.RS 4
.IP * 2
\fBsetsockopt\fP(2) を使ってタイムアウト (\fBSO_RCVTIMEO\fP) が設定されている「入力」ソケットインターフェース:
シグナル待ちに使われるインターフェイス: \fBpause\fP(2), \fBsigsuspend\fP(2), \fBsigtimedwait\fP(2),
\fBsigwaitinfo\fP(2).
.IP *
-ファイルディスクリプタ多重インターフェイス: \fBepoll_wait\fP(2), \fBepoll_pwait\fP(2), \fBpoll\fP(2),
+ファイルディスクリプター多重インターフェイス: \fBepoll_wait\fP(2), \fBepoll_pwait\fP(2), \fBpoll\fP(2),
\fBppoll\fP(2), \fBselect\fP(2), \fBpselect\fP(2).
.IP *
.\" On some other systems, SA_RESTART does restart these system calls
\fBio_getevents\fP(2).
.RE
.PP
-\fBsleep\fP(3) 関数も、ハンドラにより割り込まれた場合、決して再スタートされることはない。 しかし、成功となり、残っている停止時間を返す。
+\fBsleep\fP(3) é\96¢æ\95°ã\82\82ã\80\81ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81«ã\82\88ã\82\8aå\89²ã\82\8aè¾¼ã\81¾ã\82\8cã\81\9få ´å\90\88ã\80\81決ã\81\97ã\81¦å\86\8dã\82¹ã\82¿ã\83¼ã\83\88ã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\81¯ã\81ªã\81\84ã\80\82 ã\81\97ã\81\8bã\81\97ã\80\81æ\88\90å\8a\9fã\81¨ã\81ªã\82\8aã\80\81æ®\8bã\81£ã\81¦ã\81\84ã\82\8bå\81\9cæ¢æ\99\82é\96\93ã\82\92è¿\94ã\81\99ã\80\82
.SS 一時停止シグナルによるシステムコールやライブラリ関数への割り込み
-Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキング型のインターフェイスは、 プロセスが一時停止 (stop)
+Linux ã\81§ã\81¯ã\80\81ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\81§ã\82\82ã\80\81 ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\83\96ã\83ã\83\83ã\82ã\83³ã\82°å\9e\8bã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\82¤ã\82¹ã\81¯ã\80\81 ã\83\97ã\83ã\82»ã\82¹ã\81\8cä¸\80æ\99\82å\81\9cæ¢ (stop)
シグナルの一つにより停止され、 \fBSIGCONT\fP により再開された後に、エラー \fBEINTR\fP で失敗する可能性がある。 この挙動は
POSIX.1 で認められておらず、他のシステムでは起こらない。
\fBsigtimedwait\fP(2), \fBsigwaitinfo\fP(2).
.IP *
.\" commit 1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06
-Linux 3.7 以前: \fBinotify\fP(7) ファイルディスクリプタからの \fBread\fP(2).
+Linux 3.7 以å\89\8d: \fBinotify\fP(7) ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8bã\82\89ã\81® \fBread\fP(2).
.IP *
Linux 2.6.21 以前: \fBfutex\fP(2) \fBFUTEX_WAIT\fP, \fBsem_timedwait\fP(3),
\fBsem_wait\fP(3).
\fIsockfd\fP\fB = socket(int \fP\fIsocket_family\fP\fB, int \fP\fIsocket_type\fP\fB, int
\fP\fIprotocol\fP\fB);\fP
.SH 説明
-このマニュアルページは Linux ネットワークのソケット層に対する ユーザインターフェースを記述するものである。 BSD
-互換ソケットは、ユーザプロセスとカーネル内部の ネットワークプロトコルスタック群との間に、 統一的なインターフェースを提供するものである。
+ã\81\93ã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81¯ Linux ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\81®ã\82½ã\82±ã\83\83ã\83\88層ã\81«å¯¾ã\81\99ã\82\8b ã\83¦ã\83¼ã\82¶ã\83¼ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92è¨\98è¿°ã\81\99ã\82\8bã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82 BSD
+äº\92æ\8f\9bã\82½ã\82±ã\83\83ã\83\88ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\83\97ã\83ã\82»ã\82¹ã\81¨ã\82«ã\83¼ã\83\8dã\83«å\86\85é\83¨ã\81® ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\83\97ã\83ã\83\88ã\82³ã\83«ã\82¹ã\82¿ã\83\83ã\82¯ç¾¤ã\81¨ã\81®é\96\93ã\81«ã\80\81 çµ±ä¸\80ç\9a\84ã\81ªã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\82\92æ\8f\90ä¾\9bã\81\99ã\82\8bã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82
プロトコルモジュールは \fIプロトコルファミリー (protocol familiy)\fP (例: \fBAF_INET\fP, \fBAF_IPX\fP,
\fBAF_PACKET\fP) と \fIソケットタイプ (socket types)\fP (例: \fBSOCK_STREAM\fP,
\fBSOCK_DGRAM\fP) に分類できる。 これらに関するより詳しい情報は \fBsocket\fP(2) を参照のこと。
.SS ソケット層の関数群
-これらの関数はユーザプロセスがパケットを送受信したり、その他のソケット操作を 行ったりするために用いられる。詳細はそれぞれのマニュアルページを
+ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ã\83¦ã\83¼ã\82¶ã\83¼ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\83\91ã\82±ã\83\83ã\83\88ã\82\92é\80\81å\8f\97ä¿¡ã\81\97ã\81\9fã\82\8aã\80\81ã\81\9dã\81®ä»\96ã\81®ã\82½ã\82±ã\83\83ã\83\88æ\93\8dä½\9cã\82\92 è¡\8cã\81£ã\81\9fã\82\8aã\81\99ã\82\8bã\81\9fã\82\81ã\81«ç\94¨ã\81\84ã\82\89ã\82\8cã\82\8bã\80\82詳細ã\81¯ã\81\9dã\82\8cã\81\9eã\82\8cã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\82\92
見てほしい。
\fBsocket\fP(2) はソケットを生成する。 \fBconnect\fP(2) はソケットをリモートのソケットアドレスに接続する。
.PP
シーク動作や、 0 以外の位置に対する \fBpread\fP(2) や \fBpwrite\fP(2) はソケットではサポートされていない。
.PP
-非ブロッキングな I/O をソケットで行うことは可能で、 \fBfcntl\fP(2) を使ってソケットのファイルディスクリプタに
+é\9d\9eã\83\96ã\83ã\83\83ã\82ã\83³ã\82°ã\81ª I/O ã\82\92ã\82½ã\82±ã\83\83ã\83\88ã\81§è¡\8cã\81\86ã\81\93ã\81¨ã\81¯å\8f¯è\83½ã\81§ã\80\81 \fBfcntl\fP(2) ã\82\92使ã\81£ã\81¦ã\82½ã\82±ã\83\83ã\83\88ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«
\fBO_NONBLOCK\fP フラグをセットすれば良い。 こうするとブロックされる操作は、 (通常) \fBEAGAIN\fP エラーで戻ることになる
(後で処理が再試行されることが期待されている)。 \fBconnect\fP(2) では \fBEINPROGRESS\fP エラーが返される。
-この場合、ユーザはさまざまなイベントを \fBpoll\fP(2) や \fBselect\fP(2) を使って待つことができる。
+ã\81\93ã\81®å ´å\90\88ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ã\81\95ã\81¾ã\81\96ã\81¾ã\81ªã\82¤ã\83\99ã\83³ã\83\88ã\82\92 \fBpoll\fP(2) ã\82\84 \fBselect\fP(2) ã\82\92使ã\81£ã\81¦å¾\85ã\81¤ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
.TS
tab(:) allbox;
c s s
も送信される。
T}
Write:POLLOUT:T{
-ソケットには新しいデータを書き込むのに十分なバッファがある。
+ã\82½ã\82±ã\83\83ã\83\88ã\81«ã\81¯æ\96°ã\81\97ã\81\84ã\83\87ã\83¼ã\82¿ã\82\92æ\9b¸ã\81\8dè¾¼ã\82\80ã\81®ã\81«å\8d\81å\88\86ã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cã\81\82ã\82\8bã\80\82
T}
Read/Write:T{
POLLIN|
.TE
.PP
\fBpoll\fP(2) や \fBselect\fP(2) を使う代わりに、カーネルからアプリケーションに イベントを通知させるのに \fBSIGIO\fP
-シグナルを使う方法もある。 この方法を使うには、 \fBfcntl\fP(2) を用いてソケットのファイルディスクリプタに \fBO_ASYNC\fP
-フラグをセットし、 \fBSIGIO\fP に対する有効なシグナルハンドラを \fBsigaction\fP(2) によって設定しておく必要がある。 後述の
+ã\82·ã\82°ã\83\8aã\83«ã\82\92使ã\81\86æ\96¹æ³\95ã\82\82ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®æ\96¹æ³\95ã\82\92使ã\81\86ã\81«ã\81¯ã\80\81 \fBfcntl\fP(2) ã\82\92ç\94¨ã\81\84ã\81¦ã\82½ã\82±ã\83\83ã\83\88ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81« \fBO_ASYNC\fP
+ã\83\95ã\83©ã\82°ã\82\92ã\82»ã\83\83ã\83\88ã\81\97ã\80\81 \fBSIGIO\fP ã\81«å¯¾ã\81\99ã\82\8bæ\9c\89å\8a¹ã\81ªã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92 \fBsigaction\fP(2) ã\81«ã\82\88ã\81£ã\81¦è¨å®\9aã\81\97ã\81¦ã\81\8aã\81\8få¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82 å¾\8cè¿°ã\81®
\fIシグナル\fP に関する議論も参考にすること。
.SS ソケットアドレス構造体
各ソケットドメインにはそれぞれ独自のソケットアドレス形式があり、ドメイン固有のアドレス構造体を持っている。
呼び出しにおいて、 コンパイラが型の不一致の警告を出すのを避けることができる。
これに加えて、ソケット API ではデータ型 \fIstruct sockaddr_storage\fP が提供されている。
-サポートしているすべてのドメイン固有のソケットアドレス構造体を収容するのに、この型を使うことができる。 この型は十分な大きさがあり、(メモリ境界への)
+サポートしているすべてのドメイン固有のソケットアドレス構造体を収容するのに、この型を使うことができる。 この型は十分な大きさがあり、(メモリー境界への)
アラインも適切に行われている (特に、 IPv6 ソケットアドレスを収容するのにも十分な大きさである)。 この構造体には次のフィールドがあり、
このフィールドを使って、 この構造体に実際に格納されているソケットアドレスの型を特定することができる。
.\" W R Stevens, UNPv1
これらのソケットオプションは、 \fBsetsockopt\fP(2) を用いれば設定でき、 \fBgetsockopt\fP(2) を用いれば取得できる。
但し、どのソケットの場合も ソケットレベルには \fBSOL_SOCKET\fP を指定すること。 注釈がない限り、 \fIoptval\fP は \fIint\fP
-へのポインタである。
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBSO_ACCEPTCONN\fP
このソケットが \fBlisten\fP(2) によって接続待ち受け状態に設定されているかどうかを示す値を返す。 値 0 は listen
Linux 3.8 より前のバージョンでは、このソケットオプションは \fBgetsockname\fP(2)
で設定することはできたが、取得することができなかった。 Linux 3.8 以降では、読み出すことができる。 \fIoptlen\fP 引き数には、
-デバイス名を格納するのに十分なバッファサイズを渡すべきであり、 \fBIFNAMSIZ\fP バイトにすることを推奨する。 実際のデバイス名の長さは
+ã\83\87ã\83\90ã\82¤ã\82¹å\90\8dã\82\92æ ¼ç´\8dã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\82\92渡ã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8aã\80\81 \fBIFNAMSIZ\fP ã\83\90ã\82¤ã\83\88ã\81«ã\81\99ã\82\8bã\81\93ã\81¨ã\82\92æ\8e¨å¥¨ã\81\99ã\82\8bã\80\82 å®\9fé\9a\9bã\81®ã\83\87ã\83\90ã\82¤ã\82¹å\90\8dã\81®é\95·ã\81\95ã\81¯
\fIoptlen\fP 引き数に格納されて返される。
.TP
\fBSO_BROADCAST\fP
.TP
\fBSO_BSDCOMPAT\fP
BSD のバグに対して互換性を取るための機能を有効にする。 この機能は Linux 2.0 と 2.2 の UDP
-プロトコルモジュールで使用されている。 有効になっていると、 UDP ソケットで受信された ICMP エラーは ユーザプログラムに渡されない。
+ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\81§ä½¿ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 æ\9c\89å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\81¨ã\80\81 UDP ã\82½ã\82±ã\83\83ã\83\88ã\81§å\8f\97ä¿¡ã\81\95ã\82\8cã\81\9f ICMP ã\82¨ã\83©ã\83¼ã\81¯ ã\83¦ã\83¼ã\82¶ã\83¼ã\83\97ã\83ã\82°ã\83©ã\83 ã\81«æ¸¡ã\81\95ã\82\8cã\81ªã\81\84ã\80\82
これ以降のバージョンのカーネルでは、このオプションのサポートは 段階的に廃止されてきた。 Linux 2.4 ではこのオプションは黙って無視され、
Linux 2.6 ではプログラムがこのオプションを使用すると (printk() を使って) カーネルの警告メッセージが出力される。 Linux
-2.0 では、このオプションを指定すると、 raw ソケットにおいても BSD のバグ (ランダムヘッダ変更、 ブロードキャストフラグのスキップ)
+2.0 では、このオプションを指定すると、 raw ソケットにおいても BSD のバグ (ランダムヘッダー変更、 ブロードキャストフラグのスキップ)
に対する互換機能が有効になっていた。 しかし、こちらは Linux 2.2 で削除された。
.TP
\fBSO_DEBUG\fP
-ソケットのデバッグ機能を有効にする。 \fBCAP_NET_ADMIN\fP 権限を持つプロセスか、実効ユーザ ID が 0 のプロセスでしか 利用できない。
+ソケットのデバッグ機能を有効にする。 \fBCAP_NET_ADMIN\fP 権限を持つプロセスか、実効ユーザー ID が 0 のプロセスでしか
+利用できない。
.TP
\fBSO_DOMAIN\fP (Linux 2.6.32 以降)
ソケットドメインを整数で取得する。 \fBAF_INET6\fP のような値が返される。
.\" getsockopt/setsockopt with SO_RCVBUF and SO_SNDBUF "non-standard" behavior
.\" 17 July 2012
.\" http://thread.gmane.org/gmane.linux.kernel/1328935
-ソケットの受信バッファの最大サイズを設定・取得する (バイト単位)。 \fBsetsockopt\fP(2) を使って値が設定されたときに
+ã\82½ã\82±ã\83\83ã\83\88ã\81®å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\9c\80大ã\82µã\82¤ã\82ºã\82\92è¨å®\9aã\83»å\8f\96å¾\97ã\81\99ã\82\8b (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d)ã\80\82 \fBsetsockopt\fP(2) ã\82\92使ã\81£ã\81¦å\80¤ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81\9fã\81¨ã\81\8dã\81«
(管理オーバヘッド用の領域を確保するために) カーネルはこの値を 2倍し、 \fBgetsockopt\fP(2) はこの 2倍された値を返す。
デフォルトの値は \fI/proc/sys/net/core/rmem_default\fP ファイルで設定され、許容される最大の値は
\fI/proc/sys/net/core/rmem_max\fP ファイルで設定される。 このオプションの最小値は (2倍した値で) 256 である。
\fBSO_RCVLOWAT\fP と \fBSO_SNDLOWAT\fP
.\" See http://marc.theaimsgroup.com/?l=linux-kernel&m=111049368106984&w=2
.\" Tested on kernel 2.6.14 -- mtk, 30 Nov 05
-バッファ中に溜めることのできるデータの最小値を指定する。 このサイズを越えると、ソケット層はそのデータをプロトコルに渡し
-(\fBSO_SNDLOWAT\fP)、 受信時にはユーザに渡す (\fBSO_RCVLOWAT\fP)。 これら二つの値は 1 に初期化される。
+バッファー中に溜めることのできるデータの最小値を指定する。 このサイズを越えると、ソケット層はそのデータをプロトコルに渡し
+(\fBSO_SNDLOWAT\fP)ã\80\81 å\8f\97ä¿¡æ\99\82ã\81«ã\81¯ã\83¦ã\83¼ã\82¶ã\83¼ã\81«æ¸¡ã\81\99 (\fBSO_RCVLOWAT\fP)ã\80\82 ã\81\93ã\82\8cã\82\89äº\8cã\81¤ã\81®å\80¤ã\81¯ 1 ã\81«å\88\9dæ\9c\9få\8c\96ã\81\95ã\82\8cã\82\8bã\80\82
\fBSO_SNDLOWAT\fP は Linux では変更できない (\fBsetsockopt\fP(2) は \fBENOPROTOOPT\fP
エラーで失敗する)。 \fBSO_RCVLOWAT\fP は Linux 2.4 以降でのみ変更可能である。 現状、Linux ではシステムコール
\fBselect\fP(2) と \fBpoll\fP(2) は \fBSO_RCVLOWAT\fP の設定を考慮に入れずに動作し、
\fBSO_SNDBUF\fP
.\" Most (all?) other implementations do not do this -- MTK, Dec 05
.\" See also the comment to SO_RCVBUF (17 Jul 2012 LKML mail)
-ソケットの送信バッファの最大サイズを設定・取得する (バイト単位)。 \fBsetsockopt\fP(2) を使って値が設定されたときに
+ã\82½ã\82±ã\83\83ã\83\88ã\81®é\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\9c\80大ã\82µã\82¤ã\82ºã\82\92è¨å®\9aã\83»å\8f\96å¾\97ã\81\99ã\82\8b (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d)ã\80\82 \fBsetsockopt\fP(2) ã\82\92使ã\81£ã\81¦å\80¤ã\81\8cè¨å®\9aã\81\95ã\82\8cã\81\9fã\81¨ã\81\8dã\81«
(管理オーバヘッド用の領域を確保するために) カーネルはこの値を 2倍し、 \fBgetsockopt\fP(2) はこの 2倍された値を返す。
デフォルトの値は \fI/proc/sys/net/core/wmem_default\fP ファイルで設定され、許容される最大の値は
\fI/proc/sys/net/core/wmem_max\fP ファイルで設定される。 このオプションの最小値は (2倍した値で) 2048 である。
.TP
\fBSO_TIMESTAMP\fP
\fBSO_TIMESTAMP\fP 制御メッセージの受信を有効/無効にする。 タイムスタンプ制御メッセージはレベル \fBSOL_SOCKET\fP で送信され、
-\fIcmsg_data\fP フィールドはこのシステムコールでユーザに渡した 最後のパケットの受信時刻を示す \fIstruct timeval\fP である。
+\fIcmsg_data\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\81\93ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81§ã\83¦ã\83¼ã\82¶ã\83¼ã\81«æ¸¡ã\81\97ã\81\9f æ\9c\80å¾\8cã\81®ã\83\91ã\82±ã\83\83ã\83\88ã\81®å\8f\97ä¿¡æ\99\82å\88»ã\82\92示ã\81\99 \fIstruct timeval\fP ã\81§ã\81\82ã\82\8bã\80\82
制御メッセージの詳細については \fBcmsg\fP(3) を参照。
.TP
\fBSO_TYPE\fP
.PP
\fBFIOSETOWN\fP \fBfcntl\fP(2) や \fBSIOCSPGRP\fP \fBioctl\fP(2)
をプロセスまたはプロセスグループに指定しておくと、 I/O イベントが起きたときに \fBSIGIO\fP が送られる。 \fBpoll\fP(2) や
-\fBselect\fP(2) をシグナルハンドラ内で用いれば、どのソケットでイベントが起こったかを 知ることができる。 (Linux 2.2 における)
+\fBselect\fP(2) をシグナルハンドラー内で用いれば、どのソケットでイベントが起こったかを 知ることができる。 (Linux 2.2 における)
別の方法としては、 \fBF_SETSIG\fP \fBfcntl\fP(2) を用いてリアルタイムシグナルを設定するやり方もある。
-ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\82·ã\82°ã\83\8aã\83«ã\81®ã\83\8fã\83³ã\83\89ã\83©ã\81¯ã\80\81 \fIsiginfo_t\fP ã\81® \fIsi_fd\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿が入った状態で呼び出される。
+ã\83ªã\82¢ã\83«ã\82¿ã\82¤ã\83 ã\82·ã\82°ã\83\8aã\83«ã\81®ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\81¯ã\80\81 \fIsiginfo_t\fP ã\81® \fIsi_fd\fP ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼が入った状態で呼び出される。
詳細は \fBfcntl\fP(2) を参照のこと。
.PP
.\" .SS Ancillary messages
状況によっては (例えば複数のプロセスが一つのソケットにアクセスしているなど)、 \fBSIGIO\fP
の原因となった状態は、プロセスがそのシグナルへの対応を行ったときには 消えてしまっているかもしれない。
この場合は、プロセスは再び待つようにすべきである。 Linux は同じシグナルを後で再送するからである。
-.SS "/proc インタフェース"
-core のソケットのネットワーキングパラメータには、 \fI/proc/sys/net/core/\fP ディレクトリ内のファイルを通してアクセスできる。
+.SS "/proc ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹"
+core ã\81®ã\82½ã\82±ã\83\83ã\83\88ã\81®ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82ã\83³ã\82°ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81«ã\81¯ã\80\81 \fI/proc/sys/net/core/\fP ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªå\86\85ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92é\80\9aã\81\97ã\81¦ã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8dã\82\8bã\80\82
.TP
\fIrmem_default\fP
-ソケットの受信バッファサイズのデフォルト値 (バイト単位)。
+ã\82½ã\82±ã\83\83ã\83\88ã\81®å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\81®ã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d)ã\80\82
.TP
\fIrmem_max\fP
-\fBSO_RCVBUF\fP ã\82½ã\82±ã\83\83ã\83\88ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92ç\94¨ã\81\84ã\81¦ã\83¦ã\83¼ã\82¶ã\81\8cè¨å®\9aã\81§ã\81\8dã\82\8b ã\82½ã\82±ã\83\83ã\83\88ã\81®å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡サイズの最大値 (バイト単位)。
+\fBSO_RCVBUF\fP ã\82½ã\82±ã\83\83ã\83\88ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92ç\94¨ã\81\84ã\81¦ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cè¨å®\9aã\81§ã\81\8dã\82\8b ã\82½ã\82±ã\83\83ã\83\88ã\81®å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼サイズの最大値 (バイト単位)。
.TP
\fIwmem_default\fP
-ソケットの送信バッファサイズのデフォルト値 (バイト単位)。
+ã\82½ã\82±ã\83\83ã\83\88ã\81®é\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\81®ã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ (ã\83\90ã\82¤ã\83\88å\8d\98ä½\8d)ã\80\82
.TP
\fIwmem_max\fP
-\fBSO_SNDBUF\fP ã\82½ã\82±ã\83\83ã\83\88ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92ç\94¨ã\81\84ã\81¦ã\83¦ã\83¼ã\82¶ã\81\8cè¨å®\9aã\81§ã\81\8dã\82\8b ã\82½ã\82±ã\83\83ã\83\88ã\81®é\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡サイズの最大値 (バイト単位)。
+\fBSO_SNDBUF\fP ã\82½ã\82±ã\83\83ã\83\88ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92ç\94¨ã\81\84ã\81¦ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cè¨å®\9aã\81§ã\81\8dã\82\8b ã\82½ã\82±ã\83\83ã\83\88ã\81®é\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼サイズの最大値 (バイト単位)。
.TP
\fImessage_cost\fP と \fImessage_burst\fP
-ã\83\88ã\83¼ã\82¯ã\83³ã\83»ã\83\90ã\82±ã\83\83ã\83\88ã\83»フィルターを設定する。 これは外部のネットワークイベントによって引き起こされた 負荷限界の警告メッセージに用いられる。
+ã\83\88ã\83¼ã\82¯ã\83³ã\83\90ã\82±ã\83\83ã\83\88フィルターを設定する。 これは外部のネットワークイベントによって引き起こされた 負荷限界の警告メッセージに用いられる。
.TP
\fInetdev_max_backlog\fP
グローバルな入力キューにおける最大のパケット数。
.TP
\fIoptmem_max\fP
.\" netdev_fastroute is not documented because it is experimental
-ソケットあたりの、補助データ (ancillary data) とユーザ制御データ (iovecs のようなもの) との和の最大長。
+ソケットあたりの、補助データ (ancillary data) とユーザー制御データ (iovecs のようなもの) との和の最大長。
.SS ioctl
以下に示す操作には \fBioctl\fP(2) を用いてアクセスできる。
.TP
\fBSIOCGSTAMP\fP
.\"
-最後にユーザに渡されたパケットの受信タイムスタンプを \fIstruct timeval\fP に入れて返す。 これは round trip
+æ\9c\80å¾\8cã\81«ã\83¦ã\83¼ã\82¶ã\83¼ã\81«æ¸¡ã\81\95ã\82\8cã\81\9fã\83\91ã\82±ã\83\83ã\83\88ã\81®å\8f\97ä¿¡ã\82¿ã\82¤ã\83 ã\82¹ã\82¿ã\83³ã\83\97ã\82\92 \fIstruct timeval\fP ã\81«å\85¥ã\82\8cã\81¦è¿\94ã\81\99ã\80\82 ã\81\93ã\82\8cã\81¯ round trip
時間を正確に測りたいときに便利である。 \fIstruct timeval\fP の説明は \fBsetitimer\fP(2) を見てほしい。 この ioctl
は、ソケットオプション \fBSO_TIMESTAMP\fP がソケットにセットされていない場合にのみ使用すべきである。 さもなければ、この ioctl は
\fBSO_TIMESTAMP\fP がセットされていなかった間に受信した最後のパケットの時刻を返すか、 そのようなパケットを受信していない場合には失敗する
.TP
\fBSIOCSPGRP\fP
非同期 I/O 操作の終了時や緊急データの受信時に \fBSIGIO\fP や \fBSIGURG\fP シグナル群を送るプロセスやプロセスグループを設定する。
-引き数は \fIpid_t\fP へのポインタである。 引き数が正だと、そのプロセスにシグナルが送られる。負だと、 引き数の絶対値を ID
+å¼\95ã\81\8dæ\95°ã\81¯ \fIpid_t\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 å¼\95ã\81\8dæ\95°ã\81\8cæ£ã\81 ã\81¨ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81«ã\82·ã\82°ã\83\8aã\83«ã\81\8cé\80\81ã\82\89ã\82\8cã\82\8bã\80\82è² ã\81 ã\81¨ã\80\81 å¼\95ã\81\8dæ\95°ã\81®çµ¶å¯¾å\80¤ã\82\92 ID
に持つプロセスグループにシグナルが送られる。 シグナル受信先には、自分自身のプロセス / 自分の所属するプロセスグループ しか指定できない。但し、
-\fBCAP_KILL\fP ケーパビリティを持っている場合、及び実効ユーザ ID が 0 のプロセスの場合は この限りではない。
+\fBCAP_KILL\fP ケーパビリティを持っている場合、及び実効ユーザー ID が 0 のプロセスの場合は この限りではない。
.TP
\fBFIOASYNC\fP
\fBO_ASYNC\fP フラグを変更し、ソケットの非同期 (asynchronous) I/O モードを 有効/無効にする。非同期 I/O モードでは、
-æ\96°ã\81\97ã\81\84 I/O ã\82¤ã\83\99ã\83³ã\83\88ã\81\8cèµ·ã\81\8dã\81\9fã\81¨ã\81\8dã\81«ã\80\81 \fBSIGIO\fP ã\82·ã\82°ã\83\8aã\83«ã\82\84 \fBF_SETSIG\fP ã\81§è¨å®\9aã\81\95ã\82\8cã\81\9fã\82·ã\82°ã\83\8aã\83«ã\83»ã\82»ã\83\83ã\83\88ã\81\8cç\99ºè¡\8cã\81\95ã\82\8cã\82\8bã\80\82
+新しい I/O イベントが起きたときに、 \fBSIGIO\fP シグナルや \fBF_SETSIG\fP で設定されたシグナルセットが発行される。
.IP
.\"
引き数はブール整数のフラグである。 (この操作は \fBfcntl\fP(2) を使って \fBO_ASYNC\fP フラグをセットするのと同じ意味である。)
.TP
\fBSIOCGPGRP\fP
-\fBSIGIO\fP ã\82\84 \fBSIGURG\fP ã\82\92å\8f\97ä¿¡ã\81\97ã\81\9fã\82«ã\83¬ã\83³ã\83\88ã\83\97ã\83ã\82»ã\82¹ã\83»プロセスグループを取得する。 ない場合は 0 が返る。
+\fBSIGIO\fP ã\82\84 \fBSIGURG\fP ã\82\92å\8f\97ä¿¡ã\81\97ã\81\9fã\82«ã\83¬ã\83³ã\83\88ã\83\97ã\83ã\82»ã\82¹ã\81\8bプロセスグループを取得する。 ない場合は 0 が返る。
.PP
有効な \fBfcntl\fP(2) 操作:
.TP
\fBSIOCSPGRP\fP \fBioctl\fP(2) と同じ。
.SH バージョン
\fBSO_BINDTODEVICE\fP は Linux 2.0.30 で導入された。 \fBSO_PASSCRED\fP は Linux 2.2 で登場した。
-\fI/proc\fP インタフェースは Linux 2.2 で導入された。 \fBSO_RCVTIMEO\fP と \fBSO_SNDTIMEO\fP は Linux
+\fI/proc\fP ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ Linux 2.2 ã\81§å°\8eå\85¥ã\81\95ã\82\8cã\81\9fã\80\82 \fBSO_RCVTIMEO\fP ã\81¨ \fBSO_SNDTIMEO\fP ã\81¯ Linux
2.3.41 以降でサポートされている。 それ以前は、タイムアウトはプロトコル固有の固定の設定値で、 読み書きをすることはできなかった。
.SH 注意
-Linux は、送受信バッファの半分を内部のカーネル構造体で用いると仮定している。 したがって、対応する \fI/proc\fP
+Linux ã\81¯ã\80\81é\80\81å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å\8d\8aå\88\86ã\82\92å\86\85é\83¨ã\81®ã\82«ã\83¼ã\83\8dã\83«æ§\8bé\80 ä½\93ã\81§ç\94¨ã\81\84ã\82\8bã\81¨ä»®å®\9aã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ã\81\97ã\81\9fã\81\8cã\81£ã\81¦ã\80\81対å¿\9cã\81\99ã\82\8b \fI/proc\fP
ファイルはネットワーク回線上での大きさの 2 倍になる。
Linux では、 \fBSO_REUSEADDR\fP オプションでポートの再利用が許可されるのは、 そのポートに対して \fBbind\fP(2)
.SH 名前
standards \- C と UNIX の標準規格
.SH 説明
-多くのマニュアルページの「準拠 (CONFORMING TO)」の章は、 そのページに記載されたインタフェースが準拠する
+å¤\9aã\81\8fã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81®ã\80\8cæº\96æ\8b (CONFORMING TO)ã\80\8dã\81®ç« ã\81¯ã\80\81 ã\81\9dã\81®ã\83\9aã\83¼ã\82¸ã\81«è¨\98è¼\89ã\81\95ã\82\8cã\81\9fã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81\8cæº\96æ\8b ã\81\99ã\82\8b
各種の標準規格を示すものである。 以下にこれらの標準規格の簡単な説明を記す。
.TP
\fBV7\fP
ISO により承認された (\fIISO/IEC 9945\-1:1996\fP)。
.TP
\fBPOSIX.1c\fP
-IEEE Std 1003.1c\-1995. POSIX スレッドインタフェースについて記載している。
+IEEE Std 1003.1c\-1995. POSIX ã\82¹ã\83¬ã\83\83ã\83\89ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«ã\81¤ã\81\84ã\81¦è¨\98è¼\89ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.TP
\fBPOSIX.1d\fP
IEEE Std 1003.1c\-1999. 追加のリアルタイム拡張について記載している。
1992 年にリリースされた、X/Open Portability Guide (移植性に関する指針) の改訂版。
.TP
\fBXPG4v2\fP
-XPG4 の 1994年改訂版。 \fISpec 1170\fP とも呼ばれる。 1170 とはこの標準規格が定義しているインタフェースの数を表すものである。
+XPG4 の 1994年改訂版。 \fISpec 1170\fP とも呼ばれる。 1170
+とはこの標準規格が定義しているインターフェースの数を表すものである。
.TP
\fBSUS (SUSv1)\fP
Single UNIX Specification. この規格は、XPG4v2 やその他の X/Open による標準規格 (X/Open Curses
.UR http://www.unix\-systems.org\:/version3/
.UE
で入手できる。
-ã\81¾ã\81\9fã\80\81ã\81\93ã\81®è¦\8fæ ¼ã\81«æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ Linux ã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\83»パッケージの 1p, 3p セクションでも 参照できる
+ã\81¾ã\81\9fã\80\81ã\81\93ã\81®è¦\8fæ ¼ã\81«æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ Linux ã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸パッケージの 1p, 3p セクションでも 参照できる
(例えば、"man 3p open")。
この規格では、 \fIPOSIX Conformance (POSIX 準拠)\fP と \fIXSI Conformance (XSI 準拠)\fP
-ã\81®äº\8c段é\9a\8eã\81®é\81©å\90\88æ\80§ã\82\92å®\9a義ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 \fIPOSIX æº\96æ\8b \fP ã\81¯æº\96æ\8b ã\81\99ã\82\8bã\82·ã\82¹ã\83\86ã\83 ã\81«å¿\85è¦\81ã\81¨ã\81\95ã\82\8cã\82\8bã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81®å\9fºæ\9c¬ã\82»ã\83\83ã\83\88ã\81§ã\81\82ã\82\8aã\80\81 \fIXSI æº\96æ\8b )\fP ã\81§ã\81¯
-"XSI 拡張" という追加のインタフェース群が義務付けられている (POSIX 準拠では XSI 拡張の実装は任意 (optional)
+ã\81®äº\8c段é\9a\8eã\81®é\81©å\90\88æ\80§ã\82\92å®\9a義ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 \fIPOSIX æº\96æ\8b \fP ã\81¯æº\96æ\8b ã\81\99ã\82\8bã\82·ã\82¹ã\83\86ã\83 ã\81«å¿\85è¦\81ã\81¨ã\81\95ã\82\8cã\82\8bã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®å\9fºæ\9c¬ã\82»ã\83\83ã\83\88ã\81§ã\81\82ã\82\8aã\80\81 \fIXSI æº\96æ\8b )\fP
+では "XSI 拡張" という追加のインターフェース群が義務付けられている (POSIX 準拠では XSI 拡張の実装は任意 (optional)
となっている)。 XSI 準拠のシステムは \fIUNIX 03\fP を名乗ることができる (XSI 準拠の内容が \fISingle UNIX
Specification version 3\fP (\fISUSv3\fP) である)。
POSIX.1\-2001 文書は 4つの部分に分けることができる:
-\fBXBD\fP: 定義、用語と概念、ヘッダファイルの仕様。
+\fBXBD\fP: å®\9a義ã\80\81ç\94¨èª\9eã\81¨æ¦\82念ã\80\81ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81®ä»\95æ§\98ã\80\82
\fBXSH\fP: 関数の仕様 (関数とは、実際の実装でのシステムコールと ライブラリ関数のことである)。
_ | _
lI | l .
Suffix File type
- ,v RCS (ã\83ªã\83\93ã\82¸ã\83§ã\83³ã\83»ã\82³ã\83³ã\83\88ã\83ã\83¼ã\83«) ã\81®ã\81\9fã\82\81ã\81®ã\83\95ã\82¡ã\82¤ã\83«
- \- ã\83\90ã\83\83ã\82¯ã\82¢ã\83\83ã\83\97ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .C C++ ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89ã\80\81\fI.cc\fP ã\81¨ç\89価
+ ,v RCS (リビジョンコントロール) のためのファイル
+ \- バックアップファイル
+ .C C++ のソースコード、\fI.cc\fP と等価
.F \fBcpp\fP(1)命令をもったフォートランのソース
または freeze(1) で圧縮されたファイル
- .S \fBcpp\fP(1)å\91½ä»¤ã\82\92ã\82\82ã\81£ã\81\9fã\82¢ã\82»ã\83³ã\83\96ã\83©ã\83»ã\82½ã\83¼ã\82¹
+ .S \fBcpp\fP(1)命令をもったアセンブラソース
.Y yabba(1) で圧縮されたファイル
.Z \fBcompress\fP(1)で圧縮されたファイル
.[0\-9]+gf TeX の一般フォント
.[0\-9]+pk TeX の圧縮フォント
- .[1\-9] 対å¿\9cã\81\99ã\82\8bç« ã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83»ã\83\9aã\83¼ã\82¸
- .[1\-9][a\-z] ã\82µã\83\96ã\82»ã\82¯ã\82·ã\83§ã\83³ä»\98ã\81\8dã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83»ã\83\9aã\83¼ã\82¸
- .a ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\83»ã\82³ã\83¼ã\83\89ã\81®é\9d\99ç\9a\84ã\83©ã\82¤ã\83\96ã\83©ã\83ª
- .ad X ã\81®ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\83»ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\83»ファイル
+ .[1\-9] 対応する章のマニュアルページ
+ .[1\-9][a\-z] サブセクション付きマニュアルページ
+ .a オブジェクトコードの静的ライブラリ
+ .ad X ã\81®ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81®ã\83\87ã\83\95ã\82©ã\83«ã\83\88ファイル
.ada Ada のソース(本体か枝葉か組み合わせ)
.adb Ada のソース本体
.ads Ada のソース仕様
- .afm PostScript ã\81®ã\83\95ã\82©ã\83³ã\83\88ã\83»ã\83¡ã\83\88ã\83ªã\82¯ã\82¹
- .al Perl ã\81®ã\82ªã\83¼ã\83\88ã\83ã\83¼ã\83\89ã\83»ã\83\95ã\82¡ã\82¤ã\83«
+ .afm PostScript のフォントメトリクス
+ .al Perl のオートロードファイル
.am \fBautomake\fP(1) の入力ファイル
.arc \fBarc\fP(1)のアーカイブ
.arj \fBarj\fP(1)のアーカイブ
.asc PGP の ASCII 化されたデータ
.asm (GNU) アセンブラのソース
- .au ã\82ªã\83¼ã\83\87ã\82£ã\82ªã\83»ã\82µã\82¦ã\83³ã\83\89ã\83»ファイル
+ .au ã\82ªã\83¼ã\83\87ã\82£ã\82ªã\82µã\82¦ã\83³ã\83\89ファイル
.aux LaTeX の補助ファイル
.avi (Microsoft ビデオ) ムービー
.awk AWK 言語のプログラム
- .b LILO ã\81®ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83»イメージ
- .bak ã\83\90ã\83\83ã\82¯ã\82¢ã\83\83ã\83\97ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .bash \fBbash\fP(1) ã\82·ã\82§ã\83«ã\83»ã\82¹ã\82¯ã\83ªã\83\97ã\83\88
- .bb ã\83\99ã\83¼ã\82·ã\83\83ã\82¯ã\83»ã\83\96ã\83ã\83\83ã\82¯ã\83»リスト
+ .b LILO ã\81®ã\83\96ã\83¼ã\83\88ã\83ã\83¼ã\83\80ã\83¼イメージ
+ .bak バックアップファイル
+ .bash \fBbash\fP(1) シェルスクリプト
+ .bb ã\83\99ã\83¼ã\82·ã\83\83ã\82¯ã\83\96ã\83ã\83\83ã\82¯リスト
(gcc \-ftest\-coverage が生成する)
- .bbg ã\83\99ã\83¼ã\82·ã\83\83ã\82¯ã\83»ã\83\96ã\83ã\83\83ã\82¯ã\83»グラフ
+ .bbg ã\83\99ã\83¼ã\82·ã\83\83ã\82¯ã\83\96ã\83ã\83\83ã\82¯グラフ
(gcc \-ftest\-coverage が生成する)
.bbl BibTeX の出力
.bdf X のフォントファイル
.bm ビットマップのソース
.bmp ビットマップ
.bz2 \fBbzip2\fP(1) を使用して圧縮されたファイル
- .c C ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
- .cat ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82«ã\82¿ã\83ã\82°ã\83»ファイル
- .cc C++ ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
+ .c C のソースコード
+ .cat ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82«ã\82¿ã\83ã\82°ファイル
+ .cc C++ のソースコード
.cf 設定ファイル
.cfg 設定ファイル
.cgi WWW のコンテンツを作成するプログラム
.conf 設定ファイル
.config 設定ファイル
.cpp \fI.cc\fP と同じ
- .csh \fBcsh\fP(1) ã\82·ã\82§ã\83«ã\83»ã\82¹ã\82¯ã\83ªã\83\97ã\83\88
+ .csh \fBcsh\fP(1) シェルスクリプト
.cxx \fI.cc\fP と同じ
- .dat ã\83\87ã\83¼ã\82¿ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .deb Debian ã\81®ã\82½ã\83\95ã\83\88ã\82¦ã\82§ã\82¢ã\83»ã\83\91ã\83\83ã\82±ã\83¼ã\82¸
+ .dat データファイル
+ .deb Debian のソフトウェアパッケージ
.def Modula\-2 ソースのモジュール定義ファイル
.def その他の定義ファイル
.desc \fBmunpack\fP(1) でアンパックされた
メールの最初の部分
.diff ファイル差分 (\fBdiff\fP(1) コマンドの出力)
- .dir dbm ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .doc ã\83\89ã\82ã\83¥ã\83¡ã\83³ã\83\88ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .dsc Debian ã\81®ã\82½ã\83¼ã\82¹å\88¶å¾¡ã\83\95ã\82¡ã\82¤ã\83« (ã\82½ã\83¼ã\82¹ã\83»ã\83\91ã\83\83ã\82±ã\83¼ã\82¸)
+ .dir dbm データベースのディレクトリファイル
+ .doc ドキュメントファイル
+ .dsc Debian のソース制御ファイル (ソースパッケージ)
.dtx LaTeX パッケージのソース
.dvi TeX のデバイス独立出力ファイル
.el Emacs\-Lisp のソース
.elc コンパイルされた Emacs\-Lispのコード
.eps カプセル化されたPostScript
.exp Expect のソースコード
- .f Fortran ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
- .f77 Fortran 77 ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
- .f90 Fortran 90 ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
+ .f Fortran のソースコード
+ .f77 Fortran 77 のソースコード
+ .f90 Fortran 90 のソースコード
.fas プリコンパイルされた Common\-Lispのコード
- .fi ã\83\95ã\82©ã\83¼ã\83\88ã\83©ã\83³ã\81®ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .fig FIG ã\82¤ã\83¡ã\83¼ã\82¸ã\83»ã\83\95ã\82¡ã\82¤ã\83« (\fBxfig\fP(1) ã\81§ä½¿ç\94¨ã\81\95ã\82\8cã\82\8b)
- .fmt TeX ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .gif ã\82°ã\83©ã\83\95ã\82£ã\83\83ã\82¯ã\83»ã\82¤ã\83¡ã\83¼ã\82¸ (Compuserve Graphics Image File)
- .gmo GNU ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\83»ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»カタログ
+ .fi フォートランのインクルードファイル
+ .fig FIG イメージファイル (\fBxfig\fP(1) で使用される)
+ .fmt TeX フォーマットファイル
+ .gif グラフィックイメージ (Compuserve Graphics Image File)
+ .gmo GNU ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\83¡ã\83\83ã\82»ã\83¼ã\82¸カタログ
.gsf ghostscript のフォント
.gz \fBgzip\fP(1) を使用して圧縮されたファイル
- .h C ã\81¾ã\81\9fã\81¯ C++ ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .help ã\83\98ã\83«ã\83\97ã\83»ã\83\95ã\82¡ã\82¤ã\83«
+ .h C または C++ のヘッダーファイル
+ .help ヘルプファイル
.hf \fI.help\fP に同じ
.hlp \fI.help\fP に同じ
.htm 貧乏人の \fI.html\fP
.html World Wide Web で使用する HTML の文書
.hqx 7 ビットエンコードされた Macintosh ファイル
- .i ã\83\97ã\83ªã\83\97ã\83ã\82»ã\82¹ã\82\92è¡\8cã\81ªã\81£ã\81\9f C ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
+ .i プリプロセスを行なった C のソースコード
.icon ビットマップのソース
.idx ハイパーテキストやデータベースの
- ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ã\83»ã\83\95ã\82¡ã\82¤ã\83«
+ インデックスファイル
.image ビットマップのソース
.in コンフィギュレーションのテンプレート (特に GNU Autoconf)
.info Emacs info ファイル
.info\-[0\-9]+ 分割された info ファイル
- .ins docstrip ã\81® LaTeX ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\83»ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\83»ファイル
- .itcl itcl ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
+ .ins docstrip ã\81® LaTeX ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ファイル
+ .itcl itcl のソースコード
itcl (incr tcl) は tcl の OO 拡張
- .java Java ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
+ .java Java のソースコード
.jpeg グラフィックイメージ (Joint Photographic Experts Group)
.jpg 貧乏人の \fI.jpeg\fP
.kmap \fBlyx\fP(1) のキーマップ
.lex \fBlex\fP(1) または \fBflex\fP(1) ファイル
.lha lharc アーカイブ
.lib Common\-Lisp のライブラリ
- .lisp Lisp ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
+ .lisp Lisp のソースコード
.ln \fBlint\fP(1) で使用するためのファイル
- .log ã\83ã\82°ã\83»ã\83\95ã\82¡ã\82¤ã\83«, ç\89¹ã\81« TeX ã\81«ã\82\88ã\81£ã\81¦ç\94\9fæ\88\90ã\81\95ã\82\8cã\82\8b
- .lsm Linux ã\82½ã\83\95ã\83\88ã\82¦ã\82§ã\82¢ã\83»ã\83\9eã\83\83ã\83\97ã\81®è¦\8bå\87ºã\81\97
- .lsp Common\-Lisp ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
+ .log ログファイル, 特に TeX によって生成される
+ .lsm Linux ソフトウェアマップの見出し
+ .lsp Common\-Lisp のソースコード
.lzh lharc アーカイブ
- .m Objective\-C ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
- .m4 \fBm4\fP(1) ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
- .mac ã\81\84ã\82\8dã\81\84ã\82\8dã\81ªã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\81®ã\83\9eã\82¯ã\83ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .man ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83»ã\83\9aã\83¼ã\82¸ (大æ\8aµã\81¯ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84)
- .map å\90\84種ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®ã\83\9eã\83\83ã\83\97ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .me me ã\83\9eã\82¯ã\83ã\83»ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\82\92使ç\94¨ã\81\97ã\81\9f Nroff ã\81®ã\82½ã\83¼ã\82¹
+ .m Objective\-C ソースコード
+ .m4 \fBm4\fP(1) のソースコード
+ .mac いろいろなプログラムでのマクロファイル
+ .man マニュアルページ (大抵はフォーマットされていない)
+ .map 各種プログラムのマップファイル
+ .me me マクロパッケージを使用した Nroff のソース
.mf メタフォント (TeX のフォント作成ツール) のソース
.mgp MagicPoint ファイル
.mm mm マクロを使用した \fBgroff\fP(1) のソース
- .mo ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82«ã\82¿ã\83ã\82°ã\81®ã\83\90ã\82¤ã\83\8aã\83ª
- .mod Modula\-2 ã\81®ã\83¢ã\82¸ã\83¥ã\83¼ã\83«å®\9fè£\85ã\81®ã\81\9fã\82\81ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
+ .mo メッセージカタログのバイナリ
+ .mod Modula\-2 のモジュール実装のためのソースコード
.mov (quicktime) ムービー
.mp Metapost のソース
.mp2 MPEG レイヤー 2 (オーディオ) ファイル
.mp3 MPEG レイヤー 3 (オーディオ) ファイル
- .mpeg ã\83 ã\83¼ã\83\93ã\83¼ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .o ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .old å\8f¤ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\80\81ã\81¾ã\81\9fã\81¯ã\83\90ã\83\83ã\82¯ã\82¢ã\83\83ã\83\97ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .orig \fBpatch\fP(1) ã\81«ã\82\88ã\82\8b (ã\82ªã\83ªã\82¸ã\83\8aã\83«ã\81®) ã\83\90ã\83\83ã\82¯ã\82¢ã\83\83ã\83\97ã\83»ã\83\95ã\82¡ã\82¤ã\83«
+ .mpeg ムービーファイル
+ .o オブジェクトファイル
+ .old 古いファイル、またはバックアップファイル
+ .orig \fBpatch\fP(1) による (オリジナルの) バックアップファイル
.out 出力ファイル、大抵は実行プログラムである (a.out)
- .p pascal ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
- .pag dbm ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ã\83\87ã\83¼ã\82¿ã\83»ã\83\95ã\82¡ã\82¤ã\83«
+ .p pascal のソースコード
+ .pag dbm データベースのデータファイル
.patch \fBpatch\fP(1) で使用するための差分ファイル
- .pbm ã\82°ã\83©ã\83\95ã\82£ã\83\83ã\82¯ã\83»ã\82¤ã\83¡ã\83¼ã\82¸ (portable bitmap format)
- .pcf X11 ã\81®ã\83\95ã\82©ã\83³ã\83\88ã\83»ã\83\95ã\82¡ã\82¤ã\83«
+ .pbm グラフィックイメージ (portable bitmap format)
+ .pcf X11 のフォントファイル
.pdf Adobe Portable Data Format
(Acrobat/\fBacroread\fP や \fBxpdf\fP で使用する)
- .perl Perl ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89 (.ph, .pl, .pm ã\82\92å\8f\82ç\85§)
+ .perl Perl のソースコード (.ph, .pl, .pm を参照)
.pfa PostScriptのフォント定義 (ASCII フォーマット)
- .pfb PostScriptã\81®ã\83\95ã\82©ã\83³ã\83\88å®\9a義 (ã\83\90ã\82¤ã\83\8aã\83ªã\83»ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88)
- .pgm ã\82°ã\83©ã\83\95ã\82£ã\83\83ã\82¯ã\83»ã\82¤ã\83¡ã\83¼ã\82¸ (portable greymap format)
- .pgp PGP ã\81®ã\83\90ã\82¤ã\83\8aã\83ªã\83»ã\83\87ã\83¼ã\82¿
- .ph Perl ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .php PHP ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .php3 PHP3 ã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\83»ã\83\95ã\82¡ã\82¤ã\83«
+ .pfb PostScriptのフォント定義 (バイナリフォーマット)
+ .pgm グラフィックイメージ (portable greymap format)
+ .pgp PGP のバイナリデータ
+ .ph Perl のヘッダーファイル
+ .php PHP のプログラムファイル
+ .php3 PHP3 のプログラムファイル
.pid デーモンの PID を格納したファイル (crond.pid など)
- .pl TeX ã\81®ã\83\97ã\83ã\83\91ã\83\86ã\82£ã\83»ã\83ªã\82¹ã\83\88ã\81¾ã\81\9fã\81¯ Perl ã\81®ã\83©ã\82¤ã\83\96ã\83©ã\83ª
+ .pl TeX のプロパティリストまたは Perl のライブラリ
.pm Perl のモジュール
- .png ã\82°ã\83©ã\83\95ã\82£ã\83\83ã\82¯ã\83»ã\82¤ã\83¡ã\83¼ã\82¸ (Portable Network Graphics)
- .po ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\83»ã\82«ã\82¿ã\83ã\82°ã\81®ã\82½ã\83¼ã\82¹
+ .png グラフィックイメージ (Portable Network Graphics)
+ .po メッセージカタログのソース
.pod \fBperldoc\fP(1) ファイル
- .ppm ã\82°ã\83©ã\83\95ã\82£ã\83\83ã\82¯ã\83»ã\82¤ã\83¡ã\83¼ã\82¸ (portable pixmap format)
+ .ppm グラフィックイメージ (portable pixmap format)
.pr ビットマップのソース
.ps PostScript ファイル
.py python のソース
.qt quicktime ムービー
.r RATFOR のソース (廃語)
.rej \fBpatch\fP(1) に失敗した pacth ファイル
- .rpm RPM ã\81®ã\82½ã\83\95ã\83\88ã\82¦ã\82§ã\82¢ã\83»ã\83\91ã\83\83ã\82±ã\83¼ã\82¸
- .rtf ã\83ªã\83\83ã\83\81ã\83»ã\83\86ã\82ã\82¹ã\83\88ã\83»フォーマット
+ .rpm RPM のソフトウェアパッケージ
+ .rtf ã\83ªã\83\83ã\83\81ã\83\86ã\82ã\82¹ã\83\88フォーマット
.rules 何かのためのルール
.s アセンブラのソース
- .sa a.out å\85±æ\9c\89ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81®ã\81\9fã\82\81ã\81®ã\82¹ã\82¿ã\83\96ã\83»ã\83©ã\82¤ã\83\96ã\83©ã\83ª
+ .sa a.out 共有ライブラリのためのスタブライブラリ
.sc \fBsc\fP(1) のスプレッドシート命令
- .scm Scheme ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
- .sed sed ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\83\95ã\82¡ã\82¤ã\83«
+ .scm Scheme のソースコード
+ .sed sed のソースファイル
.sgml SGML ソース
.sh \fBsh\fP(1) のスクリプト
.shar \fBshar\fP(1) ユーティリティで作成されたアーカイブ
- .so å\85±æ\9c\89ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81¾ã\81\9fã\81¯å\8b\95ç\9a\84ã\83ã\83¼ã\83\89ã\83»ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88
+ .so 共有ライブラリまたは動的ロードオブジェクト
.sql SQL のソース
.sqml SQML の schema または query program
- .sty LaTeX ã\81®ã\82¹ã\82¿ã\82¤ã\83«ã\83»ã\83\95ã\82¡ã\82¤ã\83«
+ .sty LaTeX のスタイルファイル
.sym Modula\-2 のコンパイルされた定義モジュール
.tar \fBtar\fP(1) ユーティリティで作成されたアーカイブ
.tar.Z \fBcompress\fP(1) で圧縮された \fBtar\fP(1) アーカイブ
.tar.bz2 \fBbzip2\fP(1) で圧縮された \fBtar\fP(1) アーカイブ
.tar.gz \fBgzip\fP(1) で圧縮された \fBtar\fP(1) アーカイブ
.taz \fBcompress\fP(1) で圧縮された \fBtar\fP(1) アーカイブ
- .tcl tcl ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\82³ã\83¼ã\83\89
+ .tcl tcl のソースコード
.tex TeX または LaTeX のソース
.texi \fI.texinfo\fP に同じ
.texinfo texinfo 文書のソース
- .text ã\83\86ã\82ã\82¹ã\83\88ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .tfm TeX ã\81®ã\83\95ã\82©ã\83³ã\83\88ã\83»ã\83¡ã\83\88ã\83ªã\83\83ã\82¯
+ .text テキストファイル
+ .tfm TeX のフォントメトリック
.tgz gzip(1)で圧縮された tar(1) アーカイブ
.tif 貧乏人の \fI.tiff\fP
- .tiff ã\82°ã\83©ã\83\95ã\82£ã\83\83ã\82¯ã\83»ã\82¤ã\83¡ã\83¼ã\82¸ (Tagged Image File Format)
+ .tiff グラフィックイメージ (Tagged Image File Format)
.tk tcl/tk スクリプト
.tmp 一時ファイル
- .tmpl ã\83\86ã\83³ã\83\97ã\83¬ã\83¼ã\83\88ã\83»ã\83\95ã\82¡ã\82¤ã\83«
+ .tmpl テンプレートファイル
.txt \fI.text\fP に同じ
.uu \fI.uue\fP に同じ
- .uue \fBuuencode\fP(1) ã\81§ç¬¦å\8f·å\8c\96ã\81\95ã\82\8cã\81\9fã\83\90ã\82¤ã\83\8aã\83ªã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .vf TeX ã\81®ä»®æ\83³ã\83\95ã\82©ã\83³ã\83\88ã\83»ã\83\95ã\82¡ã\82¤ã\83«
- .vpl TeX ã\81®ä»®æ\83³ã\83\97ã\83ã\83\91ã\83\86ã\82£ã\83»ã\83ªã\82¹ã\83\88ã\83»ファイル
+ .uue \fBuuencode\fP(1) で符号化されたバイナリファイル
+ .vf TeX の仮想フォントファイル
+ .vpl TeX ã\81®ä»®æ\83³ã\83\97ã\83ã\83\91ã\83\86ã\82£ã\83ªã\82¹ã\83\88ファイル
.w Silvio Levi の CWEB
- .wav ã\82¦ã\82§ã\83¼ã\83\96ã\83»ã\82µã\82¦ã\83³ã\83\89ã\83»ファイル
+ .wav ã\82¦ã\82§ã\83¼ã\83\96ã\82µã\82¦ã\83³ã\83\89ファイル
.web Donald Knuth の WEB
- .wml Web Meta Language ã\81®ã\82½ã\83¼ã\82¹ã\83»ã\83\95ã\82¡ã\82¤ã\83«
+ .wml Web Meta Language のソースファイル
.xbm X11 ビットマップのソース
- .xcf GIMP ã\82°ã\83©ã\83\95ã\82£ã\83\83ã\82¯ã\83»ã\83\95ã\82¡ã\82¤ã\83«
+ .xcf GIMP グラフィックファイル
.xml XML (拡張記述言語)ファイル
.xpm X11 ピクスマップのソース
.xs h2xs で生成される Perl xsub ファイル
.z \fBpack\fP(1) (または古い \fBgzip\fP(1)) で圧縮されたファイル
.zip \fBzip\fP(1) アーカイブ
.zoo \fBzoo\fP(1) アーカイブ
- ~ Emacs ã\81¾ã\81\9fã\81¯ \fBpatch\fP(1) ã\81®ã\83\90ã\83\83ã\82¯ã\82¢ã\83\83ã\83\97ã\83»ã\83\95ã\82¡ã\82¤ã\83«
+ ~ Emacs または \fBpatch\fP(1) のバックアップファイル
rc 起動ファイル (`run control') (例 \fI.newsrc\fP)
.TE
.SH 準拠
.SH 説明
このマニュアルページは System V プロセス間通信 (interprocess communication; IPC) 機構の Linux に
おける実装を説明する。 このプロセス間通信機構には、 メッセージキュー (message queue)、セマフォー集合 (semaphore set)、
-共有メモリセグメント (shared memory segment) などがある。以下で \fI資源 (resource)\fP
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88 (shared memory segment) ã\81ªã\81©ã\81\8cã\81\82ã\82\8bã\80\82以ä¸\8bã\81§ \fIè³\87æº\90 (resource)\fP
という用語を使用した場合にはこれらの機構のどれかを意味する。
.SS 資源へのアクセス許可
システムのそれぞれの資源は、IPC への操作を許可するかどうかを決定する ための情報を共通の構造体 \fIstruct ipc_perm\fP
同じヘッダーファイルには以下のシンボルの定義が含まれている:
.TP 14
\fBIPC_CREAT\fP
-キー(key)が存在しない場合には新たなエントリを作成する。
+ã\82ã\83¼(key)ã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\84å ´å\90\88ã\81«ã\81¯æ\96°ã\81\9fã\81ªã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82
.TP
\fBIPC_EXCL\fP
キー(key)が存在する場合には失敗する。
.\".I semval
.\"to become zero.
このセマフォーを最後に操作したプロセスの ID。
-.SS 共有メモリセグメント
-共有メモリセグメントは正の整数 (\fIshmid\fP) によって識別され、 \fI<sys/shm.h>\fP に定義されている
+.SS å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81¯æ£ã\81®æ\95´æ\95° (\fIshmid\fP) ã\81«ã\82\88ã\81£ã\81¦è\98å\88¥ã\81\95ã\82\8cã\80\81 \fI<sys/shm.h>\fP ã\81«å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b
\fIstruct shmid_ds\fP 構造体に結びつけられている。 この構造体は以下のメンバーを含んでいる:
.in +4n
.nf
.in
.TP 11
\fIshm_perm\fP
-共有メモリセグメントへのアクセス許可を指定した \fIipc_perm\fP 構造体。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81¸ã\81®ã\82¢ã\82¯ã\82»ã\82¹è¨±å\8f¯ã\82\92æ\8c\87å®\9aã\81\97ã\81\9f \fIipc_perm\fP æ§\8bé\80 ä½\93ã\80\82
.TP
\fIshm_segsz\fP
-共有メモリセグメントのバイト数。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\81®ã\83\90ã\82¤ã\83\88æ\95°ã\80\82
.TP
\fIshm_cpid\fP
-共有メモリセグメントを作成したプロセスの ID。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92ä½\9cæ\88\90ã\81\97ã\81\9fã\83\97ã\83ã\82»ã\82¹ã\81® IDã\80\82
.TP
\fIshm_lpid\fP
最後に \fBshmat\fP(2) または \fBshmdt\fP(2) システムコールを実行したプロセスの ID。
.TP
\fIshm_nattch\fP
-ã\81\93ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92ã\83¡ã\83¢ã\83ªに付加 (attach) しているプロセスの数。
+ã\81\93ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82»ã\82°ã\83¡ã\83³ã\83\88ã\82\92ã\83¡ã\83¢ã\83ªã\83¼に付加 (attach) しているプロセスの数。
.TP
\fIshm_atime\fP
最後に \fBshmat\fP(2) システムコールを行なった時間。
.SH 名前
symlink \- シンボリックリンクの取り扱い
.SH 説明
-シンボリックリンクは他のファイルへのポインタとして振る舞うファイルである。
+ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81¯ä»\96ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\81\97ã\81¦æ\8c¯ã\82\8bè\88\9eã\81\86ã\83\95ã\82¡ã\82¤ã\83«ã\81§ã\81\82ã\82\8bã\80\82
その挙動を理解するには、まずハードリンクがどのように機能するかを理解しておかなければならない。
あるファイルへのハードリンクは、 元々のファイルと区別することができない。 なぜなら、
番号はファイルシステムをまたがると一意ではないからである)。
シンボリックリンクは特別な種類のファイルで、 ファイルの内容はそのリンクの参照先の別のファイルのパス名を示す文字列である (シンボリックリンクの内容は
-\fBreadlink\fP(2) を使って読むことができる)。 言い換えると、 シンボリックリンクは別の名前へのポインタであり、
-ファイルの裏にあるオブジェクトへのポインタではない。 この理由から、
+\fBreadlink\fP(2) ã\82\92使ã\81£ã\81¦èªã\82\80ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8b)ã\80\82 è¨\80ã\81\84æ\8f\9bã\81\88ã\82\8bã\81¨ã\80\81 ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81¯å\88¥ã\81®å\90\8då\89\8dã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8aã\80\81
+ã\83\95ã\82¡ã\82¤ã\83«ã\81®è£\8fã\81«ã\81\82ã\82\8bã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\84ã\80\82 ã\81\93ã\81®ç\90\86ç\94±ã\81\8bã\82\89ã\80\81
シンボリックリンクではディレクトリへの参照やファイルシステム境界を越える参照を行うことができる。
シンボリックリンクが参照する先のパス名が存在しないといけないという要件はない。 存在しないパス名を参照するシンボリックリンクは「壊れた
リンクそのものと参照先のオブジェクトの間で混乱が生じる可能性がある。 かなり昔からあるシステムでは、
コマンドやシステムコールはいくらかアドホックな方法の独自のリンクの辿り方の決まり事を採用している。 ここでは、 Linux
や他のシステムで実装されている、 もっと広く使われている方法のルールについて概要を説明する。 サイト固有のアプリケーションもこれらのルールに準拠し、
-可能な限りユーザインターフェースが一貫したものになるようにすることが重要である。
+å\8f¯è\83½ã\81ªé\99\90ã\82\8aã\83¦ã\83¼ã\82¶ã\83¼ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81\8cä¸\80貫ã\81\97ã\81\9fã\82\82ã\81®ã\81«ã\81ªã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cé\87\8dè¦\81ã\81§ã\81\82ã\82\8bã\80\82
.SS シンボリックリンクの所有権、アクセス許可、タイムスタンプ
既存のシンボリックリンクの所有者とグループは \fBlchown\fP(2) を使って変更することができる。 シンボリックリンクの所有権が問題となる場面は、
スティッキービット (\fBstat\fP(2) 参照) がセットされたディレクトリで、 そのリンクの削除や名前の変更を行おうとしている場合だけである。
.\" .BR chown (2)
.\" became apparent.
Linux では、シンボリックリンクのアクセス許可 (permission) はどの操作でも使用されない。 アクセス許可は常に 0777
-(ã\81\99ã\81¹ã\81¦ã\81®ã\83¦ã\83¼ã\82¶ã\82«ã\83\86ã\82´ã\83ªにおいて読み出し、書き込み、実行が可能) で、変更できない。
-.SS シンボリックリンクを参照するファイルディスクリプタを取得する
+(ã\81\99ã\81¹ã\81¦ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82«ã\83\86ã\82´ã\83ªã\83¼において読み出し、書き込み、実行が可能) で、変更できない。
+.SS ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b
\fBopen\fP(2) に \fBO_PATH\fP と \fBO_NOFOLLOW\fP
の両方のフラグを指定すると、ファイルディスクリプターが得られる。このファイルディスクリプターは \fBfstatat\fP(2),
\fBfchownat\fP(2), \fBfchmodat\fP(2), \fBlinkat\fP (2), \fBreadlinkat\fP(2) などのシステムコールの
以下に述べる場合を除くと、 すべてのシステムコールはシンボリックリンクを辿る。 例えば、 \fIafile\fP
という名前のファイルを指しているシンボリックリンク \fIslink\fP があったとすると、 システムコール \fIopen("slink" ...\&)\fP
-はファイル \fIafile\fP を参照するファイルディスクリプタを返す。
+ã\81¯ã\83\95ã\82¡ã\82¤ã\83« \fIafile\fP ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
リンクを辿らず、シンボリックリンク自身に対して操作を行うシステムコールもある。 このようなシステムコールとしては、 \fBlchown\fP(2),
\fBlgetxattr\fP(2), \fBllistxattr\fP(2), \fBlremovexattr\fP(2), \fBlsetxattr\fP(2),
Linux は RFC\ 1323 の TCP high performance 拡張をサポートしている。 これには、Protection
Against Wrapped Sequence Numbers (PAWS)、 ウィンドウスケーリング、タイムスタンプなどが含まれている。
ウィンドウスケーリングを利用すると、遅延または帯域の大きな接続で、 (64K 以上の) 巨大な TCP ウィンドウを用いることが可能となる。
-ã\81\93ã\82\8cã\82\92ç\94¨ã\81\84ã\82\8bã\81«ã\81¯ã\80\81é\80\81å\8f\97ä¿¡ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\82µã\82¤ã\82ºã\82\92大ã\81\8dã\81\8fã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81«å¯¾ã\81\99ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡サイズの変更は、ファイル
+ã\81\93ã\82\8cã\82\92ç\94¨ã\81\84ã\82\8bã\81«ã\81¯ã\80\81é\80\81å\8f\97ä¿¡ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\82\92大ã\81\8dã\81\8fã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81«å¯¾ã\81\99ã\82\8bã\83\90ã\83\83ã\83\95ã\82¡ã\83¼サイズの変更は、ファイル
\fI/proc/sys/net/ipv4/tcp_wmem\fP と \fI/proc/sys/net/ipv4/tcp_rmem\fP
を用いて行うことができる。 また、個々のソケットのみを大きくしたい場合には、 \fBSO_SNDBUF\fP や \fBSO_RCVBUF\fP
ソケットオプションを用いて \fBsetsockopt\fP(2) コールを用いて設定すればよい。
-\fBSO_SNDBUF\fP や \fBSO_RCVBUF\fP のメカニズムで宣言されるソケットバッファの最大サイズは、ファイル
+\fBSO_SNDBUF\fP ã\82\84 \fBSO_RCVBUF\fP ã\81®ã\83¡ã\82«ã\83\8bã\82ºã\83 ã\81§å®£è¨\80ã\81\95ã\82\8cã\82\8bã\82½ã\82±ã\83\83ã\83\88ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\9c\80大ã\82µã\82¤ã\82ºã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«
\fI/proc/sys/net/core/rmem_max\fP や \fI/proc/sys/net/core/wmem_max\fP
で指定されたシステムとしての制限値を超えることはできない。 TCP は実際には \fBsetsockopt\fP(2)
-コールが要求したバッファサイズの二倍を割り当てる。 そのため、この後で \fBgetsockopt\fP(2) コールを行うと、
-\fBsetsockopt\fP(2) で要求したバッファサイズとは異なる値が返る。 TCP
+ã\82³ã\83¼ã\83«ã\81\8cè¦\81æ±\82ã\81\97ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\81®äº\8cå\80\8dã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\80\82 ã\81\9dã\81®ã\81\9fã\82\81ã\80\81ã\81\93ã\81®å¾\8cã\81§ \fBgetsockopt\fP(2) ã\82³ã\83¼ã\83«ã\82\92è¡\8cã\81\86ã\81¨ã\80\81
+\fBsetsockopt\fP(2) ã\81§è¦\81æ±\82ã\81\97ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\81¨ã\81¯ç\95°ã\81ªã\82\8bå\80¤ã\81\8cè¿\94ã\82\8bã\80\82 TCP
はこの余分な空間を、管理目的やカーネル内部の構造体に用いている。 \fI/proc\fP ファイルの値は、これらを反映し、実際の TCP
-ウィンドウよりも大きな値となる。 各接続におけるソケットのバッファサイズ変更を有効にするには、 \fBlisten\fP(2) や
+ã\82¦ã\82£ã\83³ã\83\89ã\82¦ã\82\88ã\82\8aã\82\82大ã\81\8dã\81ªå\80¤ã\81¨ã\81ªã\82\8bã\80\82 å\90\84æ\8e¥ç¶\9aã\81«ã\81\8aã\81\91ã\82\8bã\82½ã\82±ã\83\83ã\83\88ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºå¤\89æ\9b´ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81«ã\81¯ã\80\81 \fBlisten\fP(2) ã\82\84
\fBconnect\fP(2) コールの前に設定しなければならない。 より詳しい情報は \fBsocket\fP(7) を見よ。
.PP
TCP は緊急データ (urgent data) をサポートしている。緊急データは 何らかの重要なメッセージがデータストリームに含まれていること、
.SS アドレスのフォーマット
TCP は IP の上層に構築されている (\fBip\fP(7) を参照)。 \fBip\fP(7) に定義されているアドレスフォーマットは TCP
にも適用される。 TCP は point\-to\-point の通信だけをサポートする。 ブロードキャストやマルチキャストはサポートしない。
-.SS "/proc インタフェース"
-システム全体に対する TCP パラメータの設定には、 \fI/proc/sys/net/ipv4/\fP ディレクトリ内のファイルによりアクセスできる。
-さらに、IP に関連する \fI/proc\fP インタフェースのほとんどは TCP についても適用される。 \fBip\fP(7) を参照のこと。
+.SS "/proc ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹"
+ã\82·ã\82¹ã\83\86ã\83 å\85¨ä½\93ã\81«å¯¾ã\81\99ã\82\8b TCP ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®è¨å®\9aã\81«ã\81¯ã\80\81 \fI/proc/sys/net/ipv4/\fP ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªå\86\85ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\82\88ã\82\8aã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8dã\82\8bã\80\82
+ã\81\95ã\82\89ã\81«ã\80\81IP ã\81«é\96¢é\80£ã\81\99ã\82\8b \fI/proc\fP ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®ã\81»ã\81¨ã\82\93ã\81©ã\81¯ TCP ã\81«ã\81¤ã\81\84ã\81¦ã\82\82é\81©ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 \fBip\fP(7) ã\82\92å\8f\82ç\85§ã\81®ã\81\93ã\81¨ã\80\82
\fIBoolean\fP は整数値で、 0 以外の値 ("true") は対応するオプションが有効、 0 値 ("false")
は無効、であることを意味する。
.TP
.TP
\fItcp_adv_win_scale\fP (integer; default: 2; Linux 2.4 以降)
.\" Since 2.4.0-test7
-バッファリングのオーバーヘッドの計算方法を、 \fItcp_adv_win_scale\fP が正の場合は
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81®ã\82ªã\83¼ã\83\90ã\83¼ã\83\98ã\83\83ã\83\89ã\81®è¨\88ç®\97æ\96¹æ³\95ã\82\92ã\80\81 \fItcp_adv_win_scale\fP ã\81\8cæ£ã\81®å ´å\90\88ã\81¯
\fIbytes/2^tcp_adv_win_scale\fP に、 \fItcp_adv_win_scale\fP が負か 0 の場合は
\fIbytes\-bytes/2^(\-tcp_adv_win_scale)\fP とする。
-ソケットの受信バッファ空間はアプリケーションとカーネルで共有される。 TCP はバッファの一部を TCP ウィンドウとして管理し、
-これを受信ウィンドウとして接続の他端に通知する。 空間の残りは「アプリケーション」バッファとして用いられ、
+ソケットの受信バッファー空間はアプリケーションとカーネルで共有される。 TCP はバッファーの一部を TCP ウィンドウとして管理し、
+ã\81\93ã\82\8cã\82\92å\8f\97ä¿¡ã\82¦ã\82£ã\83³ã\83\89ã\82¦ã\81¨ã\81\97ã\81¦æ\8e¥ç¶\9aã\81®ä»\96端ã\81«é\80\9aç\9f¥ã\81\99ã\82\8bã\80\82 空é\96\93ã\81®æ®\8bã\82\8aã\81¯ã\80\8cã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\80\8dã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¨ã\81\97ã\81¦ç\94¨ã\81\84ã\82\89ã\82\8cã\80\81
スケジューリングやアプリケーションの遅延からネットワークを隔離する。 \fItcp_adv_win_scale\fP のデフォルト値は 2 であり、
-この場合アプリケーションバッファは全体の 1/4 になる。
+ã\81\93ã\81®å ´å\90\88ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¯å\85¨ä½\93ã\81® 1/4 ã\81«ã\81ªã\82\8bã\80\82
.TP
\fItcp_allowed_congestion_control\fP (String; default: see text; Linux 2.4.20 以降)
.\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
.TP
\fItcp_app_win\fP (integer; default: 31; Linux 2.4 以降)
.\" Since 2.4.0-test7
-この変数は、TCP ウィンドウの何バイト分を バッファリングのオーバーヘッド用に予約するかを指定する。
+ã\81\93ã\81®å¤\89æ\95°ã\81¯ã\80\81TCP ã\82¦ã\82£ã\83³ã\83\89ã\82¦ã\81®ä½\95ã\83\90ã\82¤ã\83\88å\88\86ã\82\92 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\83ªã\83³ã\82°ã\81®ã\82ªã\83¼ã\83\90ã\83¼ã\83\98ã\83\83ã\83\89ç\94¨ã\81«äº\88ç´\84ã\81\99ã\82\8bã\81\8bã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82
.\"
.\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
そのウィンドウの \fIwindow/2^tcp_app_win\fP と mss の大きいほう (バイト単位)
-がアプリケーションバッファとして予約される。 0 を指定すると一切予約領域を取らない。
+ã\81\8cã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¨ã\81\97ã\81¦äº\88ç´\84ã\81\95ã\82\8cã\82\8bã\80\82 0 ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81¨ä¸\80å\88\87äº\88ç´\84é \98å\9f\9fã\82\92å\8f\96ã\82\89ã\81ªã\81\84ã\80\82
.TP
\fItcp_base_mss\fP (Integer; default: 512; Linux 2.6.17 以降)
.\"
\fItcp_ecn\fP (ブール値; デフォルト: 無効; Linux 2.4 以降)
.\" Since 2.4.0-test7
RFC\ 2884 の Explicit Congestion Notification を有効にする。
-これを有効にすると、間違った振舞いをする古いルータが 経路の途中にあるような接続先に対して影響が生じ、 場合によっては接続が落ちるかもしれない。
+ã\81\93ã\82\8cã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81¨ã\80\81é\96\93é\81\95ã\81£ã\81\9fæ\8c¯è\88\9eã\81\84ã\82\92ã\81\99ã\82\8bå\8f¤ã\81\84ã\83«ã\83¼ã\82¿ã\83¼ã\81\8c çµ\8cè·¯ã\81®é\80\94ä¸ã\81«ã\81\82ã\82\8bã\82\88ã\81\86ã\81ªæ\8e¥ç¶\9aå\85\88ã\81«å¯¾ã\81\97ã\81¦å½±é\9f¿ã\81\8cç\94\9fã\81\98ã\80\81 å ´å\90\88ã\81«ã\82\88ã\81£ã\81¦ã\81¯æ\8e¥ç¶\9aã\81\8cè\90½ã\81¡ã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82
.TP
\fItcp_fack\fP (ブール値; デフォルト: 有効; Linux 2.2 以降)
.\" Since 2.1.92
\fItcp_frto\fP (integer; default: 0; Linux 2.4.21/2.6 以降)
.\" Since 2.4.21/2.5.43
F\-RTO を有効にする。F\-RTO は TCP 再送タイムアウト (RTO) からの 復旧性能を向上させたアルゴリズムである。
-この機能は無線環境で特に効果を発揮する。 無線環境では、通常は、中間ルータの輻輳ではなくランダムな無線の干渉 によりパケットロスが発生する。 詳細は
+ã\81\93ã\81®æ©\9fè\83½ã\81¯ç\84¡ç·\9aç\92°å¢\83ã\81§ç\89¹ã\81«å\8a¹æ\9e\9cã\82\92ç\99ºæ\8f®ã\81\99ã\82\8bã\80\82 ç\84¡ç·\9aç\92°å¢\83ã\81§ã\81¯ã\80\81é\80\9a常ã\81¯ã\80\81ä¸é\96\93ã\83«ã\83¼ã\82¿ã\83¼ã\81®è¼»è¼³ã\81§ã\81¯ã\81ªã\81\8fã\83©ã\83³ã\83\80ã\83 ã\81ªç\84¡ç·\9aã\81®å¹²æ¸\89 ã\81«ã\82\88ã\82\8aã\83\91ã\82±ã\83\83ã\83\88ã\83ã\82¹ã\81\8cç\99ºç\94\9fã\81\99ã\82\8bã\80\82 詳細ã\81¯
RFC\ 4138 を参照。
このファイルは以下のいずれかの値を取ることができる。
パケット数計測と、相性が悪く相互干渉が起こる場面が存在する。
.RE
.IP
-Linu 2.6.22 より前では、このパラメータはブール値であり、 上記の 0 と 1 のみをサポートしていた。
+Linu 2.6.22 ã\82\88ã\82\8aå\89\8dã\81§ã\81¯ã\80\81ã\81\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\83\96ã\83¼ã\83«å\80¤ã\81§ã\81\82ã\82\8aã\80\81 ä¸\8aè¨\98ã\81® 0 ã\81¨ 1 ã\81®ã\81¿ã\82\92ã\82µã\83\9dã\83¼ã\83\88ã\81\97ã\81¦ã\81\84ã\81\9fã\80\82
.TP
\fItcp_frto_response\fP (integer; default: 0; Linux 2.6.22 以降)
F\-RTO が TCP 再送タイムアウトが偽物だと検出した場合 (つまり、TCP がもっと長い再送タイムアウトを設定していれば
.TP
\fItcp_max_orphans\fP (integer; default: see below; Linux 2.4 以降)
.\" Since 2.3.41
-システムが許容する、 orphan な (どのユーザファイルハンドルにもアタッチされていない) TCP ソケットの最大数。
+ã\82·ã\82¹ã\83\86ã\83 ã\81\8c許容ã\81\99ã\82\8bã\80\81 orphan ã\81ª (ã\81©ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\83\8fã\83³ã\83\89ã\83«ã\81«ã\82\82ã\82¢ã\82¿ã\83\83ã\83\81ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84) TCP ã\82½ã\82±ã\83\83ã\83\88ã\81®æ\9c\80大æ\95°ã\80\82
この数を越えると、orphan な接続はリセットされ、警告が表示される。 この制限が存在するのは、単純な使用不能 (denial\-of\-service)
攻撃を 防ぐために過ぎない。この値を小さくすることは推奨しない。 ネットワークの条件によっては、この数値を大きくしないといけないかもしれないが、
-orphan ã\81ªã\82½ã\82±ã\83\83ã\83\88ã\81²ã\81¨ã\81¤ã\81\82ã\81\9fã\82\8a 64K ç¨\8b度ã\81®ã\82¹ã\83¯ã\83\83ã\83\97ä¸\8då\8f¯è\83½ã\81ªã\83¡ã\83¢ã\83ªã\82\92æ¶\88è²»ã\81\99ã\82\8bã\81\93ã\81¨ã\82\82注æ\84\8fã\81\9bã\82\88ã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®å\88\9dæ\9c\9få\80¤ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\83\91ã\83©ã\83¡ã\83¼ã\82¿の
-NR_FILE と等しい。 この初期デフォルト値はシステムのメモリに応じて調整される。
+orphan ã\81ªã\82½ã\82±ã\83\83ã\83\88ã\81²ã\81¨ã\81¤ã\81\82ã\81\9fã\82\8a 64K ç¨\8b度ã\81®ã\82¹ã\83¯ã\83\83ã\83\97ä¸\8då\8f¯è\83½ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\82\92æ¶\88è²»ã\81\99ã\82\8bã\81\93ã\81¨ã\82\82注æ\84\8fã\81\9bã\82\88ã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®å\88\9dæ\9c\9få\80¤ã\81¯ã\82«ã\83¼ã\83\8dã\83«ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼の
+NR_FILE ã\81¨ç\89ã\81\97ã\81\84ã\80\82 ã\81\93ã\81®å\88\9dæ\9c\9fã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ã\81¯ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81«å¿\9cã\81\98ã\81¦èª¿æ\95´ã\81\95ã\82\8cã\82\8bã\80\82
.TP
\fItcp_max_syn_backlog\fP (integer; default: 下記参照; Linux 2.2 以降)
.\" Since 2.1.53
接続してきているクライアントから ack を受信していない状態の接続リクエストをキューに置ける最大数。
-この数値を越えると、カーネルはリクエストを捨て始める。 デフォルトの値は 256 で、 システムに充分なメモリがある (128Mb 以上) 場合は
-1024 になり、 メモリが非常に少ない場合 (32 Mb 以下) は 128 になる。 この数値を 1024 以上に増やしたい場合は、
+ã\81\93ã\81®æ\95°å\80¤ã\82\92è¶\8aã\81\88ã\82\8bã\81¨ã\80\81ã\82«ã\83¼ã\83\8dã\83«ã\81¯ã\83ªã\82¯ã\82¨ã\82¹ã\83\88ã\82\92æ\8d¨ã\81¦å§\8bã\82\81ã\82\8bã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81®å\80¤ã\81¯ 256 ã\81§ã\80\81 ã\82·ã\82¹ã\83\86ã\83 ã\81«å\85\85å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81\82ã\82\8b (128Mb 以ä¸\8a) å ´å\90\88ã\81¯
+1024 ã\81«ã\81ªã\82\8aã\80\81 ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cé\9d\9e常ã\81«å°\91ã\81ªã\81\84å ´å\90\88 (32 Mb 以ä¸\8b) ã\81¯ 128 ã\81«ã\81ªã\82\8bã\80\82 ã\81\93ã\81®æ\95°å\80¤ã\82\92 1024 以ä¸\8aã\81«å¢\97ã\82\84ã\81\97ã\81\9fã\81\84å ´å\90\88ã\81¯ã\80\81
\fIinclude/net/tcp.h\fP の TCP_SYNQ_HSIZE を
TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog のように修正し、 カーネルを再コンパイルすることを奨める。
.TP
\fItcp_max_tw_buckets\fP (integer; default: 下記参照; Linux 2.4 以降)
.\" Since 2.3.41
システムが許容する TIME_WAIT 状態にあるソケットの最大数。 この制限が存在するのは、 単純な使用不能 (denial\-of\-service)
-攻撃を防ぐために過ぎない。 デフォルト値は NR_FILE*2 で、システムのメモリに応じて調整される。
+æ\94»æ\92\83ã\82\92é\98²ã\81\90ã\81\9fã\82\81ã\81«é\81\8eã\81\8eã\81ªã\81\84ã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ã\81¯ NR_FILE*2 ã\81§ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81«å¿\9cã\81\98ã\81¦èª¿æ\95´ã\81\95ã\82\8cã\82\8bã\80\82
この数値を越えると、そのようなソケットはクローズされ、警告が表示される。
.TP
\fItcp_moderate_rcvbuf\fP (ブール値; デフォルト: 有効; Linux 2.4.17/2.6.7 以降)
.\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
-有効にすると、TCP は受信バッファの自動調整を行う。 具体的には、 (\fItcp_rmem[2]\fP を超えない範囲で)
-バッファの大きさを自動的に変化させ、 その経路で最大のスループットを達成するのに必要な大きさに合わせようとする。
+æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81¨ã\80\81TCP ã\81¯å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®è\87ªå\8b\95調æ\95´ã\82\92è¡\8cã\81\86ã\80\82 å\85·ä½\93ç\9a\84ã\81«ã\81¯ã\80\81 (\fItcp_rmem[2]\fP ã\82\92è¶\85ã\81\88ã\81ªã\81\84ç¯\84å\9b²ã\81§)
+ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®å¤§ã\81\8dã\81\95ã\82\92è\87ªå\8b\95ç\9a\84ã\81«å¤\89å\8c\96ã\81\95ã\81\9bã\80\81 ã\81\9dã\81®çµ\8cè·¯ã\81§æ\9c\80大ã\81®ã\82¹ã\83«ã\83¼ã\83\97ã\83\83ã\83\88ã\82\92é\81\94æ\88\90ã\81\99ã\82\8bã\81®ã\81«å¿\85è¦\81ã\81ªå¤§ã\81\8dã\81\95ã\81«å\90\88ã\82\8fã\81\9bã\82\88ã\81\86ã\81¨ã\81\99ã\82\8bã\80\82
.TP
\fItcp_mem\fP (Linux 2.4 以降)
.\" Since 2.4.0-test7
-これは 3 つの整数 [low, pressure, high] からなるベクトル値である。 これらは TCP がメモリ使用量を追跡するために用いられる
-(使用量はシステムのページサイズ単位で計測される)。 デフォルトはブート時に利用できるメモリの量から計算される。 (実際には、TCP は \fIlow
-memory\fP のみを使用する。値は 32ビットシステムでは約 900 メガバイトに制限される。 64 ビットシステムではこの制限はない。)
+これは 3 つの整数 [low, pressure, high] からなるベクトル値である。 これらは TCP
+がメモリー使用量を追跡するために用いられる (使用量はシステムのページサイズ単位で計測される)。
+デフォルトはブート時に利用できるメモリーの量から計算される。 (実際には、TCP は \fIlow memory\fP のみを使用する。値は
+32ビットシステムでは約 900 メガバイトに制限される。 64 ビットシステムではこの制限はない。)
.RS
.TP 10
\fIlow\fP
-TCP は、グローバルにアロケートしたページがこの数値以下の場合は、 メモリアロケーションを調整しない。
+TCP ã\81¯ã\80\81ã\82°ã\83ã\83¼ã\83\90ã\83«ã\81«ã\82¢ã\83ã\82±ã\83¼ã\83\88ã\81\97ã\81\9fã\83\9aã\83¼ã\82¸ã\81\8cã\81\93ã\81®æ\95°å\80¤ä»¥ä¸\8bã\81®å ´å\90\88ã\81¯ã\80\81 ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83ã\82±ã\83¼ã\82·ã\83§ã\83³ã\82\92調æ\95´ã\81\97ã\81ªã\81\84ã\80\82
.TP
\fIpressure\fP
-TCP ã\81\8cã\82¢ã\83ã\82±ã\83¼ã\83\88ã\81\97ã\81\9fã\83¡ã\83¢ã\83ªã\81\8cã\81\93ã\81®æ\95°å\80¤å\88\86ã\81®ã\83\9aã\83¼ã\82¸æ\95°ã\82\92è¶\8aã\81\88ã\82\8bã\81¨ã\80\81 TCP ã\81¯ã\83¡ã\83¢ã\83ª消費を抑えるようになる。 アロケートしたページ数が \fIlow\fP
-以下になると、このメモリ圧迫状態から脱する。
+TCP ã\81\8cã\82¢ã\83ã\82±ã\83¼ã\83\88ã\81\97ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81\93ã\81®æ\95°å\80¤å\88\86ã\81®ã\83\9aã\83¼ã\82¸æ\95°ã\82\92è¶\8aã\81\88ã\82\8bã\81¨ã\80\81 TCP ã\81¯ã\83¡ã\83¢ã\83ªã\83¼消費を抑えるようになる。 アロケートしたページ数が \fIlow\fP
+以下になると、このメモリー圧迫状態から脱する。
.TP
\fIhigh\fP
TCP がグローバルに割り当てるページ数の最大値。 この値はカーネルによって課されるあらゆる制限よりも優先される。
.TP
\fItcp_mtu_probing\fP (integer; default: 0; Linux 2.6.17 以降)
.\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
-このパラメータは、TCP のパケット化レイヤの Path MTU discovery を制御する。 このファイルには以下の値を設定できる。
+ã\81\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\80\81TCP ã\81®ã\83\91ã\82±ã\83\83ã\83\88å\8c\96ã\83¬ã\82¤ã\83¤ã\81® Path MTU discovery ã\82\92å\88¶å¾¡ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«ã\81¯ä»¥ä¸\8bã\81®å\80¤ã\82\92è¨å®\9aã\81§ã\81\8dã\82\8bã\80\82
.RS
.IP 0 3
無効にする。
.TP
\fItcp_no_metrics_save\fP (ブール値; デフォルト: 無効; Linux 2.6.6 以降)
.\" The following is from 2.6.28-rc4: Documentation/networking/ip-sysctl.txt
-デフォルトでは、TCP は接続クローズ時に各種の接続パラメータを ルートキャッシュ (route cache) に保存し、近い将来に接続が確立された際に
-これらの情報を初期状態として使用できるようになっている。 通常は、これにより全体として性能が向上するが、 時として性能の劣化を引き起こすこともある。
-\fItcp_no_metrics_save\fP を有効にすると、TCP は接続クローズ時に接続パラメータをキャッシュ しなくなる。
+デフォルトでは、TCP は接続クローズ時に各種の接続パラメーターを ルートキャッシュ (route cache)
+に保存し、近い将来に接続が確立された際に これらの情報を初期状態として使用できるようになっている。 通常は、これにより全体として性能が向上するが、
+時として性能の劣化を引き起こすこともある。 \fItcp_no_metrics_save\fP を有効にすると、TCP
+は接続クローズ時に接続パラメーターをキャッシュ しなくなる。
.TP
\fItcp_orphan_retries\fP (integer; default: 8; Linux 2.4 以降)
.\" Since 2.3.41
\fItcp_rmem\fP (Linux 2.4 以降)
.\" Since 2.4.0-test7
これは 3 つの整数 [min, default, max] からなるベクトル値である。 これらは TCP
-ã\81\8cå\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\82µã\82¤ã\82ºã\82\92調æ\95´ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ç\94¨ã\81\84ã\82\89ã\82\8cã\82\8bã\80\82 TCP ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81§å\88©ç\94¨ã\81§ã\81\8dã\82\8bã\83¡ã\83¢ã\83ªã\81«å¿\9cã\81\98ã\81¦ã\80\81 å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡のサイズをこれらの変数の範囲で
+ã\81\8cå\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\82\92調æ\95´ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ç\94¨ã\81\84ã\82\89ã\82\8cã\82\8bã\80\82 TCP ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81§å\88©ç\94¨ã\81§ã\81\8dã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81«å¿\9cã\81\98ã\81¦ã\80\81 å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼のサイズをこれらの変数の範囲で
以下に示すデフォルトから動的に調整する。
.RS
.TP 10
\fImin\fP
-各 TCP ソケットが用いる受信バッファの最小サイズ。 デフォルト値はシステムのページサイズである (Linux 2.4 では、デフォルト値は 4K
-ã\83\90ã\82¤ã\83\88ã\81§ã\80\81 ã\83¡ã\83¢ã\83ªã\81®å°\91ã\81ªã\81\84ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ \fBPAGE_SIZE\fP ã\83\90ã\82¤ã\83\88ã\81«æ¸\9bã\82\89ã\81\95ã\82\8cã\82\8b)ã\80\82 ã\81\93ã\81®å\80¤ã\81¯ã\80\81ã\83¡ã\83¢ã\83ª圧迫モードにおいても、
+å\90\84 TCP ã\82½ã\82±ã\83\83ã\83\88ã\81\8cç\94¨ã\81\84ã\82\8bå\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\9c\80å°\8fã\82µã\82¤ã\82ºã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ã\81¯ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83\9aã\83¼ã\82¸ã\82µã\82¤ã\82ºã\81§ã\81\82ã\82\8b (Linux 2.4 ã\81§ã\81¯ã\80\81ã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ã\81¯ 4K
+ã\83\90ã\82¤ã\83\88ã\81§ã\80\81 ã\83¡ã\83¢ã\83ªã\83¼ã\81®å°\91ã\81ªã\81\84ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ \fBPAGE_SIZE\fP ã\83\90ã\82¤ã\83\88ã\81«æ¸\9bã\82\89ã\81\95ã\82\8cã\82\8b)ã\80\82 ã\81\93ã\81®å\80¤ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼圧迫モードにおいても、
このサイズの割り当てが成功することを保証するために用いられる。 これは、 \fBSO_RCVBUF\fP
-を用いてソケットの最低受信バッファサイズを宣言する際には用いられない。
+ã\82\92ç\94¨ã\81\84ã\81¦ã\82½ã\82±ã\83\83ã\83\88ã\81®æ\9c\80ä½\8eå\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\82\92宣è¨\80ã\81\99ã\82\8bé\9a\9bã\81«ã\81¯ç\94¨ã\81\84ã\82\89ã\82\8cã\81ªã\81\84ã\80\82
.TP
\fIdefault\fP
-TCP ソケットの受信バッファのデフォルトサイズ。 この値は、すべてのプロトコルに対して定義されている、
-ジェネリックなグローバルのデフォルトバッファサイズ \fInet.core.rmem_default\fP より優先される。 デフォルト値は 87380
-ã\83\90ã\82¤ã\83\88ã\81§ã\81\82ã\82\8b (Linux 2.4 ã\81§ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\81®å°\91ã\81ªã\81\84ã\82·ã\82¹ã\83\86ã\83 ã\81®å ´å\90\88 43689 ã\81¾ã\81§æ¸\9bã\82\89ã\81\95ã\82\8cã\82\8b)ã\80\82 大ã\81\8dã\81ªå\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡サイズが必要な場合は、
+TCP ã\82½ã\82±ã\83\83ã\83\88ã\81®å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\82µã\82¤ã\82ºã\80\82 ã\81\93ã\81®å\80¤ã\81¯ã\80\81ã\81\99ã\81¹ã\81¦ã\81®ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81«å¯¾ã\81\97ã\81¦å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\81
+ã\82¸ã\82§ã\83\8dã\83ªã\83\83ã\82¯ã\81ªã\82°ã\83ã\83¼ã\83\90ã\83«ã\81®ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82º \fInet.core.rmem_default\fP ã\82\88ã\82\8aå\84ªå\85\88ã\81\95ã\82\8cã\82\8bã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ã\81¯ 87380
+ã\83\90ã\82¤ã\83\88ã\81§ã\81\82ã\82\8b (Linux 2.4 ã\81§ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\81®å°\91ã\81ªã\81\84ã\82·ã\82¹ã\83\86ã\83 ã\81®å ´å\90\88 43689 ã\81¾ã\81§æ¸\9bã\82\89ã\81\95ã\82\8cã\82\8b)ã\80\82 大ã\81\8dã\81ªå\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼サイズが必要な場合は、
この値を増やすべきである (すべてのソケットに影響する)。 大きな TCP ウィンドウを用いるには、
\fInet.ipv4.tcp_window_scaling\fP を有効にしておかなければならない (デフォルトは有効)。
.TP
\fImax\fP
-各 TCP ソケットで用いる受信バッファの最大サイズ。 この値よりもグローバルの \fInet.core.rmem_max\fP が優先される。 これは、
-\fBSO_RCVBUF\fP を用いてソケットの受信バッファサイズ制限を宣言する際には用いられない。 デフォルト値は以下の式で計算される。
+å\90\84 TCP ã\82½ã\82±ã\83\83ã\83\88ã\81§ç\94¨ã\81\84ã\82\8bå\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\9c\80大ã\82µã\82¤ã\82ºã\80\82 ã\81\93ã\81®å\80¤ã\82\88ã\82\8aã\82\82ã\82°ã\83ã\83¼ã\83\90ã\83«ã\81® \fInet.core.rmem_max\fP ã\81\8cå\84ªå\85\88ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ã\80\81
+\fBSO_RCVBUF\fP ã\82\92ç\94¨ã\81\84ã\81¦ã\82½ã\82±ã\83\83ã\83\88ã\81®å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºå\88¶é\99\90ã\82\92宣è¨\80ã\81\99ã\82\8bé\9a\9bã\81«ã\81¯ç\94¨ã\81\84ã\82\89ã\82\8cã\81ªã\81\84ã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ã\81¯ä»¥ä¸\8bã\81®å¼\8fã\81§è¨\88ç®\97ã\81\95ã\82\8cã\82\8bã\80\82
max(87380, min(4MB, \fItcp_mem\fP[1]*PAGE_SIZE/128))
-(Linux 2.4 では、デフォルト値は 87380*2 バイトで、 メモリの少ないシステムでは 87380 まで減らされる。)
+(Linux 2.4 ã\81§ã\81¯ã\80\81ã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ã\81¯ 87380*2 ã\83\90ã\82¤ã\83\88ã\81§ã\80\81 ã\83¡ã\83¢ã\83ªã\83¼ã\81®å°\91ã\81ªã\81\84ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ 87380 ã\81¾ã\81§æ¸\9bã\82\89ã\81\95ã\82\8cã\82\8bã\80\82)
.RE
.TP
\fItcp_sack\fP (ブール値; デフォルト: 有効; Linux 2.2 以降)
.\" RFC 793 was ambiguous in its specification of the meaning of the
.\" urgent pointer. RFC 1122 (and RFC 961) fixed on a particular
.\" resolution of this ambiguity (unfortunately the "wrong" one).
-このオプションを有効にすると、 TCP 緊急ポインタ (urgent\-pointer) フィールドを RFC\ 1122 に従った解釈を行う。
-ã\81\93ã\81®è§£é\87\88ã\81«å¾\93ã\81\86ã\81¨ã\80\81ç·\8aæ\80¥ã\83\9dã\82¤ã\83³ã\82¿ã\81¯ç·\8aæ\80¥ã\83\87ã\83¼ã\82¿ã\81®æ\9c\80å¾\8cã\81®ã\83\90ã\82¤ã\83\88ã\82\92æ\8c\87ã\81\99ã\80\82 ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92ç\84¡å\8a¹ã\81«ã\81\99ã\82\8bã\81¨ã\80\81ç·\8aæ\80¥ã\83\9dã\82¤ã\83³ã\82¿ã\81®è§£é\87\88ã\81\8c BSD äº\92æ\8f\9bã\81®æ\96¹æ³\95ã\81§ è¡\8cã\82\8fã\82\8cã\82\8b:
-緊急ポインタは緊急データの後の最初のバイトを指す。 このオプションを有効にすると、相互運用性に問題が生じるかもしれない。
+このオプションを有効にすると、 TCP 緊急ポインター (urgent\-pointer) フィールドを RFC\ 1122 に従った解釈を行う。
+ã\81\93ã\81®è§£é\87\88ã\81«å¾\93ã\81\86ã\81¨ã\80\81ç·\8aæ\80¥ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ç·\8aæ\80¥ã\83\87ã\83¼ã\82¿ã\81®æ\9c\80å¾\8cã\81®ã\83\90ã\82¤ã\83\88ã\82\92æ\8c\87ã\81\99ã\80\82 ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92ç\84¡å\8a¹ã\81«ã\81\99ã\82\8bã\81¨ã\80\81ç·\8aæ\80¥ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®è§£é\87\88ã\81\8c BSD äº\92æ\8f\9bã\81®æ\96¹æ³\95ã\81§
+行われる: 緊急ポインターは緊急データの後の最初のバイトを指す。 このオプションを有効にすると、相互運用性に問題が生じるかもしれない。
.TP
\fItcp_syn_retries\fP (integer; default: 5; Linux 2.2 以降)
.\" Since 2.1.38
RFC\ 1323 の TCP timestamps を有効にする。
.TP
\fItcp_tso_win_divisor\fP (integer; default: 3; Linux 2.6.9 以降)
-このパラメータは、一つの TCP Segmentation Offload (TSO) フレームで 消費できる輻輳ウィンドウの割合 (パーセント)
-を制御する。 バースト性と、どれだけ大きな TSO フレームを構築するかのはトレードオフであり、 このパラメータはその度合いを設定する。
+ã\81\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\80\81ä¸\80ã\81¤ã\81® TCP Segmentation Offload (TSO) ã\83\95ã\83¬ã\83¼ã\83 ã\81§ æ¶\88è²»ã\81§ã\81\8dã\82\8b輻輳ã\82¦ã\82£ã\83³ã\83\89ã\82¦ã\81®å\89²å\90\88 (ã\83\91ã\83¼ã\82»ã\83³ã\83\88)
+ã\82\92å\88¶å¾¡ã\81\99ã\82\8bã\80\82 ã\83\90ã\83¼ã\82¹ã\83\88æ\80§ã\81¨ã\80\81ã\81©ã\82\8cã\81 ã\81\91大ã\81\8dã\81ª TSO ã\83\95ã\83¬ã\83¼ã\83 ã\82\92æ§\8bç¯\89ã\81\99ã\82\8bã\81\8bã\81®ã\81¯ã\83\88ã\83¬ã\83¼ã\83\89ã\82ªã\83\95ã\81§ã\81\82ã\82\8aã\80\81 ã\81\93ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81¯ã\81\9dã\81®åº¦å\90\88ã\81\84ã\82\92è¨å®\9aã\81\99ã\82\8bã\80\82
.TP
\fItcp_tw_recycle\fP (ブール値; デフォルト: 無効; Linux 2.4 以降)
.\" Since 2.3.15
\fItcp_window_scaling\fP (ブール値; デフォルト: 有効; Linux 2.2 以降)
.\" Since 2.1.36
RFC\ 1323 の TCP ウィンドウスケーリングを有効にする。 この機能を用いると、接続先が対応していれば、 TCP 接続で大きな (64K
-以上の) ウィンドウが使えるようになる。 通常は TCP ヘッダのウインドウ長フィールドは 16 ビットなので、 ウィンドウサイズは 64K
-バイト以下に限られる。 もっと大きなウィンドウを使いたい場合は、 アプリケーションはソケットバッファのサイズを増やして、
+以ä¸\8aã\81®) ã\82¦ã\82£ã\83³ã\83\89ã\82¦ã\81\8c使ã\81\88ã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\82\8bã\80\82 é\80\9a常ã\81¯ TCP ã\83\98ã\83\83ã\83\80ã\83¼ã\81®ã\82¦ã\82¤ã\83³ã\83\89ã\82¦é\95·ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ 16 ã\83\93ã\83\83ã\83\88ã\81ªã\81®ã\81§ã\80\81 ã\82¦ã\82£ã\83³ã\83\89ã\82¦ã\82µã\82¤ã\82ºã\81¯ 64K
+ã\83\90ã\82¤ã\83\88以ä¸\8bã\81«é\99\90ã\82\89ã\82\8cã\82\8bã\80\82 ã\82\82ã\81£ã\81¨å¤§ã\81\8dã\81ªã\82¦ã\82£ã\83³ã\83\89ã\82¦ã\82\92使ã\81\84ã\81\9fã\81\84å ´å\90\88ã\81¯ã\80\81 ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81¯ã\82½ã\82±ã\83\83ã\83\88ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82µã\82¤ã\82ºã\82\92å¢\97ã\82\84ã\81\97ã\81¦ã\80\81
ウィンドウスケーリングのオプションを利用すればよい。 \fItcp_window_scaling\fP を無効にしていると、 TCP
は他端との接続設定の際に、 ウィンドウスケーリングのネゴシエーションを行なわない。
.TP
\fItcp_wmem\fP (Linux 2.4 以降)
.\" Since 2.4.0-test7
これは 3 つの整数 [min, default, max] からなるベクトル値である。 これらは TCP
-ã\81\8cé\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\82µã\82¤ã\82ºã\82\92調æ\95´ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ç\94¨ã\81\84ã\82\89ã\82\8cã\82\8bã\80\82 TCP ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81§å\88©ç\94¨ã\81§ã\81\8dã\82\8bã\83¡ã\83¢ã\83ªã\81«å¿\9cã\81\98ã\81¦ã\80\81é\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡のサイズを
+ã\81\8cé\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\82\92調æ\95´ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ç\94¨ã\81\84ã\82\89ã\82\8cã\82\8bã\80\82 TCP ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 ã\81§å\88©ç\94¨ã\81§ã\81\8dã\82\8bã\83¡ã\83¢ã\83ªã\83¼ã\81«å¿\9cã\81\98ã\81¦ã\80\81é\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼のサイズを
これらの変数の範囲で以下に示すデフォルトから動的に調整する。
.RS
.TP 10
\fImin\fP
-各 TCP ソケットが用いる送信バッファの最小サイズ。 デフォルト値はシステムのページサイズである (Linux 2.4 では、デフォルト値は 4K
-である)。 この値は、メモリ圧迫モードにおいても、 このサイズ以下の割り当てが成功することを保証するために用いられる。 これは、
-\fBSO_SNDBUF\fP を用いてソケットの最低送信バッファサイズを宣言する際には用いられない。
+å\90\84 TCP ã\82½ã\82±ã\83\83ã\83\88ã\81\8cç\94¨ã\81\84ã\82\8bé\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\9c\80å°\8fã\82µã\82¤ã\82ºã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ã\81¯ã\82·ã\82¹ã\83\86ã\83 ã\81®ã\83\9aã\83¼ã\82¸ã\82µã\82¤ã\82ºã\81§ã\81\82ã\82\8b (Linux 2.4 ã\81§ã\81¯ã\80\81ã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ã\81¯ 4K
+である)。 この値は、メモリー圧迫モードにおいても、 このサイズ以下の割り当てが成功することを保証するために用いられる。 これは、
+\fBSO_SNDBUF\fP ã\82\92ç\94¨ã\81\84ã\81¦ã\82½ã\82±ã\83\83ã\83\88ã\81®æ\9c\80ä½\8eé\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\82\92宣è¨\80ã\81\99ã\82\8bé\9a\9bã\81«ã\81¯ç\94¨ã\81\84ã\82\89ã\82\8cã\81ªã\81\84ã\80\82
.TP
\fIdefault\fP
.\" True in Linux 2.4 and 2.6
-TCP ソケットの送信バッファのデフォルトサイズ。 この値は、すべてのプロトコルに対して定義されている、
-ジェネリックなグローバルのデフォルトバッファサイズ \fI/proc/sys/net/core/wmem_default\fP より優先される。
-デフォルト値は 16K バイトである。 大きな送信バッファサイズが必要な場合は、 この値を増やすべきである (すべてのソケットに影響する)。 大きな
+TCP ã\82½ã\82±ã\83\83ã\83\88ã\81®é\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\82µã\82¤ã\82ºã\80\82 ã\81\93ã\81®å\80¤ã\81¯ã\80\81ã\81\99ã\81¹ã\81¦ã\81®ã\83\97ã\83ã\83\88ã\82³ã\83«ã\81«å¯¾ã\81\97ã\81¦å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\81
+ã\82¸ã\82§ã\83\8dã\83ªã\83\83ã\82¯ã\81ªã\82°ã\83ã\83¼ã\83\90ã\83«ã\81®ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82º \fI/proc/sys/net/core/wmem_default\fP ã\82\88ã\82\8aå\84ªå\85\88ã\81\95ã\82\8cã\82\8bã\80\82
+ã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ã\81¯ 16K ã\83\90ã\82¤ã\83\88ã\81§ã\81\82ã\82\8bã\80\82 大ã\81\8dã\81ªé\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\81\8cå¿\85è¦\81ã\81ªå ´å\90\88ã\81¯ã\80\81 ã\81\93ã\81®å\80¤ã\82\92å¢\97ã\82\84ã\81\99ã\81¹ã\81\8dã\81§ã\81\82ã\82\8b (ã\81\99ã\81¹ã\81¦ã\81®ã\82½ã\82±ã\83\83ã\83\88ã\81«å½±é\9f¿ã\81\99ã\82\8b)ã\80\82 大ã\81\8dã\81ª
TCP ウィンドウを用いるには、 \fI/proc/sys/net/ipv4/tcp_window_scaling\fP を 0 以外の値 (デフォルト値)
にしておかなければならない。
.TP
\fImax\fP
-各 TCP ソケットで用いる送信バッファの最大サイズ。 この値よりも \fI/proc/sys/net/core/wmem_max\fP が優先される。
-これは \fBSO_SNDBUF\fP を用いてソケットの送信バッファサイズ制限を宣言する際には用いられない。 デフォルト値は以下の式で計算される。
+å\90\84 TCP ã\82½ã\82±ã\83\83ã\83\88ã\81§ç\94¨ã\81\84ã\82\8bé\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\9c\80大ã\82µã\82¤ã\82ºã\80\82 ã\81\93ã\81®å\80¤ã\82\88ã\82\8aã\82\82 \fI/proc/sys/net/core/wmem_max\fP ã\81\8cå\84ªå\85\88ã\81\95ã\82\8cã\82\8bã\80\82
+ã\81\93ã\82\8cã\81¯ \fBSO_SNDBUF\fP ã\82\92ç\94¨ã\81\84ã\81¦ã\82½ã\82±ã\83\83ã\83\88ã\81®é\80\81ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºå\88¶é\99\90ã\82\92宣è¨\80ã\81\99ã\82\8bé\9a\9bã\81«ã\81¯ç\94¨ã\81\84ã\82\89ã\82\8cã\81ªã\81\84ã\80\82 ã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ã\81¯ä»¥ä¸\8bã\81®å¼\8fã\81§è¨\88ç®\97ã\81\95ã\82\8cã\82\8bã\80\82
max(65536, min(4MB, \fItcp_mem\fP[1]*PAGE_SIZE/128))
-(Linux 2.4 では、デフォルト値は 128K バイトで、 メモリの少ないシステムでは 64K にまで減らされる。)
+(Linux 2.4 ã\81§ã\81¯ã\80\81ã\83\87ã\83\95ã\82©ã\83«ã\83\88å\80¤ã\81¯ 128K ã\83\90ã\82¤ã\83\88ã\81§ã\80\81 ã\83¡ã\83¢ã\83ªã\83¼ã\81®å°\91ã\81ªã\81\84ã\82·ã\82¹ã\83\86ã\83 ã\81§ã\81¯ 64K ã\81«ã\81¾ã\81§æ¸\9bã\82\89ã\81\95ã\82\8cã\82\8bã\80\82)
.RE
.TP
\fItcp_workaround_signed_windows\fP (ブール値; デフォルト: 無効; Linux 2.6.26 以降)
.SS ソケットオプション
.\" or SOL_TCP on Linux
TCP ソケットのオプションは、 オプションレベル引数に \fIIPPROTO_TCP\fP を指定した \fBsetsockopt\fP(2) で設定でき、
-\fBgetsockopt\fP(2) で取得できる。 注釈がない限り、 \fIoptval\fP は \fIint\fP へのポインタである。 さらに、ほとんどの
+\fBgetsockopt\fP(2) ã\81§å\8f\96å¾\97ã\81§ã\81\8dã\82\8bã\80\82 注é\87\88ã\81\8cã\81ªã\81\84é\99\90ã\82\8aã\80\81 \fIoptval\fP ã\81¯ \fIint\fP ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\81\95ã\82\89ã\81«ã\80\81ã\81»ã\81¨ã\82\93ã\81©ã\81®
\fBIPPROTO_IP\fP ソケットオプションも TCP ソケットに対して有効である。詳細は \fBip\fP(7) を見よ。
.TP
\fBTCP_CONGESTION\fP (Linux 2.6.13 以降)
\fBTCP_CORK\fP (Linux 2.2 以降)
.\" precisely: since 2.1.127
セットされると、 partial フレームを送信しない。 このオプションが解除されると、 キューイングされた partial フレームが送られる。これは
-\fBsendfile\fP(2) を呼ぶ前にヘッダを前置したり、 スループットを最適化したい場合に便利である。 現在の実装では、 \fBTCP_CORK\fP
+\fBsendfile\fP(2) ã\82\92å\91¼ã\81¶å\89\8dã\81«ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92å\89\8dç½®ã\81\97ã\81\9fã\82\8aã\80\81 ã\82¹ã\83«ã\83¼ã\83\97ã\83\83ã\83\88ã\82\92æ\9c\80é\81©å\8c\96ã\81\97ã\81\9fã\81\84å ´å\90\88ã\81«ä¾¿å\88©ã\81§ã\81\82ã\82\8bã\80\82 ç\8f¾å\9c¨ã\81®å®\9fè£\85ã\81§ã\81¯ã\80\81 \fBTCP_CORK\fP
で出力を抑えることができる時間の上限は 200 ミリ秒である。 この上限に達すると、キューイングされたデータは自動的に送信される。 Linux
2.5.71 以降においてのみ、このオプションを \fBTCP_NODELAY\fP と同時に用いることができる。
移植性の必要なプログラムではこのオプションを用いるべきではない。
\fBTCP_NODELAY\fP
.\" Present in Linux 1.0
設定すると Nagle アルゴリズムを無効にする。 すなわち、データ量が少ない場合でも 各セグメントは可能な限り早く送信される。 設定されていないと、
-送信する分だけ溜まるまでデータはバッファされ、 小さなパケットを頻繁に送らずにすみ、 ネットワークを有効に利用できる。 このオプションは
+é\80\81ä¿¡ã\81\99ã\82\8bå\88\86ã\81 ã\81\91æº\9cã\81¾ã\82\8bã\81¾ã\81§ã\83\87ã\83¼ã\82¿ã\81¯ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\95ã\82\8cã\80\81 å°\8fã\81\95ã\81ªã\83\91ã\82±ã\83\83ã\83\88ã\82\92é »ç¹\81ã\81«é\80\81ã\82\89ã\81\9aã\81«ã\81\99ã\81¿ã\80\81 ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\82\92æ\9c\89å\8a¹ã\81«å\88©ç\94¨ã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¯
\fBTCP_CORK\fP により上書きされる。しかしながら、 \fBTCP_CORK\fP が設定されている場合であっても、このオプションを設定すると、
送信待ちの出力を明示的に掃き出す (flush) ことになる。
.TP
緊急データは通常のデータとしてストリームに挿入されることになる (これは \fBSO_OOBINLINE\fP がセットされている場合でも同様である)。
これは BSD ベースのスタックとは異なる。
.PP
-Linux は、デフォルトでは urgent ポインタフィールドの解釈に BSD 互換の方法を用いる。これは RFC\ 1122 に反しているが、
+Linux ã\81¯ã\80\81ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ urgent ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81®è§£é\87\88ã\81« BSD äº\92æ\8f\9bã\81®æ\96¹æ³\95ã\82\92ç\94¨ã\81\84ã\82\8bã\80\82ã\81\93ã\82\8cã\81¯ RFC\ 1122 ã\81«å\8f\8dã\81\97ã\81¦ã\81\84ã\82\8bã\81\8cã\80\81
他のスタックと同時に動作させるにはやむを得ない。これは \fI/proc/sys/net/ipv4/tcp_stdurg\fP によって変更できる。
\fBrecv\fP(2) の \fBMSG_PEEK\fP フラグを使うと、帯域外データを覗き見することができる。
Linux 2.4 以降では、 \fBrecv\fP(2) (や \fBrecvmsg\fP(2)) の \fIflags\fP 引き数に \fBMSG_TRUNC\fP
-を使うことができる。 このフラグを指定すると、受信データは、呼び出し元から渡されたバッファ にコピーされて返されるのではなく、廃棄されるようになる。
+を使うことができる。 このフラグを指定すると、受信データは、呼び出し元から渡されたバッファー にコピーされて返されるのではなく、廃棄されるようになる。
Linux 2.4.4 以降では、 \fBMSG_TRUNC\fP を、帯域外データを受信するための \fBMSG_OOB\fP
と組み合わせて使った場合にも、これと同じ効果を持つようになっている。
.SS ioctl
\fBSIOCINQ\fP
.\" FIXME http://sources.redhat.com/bugzilla/show_bug.cgi?id=12002,
.\" filed 2010-09-10, may cause SIOCINQ to be defined in glibc headers
-受信バッファのキューにある、まだ読んでいないデータの量を返す。ソケットは
+å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82ã\83¥ã\83¼ã\81«ã\81\82ã\82\8bã\80\81ã\81¾ã\81 èªã\82\93ã\81§ã\81\84ã\81ªã\81\84ã\83\87ã\83¼ã\82¿ã\81®é\87\8fã\82\92è¿\94ã\81\99ã\80\82ã\82½ã\82±ã\83\83ã\83\88ã\81¯
LISTEN 状態にあってはならず、さもないとエラー (\fBEINVAL\fP) が返る。
\fBSIOCINQ\fP は \fI<linux/sockios.h>\fP で定義されている。
代わりに、\fI<sys/ioctl.h>\fP で定義されている、同義語の \fBFIONREAD\fP
.\"
.TH TERMIO 7 2013\-02\-12 Linux "Linux Programmer's Manual"
.SH 名前
-termio \- System V 端末ドライバインタフェース
+termio \- System V 端æ\9c«ã\83\89ã\83©ã\82¤ã\83\90ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹
.SH 説明
-\fBtermio\fP ã\81¯ã\80\81å\8f¤ã\81\84 System V 端æ\9c«ã\83\89ã\83©ã\82¤ã\83\90ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81®å\90\8då\89\8dã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\82¤ã\83³ã\82¿フェースは、 端末設定を保持するための
+\fBtermio\fP ã\81¯ã\80\81å\8f¤ã\81\84 System V 端æ\9c«ã\83\89ã\83©ã\82¤ã\83\90ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®å\90\8då\89\8dã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\82¤ã\83³ã\82¿ã\83¼フェースは、 端末設定を保持するための
\fItermio\fP 構造体、および端末属性を取得・変更するための種々の \fBioctl\fP(2) 操作を定義していた。
-\fBtermio\fP ã\82¤ã\83³ã\82¿ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ç\8f¾å\9c¨ã\81§ã\81¯æ\99\82代é\81\85ã\82\8cã\81§ã\81\82ã\82\8bã\80\82 POSIX.1\-1990 ã\81§ã\80\81ã\81\93ã\81®ã\82¤ã\83³ã\82¿フェースの修正版が \fBtermios\fP
+\fBtermio\fP ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ç\8f¾å\9c¨ã\81§ã\81¯æ\99\82代é\81\85ã\82\8cã\81§ã\81\82ã\82\8bã\80\82 POSIX.1\-1990 ã\81§ã\80\81ã\81\93ã\81®ã\82¤ã\83³ã\82¿ã\83¼フェースの修正版が \fBtermios\fP
という名前で標準化された。 POSIX.1 のデータ構造は System V 版と少し違いがある。 また、POSIX.1 は System V
版で存在した種々の \fBioctl\fP(2) 操作を置き換える関数群を定義した (このようになったのは、 \fBioctl\fP(2)
が標準化されていなかったことと、 \fBioctl\fP(2) の第三引き数が可変長引き数で型チェックができなかったのが理由である)。
\fI実時間\fPは、特定の時点から計った時間と定義される。 特定の時点とは、過去の標準的な時点 (下記の紀元 (Epoch) とカレンダ時刻の説明を参照)
や、 プロセスの一生における何らかの時点 (例えば、開始時) である (\fI経過時間\fP)。
-\fIプロセス時間\fPは、プロセスによって使われた総 CPU 時間と定義される。 多くの場合、\fIユーザ\fP時間と\fIシステム\fP時間に分けられる。 ユーザ
-CPU 時間は、コードをユーザモードで実行するのに使った時間である。 システム CPU 時間は、そのプロセスのために
+\fIプロセス時間\fPは、プロセスによって使われた総 CPU 時間と定義される。 多くの場合、\fIユーザー\fP時間と\fIシステム\fP時間に分けられる。 ユーザー
+CPU æ\99\82é\96\93ã\81¯ã\80\81ã\82³ã\83¼ã\83\89ã\82\92ã\83¦ã\83¼ã\82¶ã\83¼ã\83¢ã\83¼ã\83\89ã\81§å®\9fè¡\8cã\81\99ã\82\8bã\81®ã\81«ä½¿ã\81£ã\81\9fæ\99\82é\96\93ã\81§ã\81\82ã\82\8bã\80\82 ã\82·ã\82¹ã\83\86ã\83 CPU æ\99\82é\96\93ã\81¯ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹ã\81®ã\81\9fã\82\81ã\81«
カーネルがシステムモードで実行するのに使った時間である (例えば、システムコールを実行するのに使った時間)。 \fBtime\fP(1)
コマンドはプログラムの実行に費された総 CPU 時間を計るのに使用される。 プログラムは、自身が費した総 CPU 時間を \fBtimes\fP(2),
\fBgetrusage\fP(2), \fBclock\fP(3) を使って計ることができる。
\fIHZ\fP の値はカーネルのバージョンとハードウェアプラットフォームで異なる。 i386 の場合は以下の通りである: 2.4.x
とそれより前のカーネルでは、HZ は 100 であったので、 jiffy の値は 0.01 秒になっていた。 2.6.0 以降では、HZ は 1000
-に増やされたので、jiffy の値は 0.001 秒である。 カーネル 2.6.13 以降では、HZ の値はカーネル設定パラメータになり、 100,
+ã\81«å¢\97ã\82\84ã\81\95ã\82\8cã\81\9fã\81®ã\81§ã\80\81jiffy ã\81®å\80¤ã\81¯ 0.001 ç§\92ã\81§ã\81\82ã\82\8bã\80\82 ã\82«ã\83¼ã\83\8dã\83« 2.6.13 以é\99\8dã\81§ã\81¯ã\80\81HZ ã\81®å\80¤ã\81¯ã\82«ã\83¼ã\83\8dã\83«è¨å®\9aã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81«ã\81ªã\82\8aã\80\81 100,
250 (デフォルト), 1000 という値にできる。 それぞれ jiffy の値は 0.01, 0.004, 0.001 秒になる。 カーネル
2.6.20 以降では、300 も利用できるようになっている。 300 は一般的な映像フレームレートの公倍数である (PAL, 25HZ; NTSC,
30HZ)。
.\" see glibc elf/dl-support.c and kernel fs/binfmt_elf.c.
.\"
\fBtimes\fP(2) システムコールは特殊なケースであり、 このシステムコールはカーネル定数 \fIUSER_HZ\fP
-で定義された粒度で時間を報告する。 ユーザ空間のアプリケーションは \fIsysconf(_SC_CLK_TCK)\fP
+で定義された粒度で時間を報告する。 ユーザー空間のアプリケーションは \fIsysconf(_SC_CLK_TCK)\fP
を使ってこの定数の値を知ることができる。
.SS 高精度タイマー
Linux 2.6.21 より前では、タイマーやスリープ関連のシステムコールの精度も jiffy のサイズにより制限されていた。
\fBCONFIG_HIGH_RES_TIMERS\fP で制御できる。 高精度タイマーをサポートしているシステムでは、タイマーとスリープ関連のシステムコール
の精度はもはや jiffy に制約されることはなく、 ハードウェアが許す限りの精度となる (最近のハードウェアではマイクロ秒単位の精度が一般的である)。
高精度タイマーがサポートされているかは、 \fBclock_getres\fP(2) を呼び出して分解能を確認するか、
-\fI/proc/timer_list\fP 内の "resolution" エントリを参照するかで判断できる。
+\fI/proc/timer_list\fP å\86\85ã\81® "resolution" ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\81\8bã\81§å\88¤æ\96ã\81§ã\81\8dã\82\8bã\80\82
-é«\98精度ã\82¿ã\82¤ã\83\9eã\83¼ã\81¯ã\81\99ã\81¹ã\81¦ã\81®ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81§ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b 訳ã\81§ã\81¯ã\81ªã\81\84 (対å¿\9cã\81\97ã\81¦ã\81\84ã\82\8bã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81¯ x86, arm, powerpc
-である)。
+é«\98精度ã\82¿ã\82¤ã\83\9eã\83¼ã\81¯ã\81\99ã\81¹ã\81¦ã\81®ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b 訳ã\81§ã\81¯ã\81ªã\81\84 (対å¿\9cã\81\97ã\81¦ã\81\84ã\82\8bã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81¯ x86, arm,
+powerpc である)。
.SS 紀元
UNIX システムは時刻を 紀元 (1970\-01\-01 00:00:00 +0000 (UTC)) からの秒数で表現する。
様々なシステムコールと関数により、指定された一定の時間、 プログラムはスリープ (実行を停止) することが可能である。 \fBnanosleep\fP(2),
\fBclock_nanosleep\fP(2), \fBsleep\fP(3) を参照すること。
-æ§\98ã\80\85ã\81ªã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81«ã\82\88ã\82\8aã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81¯å°\86æ\9d¥ã\81®ã\81\82ã\82\8bæ\99\82ç\82¹ã\81§ æ\9c\89å\8a¹æ\9c\9fé\96\93ã\81\8cçµ\82äº\86ã\81\99ã\82\8bã\82¿ã\82¤ã\83\9eã\82\92è¨å®\9aã\81§ã\81\8dã\82\8bã\80\82 ã\81¾ã\81\9fã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¨ã\81\97ã\81¦ç¹°ã\82\8aè¿\94ã\81\97é\96\93é\9a\94ã\81\8cæ\8c\87å®\9aã\81§ã\81\8dã\82\8bã\82\82ã\81®ã\82\82ã\81\82る。
-\fBalarm\fP(2), \fBgetitimer\fP(2), \fBtimerfd_create\fP(2), \fBtimer_create\fP(2)
-を参照すること。
+æ§\98ã\80\85ã\81ªã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\81«ã\82\88ã\82\8aã\80\81ã\83\97ã\83ã\82»ã\82¹ã\81¯å°\86æ\9d¥ã\81®ã\81\82ã\82\8bæ\99\82ç\82¹ã\81§ æ\9c\89å\8a¹æ\9c\9fé\96\93ã\81\8cçµ\82äº\86ã\81\99ã\82\8bã\82¿ã\82¤ã\83\9eã\83¼ã\82\92è¨å®\9aã\81§ã\81\8dる。
+またオプションとして繰り返し間隔が指定できるものもある。 \fBalarm\fP(2), \fBgetitimer\fP(2),
+\fBtimerfd_create\fP(2), \fBtimer_create\fP(2) を参照すること。
.SS "timer slack"
Linux 2.6.28 以降では、スレッドの "timer slack" 値を制御することができる。 "timer slack" は、
停止中のシステムコールがタイムアウト以外で wake\-up される (起こされる) 際に、 カーネルに許容される遅延時間である。
\fI/proc/sys/net/ipv4/ip_local_port_range\fP で定義されている範囲の外で空いているローカルなポートを割り当て、
ソケットを \fBINADDR_ANY\fP にバインドする。
-受信動作はパケットを一つだけ返す。渡したバッファよりもパケットが 小さければ、そのパケットの大きさのデータだけが返される。
-逆にバッファよりも大きい場合はパケットは丸められ、 \fBMSG_TRUNC\fP フラグがセットされる。 \fBMSG_WAITALL\fP
+å\8f\97ä¿¡å\8b\95ä½\9cã\81¯ã\83\91ã\82±ã\83\83ã\83\88ã\82\92ä¸\80ã\81¤ã\81 ã\81\91è¿\94ã\81\99ã\80\82渡ã\81\97ã\81\9fã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\88ã\82\8aã\82\82ã\83\91ã\82±ã\83\83ã\83\88ã\81\8c å°\8fã\81\95ã\81\91ã\82\8cã\81°ã\80\81ã\81\9dã\81®ã\83\91ã\82±ã\83\83ã\83\88ã\81®å¤§ã\81\8dã\81\95ã\81®ã\83\87ã\83¼ã\82¿ã\81 ã\81\91ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\80\82
+é\80\86ã\81«ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\88ã\82\8aã\82\82大ã\81\8dã\81\84å ´å\90\88ã\81¯ã\83\91ã\82±ã\83\83ã\83\88ã\81¯ä¸¸ã\82\81ã\82\89ã\82\8cã\80\81 \fBMSG_TRUNC\fP ã\83\95ã\83©ã\82°ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\82\8bã\80\82 \fBMSG_WAITALL\fP
はサポートしていない。
IP オプションは、 \fBip\fP(7) に記述されているソケットオプションを用いて読み書きできる。 これらは適切な \fI/proc\fP
-パラメータが有効な場合に限ってカーネルによって処理される (しかし無効になっている場合でもユーザーには渡される)。 \fBip\fP(7) を参照のこと。
+ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8cæ\9c\89å\8a¹ã\81ªå ´å\90\88ã\81«é\99\90ã\81£ã\81¦ã\82«ã\83¼ã\83\8dã\83«ã\81«ã\82\88ã\81£ã\81¦å\87¦ç\90\86ã\81\95ã\82\8cã\82\8b (ã\81\97ã\81\8bã\81\97ç\84¡å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81§ã\82\82ã\83¦ã\83¼ã\82¶ã\83¼ã\81«ã\81¯æ¸¡ã\81\95ã\82\8cã\82\8b)ã\80\82 \fBip\fP(7) ã\82\92å\8f\82ç\85§ã\81®ã\81\93ã\81¨ã\80\82
\fBMSG_DONTROUTE\fP フラグが送信時にセットされている場合には、 行き先アドレスはローカルなインターフェースアドレスから
参照できなければならない。パケットはそのインターフェースにしか送られない。
\fBEMSGSIZE\fP を返す。 \fBEMSGSIZE\fP を返された場合、アプリケーションはパケットサイズを小さくすべきである。 ソケットオプション
\fBIP_MTU_DISCOVER\fP または \fI/proc/sys/net/ipv4/ip_no_pmtu_disc\fP ファイルを使って Path
MTU Discovery を無効にすることもできる (詳細は \fBip\fP(7) を参照)。 Path MTU Discovery
-を無効にした場合は、パケットサイズが インタフェースの MTU よりも大きいと UDP はそのパケットを フラグメント化して送出する。
+ã\82\92ç\84¡å\8a¹ã\81«ã\81\97ã\81\9få ´å\90\88ã\81¯ã\80\81ã\83\91ã\82±ã\83\83ã\83\88ã\82µã\82¤ã\82ºã\81\8c ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81® MTU ã\82\88ã\82\8aã\82\82大ã\81\8dã\81\84ã\81¨ UDP ã\81¯ã\81\9dã\81®ã\83\91ã\82±ã\83\83ã\83\88ã\82\92 ã\83\95ã\83©ã\82°ã\83¡ã\83³ã\83\88å\8c\96ã\81\97ã\81¦é\80\81å\87ºã\81\99ã\82\8bã\80\82
しかしながら、性能と信頼性の理由から Path MTU Discovery を 無効にするのは推奨できない。
.SS アドレスのフォーマット
UDP は IPv4 の \fIsockaddr_in\fP アドレスフォーマットを用いる。これは \fBip\fP(7) に記述されている。
\fBIP_RECVERR\fP オプションが有効になっていると、 すべてのエラーはソケットのエラーキューに保存される。 これは
\fBMSG_ERRQUEUE\fP フラグをセットして \fBrecvmsg\fP(2) を呼べば受信できる。
-.SS "/proc インタフェース"
-システム全体の UDP パラメータ設定には、 \fI/proc/sys/net/ipv4/\fP ディレクトリ内のファイルの読み書きでアクセスできる。
+.SS "/proc ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹"
+システム全体の UDP パラメーター設定には、 \fI/proc/sys/net/ipv4/\fP ディレクトリ内のファイルの読み書きでアクセスできる。
.TP
\fIudp_mem\fP (Linux 2.6.25 以降)
これは 3 つの整数からなるベクトル値で、 UDP の全ソケットのキューで利用可能なページ数を制御する。
.RS
.TP 10
\fImin\fP
-このページ数より少なければ、UDP はそのメモリ使用に関して 干渉されない。 UDP に割り当てられたメモリ総量がこの値を超過すると、 UDP
-はメモリ使用量を調整し始める。
+このページ数より少なければ、UDP はそのメモリー使用に関して 干渉されない。 UDP に割り当てられたメモリー総量がこの値を超過すると、 UDP
+はメモリー使用量を調整し始める。
.TP
\fIpressure\fP
この値は \fItcp_mem\fP の形式 (\fBtcp\fP(7) 参照) と合わせるために導入された
UDP の全ソケットのキューで利用可能なページ数。
.RE
.IP
-これらの 3 つの値のデフォルト値は、 ブート時に利用可能なメモリ総量から計算される。
+これらの 3 つの値のデフォルト値は、 ブート時に利用可能なメモリー総量から計算される。
.TP
\fIudp_rmem_min\fP (integer; デフォルト値: PAGE_SIZE; Linux 2.6.25 以降)
-メモリ使用量の調整中に、UDP ソケットが使用できる受信バッファの最小値 (バイト単位)。 UDP の全ソケットのページ使用量の合計が
+メモリー使用量の調整中に、UDP ソケットが使用できる受信バッファーの最小値 (バイト単位)。 UDP の全ソケットのページ使用量の合計が
\fIudp_mem\fP pressure を超過している場合であっても、 各 UDP ソケットはデータの受信にこのサイズ分だけは使用することができる。
.TP
\fIudp_wmem_min\fP (integer; デフォルト値: PAGE_SIZE; Linux 2.6.25 以降)
-メモリ使用量の調整中に、UDP ソケットが使用できる送信バッファの最小値 (バイト単位)。 UDP の全ソケットのページ使用量の合計が
+メモリー使用量の調整中に、UDP ソケットが使用できる送信バッファーの最小値 (バイト単位)。 UDP の全ソケットのページ使用量の合計が
\fIudp_mem\fP pressure を超過している場合であっても、 各 UDP ソケットはデータの送信にこのサイズ分だけは使用することができる。
.SS ソケットオプション
UDP ソケットオプションを設定または取得するには、 取得には \fBgetsockopt\fP(2) を、設定には \fBsetsockopt\fP(2)
をオプションレベル引数に \fBIPPROTO_UDP\fP を指定して呼び出す。 注釈がない限り、 \fIoptval\fP は \fIint\fP
-へのポインタである。
+ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.TP
\fBUDP_CORK\fP (Linux 2.5.44 以降)
.\" FIXME document UDP_ENCAP (new in kernel 2.5.67)
\fBFIONREAD\fP (\fBSIOCINQ\fP)
.\" See http://www.securiteam.com/unixfocus/5KP0I15IKO.html
.\" "GNUnet DoS (UDP Socket Unreachable)", 14 May 2006
-æ\95´æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92å¼\95ã\81\8dæ\95°ã\81«å\8f\96ã\82\8aã\80\81ã\81\9dã\81®ã\83\9dã\82¤ã\83³ã\82¿に、次の処理待ちのデータグラムの
+æ\95´æ\95°ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å¼\95ã\81\8dæ\95°ã\81«å\8f\96ã\82\8aã\80\81ã\81\9dã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼に、次の処理待ちのデータグラムの
サイズをバイト単位で返す。処理待ちのデータグラムがない場合は 0 を返す。
\fB警告\fP: \fBFIONREAD\fP を使った場合、処理待ちのデータグラムがない場合と、
次の処理待ちデータグラムが 0 バイトのデータの場合を区別することができない。
UCS 文字集合の 0x0000 から 0x007f は、古典的な US\-ASCII 文字集合の文字と同じである。
また 0x0000 から 0x00ff の範囲では、ISO 8859\-1 (Latin\-1) 文字集合の文字と同じである。
.SS "合成文字 (Combining characters)"
-UCS ã\81®ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82³ã\83¼ã\83\89ã\83»ã\83\9dã\82¤ã\83³ã\83\88ã\81¯
+UCS のいくつかのコードポイントは
\fI合成文字 (combining characters)\fP
に割り当てられている。
-ã\81\93ã\82\8cã\82\89ã\81¯ã\82¿ã\82¤ã\83\97ã\83©ã\82¤ã\82¿ã\83¼ã\81®ç§»å\8b\95ã\81\97ã\81ªã\81\84ã\82¢ã\82¯ã\82»ã\83³ã\83\88ã\83»ã\82ã\83¼ã\81«ä¼¼ã\81¦ã\81\84ã\82\8bã\80\82
+これらはタイプライターの移動しないアクセントキーに似ている。
合成文字は直前の文字にアクセントのみを加える。
最も重要なアクセント付きの文字はそれ自身のコードを UCS に持っている。
一方で合成文字機構は全ての文字にアクセントや発音区別符号を加えることができる。
Level 3
全ての UCS 文字をサポートする。
.PP
-ã\83¦ã\83\8bã\82³ã\83¼ã\83\89ã\83»ã\82³ã\83³ã\82½ã\83¼ã\82·ã\82¢ã\83 (Unicode Consortium) ã\81\8bã\82\89ç\99ºè¡\8cã\81\95ã\82\8cã\81\9f Unicode 3.0 Standard
+ユニコードコンソーシアム (Unicode Consortium) から発行された Unicode 3.0 Standard
は、ISO 10646\-1:2000 に記述された UCS Basic Multilingual Plane
の level 3 実装と全く同じである。
Unicode 3.1 では ISO 10646\-2 の補助面が追加されている。
\fBwctomb\fP(3) や \fBmbsrtowcs\fP(3)、さらには \fBwcwidth\fP(3) といったライブラリ関数は、
文字出力でどれだけカーソルが進んだか (0\(en2) を返す。
.PP
-.SS ã\83\97ã\83©ã\82¤ã\83\99ã\83¼ã\83\88ã\83»ã\82¨ã\83ªã\82¢
+.SS プライベートエリア
基本多言語面 (Basic Multilingual Plane (BMP)) では、
0xe000 〜 0xf8ff の範囲は、規格ではいかなる文字も割り当てず、
私的な使用のために予約されている。
Linux コミュニティでは、
-ã\81\93ã\81®ã\83\97ã\83©ã\82¤ã\83\99ã\83¼ã\83\88ã\83»ã\82¨ã\83ªã\82¢ã\82\92ã\81\95ã\82\89ã\81«ç´°ã\81\8bã\81\8få\88\86å\89²ã\81\97ã\81¦ä½¿ç\94¨ã\81\99ã\82\8bã\80\82
-0xe000 ã\80\9c 0xefff ã\81®ç¯\84å\9b²ã\81¯ã\82¨ã\83³ã\83\89ã\83»ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cå\80\8bã\80\85ã\81«ä½¿ç\94¨ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
+このプライベートエリアをさらに細かく分割して使用する。
+0xe000 〜 0xefff の範囲はエンドユーザーが個々に使用することができる。
0xf000 〜 0xf8ff の範囲は Linux Zone で
全ての Linux ユーザーで共通に使用する。
Linux Zone への文字割り当ての登録は
これらの 2 進の接頭語が導入される前は、 k=1000 と K=1024 のように使うのが割に良く知られた習慣だった (b=ビット、B=バイト
の関係に似ている)。 残念ながら M は最初から大文字なので、 2 進であることを示すためにさらに大文字にすることはできなかった。
-当初はこのことはあまり大きな問題ではなかった。 なぜならメモリモジュールやディスクは 2 の累乗になるものだったので、
+å½\93å\88\9dã\81¯ã\81\93ã\81®ã\81\93ã\81¨ã\81¯ã\81\82ã\81¾ã\82\8a大ã\81\8dã\81ªå\95\8fé¡\8cã\81§ã\81¯ã\81ªã\81\8bã\81£ã\81\9fã\80\82 ã\81ªã\81\9cã\81ªã\82\89ã\83¡ã\83¢ã\83ªã\83¼ã\83¢ã\82¸ã\83¥ã\83¼ã\83«ã\82\84ã\83\87ã\82£ã\82¹ã\82¯ã\81¯ 2 ã\81®ç´¯ä¹\97ã\81«ã\81ªã\82\8bã\82\82ã\81®ã\81 ã\81£ã\81\9fã\81®ã\81§ã\80\81
皆そのようなところでは「キロバイト」を 1024 バイト、 「メガバイト」を 1048576 バイトであるとみなしていたからである。
最初は接頭語の「キロ」とか「メガ」を曖昧に援用していたのだが、 そのうちコンピュータに関連する話題では、こちらが「実際の意味」になっていった。
しかしその後ディスクのテクノロジーが代わり、 ディスクサイズは任意の数値をとるようになった。 どっちつかずの時期がしばらく続いたあと、
ドメインデータグラムソケットは常に信頼でき、 データグラムの並び替えは行わない)。 \fBSOCK_SEQPACKET\fP は、
メッセージ境界を保存し送信された順序でメッセージを届ける接続指向ソケットで有効である (Linux 2.6.4 以降で利用できる)。
-UNIX ドメインソケットでは、補助データを使って ファイルディスクリプタや
+UNIX ã\83\89ã\83¡ã\82¤ã\83³ã\82½ã\82±ã\83\83ã\83\88ã\81§ã\81¯ã\80\81è£\9cå\8a©ã\83\87ã\83¼ã\82¿ã\82\92使ã\81£ã\81¦ ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\84
プロセスの信任状 (credential) を 送受信することもできる。
.SS アドレスのフォーマット
UNIX ドメインソケットのアドレスは以下の構造体で表現される。
\fIcmsg_type\fP フィールドにタイプをセットする。 詳細は \fBcmsg\fP(3) を見よ。
.TP
\fBSCM_RIGHTS\fP
-ä»\96ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81§ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®ã\82»ã\83\83ã\83\88ã\82\92é\80\81å\8f\97ä¿¡ã\81\99ã\82\8bã\80\82 ã\83\87ã\83¼ã\82¿é\83¨å\88\86ã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿の整数配列が入っている。
-渡されたファイルディスクリプタは、あたかも \fBdup\fP(2) で生成されたかのように振る舞う。
+ä»\96ã\81®ã\83\97ã\83ã\82»ã\82¹ã\81§ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®ã\82»ã\83\83ã\83\88ã\82\92é\80\81å\8f\97ä¿¡ã\81\99ã\82\8bã\80\82 ã\83\87ã\83¼ã\82¿é\83¨å\88\86ã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼の整数配列が入っている。
+渡ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81ã\81\82ã\81\9fã\81\8bã\82\82 \fBdup\fP(2) ã\81§ç\94\9fæ\88\90ã\81\95ã\82\8cã\81\9fã\81\8bã\81®ã\82\88ã\81\86ã\81«æ\8c¯ã\82\8bè\88\9eã\81\86ã\80\82
.TP
\fBSCM_CREDENTIALS\fP
UNIX 信任状を送受信する。これは認証に用いることができる。
.in
glibc 2.8 以降では、この構造体の定義を得るためには
-(\fIどの\fPヘッダファイルをインクルードするよりも前に)
+(\fIã\81©ã\81®\fPã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\99ã\82\8bã\82\88ã\82\8aã\82\82å\89\8dã\81«)
機能検査マクロ \fB_GNU_SOURCE\fP を定義しなければならない。
送信側が指定した信任状は、カーネルがチェックする。 実効ユーザー ID が 0 のプロセスには、 自分自身以外の値を指定する事が許される。
.\" That number is normally larger than the number of bytes of pending
.\" output. Since this info is, from userland's point of view, imprecise,
.\" and it may well change, probably best not to document this now.
-受信バッファのキューにある、まだ読んでいないデータの量を返す。ソケットは
+å\8f\97ä¿¡ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®ã\82ã\83¥ã\83¼ã\81«ã\81\82ã\82\8bã\80\81ã\81¾ã\81 èªã\82\93ã\81§ã\81\84ã\81ªã\81\84ã\83\87ã\83¼ã\82¿ã\81®é\87\8fã\82\92è¿\94ã\81\99ã\80\82ã\82½ã\82±ã\83\83ã\83\88ã\81¯
LISTEN 状態にあってはならず、さもないとエラー (\fBEINVAL\fP) が返る。
\fBSIOCINQ\fP は \fI<linux/sockios.h>\fP で定義されている。
代わりに、\fI<sys/ioctl.h>\fP で定義されている、同義語の \fBFIONREAD\fP
リモートソケットが予期しないかたちでクローズされた。
.TP
\fBEFAULT\fP
-ユーザーメモリアドレスが不正。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\83¡ã\83¢ã\83ªã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8cä¸\8dæ£ã\80\82
.TP
\fBEINVAL\fP
渡した引数が不正。よくある原因としては、渡したアドレスの \fIsun_type\fP フィール
\fBconnect\fP(2) に指定されたリモートアドレスのパス名が存在しなかった。
.TP
\fBENOMEM\fP
-メモリが足りない。
+ã\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\80\82
.TP
\fBENOTCONN\fP
ソケット操作にターゲットアドレスが必要だが、 このソケットは接続されていない。
が適用される。ソケットはいつでも unlink することができ、最後の参照が
クローズされたときにファイルシステムから削除される。
-\fBSOCK_STREAM\fP 上でファイルディスクリプタや信任状を渡すためには、同じ \fBsendmsg\fP(2) や \fBrecvmsg\fP(2)
+\fBSOCK_STREAM\fP ä¸\8aã\81§ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\84ä¿¡ä»»ç\8a¶ã\82\92渡ã\81\99ã\81\9fã\82\81ã\81«ã\81¯ã\80\81å\90\8cã\81\98 \fBsendmsg\fP(2) ã\82\84 \fBrecvmsg\fP(2)
コールで補助データ以外のデータを少なくとも 1 バイト送信/受信する必要がある。
.\"
.HP
\fIip_server = \fP[\fIuser\fP [ : \fIpassword\fP ] @ ] \fIhost\fP [ : \fIport\fP]
.PP
-このフォーマットには、ユーザ名、ユーザ名+パスワードを指定できる。 ポート番号を追加することも可能である。 \fIhost\fP
+このフォーマットには、ユーザー名、ユーザー名+パスワードを指定できる。 ポート番号を追加することも可能である。 \fIhost\fP
はホストコンピュータの名前で、 DNS で定義される名前か IP アドレス (ピリオドで区切られた数字) で指定する。したがって URI
<http://fred:fredpassword@xyz.com:8080/> は、ホスト xyz.com に fred として
(パスワードを使って) ポート 8080 を使ってログインする。 パスワードは可能なら URI には含めないほうが良いだろう。
-パスワードを直書きすると様々なセキュリティ上のリスクが生じるからである。 URL にユーザ名だけを与え、パスワードを与えない場合は、
-リモートサーバはパスワードを要求してくる。 URL を解釈したプログラムが、ユーザにこの入力を促すことになろう。
+パスワードを直書きすると様々なセキュリティ上のリスクが生じるからである。 URL にユーザー名だけを与え、パスワードを与えない場合は、
+ã\83ªã\83¢ã\83¼ã\83\88ã\82µã\83¼ã\83\90ã\81¯ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82\92è¦\81æ±\82ã\81\97ã\81¦ã\81\8fã\82\8bã\80\82 URL ã\82\92解é\87\88ã\81\97ã\81\9fã\83\97ã\83ã\82°ã\83©ã\83 ã\81\8cã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81«ã\81\93ã\81®å\85¥å\8a\9bã\82\92ä¿\83ã\81\99ã\81\93ã\81¨ã\81«ã\81ªã\82\8dã\81\86ã\80\82
.PP
以下に、 UNIX 風のシステムで非常に良く用いられており、 多くのツールが理解するスキームを示す。 URI
を使うツールの多くでは、内部スキームや特殊なスキームも 使えることが多い。そのようなスキームに関してはツールのドキュメントを見ること。
など。
.PP
問い合わせ (query) を、古い "isindex" フォーマットによって送ることもできる。 このフォーマットは単語またはフレーズからなり、等号
-(=) は含まない。 より長い "GET" フォーマットでも問い合わせは行える。 このフォーマットには、一つ以上の問い合わせエントリが
-\fIkey\fP=\fIvalue\fP という形式で含まれる。それぞれのエントリはアンパサンド (&) で区切られる。 \fIkey\fP
+(=) ã\81¯å\90«ã\81¾ã\81ªã\81\84ã\80\82 ã\82\88ã\82\8aé\95·ã\81\84 "GET" ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\81§ã\82\82å\95\8fã\81\84å\90\88ã\82\8fã\81\9bã\81¯è¡\8cã\81\88ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\81«ã\81¯ã\80\81ä¸\80ã\81¤ä»¥ä¸\8aã\81®å\95\8fã\81\84å\90\88ã\82\8fã\81\9bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8c
+\fIkey\fP=\fIvalue\fP ã\81¨ã\81\84ã\81\86å½¢å¼\8fã\81§å\90«ã\81¾ã\82\8cã\82\8bã\80\82ã\81\9dã\82\8cã\81\9eã\82\8cã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¯ã\82¢ã\83³ã\83\91ã\82µã\83³ã\83\89 (&) ã\81§å\8cºå\88\87ã\82\89ã\82\8cã\82\8bã\80\82 \fIkey\fP
は複数個指定することもできる。しかしそれに意味があるかどうかは web サーバとアプリケーションプログラムが決める。 HTML/XML/SGML と
GET 問い合わせ形式の間には、不幸な関係がある。 一つ以上のキーの含まれる URI が SGML/XML 文書 (HTML もそう)
に埋めこまれる際には、アンパサンド (&) は & と書かなければならない。 全ての問い合わせがこの形式を使うわけではない。
ftp://\fIip_server\fP/\fIpath\fP
.PP
これはファイル転送プロトコル (FTP) を通してファイルにアクセスするための URL である。デフォルトの (制御用) ポートは 21 である。
-ユーザ名がない場合には、ユーザ名 anonymous が与えられる。 そしてその場合には、クライアントの多くは要求した人の
+ユーザー名がない場合には、ユーザー名 anonymous が与えられる。 そしてその場合には、クライアントの多くは要求した人の
インターネットメールアドレスをパスワードとして与える。 例としては
<ftp://ftp.is.co.za/rfc/rfc1808.txt> など。
.PP
より詳しい情報は \fBmailaddr\fP(7) を見よ。 % 文字はすべて %25 と書き直さなければならないことに注意。 例としては
<mailto:dwheeler@dwheeler.com> など。
.PP
-\fBnews \- ã\83\8bã\83¥ã\83¼ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\83»ニュースメッセージ\fP
+\fBnews \- ã\83\8bã\83¥ã\83¼ã\82¹ã\82°ã\83«ã\83¼ã\83\97ã\80\81ニュースメッセージ\fP
.PP
news:\fInewsgroup\-name\fP
.br
検索のスコープを指定する。 "base" (base オブジェクト検索), "one" (1 レベル検索), "sub" (サブツリー検索)
のいずれかを指定する。 省略すると "base" が仮定される。
.IP filter
-æ¤\9cç´¢ã\83\95ã\82£ã\83«ã\82¿ (è¿\94ã\81\95ã\82\8cã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\81®ã\82µã\83\96ã\82»ã\83\83ã\83\88) ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 ç\9c\81ç\95¥ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81å\85¨ã\81¦ã\81®ã\82¨ã\83³ã\83\88ã\83ªが返される。
+æ¤\9cç´¢ã\83\95ã\82£ã\83«ã\82¿ (è¿\94ã\81\95ã\82\8cã\82\8bã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®ã\82µã\83\96ã\82»ã\83\83ã\83\88) ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 ç\9c\81ç\95¥ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81å\85¨ã\81¦ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼が返される。
.UR http://www.ietf.org\:/rfc\:/rfc2254.txt
RFC\ 2254
.UE
; / ? : @ & = + $ ,
.PP
未予約文字 (unreserved character) は URI に使ってよい。 これには英字の大文字と小文字、10 進の数字、および
-以ä¸\8bã\81®å\8f¥èªæ\96\87å\97ã\83»記号が含まれる
+以ä¸\8bã\81®å\8f¥èªæ\96\87å\97ã\80\81記号が含まれる
.IP
\- _ . ! ~ * ' ( )
.PP
にその非エスケープ文字が現れることが許されないような 特殊な場合を除いて、これは避けるべきである。 例えば、 HTTP URL の path において
"%7e" が "~" の代わりに用いられることがあるが、 この二つは HTTP URL としては等価である。
.PP
-US ASCII キャラクタセット以外の文字を URI として扱う場合、 HTML 4.1 規格 (section B.2) 及び IETF RFC\ 2718 (section 2.2.5) は 以下の手法を用いるよう推奨している。
+US ASCII ã\82ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\82»ã\83\83ã\83\88以å¤\96ã\81®æ\96\87å\97ã\82\92 URI ã\81¨ã\81\97ã\81¦æ\89±ã\81\86å ´å\90\88ã\80\81 HTML 4.1 è¦\8fæ ¼ (section B.2) å\8f\8aã\81³ IETF RFC\ 2718 (section 2.2.5) ã\81¯ 以ä¸\8bã\81®æ\89\8bæ³\95ã\82\92ç\94¨ã\81\84ã\82\8bã\82\88ã\81\86æ\8e¨å¥¨ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82
.IP 1. 4
-キャラクタ列を UTF\-8 (IETF RFC\ 2279, \fButf\-8\fP(7) 参照) に変換し、
+キャラクター列を UTF\-8 (IETF RFC\ 2279, \fButf\-8\fP(7) 参照) に変換し、
.IP 2.
URI エスケープ機構を用いる。 つまり、安全でないオクテットを %HH でエンコードする。
.SS "URI を書くには"
これはプロトコルに反しており、予期しない、おそらくは害になるような リモート動作を引起こす結果となりかねない。
.PP
秘密にしておくべきパスワードを含んだ URI を使うのが 賢くないのは明らかである。特に、パスワードを URI の "userinfo"
-の部分に使うのは絶対に避けるべきである。 ただしその "password" のパラメータを意図的に公開したい場合は別であるが。
+ã\81®é\83¨å\88\86ã\81«ä½¿ã\81\86ã\81®ã\81¯çµ¶å¯¾ã\81«é\81¿ã\81\91ã\82\8bã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82 ã\81\9fã\81 ã\81\97ã\81\9dã\81® "password" ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92æ\84\8få\9b³ç\9a\84ã\81«å\85¬é\96\8bã\81\97ã\81\9fã\81\84å ´å\90\88ã\81¯å\88¥ã\81§ã\81\82ã\82\8bã\81\8cã\80\82
.SH バグ
.PP
文書は様々な場所に置かれうる。したがって現時点では、 任意のフォーマットで書かれた一般のオンライン文書に対する良い URI スキームが 存在しない。
.PP
.\" .SH AUTHOR
.\" David A. Wheeler (dwheeler@dwheeler.com) wrote this man page.
-プログラムの多くは、これらの URI フォーマットをすべては扱えない。 ユーザの環境 (テキストかグラフィックか、
-デスクトップ環境、ローカルユーザの好み、 現在実行されているツール) などを自動的に検知して、 任意の URI をロードし、その URI
+ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®å¤\9aã\81\8fã\81¯ã\80\81ã\81\93ã\82\8cã\82\89ã\81® URI ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88ã\82\92ã\81\99ã\81¹ã\81¦ã\81¯æ\89±ã\81\88ã\81ªã\81\84ã\80\82 ã\83¦ã\83¼ã\82¶ã\83¼ã\81®ç\92°å¢\83 (ã\83\86ã\82ã\82¹ã\83\88ã\81\8bã\82°ã\83©ã\83\95ã\82£ã\83\83ã\82¯ã\81\8bã\80\81
+ã\83\87ã\82¹ã\82¯ã\83\88ã\83\83ã\83\97ç\92°å¢\83ã\80\81ã\83ã\83¼ã\82«ã\83«ã\83¦ã\83¼ã\82¶ã\83¼ã\81®å¥½ã\81¿ã\80\81 ç\8f¾å\9c¨å®\9fè¡\8cã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\84ã\83¼ã\83«) ã\81ªã\81©ã\82\92è\87ªå\8b\95ç\9a\84ã\81«æ¤\9cç\9f¥ã\81\97ã\81¦ã\80\81 ä»»æ\84\8fã\81® URI ã\82\92ã\83ã\83¼ã\83\89ã\81\97ã\80\81ã\81\9dã\81® URI
に適したツールを起動するような 標準的な仕組みがあるといいのだろうが。
.SH 関連項目
\fBlynx\fP(1), \fBman2html\fP(1), \fBmailaddr\fP(7), \fButf\-8\fP(7)
close(args\->pipe_fd[1]); /* パイプのこちら側の書き込み端のディスク
リプターをクローズする。これにより
- 親プロセスがディスクリプタをクローズ
+ 親ã\83\97ã\83ã\82»ã\82¹ã\81\8cã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ã\82¯ã\83ã\83¼ã\82º
すると EOF が見えるようになる。 */
if (read(args\->pipe_fd[0], &ch, 1) != 0) {
fprintf(stderr,
.SH 説明
ユニコード (Unicode) 3.0 文字集合は 16 ビットのコード空間を占める。
最も単純な Unicode の符号化方法 (UCS\-2)
-ã\81§ã\81¯ã\80\81æ\96\87å\97ã\81¯ 16 ã\83\93ã\83\83ã\83\88ã\83»ã\83¯ã\83¼ã\83\89 (16 ã\83\93ã\83\83ã\83\88æ\96\87å\97ã\81®å\88\97) ã\81§æ§\8bæ\88\90ã\81\95ã\82\8cã\82\8bã\80\82
+では、文字は 16 ビットワード (16 ビット文字の列) で構成される。
この列には、
\(aq\e0\(aq や \(aq/\(aq のような (ファイル名や C のライブラリ関数の引き数の内部で)
特殊な意味を持つ 16 ビット文字が含まれることがある。
Unicode のスーパーセットである
ISO 10646 Universal Character Set (UCS)
は \\(em 31 ビットのような \\(em もっと大きなコード空間を占めるが、
-ã\81\9dã\81®æ\9c\80ã\82\82å\8d\98ç´\94ã\81ªç¬¦å\8f·å\8c\96ã\81§ã\81\82ã\82\8b UCS\-4 ã\81«ã\82\82 (32 ã\83\93ã\83\83ã\83\88ã\83»ã\83¯ã\83¼ã\83\89ã\81®å\88\97ã\81¨ã\81\97ã\81¦) å\90\8cã\81\98å\95\8fé¡\8cã\81\8cã\81\82ã\82\8bã\80\82
+その最も単純な符号化である UCS\-4 にも (32 ビットワードの列として) 同じ問題がある。
Unicode と UCS の UTF\-8 符号化にはこれらの問題がないので、
UNIX 形式の OS 上で Unicode 文字集合を使用するための一般的な方法となっている。
0xfffe, 0xffff (UCS の noncharacter) という UCS コードの値は、
UTF\-8 に準拠したストリームに入れるべきではない。
.SS 例
-Unicode æ\96\87å\97ã\81® 0xa9 = 1010 1001 (ã\82³ã\83\94ã\83¼ã\83©ã\82¤ã\83\88ã\83»ã\83\9eã\83¼ã\82¯) ã\81¯ UTF\-8 ã\81§ç¬¦å\8f·å\8c\96ã\81\99ã\82\8bã\81¨
+Unicode 文字の 0xa9 = 1010 1001 (コピーライトマーク) は UTF\-8 で符号化すると
以下のようになる。
.PP
.RS
メッセージ境界は保存される。ソケットからの \fBread\fP(2) は、反対側のソケットからの対応する \fBwrite\fP(2)
と同じ大きさのデータを受け取り、出力する。 必要がある場合は、カーネルが長いメッセージの 分割 (segmenting) と再構成
(reassembling) を行う。 これには X.25 の M ビットが用いられる。 メッセージサイズには、ハードコーディングされた上限はない。
-ã\81\97ã\81\8bã\81\97ã\80\81ä¸\80æ\99\82ç\9a\84ã\81«ã\82·ã\82¹ã\83\86ã\83 ã\83ªã\82½ã\83¼ã\82¹ã\81\8c足ã\82\8aã\81ªã\81\8bã\81£ã\81\9fã\82\8aã\80\81 ä»\96ã\81®å\88¶ç´\84 (ã\82½ã\82±ã\83\83ã\83\88ã\83¡ã\83¢ã\83ªã\83\90ã\83\83ã\83\95ã\82¡のサイズ制限など) が
+ã\81\97ã\81\8bã\81\97ã\80\81ä¸\80æ\99\82ç\9a\84ã\81«ã\82·ã\82¹ã\83\86ã\83 ã\83ªã\82½ã\83¼ã\82¹ã\81\8c足ã\82\8aã\81ªã\81\8bã\81£ã\81\9fã\82\8aã\80\81 ä»\96ã\81®å\88¶ç´\84 (ã\82½ã\82±ã\83\83ã\83\88ã\83¡ã\83¢ã\83ªã\83¼ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼のサイズ制限など) が
効いてしまうと、長いメッセージの再構成には失敗するかもしれない。 この場合、その X.25 接続はリセットされることになる。
.SS ソケットアドレス
\fBAF_X25\fP ソケットアドレスファミリーは、ネットワークアドレスを表すために \fIstruct sockaddr_x25\fP を用いる。これは
ビットがセットされていたことになる。 ソケットに書き込むデータの先頭バイトが 1 だと、 その発信パケットの Q ビットをセットする。 0 だと、 Q
ビットをセットしない。
.SH バージョン
-AF_X25 プロトコルファミリは Linux 2.2 の新機能である。
+AF_X25 ã\83\97ã\83ã\83\88ã\82³ã\83«ã\83\95ã\82¡ã\83\9fã\83ªã\83¼ã\81¯ Linux 2.2 ã\81®æ\96°æ©\9fè\83½ã\81§ã\81\82ã\82\8bã\80\82
.SH バグ
X.25 PLP 実装は \fBCONFIG_EXPERIMENTAL\fP なので、たくさんあるだろう。
.PP
この man ページは完成していない。
.PP
-ã\81¾ã\81 ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\83\97ã\83ã\82°ã\83©ã\83\9eã\83¼ç\94¨ã\81®ã\83\98ã\83\83ã\83\80ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cã\81ªã\81\84ã\80\82 ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83\98ã\83\83ã\83\80ファイル \fI<linux/x25.h>\fP
+ã\81¾ã\81 ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\83\97ã\83ã\82°ã\83©ã\83\9eã\83¼ç\94¨ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cã\81ªã\81\84ã\80\82 ã\82«ã\83¼ã\83\8dã\83«ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ファイル \fI<linux/x25.h>\fP
をインクルードしなければならない。 \fBCONFIG_EXPERIMENTAL\fP なので、将来のバージョンのインターフェースでは
バイナリ互換性が失われるかもしれない。
.PP
.SH 名前
intro \- 管理コマンドと特権コマンドの説明
.SH 説明
-ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\81® 8 ç« ã\81¯ã\80\81ã\82·ã\82¹ã\83\86ã\83 管ç\90\86ç\94¨ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\80\81ã\83\87ã\83¼ã\83¢ã\83³ (daemon)ã\80\81 ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢é\96¢é\80£ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81¨ã\81\84ã\81£ã\81\9fã\80\81ã\82¹ã\83¼ã\83\91ã\83¼ã\83»ã\83¦ã\83¼ã\82¶ã\83¼ã\81«ã\82\88ã\81£ã\81¦ã\81®ã\81¿
+マニュアルの 8 章は、システム管理用のコマンド、デーモン (daemon)、 ハードウェア関連のコマンドといった、スーパーユーザーによってのみ
使用される/できるコマンドについて説明している。
1 章で説明されているコマンドと同様、この章で説明されるコマンドは コマンドの成功・失敗を示す終了ステータスで終了する。 さらなる情報は
\fBintro\fP(1) を参照のこと。
.SH 注意
.SS 著者と著作権
-著者と著作権に関しては各マニュアルページのソースのヘッダを参照すること。 これらはページごとに異なる可能性があることに注意してほしい。
+è\91\97è\80\85ã\81¨è\91\97ä½\9c権ã\81«é\96¢ã\81\97ã\81¦ã\81¯å\90\84ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\83\9aã\83¼ã\82¸ã\81®ã\82½ã\83¼ã\82¹ã\81®ã\83\98ã\83\83ã\83\80ã\83¼ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bã\81\93ã\81¨ã\80\82 ã\81\93ã\82\8cã\82\89ã\81¯ã\83\9aã\83¼ã\82¸ã\81\94ã\81¨ã\81«ç\95°ã\81ªã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\80\82
.SH この文書について
この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.78 の一部
である。プロジェクトの説明とバグ報告に関する情報は
.\"
.TH LD.SO 8 2014\-12\-31 GNU "Linux Programmer's Manual"
.SH 名前
-ld.so, ld\-linux.so* \- 動的なリンカ/ローダ
+ld.so, ld\-linux.so* \- 動的なリンカー/ローダー
.SH 書式
-動的リンカは、動的にリンクされたプログラムやライブラリの実行によって 間接的に実行することができる (ELF
-ã\81®å ´å\90\88ã\80\81å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\81«ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92渡ã\81\99ã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81\9aã\80\81 ã\83\97ã\83ã\82°ã\83©ã\83 ã\81® \fB.interp\fP ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81«å\85¥ã\81£ã\81¦ã\81\84ã\82\8bå\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\81\8cå®\9fè¡\8cã\81\95ã\82\8cã\82\8b)ã\80\82
-また以下のように直接実行することもできる
+å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81¯ã\80\81å\8b\95ç\9a\84ã\81«ã\83ªã\83³ã\82¯ã\81\95ã\82\8cã\81\9fã\83\97ã\83ã\82°ã\83©ã\83 ã\82\84ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81®å®\9fè¡\8cã\81«ã\82\88ã\81£ã\81¦ é\96\93æ\8e¥ç\9a\84ã\81«å®\9fè¡\8cã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8b (ELF
+ã\81®å ´å\90\88ã\80\81å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81«ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92渡ã\81\99ã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81\9aã\80\81 ã\83\97ã\83ã\82°ã\83©ã\83 ã\81® \fB.interp\fP
+ã\82»ã\82¯ã\82·ã\83§ã\83³ã\81«å\85¥ã\81£ã\81¦ã\81\84ã\82\8bå\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81\8cå®\9fè¡\8cã\81\95ã\82\8cã\82\8b)ã\80\82 ã\81¾ã\81\9f以ä¸\8bã\81®ã\82\88ã\81\86ã\81«ç\9b´æ\8e¥å®\9fè¡\8cã\81\99ã\82\8bã\81\93ã\81¨ã\82\82ã\81§ã\81\8dã\82\8b
.P
\fI/lib/ld\-linux.so.*\fP [OPTIONS] [PROGRAM [ARGUMENTS]]
.SH 説明
バイナリを扱う。 このフォーマットは多くの人が最近何年も使っている。 それ以外の点では両方とも同じように動作し、 同じサポートファイルとプログラム
\fBldd\fP(1), \fBldconfig\fP(8), \fI/etc/ld.so.conf\fP を使用する。
.LP
-ライブラリの依存関係を解決する際、動的リンカは、最初に、依存関係の各文字列がスラッシュを含んでいるかをチェックする
+ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81®ä¾\9då\98é\96¢ä¿\82ã\82\92解決ã\81\99ã\82\8bé\9a\9bã\80\81å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81¯ã\80\81æ\9c\80å\88\9dã\81«ã\80\81ä¾\9då\98é\96¢ä¿\82ã\81®å\90\84æ\96\87å\97å\88\97ã\81\8cã\82¹ã\83©ã\83\83ã\82·ã\83¥ã\82\92å\90«ã\82\93ã\81§ã\81\84ã\82\8bã\81\8bã\82\92ã\83\81ã\82§ã\83\83ã\82¯ã\81\99ã\82\8b
(この状況になるのは、リンク時にスラッシュを含むライブラリのパス名が指定された場合である)。スラッシュが見つかった場合、その依存関係の文字列はパス名
(相対パス、絶対パスのどちらも可) として解釈され、そのパス名を使ってそのライブラリはロードされる。
.LP
(ELF のみ) バイナリの動的セクション属性 DT_RUNPATH が存在すれば、 DT_RUNPATH で指定されたディレクトリを使用する。
.IP o
キャッシュファイル \fI/etc/ld.so.cache\fP を探す。このファイルは、 (ld.so.conf で追加指定されたものも含めた)
-ライブラリ検索パスから見つかったライブラリファイルの情報を集めたものである。ただし、バイナリがリンカオプション \fB\-z nodeflib\fP
+ã\83©ã\82¤ã\83\96ã\83©ã\83ªæ¤\9cç´¢ã\83\91ã\82¹ã\81\8bã\82\89è¦\8bã\81¤ã\81\8bã\81£ã\81\9fã\83©ã\82¤ã\83\96ã\83©ã\83ªã\83\95ã\82¡ã\82¤ã\83«ã\81®æ\83\85å ±ã\82\92é\9b\86ã\82\81ã\81\9fã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\80\82ã\81\9fã\81 ã\81\97ã\80\81ã\83\90ã\82¤ã\83\8aã\83ªã\81\8cã\83ªã\83³ã\82«ã\83¼ã\82ªã\83\97ã\82·ã\83§ã\83³ \fB\-z nodeflib\fP
でリンクされている場合は、デフォルトのライブラリパスにある ライブラリはスキップされる。ハードウェア機能ディレクトリ (下記参照)
にインストールされたライブラリは、他のライブラリよりも優先される。
.IP o
-デフォルトパスである \fI/lib\fP、 次いで \fI/usr/lib\fP を用いる。 バイナリがリンカオプション \fB\-z nodeflib\fP
+ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\83\91ã\82¹ã\81§ã\81\82ã\82\8b \fI/lib\fPã\80\81 次ã\81\84ã\81§ \fI/usr/lib\fP ã\82\92ç\94¨ã\81\84ã\82\8bã\80\82 ã\83\90ã\82¤ã\83\8aã\83ªã\81\8cã\83ªã\83³ã\82«ã\83¼ã\82ªã\83\97ã\82·ã\83§ã\83³ \fB\-z nodeflib\fP
でリンクされている場合、このステップはスキップされる。
.SS "rpath トークンの展開"
.PP
特別なディレクトリではなく任意のディレクトリにインストールしても「ややこしい設定なしで」独自の共有ライブラリを使えるアプリケーションを作成することができる。
.TP
\fI$LIB\fP (\fI${LIB}\fP も同じ)
-アーキテクチャに応じて \fIlib\fP か \fIlib64\fP に展開される (例えば、 x86\-64 では \fIlib64\fP に、 x86\-32 では
+ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«å¿\9cã\81\98ã\81¦ \fIlib\fP ã\81\8b \fIlib64\fP ã\81«å±\95é\96\8bã\81\95ã\82\8cã\82\8b (ä¾\8bã\81\88ã\81°ã\80\81 x86\-64 ã\81§ã\81¯ \fIlib64\fP ã\81«ã\80\81 x86\-32 ã\81§ã\81¯
\fIlib\fP に展開される)。
.TP
\fI$PLATFORM\fP (\fI${PLATFORM}\fP も同じ)
.\" ld.so lets names be abbreviated, so $O will work for $ORIGIN;
.\" Don't do this!!
ホストシステムのプロセッサ種別に対応する文字列に展開される (例えば "x86_64")。
-ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\81§ã\81¯ã\80\81 Linux ã\82«ã\83¼ã\83\8dã\83«ã\81\8bã\82\89å\8b\95ç\9a\84ã\83ªã\83³ã\82«にプラットフォームを表す文字列が提供されない。 この文字列の値は補助ベクトルの
+ã\81\84ã\81\8fã\81¤ã\81\8bã\81®ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81§ã\81¯ã\80\81 Linux ã\82«ã\83¼ã\83\8dã\83«ã\81\8bã\82\89å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼にプラットフォームを表す文字列が提供されない。 この文字列の値は補助ベクトルの
\fBAT_PLATFORM\fP 値から取得される (\fBgetauxval\fP(3) 参照)。
.SH オプション
.TP
全ての依存関係とその解決法をリストする。
.TP
\fB\-\-verify\fP
-プログラムが動的にリンクされているかと、 動的リンカがそのプログラムを扱えるかを検証する。
+ã\83\97ã\83ã\82°ã\83©ã\83 ã\81\8cå\8b\95ç\9a\84ã\81«ã\83ªã\83³ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8bã\81¨ã\80\81 å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81\8cã\81\9dã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92æ\89±ã\81\88ã\82\8bã\81\8bã\82\92æ¤\9c証ã\81\99ã\82\8bã\80\82
.TP
\fB\-\-inhibit\-cache\fP
/etc/ld.so.cache を使用しない。
の命令を使ってコンパイルされている。そのようなライブラリは、
\fI/usr/lib/sse2/\fP のような、必要なハードウェア機能 (hardware capability) を規
定する名前のディレクトリにインストールすべきである。
-動的リンカは、マシンのハードウェアに基づいてこれらのディレクトリを確認し、
+å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81¯ã\80\81ã\83\9eã\82·ã\83³ã\81®ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\81«å\9fºã\81¥ã\81\84ã\81¦ã\81\93ã\82\8cã\82\89ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82\92確èª\8dã\81\97ã\80\81
指定されたライブラリに最も適したバージョンを選択する。
ハードウェア機能ディレクトリはつなげることができ、
複数の CPU 機能を組み合わることができる。
重要な環境変数には以下のものがある。
.TP
\fBLD_ASSUME_KERNEL\fP
-(glibc 2.2.3 以降) 各共有ライブラリは動的リンカに必要なカーネル ABI の最小バージョンを通知することができる (必要なバージョンは
+(glibc 2.2.3 以é\99\8d) å\90\84å\85±æ\9c\89ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81¯å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81«å¿\85è¦\81ã\81ªã\82«ã\83¼ã\83\8dã\83« ABI ã\81®æ\9c\80å°\8fã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\82\92é\80\9aç\9f¥ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8b (å¿\85è¦\81ã\81ªã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81¯
ELF の note section に格納され、 \fIreadelf\ \-n\fP で \fBNT_GNU_ABI_TAG\fP
-のラベルが付いたセクションとして見ることができる)。 実行時に、 動的リンカは実行中のカーネルの ABI バージョンを判定し、 カーネルの ABI
+ã\81®ã\83©ã\83\99ã\83«ã\81\8cä»\98ã\81\84ã\81\9fã\82»ã\82¯ã\82·ã\83§ã\83³ã\81¨ã\81\97ã\81¦è¦\8bã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8b)ã\80\82 å®\9fè¡\8cæ\99\82ã\81«ã\80\81 å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81¯å®\9fè¡\8cä¸ã\81®ã\82«ã\83¼ã\83\8dã\83«ã\81® ABI ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\82\92å\88¤å®\9aã\81\97ã\80\81 ã\82«ã\83¼ã\83\8dã\83«ã\81® ABI
バージョンよりも大きな ABI の最小バージョンが指定された共有ライブラリのロードを行わない。
-\fBLD_ASSUME_KERNEL\fP を使うことで、 動的リンカに、 異なるカーネル ABI
-バージョンのシステムで実行されているかのように見せることができる。 例えば、 以下のコマンドラインを実行すると、 動的リンカは \fImyprog\fP
+\fBLD_ASSUME_KERNEL\fP ã\82\92使ã\81\86ã\81\93ã\81¨ã\81§ã\80\81 å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81«ã\80\81 ç\95°ã\81ªã\82\8bã\82«ã\83¼ã\83\8dã\83« ABI
+ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81®ã\82·ã\82¹ã\83\86ã\83 ã\81§å®\9fè¡\8cã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8bã\81®ã\82\88ã\81\86ã\81«è¦\8bã\81\9bã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ä¾\8bã\81\88ã\81°ã\80\81 以ä¸\8bã\81®ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³ã\82\92å®\9fè¡\8cã\81\99ã\82\8bã\81¨ã\80\81 å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81¯ \fImyprog\fP
が必要とする共有ライブラリをロードする際に Linux 2.2.5 上で動作していると仮定する。
.in +4n
Table (PLT) を更新しない。
.TP
\fBLD_BIND_NOW\fP
-(libc5; glibc 2.1.1 以降) 空文字列でない場合、 動的リンカはプログラムの開始時に全てのシンボルを解決する。
+(libc5; glibc 2.1.1 以é\99\8d) 空æ\96\87å\97å\88\97ã\81§ã\81ªã\81\84å ´å\90\88ã\80\81 å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81¯ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®é\96\8bå§\8bæ\99\82ã\81«å\85¨ã\81¦ã\81®ã\82·ã\83³ã\83\9cã\83«ã\82\92解決ã\81\99ã\82\8bã\80\82
空文字列の場合、解決しなければならない関数呼び出しが 最初に参照された時点で解決する。 デバッガを使っているときに役立つ。
.TP
\fBLD_LIBRARY_PATH\fP
set\-user\-ID/set\-group\-ID されたプログラムでは無視される。
.TP
\fBLD_PRELOAD\fP
-追加でユーザが指定する ELF
+追å\8a ã\81§ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8cæ\8c\87å®\9aã\81\99ã\82\8b ELF
共有ライブラリのリスト。指定されたライブラリは、すべてのライブラリより前にロードされる。リストの区切りはスペースとコロンである。他の共有ライブラリにある関数を選択的に置き換えるために用いることができる。指定されたライブラリは「説明」の節で述べたルールを基いて検索される。
set\-user\-ID/set\-group\-ID された ELF
バイナリでは、スラッシュを含んだパス名のライブラリは無視され、標準の検索ディレクトリのライブラリはそのライブラリファイルの set\-user\-ID
の古いバージョンでは \fBLD_ELF_PRELOAD\fP もサポートしていた。
.TP
\fBLD_AUDIT\fP
-(glibc 2.4 以降) 他のオブジェクトよりも前に、別のリンカ名前空間 (そのプロセスで行われる 通常のシンボル結合 (symbol
-bindigns) には関与しない名前空間) で ロードされる、ユーザ指定の ELF 共有オブジェクトのコロン区切りのリスト。
-これらのライブラリを使って、動的リンカの動作を監査することができる。 set\-user\-ID/set\-group\-ID されたバイナリでは、
+(glibc 2.4 以降) 他のオブジェクトよりも前に、別のリンカー名前空間 (そのプロセスで行われる 通常のシンボル結合 (symbol
+bindigns) には関与しない名前空間) で ロードされる、ユーザー指定の ELF 共有オブジェクトのコロン区切りのリスト。
+ã\81\93ã\82\8cã\82\89ã\81®ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\82\92使ã\81£ã\81¦ã\80\81å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81®å\8b\95ä½\9cã\82\92ç\9b£æ\9f»ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 set\-user\-ID/set\-group\-ID ã\81\95ã\82\8cã\81\9fã\83\90ã\82¤ã\83\8aã\83ªã\81§ã\81¯ã\80\81
\fBLD_AUDIT\fP は無視される。
-動的リンカは、いわゆる監査チェックポイント (auditing checkpoints) において、監査 (audit)
+å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81¯ã\80\81ã\81\84ã\82\8fã\82\86ã\82\8bç\9b£æ\9f»ã\83\81ã\82§ã\83\83ã\82¯ã\83\9dã\82¤ã\83³ã\83\88 (auditing checkpoints) ã\81«ã\81\8aã\81\84ã\81¦ã\80\81ç\9b£æ\9f» (audit)
ライブラリの適切な関数を呼び出すことで、 監査ライブラリへの通知を行う。監査チェックポイントの例としては、
新たなライブラリのロード、シンボルの解決、別の共有オブジェクト からのシンボルの呼び出し、などがある。 詳細は \fBrtld\-audit\fP(7)
-を参照してほしい。 audit インタフェースは、Solaris で提供されているものと 大部分は互換性がある。Solaris の audit
-インタフェースについては、 \fILinker and Libraries Guide\fP の \fIRuntime Linker Auditing
+ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\80\82 audit ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81¯ã\80\81Solaris ã\81§æ\8f\90ä¾\9bã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82\82ã\81®ã\81¨ 大é\83¨å\88\86ã\81¯äº\92æ\8f\9bæ\80§ã\81\8cã\81\82ã\82\8bã\80\82Solaris ã\81® audit
+ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\80\81 \fILinker and Libraries Guide\fP ã\81® \fIRuntime Linker Auditing
Interface\fP の章に説明がある。
.TP
\fBLD_BIND_NOT\fP
linkage table) を更新しない。
.TP
\fBLD_DEBUG\fP
-(glibc 2.1 以降) 動的リンカの詳細なデバッグ情報を出力する。 \fBall\fP に設定した場合、全ての動的リンカが持つデバッグ情報を表示する。
-\fBhelp\fP に設定した場合、この環境変数で指定されるカテゴリのヘルプ情報を表示する。 glibc 2.3.4 以降、
+(glibc 2.1 以降) 動的リンカーの詳細なデバッグ情報を出力する。 \fBall\fP
+に設定した場合、全ての動的リンカーが持つデバッグ情報を表示する。 \fBhelp\fP
+に設定した場合、この環境変数で指定されるカテゴリーのヘルプ情報を表示する。 glibc 2.3.4 以降、
set\-user\-ID/set\-group\-ID されたバイナリでは \fBLD_DEBUG\fP は無視される。
.TP
\fBLD_DEBUG_OUTPUT\fP
2.3.4 以降、 set\-user\-ID/set\-group\-ID されたバイナリでは \fBLD_ORIGIN_PATH\fP は無視される。
.TP
\fBLD_POINTER_GUARD\fP
-(glibc 2.4 以降) 0 に設定すると、ポインタ保護 (pointer guarding) が無効になる。
-それ以外の値の場合はポインタ保護が有効になる。 デフォルトはポインタ保護有効である。
-ポインタ保護はセキュリティ機構の一つで、書き込み可能なプログラムメモリ に格納されたコードへのポインタをほぼランダム化することで、
-æ\94»æ\92\83è\80\85ã\81\8cã\83\90ã\83\83ã\83\95ã\82¡ã\82ªã\83¼ã\83\90ã\83¼ã\83©ã\83³ã\82\84ã\82¹ã\82¿ã\83\83ã\82¯ç ´å£\8a (stack\-smashing) æ\94»æ\92\83ã\81®é\9a\9bã\81« ã\83\9dã\82¤ã\83³ã\82¿を乗っ取ることを困難にするものである。
+(glibc 2.4 以降) 0 に設定すると、ポインター保護 (pointer guarding) が無効になる。
+それ以外の値の場合はポインター保護が有効になる。 デフォルトはポインター保護有効である。
+ポインター保護はセキュリティ機構の一つで、書き込み可能なプログラムメモリー に格納されたコードへのポインターをほぼランダム化することで、
+æ\94»æ\92\83è\80\85ã\81\8cã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82ªã\83¼ã\83\90ã\83¼ã\83©ã\83³ã\82\84ã\82¹ã\82¿ã\83\83ã\82¯ç ´å£\8a (stack\-smashing) æ\94»æ\92\83ã\81®é\9a\9bã\81« ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を乗っ取ることを困難にするものである。
.TP
\fBLD_PROFILE\fP
(glibc 2.1 以降) プロファイルを行う共有オブジェクトの名前。 パス名か共有オブジェクト名 (soname) で指定される。
.\" Document LD_TRACE_PRELINKING (e.g.: LD_TRACE_PRELINKING=libx1.so ./prog)
.\" Available since glibc 2.3
.\" Also enables DL_DEBUG_PRELINK
-(glibc 2.1 以降) カーネルから渡される補助的な (パラメータの) 配列を表示する。 セキュリティ上の理由から、glibc 2.3.4
+(glibc 2.1 以é\99\8d) ã\82«ã\83¼ã\83\8dã\83«ã\81\8bã\82\89渡ã\81\95ã\82\8cã\82\8bè£\9cå\8a©ç\9a\84ã\81ª (ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81®) é\85\8då\88\97ã\82\92表示ã\81\99ã\82\8bã\80\82 ã\82»ã\82ã\83¥ã\83ªã\83\86ã\82£ä¸\8aã\81®ç\90\86ç\94±ã\81\8bã\82\89ã\80\81glibc 2.3.4
以降、 set\-user\-ID/set\-group\-ID されたバイナリでは \fBLD_SHOW_AUXV\fP は無視される。
.TP
\fBLD_USE_LOAD_BIAS\fP
.PD 0
.TP
\fI/lib/ld.so\fP
-a.out の動的リンカ/ローダ
+a.out の動的リンカー/ローダー
.TP
\fI/lib/ld\-linux.so.\fP{\fI1\fP,\fI2\fP}
-ELF の動的リンカ/ローダ
+ELF の動的リンカー/ローダー
.TP
\fI/etc/ld.so.cache\fP
ライブラリを検索するディレクトリを集めたリストと、 共有ライブラリの候補の整列リストを含むファイル。
.\"
.TH LDCONFIG 8 2012\-05\-10 GNU "Linux Programmer's Manual"
.SH 名前
-ldconfig \- 動的リンカによる実行時の結合関係を設定する
+ldconfig \- å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81«ã\82\88ã\82\8bå®\9fè¡\8cæ\99\82ã\81®çµ\90å\90\88é\96¢ä¿\82ã\82\92è¨å®\9aã\81\99ã\82\8b
.SH 書式
\fB/sbin/ldconfig\fP [ \fB\-nNvXV\fP ] [ \fB\-f\ conf\fP ] [ \fB\-C\ cache\fP ] [ \fB\-r\ root\fP ] \fIdirectory\fP\ ...
.PD 0
.SH 説明
\fBldcofig\fP は最新の共有ライブラリに対して必要なリンクを作成したり、 ライブラリをキャッシュしたりする。 ライブラリは、コマンドラインや
\fI/etc/ld.so.conf\fP ファイルで指定されたディレクトリや、共有ライブラリが 通常置かれるディレクトリ (\fI/lib\fP と
-\fI/usr/lib\fP) から検索される。 キャッシュは実行時リンカ \fIld.so\fP または \fIld\-linux.so\fP によって使われる。
-\fBldconfig\fP は処理するライブラリのヘッダ部分とファイル名をチェックし、 どのバージョンに対してリンクを更新すべきかを判断する。
+\fI/usr/lib\fP) から検索される。 キャッシュは実行時リンカー \fIld.so\fP または \fIld\-linux.so\fP によって使われる。
+\fBldconfig\fP は処理するライブラリのヘッダー部分とファイル名をチェックし、 どのバージョンに対してリンクを更新すべきかを判断する。
.PP
.\" The following sentence looks suspect
.\" (perhaps historical cruft) -- MTK, Jul 2005
.PD 0
.TP 20
\fI/lib/ld.so\fP
-実行時リンカ/ローダー。
+実行時リンカー/ローダー。
.TP 20
\fI/etc/ld.so.conf\fP
コロン・スペース・タブ・改行・コンマで区切られたディレクトリのリスト。 それぞれのディレクトリでライブラリが検索される。
\fBsln\fP\fI filelist\fP
.SH 説明
\fBsln\fP プログラムはシンボリックリンクの作成を行う。 \fBln\fP(1) プログラムと異なり、 このプログラムは静的にリンクされている。 つまり、
-何らかの理由で動的リンカが動作しない場合に、 \fBsln\fP を使って、 動的ライブラリへのシンボリックリンクを作成することができる。
+ä½\95ã\82\89ã\81\8bã\81®ç\90\86ç\94±ã\81§å\8b\95ç\9a\84ã\83ªã\83³ã\82«ã\83¼ã\81\8cå\8b\95ä½\9cã\81\97ã\81ªã\81\84å ´å\90\88ã\81«ã\80\81 \fBsln\fP ã\82\92使ã\81£ã\81¦ã\80\81 å\8b\95ç\9a\84ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81¸ã\81®ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
コマンドラインには二つの形がある。 一つ目の形では、 \fIsource\fP へのシンボリックリンクとして \fIdest\fP を作成する。
\fBtzselect\fP プログラムは、ユーザーが現在いる場所の情報を尋ねて、 その結果得られたタイムゾーンの表記を標準出力に表示する。 この出力は
\fBTZ\fP 環境変数の値にすると良い。
.PP
-ユーザとの対話は、全て標準入力と標準エラー出力とで行われる。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81¨ã\81®å¯¾è©±ã\81¯ã\80\81å\85¨ã\81¦æ¨\99æº\96å\85¥å\8a\9bã\81¨æ¨\99æº\96ã\82¨ã\83©ã\83¼å\87ºå\8a\9bã\81¨ã\81§è¡\8cã\82\8fã\82\8cã\82\8bã\80\82
.SH 終了ステータス
-ユーザからの入力によってタイムゾーンが正しく取得できた場合は 0 を 返す。それ以外の場合は 0 以外を返す。
+ã\83¦ã\83¼ã\82¶ã\83¼ã\81\8bã\82\89ã\81®å\85¥å\8a\9bã\81«ã\82\88ã\81£ã\81¦ã\82¿ã\82¤ã\83 ã\82¾ã\83¼ã\83³ã\81\8cæ£ã\81\97ã\81\8få\8f\96å¾\97ã\81§ã\81\8dã\81\9få ´å\90\88ã\81¯ 0 ã\82\92 è¿\94ã\81\99ã\80\82ã\81\9dã\82\8c以å¤\96ã\81®å ´å\90\88ã\81¯ 0 以å¤\96ã\82\92è¿\94ã\81\99ã\80\82
.SH 環境変数
.TP
\fBAWK\fP