[pgsql-jp: 33609] 補足 (Re: 改行の問題について)

UCHIDA Hitoshi gin @ kohoku.jac-net.com
2004年 7月 10日 (土) 11:44:23 JST


内田です。

補足ですが、 ^D とか ^Z 等制御文字の役目も固定されているわけではなく、terminal device
の設定を変更することで可変です。

ですので ^A で入力終了なんていう設定だって可能です。

$ stty -a
speed 9600 baud; 40 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
        -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
        -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel -ignbrk
        brkint -inpck -ignpar -parmrk
oflags: opost onlcr -ocrnl -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
        -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;     ← EOF は ^D
        eol2 = <undef>; erase = ^H; erase2 = ^H; intr = ^C; kill = ^U;
        lnext = ^V; min = 1; quit = ^\; reprint = ^R; start = ^Q;
        status = ^T; stop = ^S; susp = ^Z; time = 0; werase = ^W;

$ stty eof ^A
$ cat > test.txt
abc
def
^A
$ cat test.txt
abc
def
$

改行文字の LF にしても、極端な話で言うと「デフォルトでたまたまそう設定されているだけ」
とも言えます。EOL や、パラメータの境目である IFS にしても、Shell を含む「アプリケーショ
ン」がサポートしていれば、ユーザの都合でいくらでも変更可能。

ほんとに特別なのは NULL 文字の \0 くらいでしょうか?


Kazumasa Gotoh さんは書きました:
>という事もできるので、^D すなわち 0x04 が EOF コードだと思っている
>方がたまにいらっしゃいますが、これは端末装置から LF 後の最初の送信
>文字が ^D だと、(この場合は cat に対しての)入力処理終了を示した事に
>なり、cat 側から見ると結果的に「EOF を検知した」となります。



pgsql-jp メーリングリストの案内