No. 597/622 Index Prev Next
Path: titcca!ccut!wnoc-tyo-news!scslwide!wsgw!wsserva!sakamoto
From: sakamoto@sm.sony.co.jp (Tomohiko Sakamoto)
Newsgroups: fj.kanji
Subject: File code (Re: Shift-JIS vs EUC)
Message-ID: < 43011@wsserva.sm.sony.co.jp> 
Date: 11 Jun 90 22:24:26 GMT
References: < 43006@wsserva.sm.sony.co.jp>  < 15029@nttyrl.ntt.jp> 
Sender: news@sm.sony.co.jp
Distribution: fj
Lines: 65

In article < 15029@nttyrl.ntt.jp> ,
	morisaki@nttyrl.ntt.jp (Masato Morisaki) says:
>  
>  ファイルというのは、本来情報交換のためにあるのではないですか?
>  grep, sed, awk などのアプリケーションの処理のしやすさを先に考えるべきでなく、
>  ファイルの本来の目的からファイルコードというを考えるべきでしょう。
>  逆に grep, sed, awk などが工夫をすればいい。これを効率的に作るあるいは
>  ベンダーが用意するのが筋道じゃないですか?このいいアルゴリズムを考えた
>  ところの製品が優秀なわけでしょう。
>  
>  この観点からみると、ファイルコードは ISO 2022 で統一すべきです。
>  それも、ISO 2022 は state full ですから、厳密にファイルの先頭に
>  すべてのアンサー等をした記述にすべきでしょう。
>  逆に、EUC など、すべて暗黙の了解が仮定になっているわけですから、
>  この仮定をだれが守るか、どう省略するかでいつももめているわけです。
>  
>  問題は ISAM 等での、fix structure をもったファイルでの扱いですね。
>  だいたいが filed length などというもので、入れるスロットが制約を
>  うけるわけでここには、state less のがほしい。このときこそ、アプリ
>  ケーションのファイル設計者が、徹底してあるコンベンションを定めて
>  しまえばいい。sift-JIS でも UJIS でも、EUC でもいいわけです。
>  ようは、この種の structured ファイルを扱うのは、同じ体系の
>  アプリケーションですから、このコンベンションを守りさえすればいい。

grep、sed、awk などは、UNIX というシステムにとってアプリケーションでもあ
ります。だから、stateless なファイルコードを、コンベンションとして定めた
ほうが有益です。
invoke(locking shift) と designate を伴う statefull なファイルコードを
使った時、tail コマンドはどうインプリメントすればいいんでしょうか?

それから、もうひとつ大事なことを忘れていませんか?

テキストファイルは、何もお手紙だけのファイルではありません。

Cのソースプログラム、shell script、awk script、sed script などでもあり
ます。そこには、ファイル名、すなわちパス名が出てきます。

さて、パス名は、何コードでしょう?

もし、これに ISO 2022 を使ったとしたら、パス名の中に ASCII と同じ 0x21〜
0x7e のコードが入ってしまいすよね。

次の漢字の2バイト目は、0x2f で '/'です。

	¨くクΟН┓渥丑億劾姦起強君遣康痕晒鹿蒐少侵政鮮俗誰眺哲働年発逼
	墳鋒妙湧溜朗亊儂勵哢坏娟岶廸惆扼擯朦椚櫻洒潘牆甎皴祚箝絲罸膀莚薇
	蟄覩豁躁遲鎭隴餒鬲鶩

ということは、カーネル内部でパス名をスキャンする部分も ISO 2022 を解釈す
るようにして、'/' を検出しないといけなくなります。でないと、

	fd = open(" 少年" , 0);

も出来ないことになります。

UNIX の良さを損なうようなファイルコードは、選択すべきではありません。

--
  ソニー(株)スーパーマイクロ事業本部ワークステーション事業部
	坂本智彦	sakamoto@sm.sony.co.jp

森崎さん、SS2 と SS3 は JIS X0202-1984 にもありますよ。
EUC が ISO 2022 に準拠していない部分は、
SS2、SS3 を SS2R、SS3R の意味で使っていることです。
SS2R、SS3R は、ISO 2022-1986 にもありません。
Next
Continue < 15055@nttyrl.ntt.jp>