総合手引 | セクション 3 | English | オプション |
#include <vis.h>
strvis() および strvisx() 関数は、文字列 src の視覚的表現を dst にコピーします。 strvis() 関数は、 src から最初の NUL までのキャラクタをコード化します。 strvisx() 関数は、 src から正確に len 個のキャラクタをコード化します (これは、複数の NUL を含む可能性のあるデータのブロックを コード化する場合に役に立ちます)。どちらの形式でも dst を NUL で終端します。 dst のサイズは、 src からコード化されるキャラクタ数の 4 倍でなければなりません (プラス NUL のための 1)。どちらの形式でも、キャラクタ数を dst に返します (最後の NUL は含まずに)。
コード化は、すべてグラフィックキャラクタで構成されたユニークで 逆変換可能な表現です。すなわち、 unvis(3) または strunvis(3) 関数を使えば元の形に戻すことができます。
制御できるパラメータは 2 つあります:コード化するキャラクタの範囲、 および使用する表現のタイプです。デフォルトでは、スペース、タブ、改行を 除くすべての非グラフィックキャラクタがコード化されます。( isgraph(3) 参照) これは、以下のフラグによって変更されます:
VIS_SP | スペースもコード化します。 |
VIS_TAB | タブもコード化します。 |
VIS_NL | 改行もコード化します。 |
VIS_WHITE | VIS_SP amp;| VIS_TAB amp;| VIS_NL と同義。 |
VIS_SAFE | "unsafe" キャラクタのみをコード化します。"unsafe"キャラクタとは、 普通の端末に予期しない機能を引き起こすような制御キャラクタ のことです。現在のところ、この形式ではすべてのグラフィックキャラクタに 加えて、スペース、タブ、改行、バックスペース、ベル、リターンを コード化しないでおきます。 |
コード化には 4 つの形式があります。すべての形式は、
バックスラッシュキャラクタ
‘\’
を使って特殊シーケンスを導入します。本当のバックスラッシュを表すには、
2 つのバックスラッシュを使います。次のような視覚的形式があります:
(default) | ‘M’ を使ってメタキャラクタ (8 番目のビットがセットされた キャラクタ) を表し、カラット ‘^’ を使って制御キャラクタを表します ( iscntrl(3) 参照)。 次のような形式を使います: |
\^C | 制御キャラクタ ‘C’ を表します。 ‘\000’ から ‘\037’ まで、および ‘\177’ のキャラクタを 含みます ( のように)。 |
\M-C | 8 番目のビットがセットされたキャラクタ ‘C’ を表します。 ‘\241’ から ‘\377’ までのキャラクタを含みます。 |
\M^C | 8 番目のビットがセットされた制御キャラクタ ‘C’ を表します。 ‘\200’ から ‘\237’ まで、および のキャラクタを含みます ( ‘\M^?’ のように)。 |
\040 | ASCII のスペースを表します。 |
\240 | メタスペースを表します。 |
VIS_CSTYLE | |
C スタイルのバックスラッシュシーケンスを使って、標準非印刷
キャラクタを表します。次に示すシーケンスを使って、指定されているキャラクタ
を表します:
\a - BEL (007) \b - BS (010) \f - NP (014) \n - NL (012) \r - CR (015) \t - HT (011) \v - VT (013) \0 - NUL (000) この形式を使う場合は、nextc パラメータを見て NUL キャラクタを ‘\000’ ではなく ‘\0’ とコード化するかどうかを判断します。 nextc が 8 進数字である場合は、あいまいさを避けるために ‘\000’ の表現を使います。 | |
VIS_HTTPSTYLE | |
RFC 1808 に記述された URI エンコードを使用します。 形式は ‘%dd’ であり、 d は、16 進数の桁を表現します。 | |
VIS_OCTAL | |
3 桁の 8 進法シーケンスを使います。 d が 8 進数字を表す場合は、形式は ‘\ddd’ となります。 | |
もう一つのフラグ、 VIS_NOSLASH は、バックスラッシュの重複およびデフォルト形式 (すなわち、 制御キャラクタを ‘^C’ で、メタキャラクタを ‘M-C’ で表す形式) の前のバックスラッシュを抑制します。このフラグがセット してあると、コード化はあいまいとなり逆変換不能となります。
VIS (3) | July 25, 1996 |
総合手引 | セクション 3 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | As soon as we started programming, we found to our surprise that it wasn't as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs. | ” |
— Maurice Wilkes |