日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
VIS(3) FreeBSD ライブラリ関数マニュアル VIS(3) 名称 vis, nvis, strvis, stravis, strnvis, strvisx, strnvisx, strenvisx, svis, snvis, strsvis, strsnvis, strsvisx, strsnvisx, strsenvisx -- 文字を視覚的 にエンコード (符号化) する ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <vis.h> char * vis(char *dst, int c, int flag, int nextc); char * nvis(char *dst, size_t dlen, int c, int flag, int nextc); int strvis(char *dst, const char *src, int flag); int stravis(char **dst, const char *src, int flag); int strnvis(char *dst, size_t dlen, const char *src, int flag); int strvisx(char *dst, const char *src, size_t len, int flag); int strnvisx(char *dst, size_t dlen, const char *src, size_t len, int flag); int strenvisx(char *dst, size_t dlen, const char *src, size_t len, int flag, int *cerr_ptr); char * svis(char *dst, int c, int flag, int nextc, const char *extra); char * snvis(char *dst, size_t dlen, int c, int flag, int nextc, const char *extra); int strsvis(char *dst, const char *src, int flag, const char *extra); int strsnvis(char *dst, size_t dlen, const char *src, int flag, const char *extra); int strsvisx(char *dst, const char *src, size_t len, int flag, const char *extra); int strsnvisx(char *dst, size_t dlen, const char *src, size_t len, int flag, const char *extra); int strsenvisx(char *dst, size_t dlen, const char *src, size_t len, int flag, const char *extra, int *cerr_ptr); 解説 vis() 関数は、文字 c を表わす文字列を dst にコピーします。c がエンコー ド(符号化) を必要としないなら、変更せずにコピーされます。文字列は、ヌル文 字で終了し、文字列の終りへのポインタが返されます。あらゆるエンコードの最 大の長さは、4 バイトです (後続するヌル文字は、含みません)。したがって、 バッファに 1 組の文字をエンコードするとき、バッファのサイズは、後続するヌ ル文字の 1 を加えて、エンコードされたバイトの数の 4 倍であるべきです。 flag パラメータは、エンコードのためと視覚表現の変更のために考慮される文字 のデフォルトの範囲の変更のために使用されます。追加の文字 nextc は、(下に 説明された) VIS_CSTYLE エンコード形式を選択するときのみ使用されます。 strvis(), stravis(), strnvis(), strvisx() と strnvisx() 関数は、文字列 src の視覚表現を dst コピーします。strvis() と strnvis() 関数は、src から 最初のヌル文字までの文字をエンコードします。strvisx() と strnvisx() 関数 は、src から正確に len 文字をエンコードします (これは、ヌル文字を含んでい るかもしれないデータのブロックをエンコードするために役に立ちます)。両方の 形式のヌル文字は、dst を終了します。dst のサイズは、src からエンコードさ れたバイト数の 4 倍でなければなりません (ヌル文字のために 1 加える)。両方 の形式は、(後続するヌル文字を含まずに) dst の文字数を返します。stravis() 関数は、文字列を保持するために動的に空間を割り付けます。また、関数の ``n'' バージョンは、dst バッファの長さを示す追加の引数 dlen をとります。 dlen が変換された文字列に適合するのには十分に大きくないなら、strnvis() と strnvisx() 関数は、-1 を返し、errno を ENOSPC を設定します。strenvisx() 関数は、マルチバイト変換エラーフラグを (内と外に) 渡すために使用される、 追加の引数 cerr_ptr を取ります。これは、ロケールが入力データの文字のロ ケール以外の何かに設定されることが可能であるとき、単一文字を処理すると き、役に立ちます。 関数 svis(), snvis(), strsvis(), strsnvis(), strsvisx(), strsnvisx() と strsenvisx() は、vis(), nvis(), strvis(), strnvis(), strvisx(), strnvisx() と strenvisx() に対応しますが、ヌル文字で終了する文字のリスト を指す追加の引数 extra があります。これらの文字は、dst にエンコードされる か、またはバックスラッシュでエスケープされてコピーされます。これらの関数 は、例えば、シェルの特定の文字の特別の意味を削除するために役に立ちます。 エンコードは、全体にグラフィック文字から成るユニークで反転可能な表現で す。それは、unvis(3), strunvis(3) または strnunvis(3) 関数を使用して、元 のオリジナルの形式にデコードすることができます。 制御することができる次の 2 つのパラメータがあります: (vis(), nvis(), strvis(), strnvis(), strvisx() と strnvisx() にのみ適用される) エンコード される文字の範囲と使用される表現のタイプ。デフォルトで、空白、タブと改行 を除くすべての非グラフィック文字がエンコードされます (isgraph(3) 参照)。 次のフラグは、これを変更します: VIS_DQ ダブルクォートもエンコードします。 VIS_GLOB glob(3) によって認識されるマジック文字 (`*', `?', `[' と `#') もエンコードします。 VIS_SHELL (グロブ (glob) 文字に加えて) また、シェルによって使用されるメ タ文字をエンコードします: (`'', ``', `"', `;', `&', `<', `>', `(', `)', `|', `]', `\', `$', `!', `^' と `~)'。 VIS_SP 空白もエンコードします。 VIS_TAB タブもエンコードします。 VIS_NL 改行もエンコードします。 VIS_WHITE VIS_SP | VIS_TAB | VIS_NL と同義語です。 VIS_META VIS_WHITE | VIS_GLOB | VIS_SHELL と同義語です。 VIS_SAFE ``unsafe'' (安全でない) 文字のみエンコードします。unsafe (安 全でない) は、一般的な端末に予期しない作用を行う制御文字を意 味します。現在、この形式は、-- すべてのグラフィック文字に加え て -- エンコードされない空白、タブ、改行、バックスペース、ベ ルとリターンを許可します。 (上記のフラグは、svis(), snvis(), strsvis(), strsnvis(), strsvisx() と strsnvisx() に効果がありません。これらの関数を使用するとき、extra によっ て指される配列にエンコードされるすべてのグラフィック文字を置きます。一般 的に、バックスラッシュ文字は、この配列に含まれているべきです、下記の VIS_NOSLASH フラグの使用に関する警告を参照してください)。 エンコードの 6 つの形式があります。すべての形式は、特別なシーケンスを導入 するためにバックスラッシュ文字 `\' を使用します。2 つのバックスラッシュ は、`%' を使用する VIS_HTTPSTYLE または `=' を使用する VIS_MIMESTYLE を除 いて、実際のバックスラッシュを表わすために使用されます。これらは、視覚形 式です: (デフォルト) (8 番目のビットが設定された文字) メタ文字を表わすために、`M' を使用し、制御文字 (iscntrl(3) 参照) を表すためにキャレット `^' を使用します。次の形式が使用されます: \^C 制御文字 `C' を表わします。文字 `\000' から `\037' ま での範囲と (`\^?' と表される) `\177'。 \M-C 8番目のビットが設定された文字 `C' を表わします。文字 `\241' から `\376' の範囲。 \M^C 8番目のビットが設定された制御文字 `C' を表わします。文 字 `\200' から `\237' の範囲と (`\M^?' と表される) `\377'。 \040 ASCII の空白を表わします。 \240 メタ空白 (Meta-space) を表わします。 VIS_CSTYLE 標準の印刷可能でない文字を表わすために C スタイルのバックス ラッシュシーケンスを使用します。次のシーケンスが、示された文 字を表わすために使用されます: \a -- BEL (007) \b -- BS (010) \f -- NP (014) \n -- NL (012) \r -- CR (015) \s -- SP (040) \t -- HT (011) \v -- VT (013) \0 -- NUL (000) この形式を使用するとき、nextc パラメータは、ヌル文字が `\000' の代わりに `\0' としてエンコードすることができるかどうか判断 するために調べられます。nextc が 8 進数字であるなら、後の表現 が、曖昧さを避けるために使用されます。 C スタイルのバックスラッシュシーケンスなしの印刷可能でない文 字は、デフォルト表現を使用します。 VIS_OCTAL 3 桁の 8 進数のシーケンスを使用します。形式は、`\ddd' です、 ここで d は、8 進数を表わします。 VIS_CSTYLE | VIS_OCTAL 3 桁の 8 進数シーケンスを使用する C スタイルのバックスラッ シュシーケンスなしの印刷可能でない文字を除いて、VIS_CSTYLE と 同じです。 VIS_HTTPSTYLE RFC 1738 に記述されているように URI エンコードを使用します。 形式は、`%xx' です、ここで x は、小文字の 16 進数を表わしま す。 VIS_MIMESTYLE 単に行を改行せず、CRLF を扱わず、RFC 2045 に記述されているよ うに MIME Quoted-Printable エンコードを使用します。形式は、 `=XX' です、ここで X は、大文字の 16 進数を表わします。 デフォルトの形式 (すなわち、制御文字は、`^C' によって表わされ、メタ文字 は、`M-C' として表されます) の前の 2 つのバックスラッシュとバックスラッ シュを抑制する、1 つの追加のフラグ VIS_NOSLASH があります。このフラグを設 定すると、エンコードは、曖昧で反転不可能です。 マルチバイト文字のサポート これらの関数は、マルチバイト文字の入力をサポートしています。エンコーディ ング変換は、エンコーディング (符号化) なしでコピーすることができる文字の セットを定義する LC_CTYPE 環境変数の設定によって影響を受けます。 VIS_NOLOCALE が設定されるなら、処理は、C ロケールを仮定して行われ、あらゆ る他の環境設定を上書きします。 8 ビットのデータが入力に存在するとき、LC_CTYPE は、正確なロケールまたは C ロケールに設定されなければなりません。データと変換のロケールが不一致であ るなら、マルチバイト文字の認識は、失敗し、エンコーディング (符号化) は、 代わりにバイトごとに実行されます。 上で注意されるように、dst は、src から処理されたバイトの数の 4 倍でなけれ ばなりません。しかし、各マルチバイト文字が MB_LEN_MAX バイトまで指定でき るので、マルチバイト文字の観点では、dst は、src から処理された文字の数の MB_LEN_MAX 倍でなければならないことに注意してください。 環境変数 LC_CTYPE 入力データのロケールを指定します。入力データのロケールが未知で あるなら、C に設定します。 エラー 関数 nvis() と snvis() は、NULL を返し、関数 strnvis(), strnvisx(), strsnvis() と strsnvisx() は、dlen 宛先バッファのサイズが変換を行なうの十 分でないとき、-1 を返す一方、errno に次を設定します: [ENOSPC] 宛先のバッファサイズが、変換を行なうために十分大きくありませ ん。 関連項目 unvis(1), vis(1), glob(3), unvis(3) T. Berners-Lee, Uniform Resource Locators (URL), RFC 1738. Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies, RFC 2045. 歴史 vis(), strvis() と strvisx() 関数は、4.4BSD ではじめて登場しました。 svis(), strsvis() と strsvisx() 関数は、NetBSD 1.5 と FreeBSD 9.2 で登場 しました。(nvis(), strnvis(), strnvisx(), snvis(), strsnvis() と strsnvisx()) 関数のバッファサイズ限定バージョンは、NetBSD 6.0 と FreeBSD 9.2 で登場しました。マルチバイト文字のサポートは、NetBSD 7.0 と FreeBSD 9.2 で追加されました。 FreeBSD 11.2 April 22, 2017 FreeBSD 11.2