diff --git a/ja/man/man1/bc.1 b/ja/man/man1/bc.1 index c269c58c41..2af96b2e77 100644 --- a/ja/man/man1/bc.1 +++ b/ja/man/man1/bc.1 @@ -1,792 +1,792 @@ .\" .\" bc.1 - the *roff document processor source for the bc manual .\" .\" This file is part of GNU bc. .\" Copyright (C) 1991, 1992, 1993, 1994, 1997 Free Software Foundation, Inc. .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2 of the License , or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program; see the file COPYING. If not, write to .\" the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. .\" .\" You may contact the author by: .\" e-mail: phil@cs.wwu.edu .\" us-mail: Philip A. Nelson .\" Computer Science Department, 9062 .\" Western Washington University .\" Bellingham, WA 98226-9062 .\" .\" jpman %Id: bc.1,v 1.3 1997/07/26 10:23:05 konuma Stab % .\" .TH bc 1 .\" "Command Manual" v1.04 "June 22, 1995" .SH 名称 bc - 任意精度の計算言語 .SH 書式 \fBbc\fR [ \fB-lwsqv\fR ] [long-options] [ \fI file ...\fR ] .SH バージョン このマニュアルは GNU bc version 1.04 について記述してあります。 .SH 解説 \fBbc\fR は、任意の精度の数値を扱う事ができ、プログラミング言語 C の文法に よく似た形の入力を対話的に実行する言語です。 コマンドラインのオプションの指定により、標準数学ライブラリを使用することも できます。これを指定した場合は、どのファイルを処理するよりも前に 数学ライブラリが定義されます。 \fBbc\fR は動作を開始するとまず最初にコマンドラインで指定したファイルを 順に処理します。すべてのファイルを処理した後は、\fBbc\fR は 標準入力からの読み込みを行います。すべてのコードは、それが読み込ま れた時点で実行されていきます。(もし、ファイル中にプロセッサを止める コマンドが含まれていた場合は、標準入力からの読み込みは行われません。) .PP 本バージョンの \fBbc\fR は、伝統的な \fBbc\fR の実装および POSIX のドラフト規格よりも拡張されています。コマンドラインオプションにより、 これらの拡張に対して警告を表示したり拒絶したりすることが可能です。 本ドキュメントでは、このプロセッサが受理する言語について説明します。 拡張機能についてはその旨明記します。 .SS オプション .IP -l 標準数学ライブラリを定義します。 .IP -w POSIX \fBbc\fR に対する拡張機能が入力された場合は警告を出します。 .IP -s POSIX \fBbc\fR の言語仕様に厳密に従って処理します。 .IP -q GNU bc 導入メッセージを表示しません。 .IP -v バージョン番号と著作権を表示して終了します。 .IP --mathlib 標準数学ライブラリを定義します。 .IP --warn POSIX \fBbc\fR に対する拡張機能が入力された場合は警告を出します。 .IP --standard POSIX \fBbc\fR の言語仕様に厳密に従って処理します。 .IP --quiet GNU bc 導入メッセージを表示しません。 .IP --version バージョン番号と著作権を表示して終了します。 .SS 数 \fBbc\fR における最も基本的な要素は `数' です。数は、整数部と小数部があり、 任意の精度をとることができます。すべての数は、内部では 10 進数で表現されており、 計算も 10 進数で行われます。(本バージョンでは、除算と乗算で結果に切捨てが 起こります。) 数には length と scale という 2 つの属性があります。 length は 10 進での有効桁数で、scale は小数点以下の 10 進での有効桁数です。 例えば、 .nf .RS .000001 は、lengthが 6 で、scale も 6 です。 1935.000 は、lengthが 7 で、scale が 3 です。 .RE .fi .SS 変数 数は、単純変数と配列の 2 種類の変数に保存されます。単純変数と配列変数には共に 名前が付けられます。この名前は、最初の 1 文字目がアルファベットで、後は、 アルファベット、数字およびアンダスコアを任意の文字数組み合わせて 使うことができます。すべてのアルファベットは小文字でなければなりません。 (アルファベットと数字を使った名前の機能は拡張機能です。 POSIX \fBbc\fR では、変数に英小文字 1 文字しか許されません。) 配列変数の名前には必ずブラケット ([]) がつくので、変数の型は文脈において はっきりしています。 .PP 特殊な変数として \fBscale, ibase, obase, last\fR の 4 つの変数があります。 \fBscale\fR で計算時の小数点以下の有効桁数を指定します。 \fBscale\fR のデフォルトは 0 です。 \fBibase\fR と \fBobase\fR で入力および出力の変換基数を指定します。 デフォルトでは、入力、出力の基数は共に 10 です。 \fBlast\fR は、最後に \fBbc\fR が出力した数を保持しています (これは拡張機能です)。これらについては、後で適切なところで詳しく説明します。 これらの変数には、式で使われる代入と同様の代入を行うことが可能です。 .SS コメント \fBbc\fR は、\fB/*\fR から \fB*/\fR の間をコメントとして扱います。 コメントはどこから始まっていてもよく、1 文字の空白として扱われます。 (これにより、コメントはその前後の入力アイテムを切り離します。たとえば、 変数名の途中にコメントを置くことはできません。) コメントの中にはいくつ改行があってもかまいません。 .PP \fBbc\fR をスクリプトとしても使えるようにするため、1 行コメントが 拡張機能として追加されました。1 行コメントは \fB#\fR で始まり、 次の改行まで有効です。その改行文字自体はコメントの一部とはみなされず、 普通に処理されます。 .SS 式 `数' は、式および文によって操作されます。 この言語は対話的になるように設計されているため、 文および式は可能な限り即座に実行されます。 "main" プログラムといったものはなく、そのかわり、コードは それに出くわした時点で実行されます。 (後で述べる`関数'は、それに出くわした時点で定義されます。) .PP 式の最も単純なものは、ただの定数です。\fBbc\fR は、入力された 定数を、変数 \fBibase\fR で指定される現在の基数を元に、内部的には 10 進表現の 数に変換します。(関数の場合には例外があります。) \fBibase\fR には、2 から 16 までが使用できます。 この範囲を越える値を \fBibase\fR に代入しようとすると、 2 あるいは 16 を指定したことになります。 数の入力には、0-9 および A-F の文字が利用できます。(注意: これは大文字でなければなりません。小文字は変数名です。) 1 桁の数は \fBibase\fR の値に関係なくその値を持ちます (すなわち A=10)。 複数桁の数の場合、\fBbc\fR は ibase 以上の値をもつすべての入力桁を \fBibase\fR-1に変更します。これにより、数 \fBFFF\fR は常に、 その入力基数を使って 3 桁で表現可能な最大の値を表します。 .PP すべての演算式が、他の多くの高級言語に似たものとなっています。 数の型は 1 種類しかないため、型変換の規則はありません。 そのかわり、式の有効桁数に関する規則があります。 すべての式に有効桁数があり、これはその被演算数の有効桁数と 施される演算、それに多くの場合、 変数 \fBscale\fR から決定されます。\fBscale\fR には、0 から C の整数で表現できる最大の値までが指定可能です。 .PP 以下、bc で使用可能な演算子を説明します。なお、完全形の式を "expr"、 単純変数または配列変数を "var" と表記します。 単純変数は単に .RS \fIname\fR .RE と表し、配列変数は .RS \fIname\fR[\fIexpr\fR] .RE と表します。特に言及しない限り、結果の有効桁数は、注目している式の 最大有効桁数になります。 .IP "- expr" 結果はその式の符号を反転したものとなります。 .IP "++ var" 変数を 1 だけインクリメントし、その新しい値が式の結果となります。 .IP "-- var" 変数を 1 だけデクリメントし、その新しい値が式の結果となります。 .IP "var ++" 式の結果はその変数の値となり、それからその変数を 1 だけ インクリメントします。 .IP "var --" 式の結果はその変数の値となり、それからその変数を 1 だけ デクリメントします。 .IP "expr + expr" 式の結果は 2 つの式の和となります。 .IP "expr - expr" 式の結果は 2 つの式の差となります。 .IP "expr * expr" 式の結果は 2 つの式の積となります。 .IP "expr / expr" 式の結果は 2 つの式の商となります。 結果の scale は変数 \fBscale\fR の値となります。 .IP "expr % expr" 結果は、以下のようにして求められる剰余です。a%b を求めるために、まず a/b を \fBscale\fR の有効桁数で計算します。この結果を用いて、a-(a/b)*b を、 \fBscale\fR+scale(b) と scale(a) の大きい方の有効桁数で計算します。 もし \fBscale\fR に 0 がセットされ、両方の式が整数であれば、 整数の剰余が求められます。 .IP "expr ^ expr" 式の結果は、1 番目の式の値を 2 番目の回数だけ乗じたものになります。 2 番目の式は、整数でなければなりません。 (2 番目の式が整数でない場合は警告が表示され、 整数に切り詰めた値が使用されます。) 結果の scale は、べき指数が 負なら \fBscale\fR になります。べき指数が正なら、 "1 番目の式の scale とべき指数との積" および "\fBscale\fR と 1 番目の式の scale の大きい方" のうちの小さい方 (つまり、scale(a^b) = min(scale(a)*b, max( \fBscale,\fR scale(a)))) となります。 expr^0 は常に 1 を返します。 .IP "( expr )" 標準の優先度を使わずに、この式の評価を優先します。 .IP "var = expr" 式の値が変数に代入されます。 .IP "var = expr" "var" が一度しか評価されないこと以外は "var = var expr" と同じです。 "var" が配列の場合は動作が違うことがあり得ます。 .PP 関係演算は特殊な演算で、結果は常に 0 か 1 になります。関係が偽の時 0、 真の時 1 になります。関係演算は、演算式のどこでも使う事ができます。 (POSIX bcでは、関係演算は、if, while, for 文の中だけで、しかも 1 つの関係式しか使用できません。) 関係演算子は以下の通り。 .IP "expr1 < expr2" expr1 が expr2 より小さい場合 1 になります。 .IP "expr1 <= expr2" expr1 が expr2 より小さいか等しい場合 1 になります。 .IP "expr1 > expr2" expr1 が expr2 より大きい場合 1 になります。 .IP "expr1 >= expr2" expr1 が expr2 より大きいか等しい場合 1 になります。 .IP "expr1 == expr2" expr1 と expr2 が等しい場合 1 になります。 .IP "expr1 != expr2" expr1 と expr2 が等しくない場合 1 になります。 .PP 論理演算も使えます。(POSIX \fBbc\fR には論理演算はありません。) 論理演算も関係演算と同様、結果は 0 か 1 (各々偽および真) になります。 論理演算子は以下の通り。 .IP "!expr" expr が 0 なら 1 になります。 .IP "expr && expr" expr1 と expr2 が両方とも 0 でないなら、1 になります。 .IP "expr || expr" expr1 と expr2 のどちらか一方が 0 でないなら、1 になります。 .PP 各演算子の優先順位と結合規則は次の通りです。 (最初のものほど低く、後にいくほど高い優先順位で先に実行されます。) .nf .RS || (左から結合) && (左から結合) ! (結合せず) 関係演算 (左から結合) 代入演算 (右から結合) + - (左から結合) * / % (左から結合) ^ (右から結合) - (単項マイナス) (結合せず) ++ -- (結合せず) .RE .fi .PP この優先順位は、POSIX \fBbc\fR のプログラムがそのまま正しく動くように 配慮して決められています。このため、関係演算と論理演算を 代入文と共に用いた場合、通常とは異なる振る舞いをします。 次の例を考えてみましょう: .RS a = 3 < 5 .RE .PP C プログラマのほとんどは、 ``3 < 5'' の関係演算が実行された結果 (つまり 1) が変数 ``a'' に代入される、 と考えるでしょう。 ところが \fBbc\fR では、まず 3 が変数 ``a'' に代入され、 それから 3 と 5 の比較が行われるのです。 この間違いを避けるために、 関係演算や論理演算を代入演算と共に用いる場合は、 括弧を使うのが最良です。 .PP \fBbc\fR には特別な式がさらにいくつか備わっています。 それはユーザ定義関数と標準関数に関するもので、 すべて "\fIname\fB(\fIparameters\fB)\fR" という形をしています。 ユーザ定義関数については関数の章を参照して下さい。 標準関数は以下の通りです: .IP "length ( expression )" expression の有効桁数を返します。 .IP "read ( )" (拡張機能) 関数の出現位置に関係なく、標準入力から数を読み取ります。 データとプログラムの両方を標準入力から与えるような場合には、 問題を生じうることに注意して下さい。 最良の方法は、 ユーザからデータの入力の必要があるなら、プログラムはあらかじめ作っておき、 標準入力からプログラムを入力しないようにすることです。 read 関数の値は標準入力から読み込んだ数です。 その際、変換基数として変数 \fBibase\fR の現在の値が用いられます。 .IP "scale ( expression )" expression の小数点以下の有効桁数を返します。 .IP "sqrt ( expression )" expression の平方根を返します。 expression に負の値を指定した場合は、ランタイムエラーになります。 .SS 文 文は (ほとんどの算術言語がそうであるように)、処理を順番に実行していく単位です。 \fBbc\fR では文は「できるだけ早い段階で」実行されます。 改行が入力された時点で、実行可能な文が存在していれば、即座に実行します。 このため \fBbc\fR では改行が重要な役割を持っています。 実際、セミコロンと改行が文の区切りとして使用されます。 不適当な場所で改行を入力すると、文法エラーになります。 改行は文の区切りですが、バックスラッシュを用いて改行を隠すことができます。 \fBbc\fR にとって、"\e" (は改行) は改行ではなく空白に見えます。 文のリストは、セミコロンと改行で区切られた文の並びです。 以下、\fBbc\fR の文の種類とその動作について説明します。 (なお、以下の説明で ([]) で括った部分は省略可能な項です。) .IP "演算式" 演算式には次の 2 つの種類があります。 演算式が " ..." で始まっていれば、 それは代入文として扱われます。 そうでなければ、演算式は評価されて出力に表示されます。 結果が表示された後、改行が表示されます。 例えば、"a=1" は代入文であり、 "(a=1)" は代入文が埋め込まれた演算式です。 表示される数値はすべて、変数 \fBobase\fR で決まる基数で表示されます。 \fBobase\fR に指定できる値は 2 から BC_BASE_MAX までです。 (「制限」の章を参照。) 基数 2 から 16 まででは、通常の数表記法が用いられます。 基数が 16 より大きい場合、\fBbc\fR は、 各桁を 10 進表記する複数桁文字表記法で表示します。 複数桁文字表記法では、各桁は空白で区切られます。 各桁は "obase-1" を 10 進で表記するのに必要な桁数の数字から成ります。 数の精度は任意に選べるため、数によっては 1 行に表示できない場合もあります。 そのような長い数は、行末に "\e" を付けて次行に継続します。 1 行に表示できる文字数は 70 です。 \fBbc\fR の対話的性質により、ある数を表示すると、 表示した値が特殊変数 \fBlast\fR に代入されるという副作用が生じます。 ユーザはタイプし直すことなく最後に表示された値を再利用できます。 \fBlast\fR に値を代入することも可能で、 その場合、前回表示された値が代入値で上書きされます。 新しく代入した値は、次に数が表示されるか別の値が \fBlast\fR に代入される まで有効です。(bc の実装によっては、 数の一部になっていない単一のピリオド (.) を \fBlast\fR の短縮表記として 用いることができます。) .IP "string" 文字列 string が出力に表示されます。 文字列は二重引用符で始まり、次の二重引用符までのすべての文字を含みます。 改行を含め、すべての文字は文字通りに解釈されます。 文字列の後に改行は出力されません。 .IP "\fBprint\fR list" print 文 (これは拡張機能です) は、もうひとつの出力方法です。 "list" はコンマで区切った文字列および演算式のリストであり、 各文字列あるいは演算式がリストの順に表示されます。 最後に改行は出力されません。 演算式は評価され、その値が表示されるとともに、 変数 \fBlast\fR に代入されます。 print 文中の文字列は出力に表示されますが、特殊文字を含めることができます。 特殊文字はバックスラッシュ (\e) で始まります。 \fBbc\fR で使える特殊文字は、 "a" (ベル)、"b" (バックスペース)、 "f" (フォームフィード)、"n" (改行)、"r" (復帰)、"q" (二重引用符)、 "t" (タブ)、"\e" (バックスラッシュ) です。 これ以外は無視されます。 .IP "{ statement_list }" 複文です。複数の文を 1 つのグループにまとめて実行します。 .IP "\fBif\fR ( expression ) statement1 [\fBelse\fR statement2]" if 文は演算式 expression を評価し、その値に応じて 文 statement1 または文 statement2 を実行します。 expression の値が 0 でなければ statement1 が実行されます。 statement2 が存在し、expression の値が 0 ならば、statement2 が実行されます。 (else 節は拡張機能です。) .IP "\fBwhile\fR ( expression ) statement" while 文は expression が 0 でない間、繰り返し statement を実行します。 statement の実行前に毎回 expression を評価します。 expression の値が 0 になるか、break 文を実行すると、 ループが終了します。 .IP "\fBfor\fR ( [expression1] ; [expression2] ; [expression3] ) statement" for 文は statement の繰り返し実行を制御します。 expression1 はループ実行の前に評価されます。 expression2 は statement の実行前に毎回評価され、 その値が 0 でなければ statement が実行されます。 expression2 の値が 0 になると、ループは終了します。 各 statement 実行の後、再び expression2 が評価される前に expression3 が 評価されます。 expression1 あるいは expression3 が省略されていると、 そこでは何も評価されません。 expression2 が省略されている場合、expression2 が 1 であるのと 同様に扱われます。 (各 expression が省略可能なのは拡張機能です。 POSIX \fBbc\fR では、3 つの expression はどれも省略できません。) 以下は for 文と等価なコードです: .nf .RS expression1; while (expression2) { statement; expression3; } .RE .fi .IP "\fBbreak\fR" それを含む最も内側の while もしくは for 文による繰り返しを強制的に中断します。 .IP "\fBcontinue\fR" それを含む最も内側の for 文における次の繰り返しに進みます。 (continue 文は拡張機能です) .IP "\fBhalt\fR" 実行されると \fBbc\fR プロセッサを終了させます(拡張機能)。 例えば "if (0 == 1) halt" の場合は \fBbc\fR は終了しません。 halt 文が実行されないからです。 .IP "\fBreturn\fR" 関数から戻ります。関数の結果は 0 になります。(関数の章を参照) .IP "\fBreturn\fR ( expression )" 関数から戻ります。関数の結果は expression になります。(関数の章を参照) .SS 疑似文 これらは今までの文とは動作が異なります。 疑似文は実行文ではなく、「コンパイル」時点で処理されます。 .IP "\fBlimits\fR" \fBbc\fR のローカルバージョンにより制限される限界値を表示します。 (limits は拡張機能です) .IP "\fBquit\fR" \fBbc\fR を終了します。どんな場所にあっても、quit 文は 入力された時点で実行されます。例えば、 "if (0 == 1) quit" という記述であっても、\fBbc\fR は終了します。 .IP "\fBwarranty\fR" 保証に関する注意を長めに表示します。 (warranty は拡張機能です) .SS 関数 関数は、後で実行されるべき計算手順を定義する機能です。 .B bc の関数は常に値を計算し、それを呼びだし側に返します。 関数定義は、それが入力から読み込まれた時点で定義が行われるという点で 「ダイナミック(動的)」です。 一度定義された関数は、同じ名前で別の関数が定義されるまで使用可能で、 新しい関数が定義された場合は、前の関数が置き換えられます。 関数の定義は、以下のように行います: .nf .RS \fBdefine \fIname \fB( \fIparameters \fB) { \fInewline \fI auto_list statement_list \fB}\fR .RE .fi 関数呼び出しは、 "\fIname\fB(\fIparameters\fB)\fR" という形式の演算式です。 .PP パラメータ parameters は数あるいは配列 (拡張機能) です。 関数定義では、0 あるいは 1 個以上のパラメータ名を コンマで区切って並べることで定義します。 数は値渡し(call by value)でのみ渡され、配列は変数渡し(call by variable)で のみ渡されます。 配列はパラメータ定義中で "\fIname\fB[]\fR" のように表記して指定します。 関数呼び出しでは、数のパラメータに対して完全な演算式の実パラメータを 記述します。 配列を渡す表記は配列パラメータ定義と同様です。 名前付き配列は変数(variable)によって関数に渡されます。 関数定義はダイナミックゆえ、 パラメータの数と型は関数呼び出しの際にチェックされます。 パラメータの数あるいは型に何らかの不整合があると、 ランタイムエラーが発生します。 未定義関数を呼び出した場合もランタイムエラーとなります。 .PP \fIauto_list\fR は省略可能で、ローカル変数として使用する変数のリスト です。auto_list が存在するなら、その文法は "\fBauto \fIname\fR, ... ;" となります。(セミコロンは省略可能です。) 各 \fIname\fR がローカル変数の名前となります。 配列はパラメータと同様の表記で指定できます。 これらの変数は、関数の最初でその値がスタックにプッシュされたのち 値 0 に初期化され、関数の実行中に使用されます。 これらの変数は関数出口にてポップされ、 (関数呼び出し時の)元の値が復元されます。 パラメータは実際にはローカル変数であり、 関数呼び出しで与えられた値に初期化されます。 bc のローカル変数は伝統的な意味でのローカル変数と異なり、 関数 A が関数 B を呼び出しているような場合、関数 B の中に 関数 A のローカル変数と同じ名前のローカル変数がない限り、 関数 A のローカル変数名をそのまま使って、 関数 B から関数 A のローカル変数をアクセスできます。 ローカル変数とパラメータはスタックにプッシュされるため、 \fBbc\fR は再帰的な関数呼び出しをサポートしています。 .PP 関数本体は \fBbc\fR の文のリストです。 繰り返し述べますと、文はセミコロンか改行で区切られています。 return 文により関数は終了し、値を返します。 return 文には 2 つの形式があり、 ひとつめの形式 "\fBreturn\fR" は、呼び出し元に値 0 を返します。 もうひとつの形式 "\fBreturn ( \fIexpression \fB)\fR" は、 expression の値を計算し、それを呼び出し元に返します。 各関数の最後には "\fBreturn (0)\fR" があるものと解釈されます。 これにより、明示的に return 文を置かなくても、 関数は終了して値 0 を返します。 .PP 関数の中では、変数 \fBibase\fR の動作が変わります。関数の中で使われて いる定数は、関数の呼びだし時点の \fBibase\fR を元に変換が行われます。 このため、関数内部で \fBibase\fR を変更しても無視されます。ただし、標 準関数 \fBread\fR を呼び出した場合は例外で、これは常に現在の \fBibase\fR の値をもとに変換が行われます。 .SS 数学ライブラリ \fBbc\fR に \fB-l\fR オプションを付けて起動した場合は、数学ライブラリが 読み込まれ、デフォルトの scale が 20 に設定されます。 数学関数は、それを呼び出した時点の scale の値に従って計算を行います。 数学ライブラリによって使用可能になる関数は、次の通りです: .IP "s (\fIx\fR)" sin (x の単位はラジアン) .IP "c (\fIx\fR)" cos (x の単位はラジアン) .IP "a (\fIx\fR)" atan (返り値の単位はラジアン) .IP "l (\fIx\fR)" log (自然対数) .IP "e (\fIx\fR)" exp (指数関数) .IP "j (\fIn,x\fR)" 整数 n 次のベッセル関数 .SS 使用例 次の例は、/bin/sh でシェル変数 \fBpi\fR に ``パイ'' の値を代入します。 .RS \f(CW pi=$(echo "scale=10; 4*a(1)" | bc -l) \fR .RE .PP 次の例は、数学ライブラリで使われている ``e (x)'' の定義です。 この関数は POSIX \fBbc\fR で記述されています。 .nf .RS \f(CW scale = 20 /* Uses the fact that e^x = (e^(x/2))^2 When x is small enough, we use the series: e^x = 1 + x + x^2/2! + x^3/3! + ... */ define e(x) { auto a, d, e, f, i, m, v, z /* Check the sign of x. */ if (x<0) { m = 1 x = -x } /* Precondition x. */ z = scale; scale = 4 + z + .44*x; while (x > 1) { f += 1; x /= 2; } /* Initialize the variables. */ v = 1+x a = x d = 1 for (i=2; 1; i++) { e = (a *= x) / (d *= i) if (e == 0) { if (f>0) while (f--) v = v*v; scale = z if (m) return (1/v); return (v/1); } v += e } } \fR .RE .fi .PP 次の例は、\fBbc\fR の拡張機能を使って、``checkbook balances'' (小切手帳残高) を計算する簡単なプログラムです。 このプログラムをファイルにしておくと、 毎回タイプしなおさずに何度も使うことができます。 .nf .RS \f(CW scale=2 print "\enCheck book program!\en" print " Remember, deposits are negative transactions.\en" print " Exit by a 0 transaction.\en\en" print "Initial balance? "; bal = read() bal /= 1 print "\en" while (1) { "current balance = "; bal "transaction? "; trans = read() if (trans == 0) break; bal -= trans bal /= 1 } quit \fR .RE .fi .PP 次の例は、再帰呼び出しにより階乗を計算する関数です。 .nf .RS \f(CW define f (x) { if (x <= 1) return (1); return (f(x-1) * x); } \fR .RE .fi .SS readline オプション GNU \fBbc\fR は (configure のオプションによって) GNU \fBreadline\fR 入力エディタライブラリを使うようにコンパイルできます。 これは、\fBbc\fR に入力する前に、行の編集を可能にします。 以前に入力した行のヒストリも利用可能になります。このオプションで コンパイルされた \fBbc\fR では、さらに 1 つの特殊な変数 \fBhistory\fR が追加され、ヒストリに保存される行の数を指定します。 その値が -1 (デフォルト値)なら、ヒストリ行は制限なく保存されます。 正の数を指定すると、ヒストリ行がその数に制限されます。 0 ならヒストリ機能が無効になります。詳しくは、ユーザマニュアルの GNU \fBreadline\fR と \fBhistory\fR ライブラリをご覧下さい。 .SS 相違点 このバージョンの .B bc は POSIX P1003.2/D11 ドラフトから実装されており、 そのドラフトや以前の実装に比べていくつかの相違点や拡張点があります。 伝統的に行われていたような .I dc(1) を用いた実装ではありません。 このバージョンは単一プロセスであり、 プログラムをバイトコードに変換したものを解析して実行します。 「ドキュメントに記載されていない」オプション (-c) があり、 プログラムを実行する代わりに、それをバイトコードに変換した結果を 標準出力に出力します。 これは主として、パーザのデバッグと数学ライブラリの準備に用いられました。 .PP 主な相違点は拡張機能によるものです。 機能を高めたり追加したりするために機能が拡張されたり、 新機能が追加されたりしています。 相違点と拡張点のリストを以下に示します。 .IP LANG このバージョンは、 環境変数 LANG および LC_ で始まるすべての環境変数の処理に関して POSIX 標準に 準拠していません。 .IP 名前 伝統的な .B bc および POSIX .B bc は、関数、変数、配列の名前として単一の文字を使います。 このバージョンでは、 先頭が文字で始まり、文字と数字とアンダースコアで 構成される 2 文字以上の名前が使えるように拡張されています。 .IP 文字列 文字列には NUL 文字を含むことはできません。 POSIX では、文字列にはあらゆる文字を含めることができなければならない、 としています。 .IP last POSIX \fBbc\fR には変数 \fBlast\fR はありません。 \fBbc\fR の実装によっては、\fBlast\fR と同じ意味で ピリオド (.) を用いるものがあります。 .IP 比較 POSIX \fBbc\fR では、比較は if 文、while 文、for 文の第 2 式の中でのみ 用いることができます。 また、これらの文の中ではただ 1 つの関係演算しか使えません。 .IP "if 文, else 節" POSIX \fBbc\fR には else 節はありません。 .IP "for 文" POSIX \fBbc\fR では for 文の各演算式は省略できません。 .IP "&&, ||, !" POSIX \fBbc\fR には論理演算子はありません。 .IP "read 関数" POSIX \fBbc\fR には read 関数はありません。 .IP "print 文" POSIX \fBbc\fR には print 文はありません。 .IP "continue 文" POSIX \fBbc\fR には continue 文はありません。 .IP "配列パラメータ" POSIX \fBbc\fR では (現在のところ) 配列パラメータは完全には使えません。 POSIX の文法では、関数定義では配列を使えますが、実際に呼び出すときの パラメータに配列を指定することができません。(これはおそらく、文法上の 見落としでしょう。) 伝統的な \fBbc\fR の実装では、配列パラメータは値渡し のみでした。 .IP "=+, =-, =*, =/, =%, =^" POSIX \fBbc\fR ではこれらの「旧式」の代入演算子を定義する必要はありません。 このバージョンではこれらの「旧式」代入演算子が使えるかも知れません。 limits 文を使って、インストールしたバージョンがこれらをサポートしているか どうか、確かめてみて下さい。 もしそのバージョンが「旧式」代入演算子をサポートしていれば、 文 "a =- 1" は \fBa\fR に値 -1 を代入する代わりに \fBa\fR を 1 減じます。 .IP "数字表記中の空白" 他の \fBbc\fR 実装では、数字表記の中に空白を含めることが許されます。 例えば、"x=1 3" は変数 x に値 13 を代入します。 このバージョンの \fBbc\fR では、先の文は文法エラーになります。 .IP "エラーと実行" このバージョンの bc は、 プログラムに文法上のエラーや他のエラーが見つかった場合に どういうコードが実行されるか、 という点で、他の実装と異なっています。 ある関数定義中で文法エラーが見つかると、 エラー回復機構は文の先頭を見つけて関数のパーズを続けようと努力します。 ひとたび関数の中で文法エラーが見つかると、 その関数は呼び出せなくなり、未定義状態となります。 対話的実行コードで文法エラーがあると、 現在の実行ブロックが無効になります。 実行ブロックとは、ひと続きの完全な文のあとの行末までのことです。 例えば、次のコード .nf .RS a = 1 b = 2 .RE .fi には 2 つの実行ブロックがあり、 .\" ↑ここで groff 時の字下げ量がおかしくなっているようだが、 .\" 元の英語マニュアルでもそうなっているようだ。(jpman 酒井) .nf .RS { a = 1 b = 2 } .RE .fi には 1 つの実行ブロックがあります。 ランタイムエラーが発生すると、現在の実行ブロックの実行が終了します。 ランタイムの警告が発生しても、現在の実行ブロックは終了しません。 .IP "割り込み" 対話セッションの間、SIGINT シグナル (通常、端末からの Control-C 入力で 発生します) によって現在の実行ブロックの実行が中断され、 どの関数が中断されたかを示す「ランタイム」エラーが表示されます。 ランタイムのデータ構造をすべてクリアした後メッセージが表示され、 \fBbc\fR は次の入力を受け付ける状態になったことを示します。 これまでに定義した関数はすべて定義されて残っており、 ローカルでない変数の値は割り込み発生時点の値のままになっています。 ローカル変数と関数パラメータはすべて、クリア処理によって消去されます。 非対話セッションでは、SIGINT シグナルで \fBbc\fR の実行全体が終了します。 .SS 限界 以下の項目が現在の .B bc プロセッサの限界値となっています。 このうちいくつかは、インストール時に変更できます。 実際の値を得るには limits 文を使って下さい。 .IP BC_BASE_MAX 現在のところ、出力の基数の最大値は 999 に設定されています。 入力側の基数の最大値は 16 です。 .IP BC_DIM_MAX 現在のところ 65535 として配布されていますが、 インストールしたバージョンでは異なっているかも知れません。 .IP BC_SCALE_MAX 小数点以下の桁数は INT_MAX 桁に制限されています。 また、小数点より上の桁数も INT_MAX 桁に制限されています。 .IP BC_STRING_MAX 文字列中の文字数は INT_MAX 文字に制限されています。 .IP 指数 累乗演算 (^) の指数の値は LONG_MAX に制限されています。 .IP 乗算 全部で LONG_MAX / 90 桁以上になる数の積を計算すると 誤った結果になることがあります。 32 ビット long では、この数は 23,860,929 桁です。 .IP コードサイズ 各関数および "main" プログラムはバイトコードで 16384 バイト以内に 制限されています。 この限界値 (BC_MAX_SEGS) は 1024 バイトの 16 セグメント以上になるように 容易に変更可能です。 .IP 変数名 単純変数、配列、関数各々について、一意に識別される名前は 32767 個に 制限されています。 .SH 環境変数 \fBbc\fR は以下の環境変数を解釈します。 .IP "POSIXLY_CORRECT" \fB-s\fR オプションと同じです。 .IP "BC_ENV_ARGS" -これは \fBbc\fR に引き数を渡す別の方法で、コマンドライン引き数と -同じ書式です。この引き数が最初に処理されるので、この環境変数で +これは \fBbc\fR に引数を渡す別の方法で、コマンドライン引き数と +同じ書式です。この引数が最初に処理されるので、この環境変数で 指定されたファイルはコマンドライン引数で指定されたファイルよりも 先に処理されます。これにより、毎回 \fBbc\fR を呼び出すごとに 処理する「標準の」オプションやファイルを設定できます。この環境変数で 指定するファイルには、\fBbc\fR を走らせるたびに定義しておきたいような 関数の定義を書いておくとよいでしょう。 .IP "BC_LINE_LENGTH" 数字を出力するときの 1 行の文字数を整数で指定します。 数字が長過ぎると、バックスラッシュと改行を含めた出力となります。 .SH 関連ファイル ほとんどの実装では、\fBbc\fR は完全に自己完結しています。 実行ファイルのサイズが重要視される場合や、 C コンパイラが長い文字列を扱えない場合は、 \fBbc\fR は /usr/local/lib/libmath.b から標準の数学ライブラリを読み込みます。 (実際のディレクトリ位置はこれとは異なり、 例えば /lib/libmath.b かも知れません。) .SH 診断 コマンドラインで指定したファイルがオープンできない場合、 \fBbc\fR はファイルが利用できない旨を表示して終了します。 また、コンパイル時あるいはランタイムの診断メッセージもありますが、 それらは自身で理解できるようになっているはずです。 .SH バグ エラーリカバリがまだうまくいっていません。 .PP バグ報告は、 .BR bug-gnu-utils@prep.ai.mit.edu に電子メールでお願いします。 単語 ``bc'' を ``Subject:'' フィールドのどこかに入れておいてください。 .SH 作者 .nf Philip A. Nelson phil@cs.wwu.edu .fi .SH 謝辞 実装をテストする際に 広範囲に手助けしてくれた Steve Sommars (Steve.Sommars@att.com) に感謝します。 たくさんの素晴らしい意見をもらいました。 彼のおかげでとてもよいものになりました。 diff --git a/ja/man/man1/find.1 b/ja/man/man1/find.1 index df03cd1638..c5b52dd0c1 100644 --- a/ja/man/man1/find.1 +++ b/ja/man/man1/find.1 @@ -1,520 +1,520 @@ .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)find.1 8.7 (Berkeley) 5/9/95 .\" %Id: find.1,v 1.15 1998/05/15 11:22:36 jkoshy Exp % .\" jpman %Id: find.1,v 1.4 1997/09/23 14:13:10 horikawa Stab % .\" .Dd May 9, 1995 .Dt FIND 1 .Os .Sh 名称 .Nm find .Nd ディレクトリツリーを再帰的に下ってファイルを捜す .Sh 書式 .Nm find .Op Fl H | Fl L | Fl P .Op Fl Xdx .Op Fl f Ar file .Op Ar file ... .Ar expression .Sh 解説 .Nm find は、 .Ar file に対してディレクトリツリーを再帰的に下って、 ツリー上の各ファイルについて .Ar expression (後に示す ``プライマリ'' と ``演算子'' から構成されます) で指定された処理を実行します。 .Pp オプションとしては以下のものがあります: .Pp .Bl -tag -width Ds .It Fl H .Ar file で指定したファイルがシンボリックリンクファイルだった場合、シンボリックリンク 自体ではなく、リンク先のファイルに関してファイル情報とファイルタイプ( .Xr stat 2 参照) を使って .Ar expression の処理をするように指定します。 もしリンク先のファイルがなければ、 シンボリックリンク自体を処理の対象とします。 コマンドラインからの .Ar file で直接指定されたのではなく、 ディレクトリツリー上で見つかったシンボリックリンクファイルに関しては、 シンボリックリンク自体を処理の対象とします。 .It Fl L .Ar file で指定したファイルがシンボリックリンクファイルだった場合、シンボリックリンク 自体ではなく、リンク先のファイルに関してファイル情報とファイルタイプ( .Xr stat 2 参照) を使って .Ar expression の処理をするように指定します。もしリンク先のファイルがな ければ、シンボリックリンク自体を処理の対象とします。 .It Fl P シンボリックリンク自体に関して ファイル情報とファイルタイプ( .Xr stat 2 参照) を使って .Ar expression の処理をするように指定します。 これがデフォルトです。 .It Fl X .Xr xargs 1 と組み合わせて使うときのため、より安全に動作するようにします。もし .Xr xargs によりデリミタ文字 (single quote (`` ' ''), double quotes (`` " ''), backslash (``\e''), space, tab, newline) が含まれるファイル名 が使われた場合、診断メッセージを標準エラー出力に表示して、 そのファイル名をスキップします。 .It Fl d ファイルに対する処理順序を深さ優先の探索方式にします。 すなわち、ディレクトリ自体に 対する処理を行う前に、ディレクトリ内の個々のファイルに対して処理を 実行します。デフォルトでは、ディレクトリは最初に処理されます。 (デフォルトの方式は幅優先探索方式ではないです。) .It Fl f Ar file 明示的にファイルを指定します。ファイル名の先頭が ``\-'' で始まっていたり、 あとで述べる .Ar expression の指定と混同してしまうようなファイル名を指定したりするときに使用します。 (ファイルはオプション直後のオペランドとしても指定可能です。) .It Fl x ディレクトリツリーを下って行くとき、最初に file のあったファイルシステムとは 異なるファイルシステム上のファイルに対する処理になる場合は、実行しないように します。 .El .Sh プライマリ .Bl -tag -width Ds .It Ic -amin Ar n 最後にファイルがアクセスされた時刻と、 .Nm find を起動した時刻との差(1 分単位で切り上げます)が .Ar n 分であれば、真とします。 .It Ic -atime Ar n 最後にファイルがアクセスされた時刻と、 .Nm find を起動した時刻との差(24 時間単位で切り上げます)が .Ar n 日であれば、真とします。 .It Ic -ctime Ar n 最後にファイルのステータスが変更された時刻と、 .Nm find を起動した時刻の差 (24 時間単位で切り上げます) が .Ar n 日であれば、真とします。 .It Ic -delete 見付けたファイルやディレクトリを消去します。常に真を返します。 現在の作業ディレクトリから .Nm は再帰的にディレクトリツリーを下ります。 セキュリティ上の理由から、 "." からの相対パス名に ``/'' 文字を含むファイル名のファイルを 消去しようとはしません。 このオプションにより暗示的に深さ優先の処理が指定されます。 .It Ic -exec Ar utility Op argument ... ; .Ar utility で指定した名前のプログラムを実行し、終了コードが 0 -の場合、真とします。argument は、utility への引き数として渡されます。この +の場合、真とします。argument は、utility への引数として渡されます。この 指定は、最後に必ずセミコロン (``;'') をつけてください。 utility もしくは argument の指定 のなかで ``{}'' が使われていた場合は、その部分が、現在 .Nm find が対象としてい るファイルのパス名に置き換えられます。ただし、 .Ar utility が実行されるときのカレントディレクトリは、 .Nm find が起動されたディレクトリのままです。 .It Ic -execdir Ar utility Op argument ... ; .Ic \&-execdir プライマリは .Ic -exec プライマリと同様ですが、 .Ar utility が現在のファイルを持つディレクトリにおいて実行される点が異なります。 文字列 ``{}'' に対して置換されるファイル名は適切ではありません。 .It Ic -fstype Ar type 対象ファイルが格納されているファイルシステムのタイプが、 .Ar type で指定されたものである場合に真となります。 .Xr sysctl 8 コマンドを使用して、 システム上で利用可能なファイルシステムタイプを調べることができます: .Bd -literal -offset indent sysctl vfs .Ed さらに、2 つの 擬似タイプ ``local'' と ``rdonly'' があります。 ``local'' は、 .Nm find を実行しているシステム上に物理的 にマウントされているファイルシステムです。``rdonly'' は、リードオンリーで マウントされているファイルシステムです。 .It Ic -group Ar gname ファイルが .Ar gname で指定したグループに属している場合、真になります。 .Ar gname が数字で、そのようなグループ名がない場合は、 .Ar gname をグループ ID として扱います。 .It Ic -inum Ar n ファイルの i ノード番号が .Ar n なら、真になります。 .It Ic -links Ar n ファイルのリンク数が .Ar n なら、真になります。 .It Ic -ls このプライマリは常に真になります。対象となっているファイルの情報を 標準出力に出力します。出力する内容は i ノード番号、 512 バイトブロックでのファイルの大きさ、 ファイルのパーミッション、ハードリンクの数、所有者、グループ、 バイトで表したファイルの大きさ、最後にファイルが修正された時刻、パス名です。 ファイルがブロック型もしくはキャラクタ型のスペシャルファイルならば、 バイトで表したファイルの大きさの代わりにメジャー番号とマイナー番号を 出力します。ファイルがシンボリックリンクならば、 `\`->''の後にリンク先のファイルのパス名を表示します。 フォーマットは ``ls -dgils'' の出力結果と同じです。 .It Ic -mtime Ar n 最後にファイルが修正された時刻と、 .Nm find を起動した時刻との差(24 時間単位で切り上げます)が .Ar n 日であれば、真とします。 .It Ic \&-ok Ar utility Op argument ... ; .Ic exec とほぼ同じですが、 .Ar utility を実行するかどうかの確認をユーザに求め、端末にメッセージを出力します。 ``y'' 以外の返答をした場合は、 コマンドは実行されず、 このプライマリの値は偽になります。 .It Ic -name Ar pattern 対象ファイルのパス名の最後のファイル名部分が .Ar pattern で指定したものとマッチするかどうかを調べ、マッチした場合は真になります。 .Ar pattern としては、シェルで使われるパターンマッチ 指定 (``['', ``]'', ``*'', ``?'') を使用することができます。これらの文字は バックスラッシュ(``\e'')を前において、パターンマッチ指定ではなく文字として 扱う事を明示することができます。 .It Ic -newer Ar file 対象ファイルの修正日付が、 .Ar file で指定したファイルのものより新しい場合は、真になります。 .It Ic -nouser 対象ファイルの所有者が unknown の場合、真になります。 .It Ic -nogroup 対象ファイルのグループが unknown の場合、真になります。 .It Ic -path Ar pattern 対象ファイルのパス名が、 .Ar pattern で指定したものとマッチす るかどうかを調べます、マッチした場合は真になります。 .Ar pattern としては、シェルで使われるパターンマッチ 指定 (``['', ``]'', ``*'', ``?'') を使用することができます。これらの文字は バックスラッシュ (``\e'') を前において、パターンマッチ指定ではなく文字として 扱う事を明示することができます。 ``/'' は、そのままパスのディレクトリの区切りにマッチします。 .It Ic -perm Op Ns Ar mode ファイルのモードを、 .Ar mode と比較します。 .Ar mode は、シンボル 形式( .Xr chmod 1 参照) もしくは 8 進数形式で指定します。シンボル形式の場合は、 00000 から開始してパーミッションのセットとクリアを行います。 (プロセスのファイル生成マスクとは無関係です。) 8 進数形式の場合は、 ファイルのモードビットのうち、07777 .Pf ( Dv S_ISUID | .Dv S_ISGID | .Dv S_ISTXT | .Dv S_IRWXU | .Dv S_IRWXG | .Dv S_IRWXO ) の部分が比較対象になります。 .Ar mode の最初に ``\-'' を指定した場合は、 .Ar mode でセットされているすべてのビットが ファイルのモードでもセットされていれば真となります。 ``\-'' が指定されていない場合は、ファイルのモードと .Ar mode が完全に一致した場合にのみ真となります。 なお、 シンボル形式でモード指定をする場合は、少なくとも最初が ``\-'' にならない ようにする必要があります。 .It Ic -print このプライマリは常に真になります。 対象となっているファイルのパス名を標準出力に出力して改行します。 .Ic -exec , .Ic -ls , .Ic -ok , .Ic -print0 のどのプライマリも指定されなかった場合は、 与えられた式 given expression は .Cm \&( Ns Ar given\& expression Ns Cm \&) .Ic -print で置き換えられます。 .It Ic -print0 .Ic -print とほぼ同じですが、標準出力に対象となっているファイルのパス名を出力 したあと、改行ではなく、 .Tn ASCII .Tn NUL 文字(文字コード 0)を出力します。 .It Ic -prune このプライマリは常に真になります。 対象となっているファイル配下のディレクトリに下りないようにします。 .Fl d オプションが指定されている場合は、 .Ic -prune の指定は無効になります。 .It Ic -size Ar n Ns Op Cm c ファイルサイズを 512 バイトのブロック単位で数えたとき (端数は切り上げ)、 .Ar n ブロックであれば真になります。 .Ar n のあとに ``c'' が指定されていた場合は、ファイルサイズが .Ar n バイトであれば真になります。 .It Ic -type Ar t ファイルタイプが .Ar t で指定されたタイプに一致すれば真になります。 タイプとして、次のような指定が可能です: .Pp .Bl -tag -width flag -offset indent -compact .It Cm b ブロックスペシャル .It Cm c キャラクタスペシャル .It Cm d ディレクトリ .It Cm f 普通のファイル .It Cm l シンボリックリンク .It Cm p FIFO .It Cm s ソケット .El .Pp .It Ic -user Ar uname ファイルの所有者が、 .Ar uname で指定されたユーザと一致すれば真になります。もし .Ar uname が数字で、そのようなユーザ名がなければ、 ユーザ ID が指定されたものとして扱います。 .El .Pp なお、数字を引数にとるプライマリは、 数字の前に ``+'' および ``\-'' をつけることができます。 それぞれ ``n より大'' および ``n より小'' の意味になり、 ``正確に n''という意味ではなくなります。 .Sh 演算子 .Pp 以下の演算子を使って、プライマリを組み合わせることができます。 演算子は優先度が下がる順番で示されています。 .Bl -tag -width (expression) .It Cm \&( Ns Ar expression Ns Cm \&) もし、括弧内の .Ar expression が真なら、真になります。 .Pp .It Cm \&! Ns Ar expression 単項否定演算子( .Tn NOT )です。 .Ar expression が偽なら、真となります。 .Pp .It Ar expression1 Cm -and Ar expression2 .It Ar expression1 expression2 論理積( .Tn AND )演算子です。 .Ar expression1 と .Ar expression2 の両方とも真のとき、真になります。 もし .Ar expression1 が偽なら、 .Ar expression2 は実行されません。 .Ic -and を書かずに、単に 2 つの expression を並べて .Pp .Ar expression1 expression2 .Pp と書いても同じです。 .Pp .It Ar expression1 Cm -or Ar expression2 論理和( .Tn OR )演算子です。 .Ar expression1 か .Ar expression2 のどちらか一方でも真であれば、真になります。もし .Ar expression1 が真なら、 .Ar expression2 は実行されません。 .El .Sh 使用例 .Pp コマンドラインからのタイプ例です。 .Nm find の演算子がシェルの特殊文字と間違われないように、 エスケープ文字 ``\e'' を使用しています。 .Bl -tag -width findx .It Li "find / \e! -name \*q*.c\*q -print" 探索をルートディレクトリから開始し、ファイル名の終わりが ``.c'' でないものを表示します。 .It Li "find / -newer ttt -user wnj -print" 探索をルートディレクトリから開始し、 ファイルが ``ttt'' というファイルより新しく、 所有者が ``wnj'' であるようなものを表示します。 .It Li "find / \e! \e( -newer ttt -user wnj \e) -print" 探索をルートディレクトリから開始し、 ``ttt'' というファイルより古いか、 所有者が ``wnj'' 以外のファイルを表示します。 .It Li "find / \e( -newer ttt -or -user wnj \e) -print" 探索をルートディレクトリから開始し、 ファイルが ``ttt'' というファイルより新しいか、 所有者が ``wnj'' であるようなものを表示します。 .El .Sh 関連項目 .Xr chmod 1 , .Xr locate 1 , .Xr whereis 1 , .Xr which 1 , .Xr stat 2 , .Xr fts 3 , .Xr getgrent 3 , .Xr getpwent 3 , .Xr strmode 3 , .Xr symlink 7 .Sh 規格 .Nm find ユーティリティの文法は .St -p1003.2 の仕様で決められた文法のスーパセットです。 全 1 文字オプションと .Ic -inum , .Ic -print0 , .Ic -delete , .Ic -ls のプライマリは .St -p1003.2 の拡張です。 .Pp 昔は .Fl d , .Fl h , .Fl x のオプションは それぞれ ``\-depth'', ``\-follow'', ``\-xdev'' のプライマリを 用いて実装されていました。 これらのプライマリは常に真に評価されていました。 これらのプライマリは 探索が始まる前に効果を与える本当のグローバル変数であったので、 いくつかの合法的な expression が予期しない結果となりました。 一例として ``\-print \-o \-depth''の expression があります。 \-print が常に真に評価されるため 標準の評価の順番では \-depth は決して評価されないはずですが、 そうではありませんでした。 .Pp 演算子の ``-or'' は ``\-o'' として実装されていました。 演算子の ``-and'' は ``\-a'' として実装されていました。 .Pp 昔の実装では .Ic exec と .Ic ok のプライマリでは、 utility 名やその引数中において、 空白以外の文字が前後に続く ``{}'' を置き換えませんでした。 このバージョンでは utility 名やその引数のどの場所に ``{}'' が現れても 置き換えます。 .Sh バグ .Nm find によって使われる特殊文字は多くのシェルにとっても 特殊文字です。 特に ``*'', ``['', ``?'', ``('', ``)'', ``!'', ``\e'', ``;'' は、 シェルからエスケープされなくてはならないでしょう。 .Pp オプションとファイル名との間および ファイル名と .Ar expression との間を区切るデリミタが存在しませんので、 ファイル名にオプションと間違えるようなもの (``-xdev'' のようなもの) や、 .Ar expression と間違えるようなもの (``!'' のようなもの) を指定することは難しいです。 このようなファイル名を指定する場合は .Fl f オプションを使うか、 .Xr getopt 3 で使われるオプション指定の終了記号 ``--'' を使用します。 .Pp .Ic -delete プライマリは、ファイルシステムツリーの検索順序に影響する 他のオプションとは十分には連係しません。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 diff --git a/ja/man/man1/send-pr.1 b/ja/man/man1/send-pr.1 index fd50a8b6b7..92552502f6 100644 --- a/ja/man/man1/send-pr.1 +++ b/ja/man/man1/send-pr.1 @@ -1,249 +1,249 @@ .\" -*- nroff -*- .\" --------------------------------------------------------------------------- .\" man page for send-pr (by Heinz G. Seidl, hgs@cygnus.com) .\" updated Feb 1993 for GNATS 3.00 by Jeffrey Osier, jeffrey@cygnus.com .\" .\" This file is part of the Problem Report Management System (GNATS) .\" Copyright 1992 Cygnus Support .\" .\" This program is free software; you can redistribute it and/or .\" modify it under the terms of the GNU General Public .\" License as published by the Free Software Foundation; either .\" version 2 of the License, or (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU .\" General Public License for more details. .\" .\" You should have received a copy of the GNU Library General Public .\" License along with this program; if not, write to the Free .\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA .\" .\" --------------------------------------------------------------------------- .\" jpman %Id: send-pr.1,v 1.2 1997/03/29 08:29:34 horikawa Stab % .nh .TH SEND-PR 1 3.2 "February 1993" .SH 名称 send-pr \- サポートサイトに Problem Report (PR) を送る。 .SH 書式 .B send-pr [ .I site ] [ .B \-f .I problem-report ] [ .B \-t .I mail-address ] .br .in +0.8i [ .B \-P ] [ .B \-L ] [ .B \-\-request-id ] [ .B \-v ] .SH 解説 .B send-pr は、サポートサイトに対して、 .I problem report .\" SITE ADMINISTRATORS - change this if you use a local default (PR) を送るために使うツールです。大抵の場合は正しい .I site -がデフォルトとなっているはずです。この引き数は、問題 +がデフォルトとなっているはずです。この引数は、問題 のカテゴリに対して責任をもつサポートサイトを指し示します。いくつかの サイトはデフォルトとしてローカルアドレスを使っていることでしょう。 .I site は、 .BR aliases (5) を使って定義されます。 .LP .B send-pr を実行すると、エディタが起動され、用意されているテンプレートが (いくつ かのフィールドにもっともらしいデフォルトの値をあてはめてから) 読み込ま れます。エディタを終了すると、 .B send-pr は、サポートサイトの .I Problem Report Management System (\fBGNATS\fR) に書き込み終えた書式をメールで送ります。 サポートサイトで は、PR に唯一の番号を割り当てて、その問題のカテゴリ と \fIsubmitter-id\fR とともに、\fBGNATS\fR データベースに 保存しています。 \fBGNATS\fR は PR を受理したこと知らせるために、 問題のカテゴリの引用と PR 番号とを自動的に返送します。 .LP PR がすぐに処理されるようにするためには、問題の属す領域を識別するため、 指定可能カテゴリから一つを選んで記入する必要があります。(カテゴリの一覧は .B `send-pr -L' で見ることができます。) .LP 問題の記述がより正確であり、提供される情報がより完全であればあるほど、 サポートチームは問題をそれだけ早く解決することができます。 .SH オプション .TP .BI \-f " problem-report" すでに記入した PR ファイルを \fIproblem-report\fR に指定できます。 .B send-pr はエディタを起動せずに指定したファイルを送ります。 .I problem-report が .BR `\|\-\|' のときは .B send-pr は、標準入力から読み込みます。 .TP .BI \-t " mail-address" PR を送るサイトのメールアドレスを変更します。 デフォルトのメールアドレスは、 デフォルトサイトのものが使われます。特殊な状況を除き、この オプションではなく、 .I site 引数を使って下さい。 .TP .B \-P 環境変数 .B PR_FORM で指定されたテンプレートを標準出力に出力します。 .B PR_FORM が定義されていないときは、標準のブランク PR テンプレートが出力されます。 メールは送られません。 .TP .B -L 指定可能なカテゴリの一覧が表示されます。メールは送られません。 .TP .B \-\-request\-id デフォルトサイトか、 .I site が指定されればそのサイトに .IR submitter-id を要求するメールを送信します。もしユーザがそのサイトに所属していなければ、 .I submitter-id は .BR net を使う必要があります。 .TP .B \-v .B send-pr のバージョン番号を表示します。 .LP 注釈: PR を提出するためには、PR を直接メールするのではなく、 .B send-pr を使いましょう。テンプレートと .B send-pr の両方を使うことによって、必要な情報のすべてがサポートサイトに確実に 届きやすくなります。 .SH 環境変数 環境変数 .B EDITOR は、テンプレートを編集する際に使用するエディタを指定します。 .br デフォルト: .B vi .sp 環境変数 .B PR_FORM が設定されていれば、その値は編集する PR のテンプレートのファイル名として 使われます。部分的に埋められた記入書式 ( たとえば、identification フィールドがすでに完成した書式など) を使って始めようとする場合に、 この環境変数を使うことができます。 .SH " PR の記入方法" プログラムが容易に PR を扱うことができるようにするため、 PR はある形式に従っている必要があります。 以下のガイドラインを覚えておきましょう: .IP \(bu 3m それぞれの PR には .B 一つの問題 だけを記述しましょう。 .IP \(bu 3m フォローアップメールには、 自動返送されて来るメールと同じサブジェクトを使いましょう。サブジェクトは、 カテゴリ、PR 番号、もともとの概要 ( synopsis ) 行から構成されています。 これによってサポートサイトは、 複数のメールメッセージをある PR に関連付けることができ、 またそれらを自動的に記録することができます。 .IP \(bu 3m サブジェクトや、概要の行はできるだけ正確に記入するようにしましょう。 .IP \(bu 3m サブジェクトの行と概要の行は機密扱いになりません。 公開扱いのバグリストがサブジェクトと概要の行から編集生成されるからです。 機密情報はここに書かないでください。 .LP 詳しくは、GNU .B Info ファイルの .B send-pr.info か、RP について詳しく書かれている \fIReporting Problems With send-pr\fR\ のドキュメントなどを参照してください。 .SH "テストケース、コード、その他の記入方法" 小さなサンプルコードを送りましょう。 大きなテストケースや問題のソースコードを送りたい場合にには、 サポートサイトに連絡を取り、指示に従ってください。 .SH 関連ファイル .ta \w'/tmp/pbad$$ 'u /tmp/p$$ 編集しているときに使う PR のコピー .br /tmp/pf$$ テスト目的で使う、空の PR テンプレートコピー .br /tmp/pbad$$ 却下された PR のファイル .SH EMACS ユーザインタフェース .B send-pr のフィールドを記入するための Emacs ユーザインタフェースが .B send-pr の配布物に含まれます( .BR "M-x send-pr" で起動します)。 コンフィギュレーションとインストールのための情報は、 .B send-pr.info もしくは配布物の最上位ディレクトリにある ASCII ファイル .B INSTALL を参照してください。 Emacs LISP のテンプレートファイルは .B send-pr-el.in であり、これを .BR send-pr.el としてインストールします。 .SH インストールとコンフィギュレーション インストール手順を知るためには .B send-pr.info か .B INSTALL を参照してください。 .SH 関連項目 .I Reporting Problems Using send-pr (GNU Info ファイル .BR send-pr.info としてもインストールされます) .SH 作者 Jeffrey Osier, Brendan Kehoe, Jason Merrill, Heinz G. Seidl (Cygnus Support) .SH COPYING Copyright (c) 1992, 1993 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. .PP Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. .PP Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. diff --git a/ja/man/man5/syslog.conf.5 b/ja/man/man5/syslog.conf.5 index 3ae1ed0760..292adbd105 100644 --- a/ja/man/man5/syslog.conf.5 +++ b/ja/man/man5/syslog.conf.5 @@ -1,358 +1,358 @@ .\" Copyright (c) 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)syslog.conf.5 8.1 (Berkeley) 6/9/93 .\" %Id: syslog.conf.5,v 1.11 1998/07/22 06:15:16 phk Exp % .\" .\" jpman %Id: syslog.conf.5,v 1.3 1998/07/16 01:34:25 yohta Stab % .\" .Dd June 9, 1993 .Dt SYSLOG.CONF 5 .Os .Sh 名称 .Nm syslog.conf .Nd .Xr syslogd 8 設定ファイル .Sh 解説 .Nm ファイルは .Xr syslogd 8 プログラムの設定ファイルです。 このファイルは .Em program 指定によって分けられた行ブロックから構成されています。 それぞれの行は 2つのフィールドを含みます。 その行が適用されるメッセージのタイプと優先度を指定する .Em selector フィールドと、 .Xr syslogd -が選んだ基準とマッチしたマッチしたメッセージを受けとった場合の動作を指定する +が選んだ基準とマッチしたメッセージを受けとった場合の動作を指定する .Em action フィールドです。 .Em selector フィールドと .Em action フィールドは 1 つ以上のタブ文字で区切られています。 .Pp .Em selector 機能は、 .Em facility とピリオド .Pq Dq \&. とオプションの比較フラグ .Pq Bq <=> そして .Em level -で符合化され、間に空白は含みません。 +で符号化され、間に空白は含みません。 .Em facility と .Em level -の双方とも、大文字小文字の違いはありません。 +の双方とも、大文字小文字の区別はありません。 .Pp .Em facility はシステムが発するメッセージの一部を表し、次にあげるキーワード群の 1 つで表されます : auth, authpriv, cron, daemon, ftp, kern, lpr, mail, mark, news, ntp, syslog, user, uucp と local0 から local7。 -これらのキーワード(markを除く)は +これらのキーワード (mark を除く) は .Xr openlog 3 と .Xr syslog 3 ライブラリルーチンで指定される .Dq Dv LOG_ で始まる値と一致します。 .Em 比較フラグ を使用して、何を記録するのかを正確に指定できます。 比較フラグのデフォルト組は .Dq => (またはあなたが好むのなら .Do >= .Dc ) であり、 指定した .Em facility リストからの .Em level 以上のレベルのメッセージを記録することを意味します。 .Pp .Pp .Em level はメッセージの重要度を表し、以下のキーワードの順に高から低になります: emerg, alert, crit, err, warning, notice, info, debug。 これらのキーワードは .Xr syslog 3 ライブラリルーチンで指定される .Dq Dv LOG_ で始まる値と一致します。 .Pp それぞれの行ブロックはタグによって前のブロックと区別されます。 タグは行の先頭が .Em #!prog または .Em !prog (前者は以前の syslogd との互換性のためのものです。 例えば syslog.conf ファイルを共有したい時などに便利です) で始まり、それぞれのブロックは syslog を呼び出す特定のプログラムと 関連付けられています。 また、タグ ``foo'' は、 ``foo: '' というプレフィックスを持つ カーネルログメッセージにもマッチします。 .Pp .Em facility と .Em level の両方のキーワードとその意味のより詳細な説明を知りたい場合は .Xr syslog 3 を見てください。 選択は .Em facility で行なう方が .Em program で行なうよりも好まれています。 なぜなら、後者はネットワーク環境の中では 簡単に変化してしまう場合があるからです。しかし、適切な .Em facility が本当に存在しない場合もあります。 .Pp もし .Em facility 指定に一致したメッセージを受けとり、なおかつそれが 指定した .Em level .Em (もしくはそれ以上の level) だった場合、またはメッセージ中の日付の後ろの最初の単語が .Em program と一致した場合、 .Em action フィールドで指定された動作が選択されます。 .Pp 複数の .Em selector を、セミコロン .Pq Dq \&; によって区切ることにより、1 つの .Em action に対して指定することができます。 しかしそれぞれの .Em selector はその前にある指定を上書き修正できてしまいますので注意してください。 .Pp 複数の .Em facility は、コンマ .Pq Dq \&, によって区切ることにより 1 つの .Em level を指定することができます。 .Pp アスタリスク .Pq Dq * は、全ての .Em facility 、全ての .Em levels 、または全ての .Em programs を指定するのに使用できます。 .Pp 特別な .Em facility である .Dq mark は、20分毎に .Dq info の優先度を持つメッセージを受け取ります ( .Xr syslogd 8 を参照 )。これは アスタリスクを含む .Em facility フィールドには適用されません。 .Pp 特別な .Em level である .Dq none は、特定の .Em facility を無効にします。 .Pp それぞれの行の .Em action フィールドは、 .Em selector フィールドに指定されたメッセージを受け取った際の動作を指定します。 動作指定には次の 5つの形式があります: .Bl -bullet .It パス名 (先頭がスラッシュで始まります)。 該当するメッセージは、そのファイルに追加されます。 .It ホスト名 ( -.Pq Dq @ +.Dq @ 文字から始まる必要があります)。 該当するメッセージは、指定されたホストの .Xr syslogd プログラムに転送されます。 .It コンマで区切られたユーザのリスト。 該当するメッセージは、指定されたユーザがログインしていれば、 そのユーザの画面に出力されます。 .It 1 つのアスタリスク。 該当するメッセージは、ログイン中の全てのユーザの画面に出力されます。 .It 垂直バー .Pq Dq \&| とそれに続くコマンド。該当したメッセージをパイプを使って コマンドに渡すことができます。 このコマンドは、 .Pa /bin/sh によって評価されるので、通常のシェルメタキャラクタや入力/出力 リダイレクトを利用できます。 (しかし実行されたコマンドからの .Xr stdio 3 バッファされた出力のリダイレクトは余計な遅延を引き起こしたり、 あるいはシグナルによってロギング中のサブプロセスが終了した場合など 出力データを失うことがあるかもしれないことに注意してください) コマンドそれ自身は .Em stdout と .Em stderr を .Pa /dev/null にリダイレクトして動作します。 .Dv SIGHUP を受け取ると、 .Nm はそのプロセスとのパイプを閉じます。もしそのプロセスが自発的に終了しない 場合は、60秒の猶予期間の後 .Dv SIGTERM を送ります。 .Pp -コマンドはパイプでつながれるデータが到着した際に 1 度だけ起動されます。 +コマンドはパイプ経由で送るべきデータが到着した際に 1 度だけ起動されます。 その後、コマンドが終了した場合には必要に応じて再起動されます。 -そのため、1行の入力だけをサブプロセスが手に入れるよう望んでいるなら、 +そのため、1 行の入力だけをサブプロセスに引き渡すことが望ましいのならば、 (もし多くのメッセージが速く流れる場合には、 資源を大量に消費する可能性がありますが) -1行の入力があった後に終了する事によって達成する事ができます。 -必要ならば、この効果のためにラッパスクリプトを書くこともできます。 +1 行の入力があった後に終了する事によって達成する事ができます。 +必要ならば、この効果を得るためにラッパスクリプトを書くこともできます。 .Pp そのコマンドが完全なパイプラインでない場合、コマンドを .Em exec で起動すると、起動したシェルプロセスがコマンドの完了を待たなくなるので 便利かもしれません。 警告: このプロセスは .Xr syslogd 8 の UID のもとで動きます。通常はスーパユーザです。 .El .Pp -空行と最初の空白でない文字がハッシュ +空行、および、最初の空白でない文字がハッシュ .Pq Dq # 文字である行は無視されます。 .Sh 使用例 .Pp 設定ファイルは次のようになります: .Bd -literal # err レベル以上の全てのメッセージ、全てのレベルの kernel メッセージ、 # notice レベルの auth メッセージをコンソールに出力します。 # プライベートな認証メッセージは記録をとりません! *.err;kern.*;auth.notice;authpriv.none /dev/console -# info 以上のレベルを持つ(mail を除く)全てのメッセージを記録します。 +# info 以上のレベルを持つ (mail を除く) 全てのメッセージを記録します。 # プライベートな認証メッセージは記録をとりません! *.info;mail.none;authpriv.none /var/log/messages # debug レベルのみの daemon メッセージを記録します daemon.=debug /var/log/daemon.debug # authpriv ファイルはアクセス制限を持ちます。 .\" /var/log/secure の read permission を限定するということ? .\" 2.2.6-RELEASE 対象 .\" By yohta@bres.tsukuba.ac.jp (July 8 1998) authpriv.* /var/log/secure # 全てのレベルの mail メッセージを一箇所にまとめて記録します。 mail.* /var/log/maillog -# emerg(非常事態)レベルの全てのメッセージは全員が受け取ります。 +# emerg (非常事態) レベルの全てのメッセージは全員が受け取ります。 *.emerg * *.emerg @arpa.berkeley.edu # alert レベル以上のメッセージを root と eric の画面に表示されます。 .\" 原文は Root and Eric get alert and higher messages を意訳 .\" 2.2.6-RELEASE 対象 .\" By yohta@bres.tsukuba.ac.jp (July 10 1998) *.alert root,eric # err レベル以上の mail と news の エラーを特別なファイルに保存します。 mail;news.err /var/log/spoolerr .\" 原文は uucp,news.crit / send-pr 予定 .\" 2.2.6-RELEASE 対象 .\" By yohta@bres.tsukuba.ac.jp (July 10 1998) # 全てのレベルの認証メッセージをフィルタにパイプします。 auth.* |exec /usr/local/sbin/authfilter # ftpd のトランザクションを mail と news にあわせて保存します。 !ftpd *.* /var/log/spoolerr # カーネルのファイヤウォールレポートを別のファイルに保存します。 !ipfw *.* /var/log/ipfw .Ed .Sh 関連ファイル .Bl -tag -width /etc/syslog.conf -compact .It Pa /etc/syslog.conf .Xr syslogd 8 設定ファイル .El .Sh バグ 複数のセレクタ指定は、時々思ったように効果を発揮しない事があります。 例えば、 .Dq mail.crit,*.err と設定すると、 .Dq mail ファシリティのメッセージのレベルは .Dq err かそれ以上となり、 .Dq crit かそれ以上のレベルにはなりません。 .Pp ネットワーク環境においては、全てのオペレーティングシステムが 同じ facility 名のセットを実装しているわけではない点に注意してください。 authpriv, cron, ftp, ntp といったこの実装において知られた facility が、 目的のシステムには存在しないかもしれません。更に悪い事に、 DEC UNIX は AdvFS ファイルシステムのログイベントに facility 番号 10 -(この実装では authpriv です) を使っています。 +(この実装では authpriv に該当します) を使っています。 .Sh 関連項目 .Xr syslog 3 , .Xr syslogd 8 diff --git a/ja/man/man5/term.5 b/ja/man/man5/term.5 index 92d70d257e..5face792c9 100644 --- a/ja/man/man5/term.5 +++ b/ja/man/man5/term.5 @@ -1,153 +1,153 @@ .TH TERM 5 .\" jpman %Id: term.5,v 1.3 1998/07/30 15:27:11 horikawa Stab % .\" WORD: compiled コンパイル済みの .\" WORD: linear search 線形探索(パス名から inodeを) .\" WORD: boolean value ブール値 .\" WORD: terminate 終端する .ds n 5 .ds d /usr/lib/terminfo .SH 名称 term \- コンパイル済みの term ファイルの形式 .SH 書式 .B term .SH 解説 .PP コンパイル済みの terminfo 属性記述はディレクトリ \fB\*d\fP の下にあります。 \s-1UNIX\s+1 システムの巨大なディレクトリを線形探索するのを避けるため、 \fB\*b/c/name\fP という形の 2 階層の命名規則が用いられます。 (ここで、 .I name は端末の名前で、 .I c は .I name の最初の文字です。) ですから、 .I act4 は、 \fB\*d/a/act4\fP というファイル名で見つけることができます。 同じ端末を示す同義な名前は、同じコンパイル済みファイルへの複数の リンクとして実装されています。 .PP この形式は、全てのハードウェアで同じになるように選ばれています。 1 バイトが 8 ビット以上であることは仮定していますが、バイトオーダや -符合拡張の方式については仮定していません。 +符号拡張の方式については仮定していません。 .PP コンパイル済みのファイルは .I tic プログラムにより生成され、 .I setupterm ルーチンにより読み取られます。 これらのソフトウェア部品は .IR ncurses (3) の一部です。 このファイルは 6 つの部分に分割されます。すなわち、 ヘッダ、 端末の名称、 ブール値のフラグ、 数値、 文字列、および 文字列テーブルです。 .PP ヘッダセクションはファイルの冒頭にあります。 このセクションは、以下に示す形式の short 型の整数 6 個からなります。 これらの整数は (1) マジックナンバ (8 進で 0432)、 (2) 名称セクションのバイト単位での大きさ、 (3) ブール値のセクションに含まれるバイトの個数、 (4) 数値セクションに含まれる short 型整数の個数、 (5) 文字列セクションに含まれるオフセットの個数 (short 型整数)、 (6) 文字列テーブルのバイト単位での大きさ です。 .PP short 型の整数は 2 個の 8 ビットバイトに格納されています。 最初のバイトは値の最下位 8 ビットを、2 番目のバイトは最上位 8 ビットを 含みます。(すなわち、値は 256*second+first と表現されます。) 値 \-1 は 0377, 0377 で表現されますが、その他の負の値は構文違反です。 一般に、値 \-1 は、あるケーパビリティがその端末に備わっていないことを 示します。 この形式は \s-1VAX\s+1 と \s-1PDP\s+1-11 のハードウェアに 一致するものであることにご注意下さい。これに一致しないハードウェアの マシンでは、整数を 2 個のバイトとして読み込み、結果を算出します。 .PP 次に現れるのは端末名セクションです。 これは、端末のさまざまな名前を `|' 文字で区切って列挙した、 terminfo 記述の最初の行を含みます。 このセクションは 1 個の \s-1ASCII NUL\s+1 文字で終端されます。 .PP ブール型のフラグは、フラグ 1 個につき 1 バイトを占めます。 このバイトは、フラグが存在するかしないかに従って、0 か 1 となる必要があります。 ケーパビリティはファイル に含まれるのと同じ順番に並びます。 .PP 数値セクションが偶数バイト目から開始されるように、 ブール値のセクションと数値セクションの間には、 必要なら 1 個のナルバイトを挿入します。 すべての short 型整数は short 型のワード境界に揃えて配置されます。 .PP 数値セクションはフラグセクションと同様です。 各ケーパビリティは 2 バイトを占め、short 型整数として格納されます。 もし表現された値が \-1 なら、そのケーパビリティは存在しないものと 解釈されます。 .PP 文字列セクションもまた同様です。 各ケーパビリティは上記の形式に従い、2 バイトの short 型整数として 格納されます。 値 \-1 は、ケーパビリティが存在しないことを意味します。 それ以外の場合、値は、文字列テーブルの先頭からのオフセットとして 解釈されます。 ^X や \ec といった記法で示された特殊文字は、その記法を解釈した結果の形で 格納され、印刷可能表現では格納されません。 パッド情報 $ とパラメータ情報 %x は解釈を行なわずそのままの形で 格納されます。 .PP 最後のセクションは文字列テーブルです。これは文字列セクションで参照されている すべての文字列ケーパビリティの値を含みます。 各文字列はナルで終端されています。 .PP .I setupterm ルーチンでは、ファイルに実際に存在するケーパビリティ とは異なるものが予想され得ることにご注意下さい。 .I setupterm が再コンパイルされた後にデータベースが更新される (ファイルにいくつかの未知のエントリが含まれる結果になります)か、 データベースが最後にコンパイルされた後にプログラムが再コンパイルされる (存在しないエントリを生む結果になります)両方の可能性があります。 ルーチン .I setupterm は両方の可能性に備える必要があります \- これが、データ内に個数と大きさが含まれている理由です。 また、新しいケーパビリティは常に、ブール値、数値、文字列の ケーパビリティリストのそれぞれの最後に追加しなければなりません。 .PP 使用例として、 Microterm ACT 4 の記述の 8 進数ダンプをここに収めます。 .nf .sp microterm|act4|microterm act iv, cr=^M, cud1=^J, ind=^J, bel=^G, am, cub1=^H, ed=^_, el=^^, clear=^L, cup=^T%p1%c%p2%c, cols#80, lines#24, cuf1=^X, cuu1=^Z, home=^], .sp .ft CW \s-2000 032 001 \e0 025 \e0 \eb \e0 212 \e0 " \e0 m i c r 020 o t e r m | a c t 4 | m i c r o 040 t e r m a c t i v \e0 \e0 001 \e0 \e0 060 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 100 \e0 \e0 P \e0 377 377 030 \e0 377 377 377 377 377 377 377 377 120 377 377 377 377 \e0 \e0 002 \e0 377 377 377 377 004 \e0 006 \e0 140 \eb \e0 377 377 377 377 \en \e0 026 \e0 030 \e0 377 377 032 \e0 160 377 377 377 377 034 \e0 377 377 036 \e0 377 377 377 377 377 377 200 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 * 520 377 377 377 377 \e0 377 377 377 377 377 377 377 377 377 377 540 377 377 377 377 377 377 007 \e0 \er \e0 \ef \e0 036 \e0 037 \e0 560 024 % p 1 % c % p 2 % c \e0 \en \e0 035 \e0 600 \eb \e0 030 \e0 032 \e0 \en \e0\s+2 .ft R .fi .sp .PP いくつかの制限: コンパイル済みのエントリは 4096 バイトを超えることが できません。名前フィールドは 128 バイトを超えることができません。 .SH 関連ファイル \*d/*/* コンパイル済みの端末ケーパビリティデータベース .SH 関連項目 ncurses(3), terminfo(5). diff --git a/ja/man/man5/uuencode.format.5 b/ja/man/man5/uuencode.format.5 index e5cd5f93b1..67c85ce0f9 100644 --- a/ja/man/man5/uuencode.format.5 +++ b/ja/man/man5/uuencode.format.5 @@ -1,99 +1,99 @@ .\" Copyright (c) 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)uuencode.format.5 8.2 (Berkeley) 1/12/94 .\" jpman %Id: uuencode.format.5,v 1.3 1998/07/02 18:49:29 kumano Stab % .\" .\" WORD: trailer トレーラ .\" .Dd January 12, 1994 .Dt UUENCODE 5 .Os BSD 4 .Sh 名称 .Nm uuencode .Nd uuencode ファイルのフォーマット .Sh 解説 .Xr uuencode 1 によって出力されるファイルは、ヘッダ行、それに続く本体の行、 およびトレーラ行から構成されています。 .Xr uudecode 1 コマンドはヘッダ行の前やトレーラ行の後ろにある行を無視します。 ヘッダの前にある行は、当然ヘッダのようには見えてはいけません。 .Pp ヘッダ行は行の先頭にある 6 文字 .Dq begin\ \& (最後の空白に注意) によって識別されます。 .Em begin の後ろには (8 進数の) モード、そしてリモートファイルの名前を指定する 文字列が続きます。 空白がヘッダ行中の 3 つの要素を分けています。 .Pp 本体は、それぞれが最大 62 文字 (行末の改行を含みます) の行から -構成されています。これらは文字カウント、それに続く符合化された文字、 +構成されています。これらは文字カウント、それに続く符号化された文字、 それに続く改行からなります。 文字カウントは印刷可能な 1 文字で、その行の残りのバイト数を整数で表して います。 その整数は常に 1 から 45 または 64 の範囲にあり、その文字から空白文字 (8 進数で 40) を引く事によって決定可能です。文字 64 は 0 のカウントを 表しています。 .Pp 3 バイトのグループが 4 文字に (訳注: 3 バイト (24 ビット) を 1 グループとしこれを 4 つに分けて 4 文字に) .\" 上記訳注は、原文の理解を助けるために追加しました。 .\" 2.2.6-RELEASE 対象 .\" By kumano@jp.freebsd.org (Jun 27 1998) 、つまり 6 ビットが 1 文字に蓄えられます。 すべての文字はいつも 1 から 64 の範囲にあり印刷可能な文字にするために 空白文字 (8 進数で 40) でかさあげされます。 文字 64 は 0 のカウントを表します。 最後の行は通常の 45 バイトより短くてもかまいません。 もしサイズが 3 の倍数でない場合、 そのことは最終行のカウントの値を見ればわかります。 文字カウントを 4 の倍数にするために、余分なゴミが含まれる事があります。 本体は、0 のカウントを持つ行で終了します。 この行は .Tn ASCII バッククォート (8 進数で 140) の 1 文字からなります。 .Pp トレーラ行は .Dq end だけの行からなります。 .Sh 関連項目 .Xr mail 1 , .Xr uucp 1 , .Xr uudecode 1 , .Xr uuencode 1 .Sh 歴史 .Nm uuencode ファイルフォーマットは .Bx 4.0 から登場しました。 .\" It was named uuencode.5 prior to 4.3 diff --git a/ja_JP.eucJP/man/man1/bc.1 b/ja_JP.eucJP/man/man1/bc.1 index c269c58c41..2af96b2e77 100644 --- a/ja_JP.eucJP/man/man1/bc.1 +++ b/ja_JP.eucJP/man/man1/bc.1 @@ -1,792 +1,792 @@ .\" .\" bc.1 - the *roff document processor source for the bc manual .\" .\" This file is part of GNU bc. .\" Copyright (C) 1991, 1992, 1993, 1994, 1997 Free Software Foundation, Inc. .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2 of the License , or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program; see the file COPYING. If not, write to .\" the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. .\" .\" You may contact the author by: .\" e-mail: phil@cs.wwu.edu .\" us-mail: Philip A. Nelson .\" Computer Science Department, 9062 .\" Western Washington University .\" Bellingham, WA 98226-9062 .\" .\" jpman %Id: bc.1,v 1.3 1997/07/26 10:23:05 konuma Stab % .\" .TH bc 1 .\" "Command Manual" v1.04 "June 22, 1995" .SH 名称 bc - 任意精度の計算言語 .SH 書式 \fBbc\fR [ \fB-lwsqv\fR ] [long-options] [ \fI file ...\fR ] .SH バージョン このマニュアルは GNU bc version 1.04 について記述してあります。 .SH 解説 \fBbc\fR は、任意の精度の数値を扱う事ができ、プログラミング言語 C の文法に よく似た形の入力を対話的に実行する言語です。 コマンドラインのオプションの指定により、標準数学ライブラリを使用することも できます。これを指定した場合は、どのファイルを処理するよりも前に 数学ライブラリが定義されます。 \fBbc\fR は動作を開始するとまず最初にコマンドラインで指定したファイルを 順に処理します。すべてのファイルを処理した後は、\fBbc\fR は 標準入力からの読み込みを行います。すべてのコードは、それが読み込ま れた時点で実行されていきます。(もし、ファイル中にプロセッサを止める コマンドが含まれていた場合は、標準入力からの読み込みは行われません。) .PP 本バージョンの \fBbc\fR は、伝統的な \fBbc\fR の実装および POSIX のドラフト規格よりも拡張されています。コマンドラインオプションにより、 これらの拡張に対して警告を表示したり拒絶したりすることが可能です。 本ドキュメントでは、このプロセッサが受理する言語について説明します。 拡張機能についてはその旨明記します。 .SS オプション .IP -l 標準数学ライブラリを定義します。 .IP -w POSIX \fBbc\fR に対する拡張機能が入力された場合は警告を出します。 .IP -s POSIX \fBbc\fR の言語仕様に厳密に従って処理します。 .IP -q GNU bc 導入メッセージを表示しません。 .IP -v バージョン番号と著作権を表示して終了します。 .IP --mathlib 標準数学ライブラリを定義します。 .IP --warn POSIX \fBbc\fR に対する拡張機能が入力された場合は警告を出します。 .IP --standard POSIX \fBbc\fR の言語仕様に厳密に従って処理します。 .IP --quiet GNU bc 導入メッセージを表示しません。 .IP --version バージョン番号と著作権を表示して終了します。 .SS 数 \fBbc\fR における最も基本的な要素は `数' です。数は、整数部と小数部があり、 任意の精度をとることができます。すべての数は、内部では 10 進数で表現されており、 計算も 10 進数で行われます。(本バージョンでは、除算と乗算で結果に切捨てが 起こります。) 数には length と scale という 2 つの属性があります。 length は 10 進での有効桁数で、scale は小数点以下の 10 進での有効桁数です。 例えば、 .nf .RS .000001 は、lengthが 6 で、scale も 6 です。 1935.000 は、lengthが 7 で、scale が 3 です。 .RE .fi .SS 変数 数は、単純変数と配列の 2 種類の変数に保存されます。単純変数と配列変数には共に 名前が付けられます。この名前は、最初の 1 文字目がアルファベットで、後は、 アルファベット、数字およびアンダスコアを任意の文字数組み合わせて 使うことができます。すべてのアルファベットは小文字でなければなりません。 (アルファベットと数字を使った名前の機能は拡張機能です。 POSIX \fBbc\fR では、変数に英小文字 1 文字しか許されません。) 配列変数の名前には必ずブラケット ([]) がつくので、変数の型は文脈において はっきりしています。 .PP 特殊な変数として \fBscale, ibase, obase, last\fR の 4 つの変数があります。 \fBscale\fR で計算時の小数点以下の有効桁数を指定します。 \fBscale\fR のデフォルトは 0 です。 \fBibase\fR と \fBobase\fR で入力および出力の変換基数を指定します。 デフォルトでは、入力、出力の基数は共に 10 です。 \fBlast\fR は、最後に \fBbc\fR が出力した数を保持しています (これは拡張機能です)。これらについては、後で適切なところで詳しく説明します。 これらの変数には、式で使われる代入と同様の代入を行うことが可能です。 .SS コメント \fBbc\fR は、\fB/*\fR から \fB*/\fR の間をコメントとして扱います。 コメントはどこから始まっていてもよく、1 文字の空白として扱われます。 (これにより、コメントはその前後の入力アイテムを切り離します。たとえば、 変数名の途中にコメントを置くことはできません。) コメントの中にはいくつ改行があってもかまいません。 .PP \fBbc\fR をスクリプトとしても使えるようにするため、1 行コメントが 拡張機能として追加されました。1 行コメントは \fB#\fR で始まり、 次の改行まで有効です。その改行文字自体はコメントの一部とはみなされず、 普通に処理されます。 .SS 式 `数' は、式および文によって操作されます。 この言語は対話的になるように設計されているため、 文および式は可能な限り即座に実行されます。 "main" プログラムといったものはなく、そのかわり、コードは それに出くわした時点で実行されます。 (後で述べる`関数'は、それに出くわした時点で定義されます。) .PP 式の最も単純なものは、ただの定数です。\fBbc\fR は、入力された 定数を、変数 \fBibase\fR で指定される現在の基数を元に、内部的には 10 進表現の 数に変換します。(関数の場合には例外があります。) \fBibase\fR には、2 から 16 までが使用できます。 この範囲を越える値を \fBibase\fR に代入しようとすると、 2 あるいは 16 を指定したことになります。 数の入力には、0-9 および A-F の文字が利用できます。(注意: これは大文字でなければなりません。小文字は変数名です。) 1 桁の数は \fBibase\fR の値に関係なくその値を持ちます (すなわち A=10)。 複数桁の数の場合、\fBbc\fR は ibase 以上の値をもつすべての入力桁を \fBibase\fR-1に変更します。これにより、数 \fBFFF\fR は常に、 その入力基数を使って 3 桁で表現可能な最大の値を表します。 .PP すべての演算式が、他の多くの高級言語に似たものとなっています。 数の型は 1 種類しかないため、型変換の規則はありません。 そのかわり、式の有効桁数に関する規則があります。 すべての式に有効桁数があり、これはその被演算数の有効桁数と 施される演算、それに多くの場合、 変数 \fBscale\fR から決定されます。\fBscale\fR には、0 から C の整数で表現できる最大の値までが指定可能です。 .PP 以下、bc で使用可能な演算子を説明します。なお、完全形の式を "expr"、 単純変数または配列変数を "var" と表記します。 単純変数は単に .RS \fIname\fR .RE と表し、配列変数は .RS \fIname\fR[\fIexpr\fR] .RE と表します。特に言及しない限り、結果の有効桁数は、注目している式の 最大有効桁数になります。 .IP "- expr" 結果はその式の符号を反転したものとなります。 .IP "++ var" 変数を 1 だけインクリメントし、その新しい値が式の結果となります。 .IP "-- var" 変数を 1 だけデクリメントし、その新しい値が式の結果となります。 .IP "var ++" 式の結果はその変数の値となり、それからその変数を 1 だけ インクリメントします。 .IP "var --" 式の結果はその変数の値となり、それからその変数を 1 だけ デクリメントします。 .IP "expr + expr" 式の結果は 2 つの式の和となります。 .IP "expr - expr" 式の結果は 2 つの式の差となります。 .IP "expr * expr" 式の結果は 2 つの式の積となります。 .IP "expr / expr" 式の結果は 2 つの式の商となります。 結果の scale は変数 \fBscale\fR の値となります。 .IP "expr % expr" 結果は、以下のようにして求められる剰余です。a%b を求めるために、まず a/b を \fBscale\fR の有効桁数で計算します。この結果を用いて、a-(a/b)*b を、 \fBscale\fR+scale(b) と scale(a) の大きい方の有効桁数で計算します。 もし \fBscale\fR に 0 がセットされ、両方の式が整数であれば、 整数の剰余が求められます。 .IP "expr ^ expr" 式の結果は、1 番目の式の値を 2 番目の回数だけ乗じたものになります。 2 番目の式は、整数でなければなりません。 (2 番目の式が整数でない場合は警告が表示され、 整数に切り詰めた値が使用されます。) 結果の scale は、べき指数が 負なら \fBscale\fR になります。べき指数が正なら、 "1 番目の式の scale とべき指数との積" および "\fBscale\fR と 1 番目の式の scale の大きい方" のうちの小さい方 (つまり、scale(a^b) = min(scale(a)*b, max( \fBscale,\fR scale(a)))) となります。 expr^0 は常に 1 を返します。 .IP "( expr )" 標準の優先度を使わずに、この式の評価を優先します。 .IP "var = expr" 式の値が変数に代入されます。 .IP "var = expr" "var" が一度しか評価されないこと以外は "var = var expr" と同じです。 "var" が配列の場合は動作が違うことがあり得ます。 .PP 関係演算は特殊な演算で、結果は常に 0 か 1 になります。関係が偽の時 0、 真の時 1 になります。関係演算は、演算式のどこでも使う事ができます。 (POSIX bcでは、関係演算は、if, while, for 文の中だけで、しかも 1 つの関係式しか使用できません。) 関係演算子は以下の通り。 .IP "expr1 < expr2" expr1 が expr2 より小さい場合 1 になります。 .IP "expr1 <= expr2" expr1 が expr2 より小さいか等しい場合 1 になります。 .IP "expr1 > expr2" expr1 が expr2 より大きい場合 1 になります。 .IP "expr1 >= expr2" expr1 が expr2 より大きいか等しい場合 1 になります。 .IP "expr1 == expr2" expr1 と expr2 が等しい場合 1 になります。 .IP "expr1 != expr2" expr1 と expr2 が等しくない場合 1 になります。 .PP 論理演算も使えます。(POSIX \fBbc\fR には論理演算はありません。) 論理演算も関係演算と同様、結果は 0 か 1 (各々偽および真) になります。 論理演算子は以下の通り。 .IP "!expr" expr が 0 なら 1 になります。 .IP "expr && expr" expr1 と expr2 が両方とも 0 でないなら、1 になります。 .IP "expr || expr" expr1 と expr2 のどちらか一方が 0 でないなら、1 になります。 .PP 各演算子の優先順位と結合規則は次の通りです。 (最初のものほど低く、後にいくほど高い優先順位で先に実行されます。) .nf .RS || (左から結合) && (左から結合) ! (結合せず) 関係演算 (左から結合) 代入演算 (右から結合) + - (左から結合) * / % (左から結合) ^ (右から結合) - (単項マイナス) (結合せず) ++ -- (結合せず) .RE .fi .PP この優先順位は、POSIX \fBbc\fR のプログラムがそのまま正しく動くように 配慮して決められています。このため、関係演算と論理演算を 代入文と共に用いた場合、通常とは異なる振る舞いをします。 次の例を考えてみましょう: .RS a = 3 < 5 .RE .PP C プログラマのほとんどは、 ``3 < 5'' の関係演算が実行された結果 (つまり 1) が変数 ``a'' に代入される、 と考えるでしょう。 ところが \fBbc\fR では、まず 3 が変数 ``a'' に代入され、 それから 3 と 5 の比較が行われるのです。 この間違いを避けるために、 関係演算や論理演算を代入演算と共に用いる場合は、 括弧を使うのが最良です。 .PP \fBbc\fR には特別な式がさらにいくつか備わっています。 それはユーザ定義関数と標準関数に関するもので、 すべて "\fIname\fB(\fIparameters\fB)\fR" という形をしています。 ユーザ定義関数については関数の章を参照して下さい。 標準関数は以下の通りです: .IP "length ( expression )" expression の有効桁数を返します。 .IP "read ( )" (拡張機能) 関数の出現位置に関係なく、標準入力から数を読み取ります。 データとプログラムの両方を標準入力から与えるような場合には、 問題を生じうることに注意して下さい。 最良の方法は、 ユーザからデータの入力の必要があるなら、プログラムはあらかじめ作っておき、 標準入力からプログラムを入力しないようにすることです。 read 関数の値は標準入力から読み込んだ数です。 その際、変換基数として変数 \fBibase\fR の現在の値が用いられます。 .IP "scale ( expression )" expression の小数点以下の有効桁数を返します。 .IP "sqrt ( expression )" expression の平方根を返します。 expression に負の値を指定した場合は、ランタイムエラーになります。 .SS 文 文は (ほとんどの算術言語がそうであるように)、処理を順番に実行していく単位です。 \fBbc\fR では文は「できるだけ早い段階で」実行されます。 改行が入力された時点で、実行可能な文が存在していれば、即座に実行します。 このため \fBbc\fR では改行が重要な役割を持っています。 実際、セミコロンと改行が文の区切りとして使用されます。 不適当な場所で改行を入力すると、文法エラーになります。 改行は文の区切りですが、バックスラッシュを用いて改行を隠すことができます。 \fBbc\fR にとって、"\e" (は改行) は改行ではなく空白に見えます。 文のリストは、セミコロンと改行で区切られた文の並びです。 以下、\fBbc\fR の文の種類とその動作について説明します。 (なお、以下の説明で ([]) で括った部分は省略可能な項です。) .IP "演算式" 演算式には次の 2 つの種類があります。 演算式が " ..." で始まっていれば、 それは代入文として扱われます。 そうでなければ、演算式は評価されて出力に表示されます。 結果が表示された後、改行が表示されます。 例えば、"a=1" は代入文であり、 "(a=1)" は代入文が埋め込まれた演算式です。 表示される数値はすべて、変数 \fBobase\fR で決まる基数で表示されます。 \fBobase\fR に指定できる値は 2 から BC_BASE_MAX までです。 (「制限」の章を参照。) 基数 2 から 16 まででは、通常の数表記法が用いられます。 基数が 16 より大きい場合、\fBbc\fR は、 各桁を 10 進表記する複数桁文字表記法で表示します。 複数桁文字表記法では、各桁は空白で区切られます。 各桁は "obase-1" を 10 進で表記するのに必要な桁数の数字から成ります。 数の精度は任意に選べるため、数によっては 1 行に表示できない場合もあります。 そのような長い数は、行末に "\e" を付けて次行に継続します。 1 行に表示できる文字数は 70 です。 \fBbc\fR の対話的性質により、ある数を表示すると、 表示した値が特殊変数 \fBlast\fR に代入されるという副作用が生じます。 ユーザはタイプし直すことなく最後に表示された値を再利用できます。 \fBlast\fR に値を代入することも可能で、 その場合、前回表示された値が代入値で上書きされます。 新しく代入した値は、次に数が表示されるか別の値が \fBlast\fR に代入される まで有効です。(bc の実装によっては、 数の一部になっていない単一のピリオド (.) を \fBlast\fR の短縮表記として 用いることができます。) .IP "string" 文字列 string が出力に表示されます。 文字列は二重引用符で始まり、次の二重引用符までのすべての文字を含みます。 改行を含め、すべての文字は文字通りに解釈されます。 文字列の後に改行は出力されません。 .IP "\fBprint\fR list" print 文 (これは拡張機能です) は、もうひとつの出力方法です。 "list" はコンマで区切った文字列および演算式のリストであり、 各文字列あるいは演算式がリストの順に表示されます。 最後に改行は出力されません。 演算式は評価され、その値が表示されるとともに、 変数 \fBlast\fR に代入されます。 print 文中の文字列は出力に表示されますが、特殊文字を含めることができます。 特殊文字はバックスラッシュ (\e) で始まります。 \fBbc\fR で使える特殊文字は、 "a" (ベル)、"b" (バックスペース)、 "f" (フォームフィード)、"n" (改行)、"r" (復帰)、"q" (二重引用符)、 "t" (タブ)、"\e" (バックスラッシュ) です。 これ以外は無視されます。 .IP "{ statement_list }" 複文です。複数の文を 1 つのグループにまとめて実行します。 .IP "\fBif\fR ( expression ) statement1 [\fBelse\fR statement2]" if 文は演算式 expression を評価し、その値に応じて 文 statement1 または文 statement2 を実行します。 expression の値が 0 でなければ statement1 が実行されます。 statement2 が存在し、expression の値が 0 ならば、statement2 が実行されます。 (else 節は拡張機能です。) .IP "\fBwhile\fR ( expression ) statement" while 文は expression が 0 でない間、繰り返し statement を実行します。 statement の実行前に毎回 expression を評価します。 expression の値が 0 になるか、break 文を実行すると、 ループが終了します。 .IP "\fBfor\fR ( [expression1] ; [expression2] ; [expression3] ) statement" for 文は statement の繰り返し実行を制御します。 expression1 はループ実行の前に評価されます。 expression2 は statement の実行前に毎回評価され、 その値が 0 でなければ statement が実行されます。 expression2 の値が 0 になると、ループは終了します。 各 statement 実行の後、再び expression2 が評価される前に expression3 が 評価されます。 expression1 あるいは expression3 が省略されていると、 そこでは何も評価されません。 expression2 が省略されている場合、expression2 が 1 であるのと 同様に扱われます。 (各 expression が省略可能なのは拡張機能です。 POSIX \fBbc\fR では、3 つの expression はどれも省略できません。) 以下は for 文と等価なコードです: .nf .RS expression1; while (expression2) { statement; expression3; } .RE .fi .IP "\fBbreak\fR" それを含む最も内側の while もしくは for 文による繰り返しを強制的に中断します。 .IP "\fBcontinue\fR" それを含む最も内側の for 文における次の繰り返しに進みます。 (continue 文は拡張機能です) .IP "\fBhalt\fR" 実行されると \fBbc\fR プロセッサを終了させます(拡張機能)。 例えば "if (0 == 1) halt" の場合は \fBbc\fR は終了しません。 halt 文が実行されないからです。 .IP "\fBreturn\fR" 関数から戻ります。関数の結果は 0 になります。(関数の章を参照) .IP "\fBreturn\fR ( expression )" 関数から戻ります。関数の結果は expression になります。(関数の章を参照) .SS 疑似文 これらは今までの文とは動作が異なります。 疑似文は実行文ではなく、「コンパイル」時点で処理されます。 .IP "\fBlimits\fR" \fBbc\fR のローカルバージョンにより制限される限界値を表示します。 (limits は拡張機能です) .IP "\fBquit\fR" \fBbc\fR を終了します。どんな場所にあっても、quit 文は 入力された時点で実行されます。例えば、 "if (0 == 1) quit" という記述であっても、\fBbc\fR は終了します。 .IP "\fBwarranty\fR" 保証に関する注意を長めに表示します。 (warranty は拡張機能です) .SS 関数 関数は、後で実行されるべき計算手順を定義する機能です。 .B bc の関数は常に値を計算し、それを呼びだし側に返します。 関数定義は、それが入力から読み込まれた時点で定義が行われるという点で 「ダイナミック(動的)」です。 一度定義された関数は、同じ名前で別の関数が定義されるまで使用可能で、 新しい関数が定義された場合は、前の関数が置き換えられます。 関数の定義は、以下のように行います: .nf .RS \fBdefine \fIname \fB( \fIparameters \fB) { \fInewline \fI auto_list statement_list \fB}\fR .RE .fi 関数呼び出しは、 "\fIname\fB(\fIparameters\fB)\fR" という形式の演算式です。 .PP パラメータ parameters は数あるいは配列 (拡張機能) です。 関数定義では、0 あるいは 1 個以上のパラメータ名を コンマで区切って並べることで定義します。 数は値渡し(call by value)でのみ渡され、配列は変数渡し(call by variable)で のみ渡されます。 配列はパラメータ定義中で "\fIname\fB[]\fR" のように表記して指定します。 関数呼び出しでは、数のパラメータに対して完全な演算式の実パラメータを 記述します。 配列を渡す表記は配列パラメータ定義と同様です。 名前付き配列は変数(variable)によって関数に渡されます。 関数定義はダイナミックゆえ、 パラメータの数と型は関数呼び出しの際にチェックされます。 パラメータの数あるいは型に何らかの不整合があると、 ランタイムエラーが発生します。 未定義関数を呼び出した場合もランタイムエラーとなります。 .PP \fIauto_list\fR は省略可能で、ローカル変数として使用する変数のリスト です。auto_list が存在するなら、その文法は "\fBauto \fIname\fR, ... ;" となります。(セミコロンは省略可能です。) 各 \fIname\fR がローカル変数の名前となります。 配列はパラメータと同様の表記で指定できます。 これらの変数は、関数の最初でその値がスタックにプッシュされたのち 値 0 に初期化され、関数の実行中に使用されます。 これらの変数は関数出口にてポップされ、 (関数呼び出し時の)元の値が復元されます。 パラメータは実際にはローカル変数であり、 関数呼び出しで与えられた値に初期化されます。 bc のローカル変数は伝統的な意味でのローカル変数と異なり、 関数 A が関数 B を呼び出しているような場合、関数 B の中に 関数 A のローカル変数と同じ名前のローカル変数がない限り、 関数 A のローカル変数名をそのまま使って、 関数 B から関数 A のローカル変数をアクセスできます。 ローカル変数とパラメータはスタックにプッシュされるため、 \fBbc\fR は再帰的な関数呼び出しをサポートしています。 .PP 関数本体は \fBbc\fR の文のリストです。 繰り返し述べますと、文はセミコロンか改行で区切られています。 return 文により関数は終了し、値を返します。 return 文には 2 つの形式があり、 ひとつめの形式 "\fBreturn\fR" は、呼び出し元に値 0 を返します。 もうひとつの形式 "\fBreturn ( \fIexpression \fB)\fR" は、 expression の値を計算し、それを呼び出し元に返します。 各関数の最後には "\fBreturn (0)\fR" があるものと解釈されます。 これにより、明示的に return 文を置かなくても、 関数は終了して値 0 を返します。 .PP 関数の中では、変数 \fBibase\fR の動作が変わります。関数の中で使われて いる定数は、関数の呼びだし時点の \fBibase\fR を元に変換が行われます。 このため、関数内部で \fBibase\fR を変更しても無視されます。ただし、標 準関数 \fBread\fR を呼び出した場合は例外で、これは常に現在の \fBibase\fR の値をもとに変換が行われます。 .SS 数学ライブラリ \fBbc\fR に \fB-l\fR オプションを付けて起動した場合は、数学ライブラリが 読み込まれ、デフォルトの scale が 20 に設定されます。 数学関数は、それを呼び出した時点の scale の値に従って計算を行います。 数学ライブラリによって使用可能になる関数は、次の通りです: .IP "s (\fIx\fR)" sin (x の単位はラジアン) .IP "c (\fIx\fR)" cos (x の単位はラジアン) .IP "a (\fIx\fR)" atan (返り値の単位はラジアン) .IP "l (\fIx\fR)" log (自然対数) .IP "e (\fIx\fR)" exp (指数関数) .IP "j (\fIn,x\fR)" 整数 n 次のベッセル関数 .SS 使用例 次の例は、/bin/sh でシェル変数 \fBpi\fR に ``パイ'' の値を代入します。 .RS \f(CW pi=$(echo "scale=10; 4*a(1)" | bc -l) \fR .RE .PP 次の例は、数学ライブラリで使われている ``e (x)'' の定義です。 この関数は POSIX \fBbc\fR で記述されています。 .nf .RS \f(CW scale = 20 /* Uses the fact that e^x = (e^(x/2))^2 When x is small enough, we use the series: e^x = 1 + x + x^2/2! + x^3/3! + ... */ define e(x) { auto a, d, e, f, i, m, v, z /* Check the sign of x. */ if (x<0) { m = 1 x = -x } /* Precondition x. */ z = scale; scale = 4 + z + .44*x; while (x > 1) { f += 1; x /= 2; } /* Initialize the variables. */ v = 1+x a = x d = 1 for (i=2; 1; i++) { e = (a *= x) / (d *= i) if (e == 0) { if (f>0) while (f--) v = v*v; scale = z if (m) return (1/v); return (v/1); } v += e } } \fR .RE .fi .PP 次の例は、\fBbc\fR の拡張機能を使って、``checkbook balances'' (小切手帳残高) を計算する簡単なプログラムです。 このプログラムをファイルにしておくと、 毎回タイプしなおさずに何度も使うことができます。 .nf .RS \f(CW scale=2 print "\enCheck book program!\en" print " Remember, deposits are negative transactions.\en" print " Exit by a 0 transaction.\en\en" print "Initial balance? "; bal = read() bal /= 1 print "\en" while (1) { "current balance = "; bal "transaction? "; trans = read() if (trans == 0) break; bal -= trans bal /= 1 } quit \fR .RE .fi .PP 次の例は、再帰呼び出しにより階乗を計算する関数です。 .nf .RS \f(CW define f (x) { if (x <= 1) return (1); return (f(x-1) * x); } \fR .RE .fi .SS readline オプション GNU \fBbc\fR は (configure のオプションによって) GNU \fBreadline\fR 入力エディタライブラリを使うようにコンパイルできます。 これは、\fBbc\fR に入力する前に、行の編集を可能にします。 以前に入力した行のヒストリも利用可能になります。このオプションで コンパイルされた \fBbc\fR では、さらに 1 つの特殊な変数 \fBhistory\fR が追加され、ヒストリに保存される行の数を指定します。 その値が -1 (デフォルト値)なら、ヒストリ行は制限なく保存されます。 正の数を指定すると、ヒストリ行がその数に制限されます。 0 ならヒストリ機能が無効になります。詳しくは、ユーザマニュアルの GNU \fBreadline\fR と \fBhistory\fR ライブラリをご覧下さい。 .SS 相違点 このバージョンの .B bc は POSIX P1003.2/D11 ドラフトから実装されており、 そのドラフトや以前の実装に比べていくつかの相違点や拡張点があります。 伝統的に行われていたような .I dc(1) を用いた実装ではありません。 このバージョンは単一プロセスであり、 プログラムをバイトコードに変換したものを解析して実行します。 「ドキュメントに記載されていない」オプション (-c) があり、 プログラムを実行する代わりに、それをバイトコードに変換した結果を 標準出力に出力します。 これは主として、パーザのデバッグと数学ライブラリの準備に用いられました。 .PP 主な相違点は拡張機能によるものです。 機能を高めたり追加したりするために機能が拡張されたり、 新機能が追加されたりしています。 相違点と拡張点のリストを以下に示します。 .IP LANG このバージョンは、 環境変数 LANG および LC_ で始まるすべての環境変数の処理に関して POSIX 標準に 準拠していません。 .IP 名前 伝統的な .B bc および POSIX .B bc は、関数、変数、配列の名前として単一の文字を使います。 このバージョンでは、 先頭が文字で始まり、文字と数字とアンダースコアで 構成される 2 文字以上の名前が使えるように拡張されています。 .IP 文字列 文字列には NUL 文字を含むことはできません。 POSIX では、文字列にはあらゆる文字を含めることができなければならない、 としています。 .IP last POSIX \fBbc\fR には変数 \fBlast\fR はありません。 \fBbc\fR の実装によっては、\fBlast\fR と同じ意味で ピリオド (.) を用いるものがあります。 .IP 比較 POSIX \fBbc\fR では、比較は if 文、while 文、for 文の第 2 式の中でのみ 用いることができます。 また、これらの文の中ではただ 1 つの関係演算しか使えません。 .IP "if 文, else 節" POSIX \fBbc\fR には else 節はありません。 .IP "for 文" POSIX \fBbc\fR では for 文の各演算式は省略できません。 .IP "&&, ||, !" POSIX \fBbc\fR には論理演算子はありません。 .IP "read 関数" POSIX \fBbc\fR には read 関数はありません。 .IP "print 文" POSIX \fBbc\fR には print 文はありません。 .IP "continue 文" POSIX \fBbc\fR には continue 文はありません。 .IP "配列パラメータ" POSIX \fBbc\fR では (現在のところ) 配列パラメータは完全には使えません。 POSIX の文法では、関数定義では配列を使えますが、実際に呼び出すときの パラメータに配列を指定することができません。(これはおそらく、文法上の 見落としでしょう。) 伝統的な \fBbc\fR の実装では、配列パラメータは値渡し のみでした。 .IP "=+, =-, =*, =/, =%, =^" POSIX \fBbc\fR ではこれらの「旧式」の代入演算子を定義する必要はありません。 このバージョンではこれらの「旧式」代入演算子が使えるかも知れません。 limits 文を使って、インストールしたバージョンがこれらをサポートしているか どうか、確かめてみて下さい。 もしそのバージョンが「旧式」代入演算子をサポートしていれば、 文 "a =- 1" は \fBa\fR に値 -1 を代入する代わりに \fBa\fR を 1 減じます。 .IP "数字表記中の空白" 他の \fBbc\fR 実装では、数字表記の中に空白を含めることが許されます。 例えば、"x=1 3" は変数 x に値 13 を代入します。 このバージョンの \fBbc\fR では、先の文は文法エラーになります。 .IP "エラーと実行" このバージョンの bc は、 プログラムに文法上のエラーや他のエラーが見つかった場合に どういうコードが実行されるか、 という点で、他の実装と異なっています。 ある関数定義中で文法エラーが見つかると、 エラー回復機構は文の先頭を見つけて関数のパーズを続けようと努力します。 ひとたび関数の中で文法エラーが見つかると、 その関数は呼び出せなくなり、未定義状態となります。 対話的実行コードで文法エラーがあると、 現在の実行ブロックが無効になります。 実行ブロックとは、ひと続きの完全な文のあとの行末までのことです。 例えば、次のコード .nf .RS a = 1 b = 2 .RE .fi には 2 つの実行ブロックがあり、 .\" ↑ここで groff 時の字下げ量がおかしくなっているようだが、 .\" 元の英語マニュアルでもそうなっているようだ。(jpman 酒井) .nf .RS { a = 1 b = 2 } .RE .fi には 1 つの実行ブロックがあります。 ランタイムエラーが発生すると、現在の実行ブロックの実行が終了します。 ランタイムの警告が発生しても、現在の実行ブロックは終了しません。 .IP "割り込み" 対話セッションの間、SIGINT シグナル (通常、端末からの Control-C 入力で 発生します) によって現在の実行ブロックの実行が中断され、 どの関数が中断されたかを示す「ランタイム」エラーが表示されます。 ランタイムのデータ構造をすべてクリアした後メッセージが表示され、 \fBbc\fR は次の入力を受け付ける状態になったことを示します。 これまでに定義した関数はすべて定義されて残っており、 ローカルでない変数の値は割り込み発生時点の値のままになっています。 ローカル変数と関数パラメータはすべて、クリア処理によって消去されます。 非対話セッションでは、SIGINT シグナルで \fBbc\fR の実行全体が終了します。 .SS 限界 以下の項目が現在の .B bc プロセッサの限界値となっています。 このうちいくつかは、インストール時に変更できます。 実際の値を得るには limits 文を使って下さい。 .IP BC_BASE_MAX 現在のところ、出力の基数の最大値は 999 に設定されています。 入力側の基数の最大値は 16 です。 .IP BC_DIM_MAX 現在のところ 65535 として配布されていますが、 インストールしたバージョンでは異なっているかも知れません。 .IP BC_SCALE_MAX 小数点以下の桁数は INT_MAX 桁に制限されています。 また、小数点より上の桁数も INT_MAX 桁に制限されています。 .IP BC_STRING_MAX 文字列中の文字数は INT_MAX 文字に制限されています。 .IP 指数 累乗演算 (^) の指数の値は LONG_MAX に制限されています。 .IP 乗算 全部で LONG_MAX / 90 桁以上になる数の積を計算すると 誤った結果になることがあります。 32 ビット long では、この数は 23,860,929 桁です。 .IP コードサイズ 各関数および "main" プログラムはバイトコードで 16384 バイト以内に 制限されています。 この限界値 (BC_MAX_SEGS) は 1024 バイトの 16 セグメント以上になるように 容易に変更可能です。 .IP 変数名 単純変数、配列、関数各々について、一意に識別される名前は 32767 個に 制限されています。 .SH 環境変数 \fBbc\fR は以下の環境変数を解釈します。 .IP "POSIXLY_CORRECT" \fB-s\fR オプションと同じです。 .IP "BC_ENV_ARGS" -これは \fBbc\fR に引き数を渡す別の方法で、コマンドライン引き数と -同じ書式です。この引き数が最初に処理されるので、この環境変数で +これは \fBbc\fR に引数を渡す別の方法で、コマンドライン引き数と +同じ書式です。この引数が最初に処理されるので、この環境変数で 指定されたファイルはコマンドライン引数で指定されたファイルよりも 先に処理されます。これにより、毎回 \fBbc\fR を呼び出すごとに 処理する「標準の」オプションやファイルを設定できます。この環境変数で 指定するファイルには、\fBbc\fR を走らせるたびに定義しておきたいような 関数の定義を書いておくとよいでしょう。 .IP "BC_LINE_LENGTH" 数字を出力するときの 1 行の文字数を整数で指定します。 数字が長過ぎると、バックスラッシュと改行を含めた出力となります。 .SH 関連ファイル ほとんどの実装では、\fBbc\fR は完全に自己完結しています。 実行ファイルのサイズが重要視される場合や、 C コンパイラが長い文字列を扱えない場合は、 \fBbc\fR は /usr/local/lib/libmath.b から標準の数学ライブラリを読み込みます。 (実際のディレクトリ位置はこれとは異なり、 例えば /lib/libmath.b かも知れません。) .SH 診断 コマンドラインで指定したファイルがオープンできない場合、 \fBbc\fR はファイルが利用できない旨を表示して終了します。 また、コンパイル時あるいはランタイムの診断メッセージもありますが、 それらは自身で理解できるようになっているはずです。 .SH バグ エラーリカバリがまだうまくいっていません。 .PP バグ報告は、 .BR bug-gnu-utils@prep.ai.mit.edu に電子メールでお願いします。 単語 ``bc'' を ``Subject:'' フィールドのどこかに入れておいてください。 .SH 作者 .nf Philip A. Nelson phil@cs.wwu.edu .fi .SH 謝辞 実装をテストする際に 広範囲に手助けしてくれた Steve Sommars (Steve.Sommars@att.com) に感謝します。 たくさんの素晴らしい意見をもらいました。 彼のおかげでとてもよいものになりました。 diff --git a/ja_JP.eucJP/man/man1/find.1 b/ja_JP.eucJP/man/man1/find.1 index df03cd1638..c5b52dd0c1 100644 --- a/ja_JP.eucJP/man/man1/find.1 +++ b/ja_JP.eucJP/man/man1/find.1 @@ -1,520 +1,520 @@ .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)find.1 8.7 (Berkeley) 5/9/95 .\" %Id: find.1,v 1.15 1998/05/15 11:22:36 jkoshy Exp % .\" jpman %Id: find.1,v 1.4 1997/09/23 14:13:10 horikawa Stab % .\" .Dd May 9, 1995 .Dt FIND 1 .Os .Sh 名称 .Nm find .Nd ディレクトリツリーを再帰的に下ってファイルを捜す .Sh 書式 .Nm find .Op Fl H | Fl L | Fl P .Op Fl Xdx .Op Fl f Ar file .Op Ar file ... .Ar expression .Sh 解説 .Nm find は、 .Ar file に対してディレクトリツリーを再帰的に下って、 ツリー上の各ファイルについて .Ar expression (後に示す ``プライマリ'' と ``演算子'' から構成されます) で指定された処理を実行します。 .Pp オプションとしては以下のものがあります: .Pp .Bl -tag -width Ds .It Fl H .Ar file で指定したファイルがシンボリックリンクファイルだった場合、シンボリックリンク 自体ではなく、リンク先のファイルに関してファイル情報とファイルタイプ( .Xr stat 2 参照) を使って .Ar expression の処理をするように指定します。 もしリンク先のファイルがなければ、 シンボリックリンク自体を処理の対象とします。 コマンドラインからの .Ar file で直接指定されたのではなく、 ディレクトリツリー上で見つかったシンボリックリンクファイルに関しては、 シンボリックリンク自体を処理の対象とします。 .It Fl L .Ar file で指定したファイルがシンボリックリンクファイルだった場合、シンボリックリンク 自体ではなく、リンク先のファイルに関してファイル情報とファイルタイプ( .Xr stat 2 参照) を使って .Ar expression の処理をするように指定します。もしリンク先のファイルがな ければ、シンボリックリンク自体を処理の対象とします。 .It Fl P シンボリックリンク自体に関して ファイル情報とファイルタイプ( .Xr stat 2 参照) を使って .Ar expression の処理をするように指定します。 これがデフォルトです。 .It Fl X .Xr xargs 1 と組み合わせて使うときのため、より安全に動作するようにします。もし .Xr xargs によりデリミタ文字 (single quote (`` ' ''), double quotes (`` " ''), backslash (``\e''), space, tab, newline) が含まれるファイル名 が使われた場合、診断メッセージを標準エラー出力に表示して、 そのファイル名をスキップします。 .It Fl d ファイルに対する処理順序を深さ優先の探索方式にします。 すなわち、ディレクトリ自体に 対する処理を行う前に、ディレクトリ内の個々のファイルに対して処理を 実行します。デフォルトでは、ディレクトリは最初に処理されます。 (デフォルトの方式は幅優先探索方式ではないです。) .It Fl f Ar file 明示的にファイルを指定します。ファイル名の先頭が ``\-'' で始まっていたり、 あとで述べる .Ar expression の指定と混同してしまうようなファイル名を指定したりするときに使用します。 (ファイルはオプション直後のオペランドとしても指定可能です。) .It Fl x ディレクトリツリーを下って行くとき、最初に file のあったファイルシステムとは 異なるファイルシステム上のファイルに対する処理になる場合は、実行しないように します。 .El .Sh プライマリ .Bl -tag -width Ds .It Ic -amin Ar n 最後にファイルがアクセスされた時刻と、 .Nm find を起動した時刻との差(1 分単位で切り上げます)が .Ar n 分であれば、真とします。 .It Ic -atime Ar n 最後にファイルがアクセスされた時刻と、 .Nm find を起動した時刻との差(24 時間単位で切り上げます)が .Ar n 日であれば、真とします。 .It Ic -ctime Ar n 最後にファイルのステータスが変更された時刻と、 .Nm find を起動した時刻の差 (24 時間単位で切り上げます) が .Ar n 日であれば、真とします。 .It Ic -delete 見付けたファイルやディレクトリを消去します。常に真を返します。 現在の作業ディレクトリから .Nm は再帰的にディレクトリツリーを下ります。 セキュリティ上の理由から、 "." からの相対パス名に ``/'' 文字を含むファイル名のファイルを 消去しようとはしません。 このオプションにより暗示的に深さ優先の処理が指定されます。 .It Ic -exec Ar utility Op argument ... ; .Ar utility で指定した名前のプログラムを実行し、終了コードが 0 -の場合、真とします。argument は、utility への引き数として渡されます。この +の場合、真とします。argument は、utility への引数として渡されます。この 指定は、最後に必ずセミコロン (``;'') をつけてください。 utility もしくは argument の指定 のなかで ``{}'' が使われていた場合は、その部分が、現在 .Nm find が対象としてい るファイルのパス名に置き換えられます。ただし、 .Ar utility が実行されるときのカレントディレクトリは、 .Nm find が起動されたディレクトリのままです。 .It Ic -execdir Ar utility Op argument ... ; .Ic \&-execdir プライマリは .Ic -exec プライマリと同様ですが、 .Ar utility が現在のファイルを持つディレクトリにおいて実行される点が異なります。 文字列 ``{}'' に対して置換されるファイル名は適切ではありません。 .It Ic -fstype Ar type 対象ファイルが格納されているファイルシステムのタイプが、 .Ar type で指定されたものである場合に真となります。 .Xr sysctl 8 コマンドを使用して、 システム上で利用可能なファイルシステムタイプを調べることができます: .Bd -literal -offset indent sysctl vfs .Ed さらに、2 つの 擬似タイプ ``local'' と ``rdonly'' があります。 ``local'' は、 .Nm find を実行しているシステム上に物理的 にマウントされているファイルシステムです。``rdonly'' は、リードオンリーで マウントされているファイルシステムです。 .It Ic -group Ar gname ファイルが .Ar gname で指定したグループに属している場合、真になります。 .Ar gname が数字で、そのようなグループ名がない場合は、 .Ar gname をグループ ID として扱います。 .It Ic -inum Ar n ファイルの i ノード番号が .Ar n なら、真になります。 .It Ic -links Ar n ファイルのリンク数が .Ar n なら、真になります。 .It Ic -ls このプライマリは常に真になります。対象となっているファイルの情報を 標準出力に出力します。出力する内容は i ノード番号、 512 バイトブロックでのファイルの大きさ、 ファイルのパーミッション、ハードリンクの数、所有者、グループ、 バイトで表したファイルの大きさ、最後にファイルが修正された時刻、パス名です。 ファイルがブロック型もしくはキャラクタ型のスペシャルファイルならば、 バイトで表したファイルの大きさの代わりにメジャー番号とマイナー番号を 出力します。ファイルがシンボリックリンクならば、 `\`->''の後にリンク先のファイルのパス名を表示します。 フォーマットは ``ls -dgils'' の出力結果と同じです。 .It Ic -mtime Ar n 最後にファイルが修正された時刻と、 .Nm find を起動した時刻との差(24 時間単位で切り上げます)が .Ar n 日であれば、真とします。 .It Ic \&-ok Ar utility Op argument ... ; .Ic exec とほぼ同じですが、 .Ar utility を実行するかどうかの確認をユーザに求め、端末にメッセージを出力します。 ``y'' 以外の返答をした場合は、 コマンドは実行されず、 このプライマリの値は偽になります。 .It Ic -name Ar pattern 対象ファイルのパス名の最後のファイル名部分が .Ar pattern で指定したものとマッチするかどうかを調べ、マッチした場合は真になります。 .Ar pattern としては、シェルで使われるパターンマッチ 指定 (``['', ``]'', ``*'', ``?'') を使用することができます。これらの文字は バックスラッシュ(``\e'')を前において、パターンマッチ指定ではなく文字として 扱う事を明示することができます。 .It Ic -newer Ar file 対象ファイルの修正日付が、 .Ar file で指定したファイルのものより新しい場合は、真になります。 .It Ic -nouser 対象ファイルの所有者が unknown の場合、真になります。 .It Ic -nogroup 対象ファイルのグループが unknown の場合、真になります。 .It Ic -path Ar pattern 対象ファイルのパス名が、 .Ar pattern で指定したものとマッチす るかどうかを調べます、マッチした場合は真になります。 .Ar pattern としては、シェルで使われるパターンマッチ 指定 (``['', ``]'', ``*'', ``?'') を使用することができます。これらの文字は バックスラッシュ (``\e'') を前において、パターンマッチ指定ではなく文字として 扱う事を明示することができます。 ``/'' は、そのままパスのディレクトリの区切りにマッチします。 .It Ic -perm Op Ns Ar mode ファイルのモードを、 .Ar mode と比較します。 .Ar mode は、シンボル 形式( .Xr chmod 1 参照) もしくは 8 進数形式で指定します。シンボル形式の場合は、 00000 から開始してパーミッションのセットとクリアを行います。 (プロセスのファイル生成マスクとは無関係です。) 8 進数形式の場合は、 ファイルのモードビットのうち、07777 .Pf ( Dv S_ISUID | .Dv S_ISGID | .Dv S_ISTXT | .Dv S_IRWXU | .Dv S_IRWXG | .Dv S_IRWXO ) の部分が比較対象になります。 .Ar mode の最初に ``\-'' を指定した場合は、 .Ar mode でセットされているすべてのビットが ファイルのモードでもセットされていれば真となります。 ``\-'' が指定されていない場合は、ファイルのモードと .Ar mode が完全に一致した場合にのみ真となります。 なお、 シンボル形式でモード指定をする場合は、少なくとも最初が ``\-'' にならない ようにする必要があります。 .It Ic -print このプライマリは常に真になります。 対象となっているファイルのパス名を標準出力に出力して改行します。 .Ic -exec , .Ic -ls , .Ic -ok , .Ic -print0 のどのプライマリも指定されなかった場合は、 与えられた式 given expression は .Cm \&( Ns Ar given\& expression Ns Cm \&) .Ic -print で置き換えられます。 .It Ic -print0 .Ic -print とほぼ同じですが、標準出力に対象となっているファイルのパス名を出力 したあと、改行ではなく、 .Tn ASCII .Tn NUL 文字(文字コード 0)を出力します。 .It Ic -prune このプライマリは常に真になります。 対象となっているファイル配下のディレクトリに下りないようにします。 .Fl d オプションが指定されている場合は、 .Ic -prune の指定は無効になります。 .It Ic -size Ar n Ns Op Cm c ファイルサイズを 512 バイトのブロック単位で数えたとき (端数は切り上げ)、 .Ar n ブロックであれば真になります。 .Ar n のあとに ``c'' が指定されていた場合は、ファイルサイズが .Ar n バイトであれば真になります。 .It Ic -type Ar t ファイルタイプが .Ar t で指定されたタイプに一致すれば真になります。 タイプとして、次のような指定が可能です: .Pp .Bl -tag -width flag -offset indent -compact .It Cm b ブロックスペシャル .It Cm c キャラクタスペシャル .It Cm d ディレクトリ .It Cm f 普通のファイル .It Cm l シンボリックリンク .It Cm p FIFO .It Cm s ソケット .El .Pp .It Ic -user Ar uname ファイルの所有者が、 .Ar uname で指定されたユーザと一致すれば真になります。もし .Ar uname が数字で、そのようなユーザ名がなければ、 ユーザ ID が指定されたものとして扱います。 .El .Pp なお、数字を引数にとるプライマリは、 数字の前に ``+'' および ``\-'' をつけることができます。 それぞれ ``n より大'' および ``n より小'' の意味になり、 ``正確に n''という意味ではなくなります。 .Sh 演算子 .Pp 以下の演算子を使って、プライマリを組み合わせることができます。 演算子は優先度が下がる順番で示されています。 .Bl -tag -width (expression) .It Cm \&( Ns Ar expression Ns Cm \&) もし、括弧内の .Ar expression が真なら、真になります。 .Pp .It Cm \&! Ns Ar expression 単項否定演算子( .Tn NOT )です。 .Ar expression が偽なら、真となります。 .Pp .It Ar expression1 Cm -and Ar expression2 .It Ar expression1 expression2 論理積( .Tn AND )演算子です。 .Ar expression1 と .Ar expression2 の両方とも真のとき、真になります。 もし .Ar expression1 が偽なら、 .Ar expression2 は実行されません。 .Ic -and を書かずに、単に 2 つの expression を並べて .Pp .Ar expression1 expression2 .Pp と書いても同じです。 .Pp .It Ar expression1 Cm -or Ar expression2 論理和( .Tn OR )演算子です。 .Ar expression1 か .Ar expression2 のどちらか一方でも真であれば、真になります。もし .Ar expression1 が真なら、 .Ar expression2 は実行されません。 .El .Sh 使用例 .Pp コマンドラインからのタイプ例です。 .Nm find の演算子がシェルの特殊文字と間違われないように、 エスケープ文字 ``\e'' を使用しています。 .Bl -tag -width findx .It Li "find / \e! -name \*q*.c\*q -print" 探索をルートディレクトリから開始し、ファイル名の終わりが ``.c'' でないものを表示します。 .It Li "find / -newer ttt -user wnj -print" 探索をルートディレクトリから開始し、 ファイルが ``ttt'' というファイルより新しく、 所有者が ``wnj'' であるようなものを表示します。 .It Li "find / \e! \e( -newer ttt -user wnj \e) -print" 探索をルートディレクトリから開始し、 ``ttt'' というファイルより古いか、 所有者が ``wnj'' 以外のファイルを表示します。 .It Li "find / \e( -newer ttt -or -user wnj \e) -print" 探索をルートディレクトリから開始し、 ファイルが ``ttt'' というファイルより新しいか、 所有者が ``wnj'' であるようなものを表示します。 .El .Sh 関連項目 .Xr chmod 1 , .Xr locate 1 , .Xr whereis 1 , .Xr which 1 , .Xr stat 2 , .Xr fts 3 , .Xr getgrent 3 , .Xr getpwent 3 , .Xr strmode 3 , .Xr symlink 7 .Sh 規格 .Nm find ユーティリティの文法は .St -p1003.2 の仕様で決められた文法のスーパセットです。 全 1 文字オプションと .Ic -inum , .Ic -print0 , .Ic -delete , .Ic -ls のプライマリは .St -p1003.2 の拡張です。 .Pp 昔は .Fl d , .Fl h , .Fl x のオプションは それぞれ ``\-depth'', ``\-follow'', ``\-xdev'' のプライマリを 用いて実装されていました。 これらのプライマリは常に真に評価されていました。 これらのプライマリは 探索が始まる前に効果を与える本当のグローバル変数であったので、 いくつかの合法的な expression が予期しない結果となりました。 一例として ``\-print \-o \-depth''の expression があります。 \-print が常に真に評価されるため 標準の評価の順番では \-depth は決して評価されないはずですが、 そうではありませんでした。 .Pp 演算子の ``-or'' は ``\-o'' として実装されていました。 演算子の ``-and'' は ``\-a'' として実装されていました。 .Pp 昔の実装では .Ic exec と .Ic ok のプライマリでは、 utility 名やその引数中において、 空白以外の文字が前後に続く ``{}'' を置き換えませんでした。 このバージョンでは utility 名やその引数のどの場所に ``{}'' が現れても 置き換えます。 .Sh バグ .Nm find によって使われる特殊文字は多くのシェルにとっても 特殊文字です。 特に ``*'', ``['', ``?'', ``('', ``)'', ``!'', ``\e'', ``;'' は、 シェルからエスケープされなくてはならないでしょう。 .Pp オプションとファイル名との間および ファイル名と .Ar expression との間を区切るデリミタが存在しませんので、 ファイル名にオプションと間違えるようなもの (``-xdev'' のようなもの) や、 .Ar expression と間違えるようなもの (``!'' のようなもの) を指定することは難しいです。 このようなファイル名を指定する場合は .Fl f オプションを使うか、 .Xr getopt 3 で使われるオプション指定の終了記号 ``--'' を使用します。 .Pp .Ic -delete プライマリは、ファイルシステムツリーの検索順序に影響する 他のオプションとは十分には連係しません。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/send-pr.1 b/ja_JP.eucJP/man/man1/send-pr.1 index fd50a8b6b7..92552502f6 100644 --- a/ja_JP.eucJP/man/man1/send-pr.1 +++ b/ja_JP.eucJP/man/man1/send-pr.1 @@ -1,249 +1,249 @@ .\" -*- nroff -*- .\" --------------------------------------------------------------------------- .\" man page for send-pr (by Heinz G. Seidl, hgs@cygnus.com) .\" updated Feb 1993 for GNATS 3.00 by Jeffrey Osier, jeffrey@cygnus.com .\" .\" This file is part of the Problem Report Management System (GNATS) .\" Copyright 1992 Cygnus Support .\" .\" This program is free software; you can redistribute it and/or .\" modify it under the terms of the GNU General Public .\" License as published by the Free Software Foundation; either .\" version 2 of the License, or (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU .\" General Public License for more details. .\" .\" You should have received a copy of the GNU Library General Public .\" License along with this program; if not, write to the Free .\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA .\" .\" --------------------------------------------------------------------------- .\" jpman %Id: send-pr.1,v 1.2 1997/03/29 08:29:34 horikawa Stab % .nh .TH SEND-PR 1 3.2 "February 1993" .SH 名称 send-pr \- サポートサイトに Problem Report (PR) を送る。 .SH 書式 .B send-pr [ .I site ] [ .B \-f .I problem-report ] [ .B \-t .I mail-address ] .br .in +0.8i [ .B \-P ] [ .B \-L ] [ .B \-\-request-id ] [ .B \-v ] .SH 解説 .B send-pr は、サポートサイトに対して、 .I problem report .\" SITE ADMINISTRATORS - change this if you use a local default (PR) を送るために使うツールです。大抵の場合は正しい .I site -がデフォルトとなっているはずです。この引き数は、問題 +がデフォルトとなっているはずです。この引数は、問題 のカテゴリに対して責任をもつサポートサイトを指し示します。いくつかの サイトはデフォルトとしてローカルアドレスを使っていることでしょう。 .I site は、 .BR aliases (5) を使って定義されます。 .LP .B send-pr を実行すると、エディタが起動され、用意されているテンプレートが (いくつ かのフィールドにもっともらしいデフォルトの値をあてはめてから) 読み込ま れます。エディタを終了すると、 .B send-pr は、サポートサイトの .I Problem Report Management System (\fBGNATS\fR) に書き込み終えた書式をメールで送ります。 サポートサイトで は、PR に唯一の番号を割り当てて、その問題のカテゴリ と \fIsubmitter-id\fR とともに、\fBGNATS\fR データベースに 保存しています。 \fBGNATS\fR は PR を受理したこと知らせるために、 問題のカテゴリの引用と PR 番号とを自動的に返送します。 .LP PR がすぐに処理されるようにするためには、問題の属す領域を識別するため、 指定可能カテゴリから一つを選んで記入する必要があります。(カテゴリの一覧は .B `send-pr -L' で見ることができます。) .LP 問題の記述がより正確であり、提供される情報がより完全であればあるほど、 サポートチームは問題をそれだけ早く解決することができます。 .SH オプション .TP .BI \-f " problem-report" すでに記入した PR ファイルを \fIproblem-report\fR に指定できます。 .B send-pr はエディタを起動せずに指定したファイルを送ります。 .I problem-report が .BR `\|\-\|' のときは .B send-pr は、標準入力から読み込みます。 .TP .BI \-t " mail-address" PR を送るサイトのメールアドレスを変更します。 デフォルトのメールアドレスは、 デフォルトサイトのものが使われます。特殊な状況を除き、この オプションではなく、 .I site 引数を使って下さい。 .TP .B \-P 環境変数 .B PR_FORM で指定されたテンプレートを標準出力に出力します。 .B PR_FORM が定義されていないときは、標準のブランク PR テンプレートが出力されます。 メールは送られません。 .TP .B -L 指定可能なカテゴリの一覧が表示されます。メールは送られません。 .TP .B \-\-request\-id デフォルトサイトか、 .I site が指定されればそのサイトに .IR submitter-id を要求するメールを送信します。もしユーザがそのサイトに所属していなければ、 .I submitter-id は .BR net を使う必要があります。 .TP .B \-v .B send-pr のバージョン番号を表示します。 .LP 注釈: PR を提出するためには、PR を直接メールするのではなく、 .B send-pr を使いましょう。テンプレートと .B send-pr の両方を使うことによって、必要な情報のすべてがサポートサイトに確実に 届きやすくなります。 .SH 環境変数 環境変数 .B EDITOR は、テンプレートを編集する際に使用するエディタを指定します。 .br デフォルト: .B vi .sp 環境変数 .B PR_FORM が設定されていれば、その値は編集する PR のテンプレートのファイル名として 使われます。部分的に埋められた記入書式 ( たとえば、identification フィールドがすでに完成した書式など) を使って始めようとする場合に、 この環境変数を使うことができます。 .SH " PR の記入方法" プログラムが容易に PR を扱うことができるようにするため、 PR はある形式に従っている必要があります。 以下のガイドラインを覚えておきましょう: .IP \(bu 3m それぞれの PR には .B 一つの問題 だけを記述しましょう。 .IP \(bu 3m フォローアップメールには、 自動返送されて来るメールと同じサブジェクトを使いましょう。サブジェクトは、 カテゴリ、PR 番号、もともとの概要 ( synopsis ) 行から構成されています。 これによってサポートサイトは、 複数のメールメッセージをある PR に関連付けることができ、 またそれらを自動的に記録することができます。 .IP \(bu 3m サブジェクトや、概要の行はできるだけ正確に記入するようにしましょう。 .IP \(bu 3m サブジェクトの行と概要の行は機密扱いになりません。 公開扱いのバグリストがサブジェクトと概要の行から編集生成されるからです。 機密情報はここに書かないでください。 .LP 詳しくは、GNU .B Info ファイルの .B send-pr.info か、RP について詳しく書かれている \fIReporting Problems With send-pr\fR\ のドキュメントなどを参照してください。 .SH "テストケース、コード、その他の記入方法" 小さなサンプルコードを送りましょう。 大きなテストケースや問題のソースコードを送りたい場合にには、 サポートサイトに連絡を取り、指示に従ってください。 .SH 関連ファイル .ta \w'/tmp/pbad$$ 'u /tmp/p$$ 編集しているときに使う PR のコピー .br /tmp/pf$$ テスト目的で使う、空の PR テンプレートコピー .br /tmp/pbad$$ 却下された PR のファイル .SH EMACS ユーザインタフェース .B send-pr のフィールドを記入するための Emacs ユーザインタフェースが .B send-pr の配布物に含まれます( .BR "M-x send-pr" で起動します)。 コンフィギュレーションとインストールのための情報は、 .B send-pr.info もしくは配布物の最上位ディレクトリにある ASCII ファイル .B INSTALL を参照してください。 Emacs LISP のテンプレートファイルは .B send-pr-el.in であり、これを .BR send-pr.el としてインストールします。 .SH インストールとコンフィギュレーション インストール手順を知るためには .B send-pr.info か .B INSTALL を参照してください。 .SH 関連項目 .I Reporting Problems Using send-pr (GNU Info ファイル .BR send-pr.info としてもインストールされます) .SH 作者 Jeffrey Osier, Brendan Kehoe, Jason Merrill, Heinz G. Seidl (Cygnus Support) .SH COPYING Copyright (c) 1992, 1993 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. .PP Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. .PP Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. diff --git a/ja_JP.eucJP/man/man5/syslog.conf.5 b/ja_JP.eucJP/man/man5/syslog.conf.5 index 3ae1ed0760..292adbd105 100644 --- a/ja_JP.eucJP/man/man5/syslog.conf.5 +++ b/ja_JP.eucJP/man/man5/syslog.conf.5 @@ -1,358 +1,358 @@ .\" Copyright (c) 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)syslog.conf.5 8.1 (Berkeley) 6/9/93 .\" %Id: syslog.conf.5,v 1.11 1998/07/22 06:15:16 phk Exp % .\" .\" jpman %Id: syslog.conf.5,v 1.3 1998/07/16 01:34:25 yohta Stab % .\" .Dd June 9, 1993 .Dt SYSLOG.CONF 5 .Os .Sh 名称 .Nm syslog.conf .Nd .Xr syslogd 8 設定ファイル .Sh 解説 .Nm ファイルは .Xr syslogd 8 プログラムの設定ファイルです。 このファイルは .Em program 指定によって分けられた行ブロックから構成されています。 それぞれの行は 2つのフィールドを含みます。 その行が適用されるメッセージのタイプと優先度を指定する .Em selector フィールドと、 .Xr syslogd -が選んだ基準とマッチしたマッチしたメッセージを受けとった場合の動作を指定する +が選んだ基準とマッチしたメッセージを受けとった場合の動作を指定する .Em action フィールドです。 .Em selector フィールドと .Em action フィールドは 1 つ以上のタブ文字で区切られています。 .Pp .Em selector 機能は、 .Em facility とピリオド .Pq Dq \&. とオプションの比較フラグ .Pq Bq <=> そして .Em level -で符合化され、間に空白は含みません。 +で符号化され、間に空白は含みません。 .Em facility と .Em level -の双方とも、大文字小文字の違いはありません。 +の双方とも、大文字小文字の区別はありません。 .Pp .Em facility はシステムが発するメッセージの一部を表し、次にあげるキーワード群の 1 つで表されます : auth, authpriv, cron, daemon, ftp, kern, lpr, mail, mark, news, ntp, syslog, user, uucp と local0 から local7。 -これらのキーワード(markを除く)は +これらのキーワード (mark を除く) は .Xr openlog 3 と .Xr syslog 3 ライブラリルーチンで指定される .Dq Dv LOG_ で始まる値と一致します。 .Em 比較フラグ を使用して、何を記録するのかを正確に指定できます。 比較フラグのデフォルト組は .Dq => (またはあなたが好むのなら .Do >= .Dc ) であり、 指定した .Em facility リストからの .Em level 以上のレベルのメッセージを記録することを意味します。 .Pp .Pp .Em level はメッセージの重要度を表し、以下のキーワードの順に高から低になります: emerg, alert, crit, err, warning, notice, info, debug。 これらのキーワードは .Xr syslog 3 ライブラリルーチンで指定される .Dq Dv LOG_ で始まる値と一致します。 .Pp それぞれの行ブロックはタグによって前のブロックと区別されます。 タグは行の先頭が .Em #!prog または .Em !prog (前者は以前の syslogd との互換性のためのものです。 例えば syslog.conf ファイルを共有したい時などに便利です) で始まり、それぞれのブロックは syslog を呼び出す特定のプログラムと 関連付けられています。 また、タグ ``foo'' は、 ``foo: '' というプレフィックスを持つ カーネルログメッセージにもマッチします。 .Pp .Em facility と .Em level の両方のキーワードとその意味のより詳細な説明を知りたい場合は .Xr syslog 3 を見てください。 選択は .Em facility で行なう方が .Em program で行なうよりも好まれています。 なぜなら、後者はネットワーク環境の中では 簡単に変化してしまう場合があるからです。しかし、適切な .Em facility が本当に存在しない場合もあります。 .Pp もし .Em facility 指定に一致したメッセージを受けとり、なおかつそれが 指定した .Em level .Em (もしくはそれ以上の level) だった場合、またはメッセージ中の日付の後ろの最初の単語が .Em program と一致した場合、 .Em action フィールドで指定された動作が選択されます。 .Pp 複数の .Em selector を、セミコロン .Pq Dq \&; によって区切ることにより、1 つの .Em action に対して指定することができます。 しかしそれぞれの .Em selector はその前にある指定を上書き修正できてしまいますので注意してください。 .Pp 複数の .Em facility は、コンマ .Pq Dq \&, によって区切ることにより 1 つの .Em level を指定することができます。 .Pp アスタリスク .Pq Dq * は、全ての .Em facility 、全ての .Em levels 、または全ての .Em programs を指定するのに使用できます。 .Pp 特別な .Em facility である .Dq mark は、20分毎に .Dq info の優先度を持つメッセージを受け取ります ( .Xr syslogd 8 を参照 )。これは アスタリスクを含む .Em facility フィールドには適用されません。 .Pp 特別な .Em level である .Dq none は、特定の .Em facility を無効にします。 .Pp それぞれの行の .Em action フィールドは、 .Em selector フィールドに指定されたメッセージを受け取った際の動作を指定します。 動作指定には次の 5つの形式があります: .Bl -bullet .It パス名 (先頭がスラッシュで始まります)。 該当するメッセージは、そのファイルに追加されます。 .It ホスト名 ( -.Pq Dq @ +.Dq @ 文字から始まる必要があります)。 該当するメッセージは、指定されたホストの .Xr syslogd プログラムに転送されます。 .It コンマで区切られたユーザのリスト。 該当するメッセージは、指定されたユーザがログインしていれば、 そのユーザの画面に出力されます。 .It 1 つのアスタリスク。 該当するメッセージは、ログイン中の全てのユーザの画面に出力されます。 .It 垂直バー .Pq Dq \&| とそれに続くコマンド。該当したメッセージをパイプを使って コマンドに渡すことができます。 このコマンドは、 .Pa /bin/sh によって評価されるので、通常のシェルメタキャラクタや入力/出力 リダイレクトを利用できます。 (しかし実行されたコマンドからの .Xr stdio 3 バッファされた出力のリダイレクトは余計な遅延を引き起こしたり、 あるいはシグナルによってロギング中のサブプロセスが終了した場合など 出力データを失うことがあるかもしれないことに注意してください) コマンドそれ自身は .Em stdout と .Em stderr を .Pa /dev/null にリダイレクトして動作します。 .Dv SIGHUP を受け取ると、 .Nm はそのプロセスとのパイプを閉じます。もしそのプロセスが自発的に終了しない 場合は、60秒の猶予期間の後 .Dv SIGTERM を送ります。 .Pp -コマンドはパイプでつながれるデータが到着した際に 1 度だけ起動されます。 +コマンドはパイプ経由で送るべきデータが到着した際に 1 度だけ起動されます。 その後、コマンドが終了した場合には必要に応じて再起動されます。 -そのため、1行の入力だけをサブプロセスが手に入れるよう望んでいるなら、 +そのため、1 行の入力だけをサブプロセスに引き渡すことが望ましいのならば、 (もし多くのメッセージが速く流れる場合には、 資源を大量に消費する可能性がありますが) -1行の入力があった後に終了する事によって達成する事ができます。 -必要ならば、この効果のためにラッパスクリプトを書くこともできます。 +1 行の入力があった後に終了する事によって達成する事ができます。 +必要ならば、この効果を得るためにラッパスクリプトを書くこともできます。 .Pp そのコマンドが完全なパイプラインでない場合、コマンドを .Em exec で起動すると、起動したシェルプロセスがコマンドの完了を待たなくなるので 便利かもしれません。 警告: このプロセスは .Xr syslogd 8 の UID のもとで動きます。通常はスーパユーザです。 .El .Pp -空行と最初の空白でない文字がハッシュ +空行、および、最初の空白でない文字がハッシュ .Pq Dq # 文字である行は無視されます。 .Sh 使用例 .Pp 設定ファイルは次のようになります: .Bd -literal # err レベル以上の全てのメッセージ、全てのレベルの kernel メッセージ、 # notice レベルの auth メッセージをコンソールに出力します。 # プライベートな認証メッセージは記録をとりません! *.err;kern.*;auth.notice;authpriv.none /dev/console -# info 以上のレベルを持つ(mail を除く)全てのメッセージを記録します。 +# info 以上のレベルを持つ (mail を除く) 全てのメッセージを記録します。 # プライベートな認証メッセージは記録をとりません! *.info;mail.none;authpriv.none /var/log/messages # debug レベルのみの daemon メッセージを記録します daemon.=debug /var/log/daemon.debug # authpriv ファイルはアクセス制限を持ちます。 .\" /var/log/secure の read permission を限定するということ? .\" 2.2.6-RELEASE 対象 .\" By yohta@bres.tsukuba.ac.jp (July 8 1998) authpriv.* /var/log/secure # 全てのレベルの mail メッセージを一箇所にまとめて記録します。 mail.* /var/log/maillog -# emerg(非常事態)レベルの全てのメッセージは全員が受け取ります。 +# emerg (非常事態) レベルの全てのメッセージは全員が受け取ります。 *.emerg * *.emerg @arpa.berkeley.edu # alert レベル以上のメッセージを root と eric の画面に表示されます。 .\" 原文は Root and Eric get alert and higher messages を意訳 .\" 2.2.6-RELEASE 対象 .\" By yohta@bres.tsukuba.ac.jp (July 10 1998) *.alert root,eric # err レベル以上の mail と news の エラーを特別なファイルに保存します。 mail;news.err /var/log/spoolerr .\" 原文は uucp,news.crit / send-pr 予定 .\" 2.2.6-RELEASE 対象 .\" By yohta@bres.tsukuba.ac.jp (July 10 1998) # 全てのレベルの認証メッセージをフィルタにパイプします。 auth.* |exec /usr/local/sbin/authfilter # ftpd のトランザクションを mail と news にあわせて保存します。 !ftpd *.* /var/log/spoolerr # カーネルのファイヤウォールレポートを別のファイルに保存します。 !ipfw *.* /var/log/ipfw .Ed .Sh 関連ファイル .Bl -tag -width /etc/syslog.conf -compact .It Pa /etc/syslog.conf .Xr syslogd 8 設定ファイル .El .Sh バグ 複数のセレクタ指定は、時々思ったように効果を発揮しない事があります。 例えば、 .Dq mail.crit,*.err と設定すると、 .Dq mail ファシリティのメッセージのレベルは .Dq err かそれ以上となり、 .Dq crit かそれ以上のレベルにはなりません。 .Pp ネットワーク環境においては、全てのオペレーティングシステムが 同じ facility 名のセットを実装しているわけではない点に注意してください。 authpriv, cron, ftp, ntp といったこの実装において知られた facility が、 目的のシステムには存在しないかもしれません。更に悪い事に、 DEC UNIX は AdvFS ファイルシステムのログイベントに facility 番号 10 -(この実装では authpriv です) を使っています。 +(この実装では authpriv に該当します) を使っています。 .Sh 関連項目 .Xr syslog 3 , .Xr syslogd 8 diff --git a/ja_JP.eucJP/man/man5/term.5 b/ja_JP.eucJP/man/man5/term.5 index 92d70d257e..5face792c9 100644 --- a/ja_JP.eucJP/man/man5/term.5 +++ b/ja_JP.eucJP/man/man5/term.5 @@ -1,153 +1,153 @@ .TH TERM 5 .\" jpman %Id: term.5,v 1.3 1998/07/30 15:27:11 horikawa Stab % .\" WORD: compiled コンパイル済みの .\" WORD: linear search 線形探索(パス名から inodeを) .\" WORD: boolean value ブール値 .\" WORD: terminate 終端する .ds n 5 .ds d /usr/lib/terminfo .SH 名称 term \- コンパイル済みの term ファイルの形式 .SH 書式 .B term .SH 解説 .PP コンパイル済みの terminfo 属性記述はディレクトリ \fB\*d\fP の下にあります。 \s-1UNIX\s+1 システムの巨大なディレクトリを線形探索するのを避けるため、 \fB\*b/c/name\fP という形の 2 階層の命名規則が用いられます。 (ここで、 .I name は端末の名前で、 .I c は .I name の最初の文字です。) ですから、 .I act4 は、 \fB\*d/a/act4\fP というファイル名で見つけることができます。 同じ端末を示す同義な名前は、同じコンパイル済みファイルへの複数の リンクとして実装されています。 .PP この形式は、全てのハードウェアで同じになるように選ばれています。 1 バイトが 8 ビット以上であることは仮定していますが、バイトオーダや -符合拡張の方式については仮定していません。 +符号拡張の方式については仮定していません。 .PP コンパイル済みのファイルは .I tic プログラムにより生成され、 .I setupterm ルーチンにより読み取られます。 これらのソフトウェア部品は .IR ncurses (3) の一部です。 このファイルは 6 つの部分に分割されます。すなわち、 ヘッダ、 端末の名称、 ブール値のフラグ、 数値、 文字列、および 文字列テーブルです。 .PP ヘッダセクションはファイルの冒頭にあります。 このセクションは、以下に示す形式の short 型の整数 6 個からなります。 これらの整数は (1) マジックナンバ (8 進で 0432)、 (2) 名称セクションのバイト単位での大きさ、 (3) ブール値のセクションに含まれるバイトの個数、 (4) 数値セクションに含まれる short 型整数の個数、 (5) 文字列セクションに含まれるオフセットの個数 (short 型整数)、 (6) 文字列テーブルのバイト単位での大きさ です。 .PP short 型の整数は 2 個の 8 ビットバイトに格納されています。 最初のバイトは値の最下位 8 ビットを、2 番目のバイトは最上位 8 ビットを 含みます。(すなわち、値は 256*second+first と表現されます。) 値 \-1 は 0377, 0377 で表現されますが、その他の負の値は構文違反です。 一般に、値 \-1 は、あるケーパビリティがその端末に備わっていないことを 示します。 この形式は \s-1VAX\s+1 と \s-1PDP\s+1-11 のハードウェアに 一致するものであることにご注意下さい。これに一致しないハードウェアの マシンでは、整数を 2 個のバイトとして読み込み、結果を算出します。 .PP 次に現れるのは端末名セクションです。 これは、端末のさまざまな名前を `|' 文字で区切って列挙した、 terminfo 記述の最初の行を含みます。 このセクションは 1 個の \s-1ASCII NUL\s+1 文字で終端されます。 .PP ブール型のフラグは、フラグ 1 個につき 1 バイトを占めます。 このバイトは、フラグが存在するかしないかに従って、0 か 1 となる必要があります。 ケーパビリティはファイル に含まれるのと同じ順番に並びます。 .PP 数値セクションが偶数バイト目から開始されるように、 ブール値のセクションと数値セクションの間には、 必要なら 1 個のナルバイトを挿入します。 すべての short 型整数は short 型のワード境界に揃えて配置されます。 .PP 数値セクションはフラグセクションと同様です。 各ケーパビリティは 2 バイトを占め、short 型整数として格納されます。 もし表現された値が \-1 なら、そのケーパビリティは存在しないものと 解釈されます。 .PP 文字列セクションもまた同様です。 各ケーパビリティは上記の形式に従い、2 バイトの short 型整数として 格納されます。 値 \-1 は、ケーパビリティが存在しないことを意味します。 それ以外の場合、値は、文字列テーブルの先頭からのオフセットとして 解釈されます。 ^X や \ec といった記法で示された特殊文字は、その記法を解釈した結果の形で 格納され、印刷可能表現では格納されません。 パッド情報 $ とパラメータ情報 %x は解釈を行なわずそのままの形で 格納されます。 .PP 最後のセクションは文字列テーブルです。これは文字列セクションで参照されている すべての文字列ケーパビリティの値を含みます。 各文字列はナルで終端されています。 .PP .I setupterm ルーチンでは、ファイルに実際に存在するケーパビリティ とは異なるものが予想され得ることにご注意下さい。 .I setupterm が再コンパイルされた後にデータベースが更新される (ファイルにいくつかの未知のエントリが含まれる結果になります)か、 データベースが最後にコンパイルされた後にプログラムが再コンパイルされる (存在しないエントリを生む結果になります)両方の可能性があります。 ルーチン .I setupterm は両方の可能性に備える必要があります \- これが、データ内に個数と大きさが含まれている理由です。 また、新しいケーパビリティは常に、ブール値、数値、文字列の ケーパビリティリストのそれぞれの最後に追加しなければなりません。 .PP 使用例として、 Microterm ACT 4 の記述の 8 進数ダンプをここに収めます。 .nf .sp microterm|act4|microterm act iv, cr=^M, cud1=^J, ind=^J, bel=^G, am, cub1=^H, ed=^_, el=^^, clear=^L, cup=^T%p1%c%p2%c, cols#80, lines#24, cuf1=^X, cuu1=^Z, home=^], .sp .ft CW \s-2000 032 001 \e0 025 \e0 \eb \e0 212 \e0 " \e0 m i c r 020 o t e r m | a c t 4 | m i c r o 040 t e r m a c t i v \e0 \e0 001 \e0 \e0 060 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 \e0 100 \e0 \e0 P \e0 377 377 030 \e0 377 377 377 377 377 377 377 377 120 377 377 377 377 \e0 \e0 002 \e0 377 377 377 377 004 \e0 006 \e0 140 \eb \e0 377 377 377 377 \en \e0 026 \e0 030 \e0 377 377 032 \e0 160 377 377 377 377 034 \e0 377 377 036 \e0 377 377 377 377 377 377 200 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 * 520 377 377 377 377 \e0 377 377 377 377 377 377 377 377 377 377 540 377 377 377 377 377 377 007 \e0 \er \e0 \ef \e0 036 \e0 037 \e0 560 024 % p 1 % c % p 2 % c \e0 \en \e0 035 \e0 600 \eb \e0 030 \e0 032 \e0 \en \e0\s+2 .ft R .fi .sp .PP いくつかの制限: コンパイル済みのエントリは 4096 バイトを超えることが できません。名前フィールドは 128 バイトを超えることができません。 .SH 関連ファイル \*d/*/* コンパイル済みの端末ケーパビリティデータベース .SH 関連項目 ncurses(3), terminfo(5). diff --git a/ja_JP.eucJP/man/man5/uuencode.format.5 b/ja_JP.eucJP/man/man5/uuencode.format.5 index e5cd5f93b1..67c85ce0f9 100644 --- a/ja_JP.eucJP/man/man5/uuencode.format.5 +++ b/ja_JP.eucJP/man/man5/uuencode.format.5 @@ -1,99 +1,99 @@ .\" Copyright (c) 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)uuencode.format.5 8.2 (Berkeley) 1/12/94 .\" jpman %Id: uuencode.format.5,v 1.3 1998/07/02 18:49:29 kumano Stab % .\" .\" WORD: trailer トレーラ .\" .Dd January 12, 1994 .Dt UUENCODE 5 .Os BSD 4 .Sh 名称 .Nm uuencode .Nd uuencode ファイルのフォーマット .Sh 解説 .Xr uuencode 1 によって出力されるファイルは、ヘッダ行、それに続く本体の行、 およびトレーラ行から構成されています。 .Xr uudecode 1 コマンドはヘッダ行の前やトレーラ行の後ろにある行を無視します。 ヘッダの前にある行は、当然ヘッダのようには見えてはいけません。 .Pp ヘッダ行は行の先頭にある 6 文字 .Dq begin\ \& (最後の空白に注意) によって識別されます。 .Em begin の後ろには (8 進数の) モード、そしてリモートファイルの名前を指定する 文字列が続きます。 空白がヘッダ行中の 3 つの要素を分けています。 .Pp 本体は、それぞれが最大 62 文字 (行末の改行を含みます) の行から -構成されています。これらは文字カウント、それに続く符合化された文字、 +構成されています。これらは文字カウント、それに続く符号化された文字、 それに続く改行からなります。 文字カウントは印刷可能な 1 文字で、その行の残りのバイト数を整数で表して います。 その整数は常に 1 から 45 または 64 の範囲にあり、その文字から空白文字 (8 進数で 40) を引く事によって決定可能です。文字 64 は 0 のカウントを 表しています。 .Pp 3 バイトのグループが 4 文字に (訳注: 3 バイト (24 ビット) を 1 グループとしこれを 4 つに分けて 4 文字に) .\" 上記訳注は、原文の理解を助けるために追加しました。 .\" 2.2.6-RELEASE 対象 .\" By kumano@jp.freebsd.org (Jun 27 1998) 、つまり 6 ビットが 1 文字に蓄えられます。 すべての文字はいつも 1 から 64 の範囲にあり印刷可能な文字にするために 空白文字 (8 進数で 40) でかさあげされます。 文字 64 は 0 のカウントを表します。 最後の行は通常の 45 バイトより短くてもかまいません。 もしサイズが 3 の倍数でない場合、 そのことは最終行のカウントの値を見ればわかります。 文字カウントを 4 の倍数にするために、余分なゴミが含まれる事があります。 本体は、0 のカウントを持つ行で終了します。 この行は .Tn ASCII バッククォート (8 進数で 140) の 1 文字からなります。 .Pp トレーラ行は .Dq end だけの行からなります。 .Sh 関連項目 .Xr mail 1 , .Xr uucp 1 , .Xr uudecode 1 , .Xr uuencode 1 .Sh 歴史 .Nm uuencode ファイルフォーマットは .Bx 4.0 から登場しました。 .\" It was named uuencode.5 prior to 4.3