Manpages

名 前

vis — 文 字 を 表 示 可 能 文 字 に エ ン コ ー ド す る 書 式
#include <vis.h>

char *
vis(char *dst, char c, int flag, char nextc) int strvis(char *dst, char *src, int flag) int strvisx(char *dst, char *src, int len, int flag) 説 明
vis
() 関 数 は 、 文 字 c を 表 現 す る 文 字 列 を dst に コ ピ ー す る 。 c を エ ン コ ー ド す る 必 要 が な い 場 合 、 変 更 せ ず に コ ピ ー さ れ る 。 文 字 列 は NUL 文 字 で 終 端 さ れ 、 文 字 列 の 最 後 の 文 字 へ の ポ イ ン タ が 返 さ れ る 。 エ ン コ ー ド さ れ た 文 字 の 最 大 長 は 4 文 字 で あ る (最 後 の NUL 文 字 は 含 ま な い )。 よ っ て 、 複 数 の 文 字 を バ ッ フ ァ に エ ン コ ー ド す る 場 合 、 バ ッ フ ァ の 大 き さ は 「 エ ン コ ー ド さ れ る 文 字 の 数 の 4 倍 + 最 後 の NUL 文 字 の た め の 1 文 字 」 で な け れ ば な ら な い 。 引 き 数 flag は 、 エ ン コ ー ド ま た は 表 示 可 能 文 字 に 変 更 さ れ る 文 字 の デ フ ォ ル ト の 範 囲 を 変 更 す る 。 そ の 他 の 文 字 nextc は 、 エ ン コ ー ド フ ォ ー マ ッ ト VIS_CSTYLE (以 下 で 説 明 す る ) を 選 択 す る 場 合 に の み 使 わ れ る 。

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 | VIS_TAB | VIS_NL と 同 じ 。

VIS_SAFE

「 安 全 で な い 」 文 字 だ け を エ ン コ ー ド す る 。 安 全 で な い と は 、 一 般 的 な 端 末 に 予 期 せ ぬ 機 能 を 動 作 さ せ て し ま う こ と を 意 味 す る 。 現 在 の と こ ろ 、 ス ペ ー ス ・ タ ブ ・ 改 行 ・ バ ッ ク ス ペ ー ス ・ ベ ル ・ リ タ ー ン - そ し て 全 て の 表 示 可 能 文 字 - は エ ン コ ー ド さ れ な い 。

3 つ の エ ン コ ー ド 形 式 が あ る 。 全 て の 形 式 で 、 バ ッ ク ス ペ ー ス ’\’ が 特 殊 シ ー ケ ン ス の 始 ま り と し て 使 わ れ る 。 2 つ の バ ッ ク ス ペ ー ス が 実 際 の バ ッ ク ス ペ ー ス を 表 現 す る た め に 使 わ れ る 。 以 下 の よ う な 可 視 化 フ ォ ー マ ッ ト が あ る :

(デ フ ォ ル ト ) メ タ 文 字 (8 ビ ッ ト 目 を 使 う 文 字 ) を 表 現 す る た め に は 、 ’M’ を 使 う こ と 。 制 御 文 字 (iscntrl(3) を 参 照 ) を 表 現 す る た め に は 、 キ ャ レ ッ ト ’^’ を 使 う こ と 。 以 下 の フ ォ ー マ ッ ト が 使 わ れ る :

\^C 制 御 文 字 ’C’ を 表 す 。 ’\000’ か ら ’\037’ の 間 の 文 字 と ’\177’ (’\^?’ と 同 じ ) を 表 す 。

\M-C

8 ビ ッ ト 目 が セ ッ ト さ れ て い る 文 字 ’C’ を 表 す 。 ’\241’ か ら ’\376’ の 間 の 文 字 を 表 す 。

\M^C

8 ビ ッ ト 目 が セ ッ ト さ れ て い る 制 御 文 字 ’C’ を 表 す 。 with the 8th bit set. Spans characters ’\200’ か ら ’\237’ の 間 の 文 字 と ’\377’ (’\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) こ の フ ォ ー マ ッ ト を 使 っ た 場 合 、 NUL 文 字 を ’\000’ で は な く ’\0’ と し て エ ン コ ー ド す る か を 決 定 す る た め に 、 引 き 数 nextc が 参 照 さ れ る 。 nextc が 1 個 の 8 進 数 の 場 合 、 曖 昧 さ を 避 け る た め 後 者 の 表 現 が 使 わ れ る 。

VIS_OCTAL

3 個 の 8 進 数 シ ー ケ ン ス を 使 う 。 ’\ddd’ と い う 形 式 が 使 わ れ る 。 こ こ で d は 8 進 数 を 表 す 。 さ ら に 、 も う 1 つ フ ラ グ VIS_NOSLASH が あ る 。 こ の フ ラ グ は 、 2 つ の バ ッ ク ス ラ ッ シ ュ と デ フ ォ ル ト フ ォ ー マ ッ ト で 前 に お か れ る バ ッ ク ス ラ ッ シ ュ を 使 わ な い よ う に す る 。 (つ ま り 、 制 御 文 字 は ’^C’ で 、 メ タ 文 字 は ’M-C’ で 表 さ れ る )。 こ の フ ラ グ が 設 定 さ れ る と 、 エ ン コ ー ド は 曖 昧 で 可 逆 で な く な る 。 関 連 項 目

vis(1), unvis(1), unvis(3) 履 歴 こ れ ら の 関 数 は 4.4BSD で 初 め て 登 場 し た 。