管理 - みる会図書館


検索対象: UNIX MAGAZINE 1993年9月号
133件見つかりました。

1. UNIX MAGAZINE 1993年9月号

SONY ⅸ ソニー・テクトロニクス つレプン超ロスト ・グラフィック世界のリータ ソニーテクトロニクス株式会社 チャネル営業部・ターミナル営業 東京都品川区北品川 5 ー 9 ー 31 〒 141 TEL03 ・ 3448 ー 4880 土浦営業所 / 0298 ・ 24 ー 2602 名古屋営業所 / 052 ・ 58 ト 3547 大阪営業所 / 06 ・ 947 ー 0322 広島営業所 / 082 ・ 222 ー 7221 福岡営業所 / 092 ・ 472 ー 2626 ・柔軟に対応する SUN 、 DEC フォント・コンパチカレ / DECnet 、 TCP/IP プロトコル・サポ - ト ・低価格ながら高級機並の機能と充実したサポ - ト体制・ Serial Xpress で RS232 を使って高速接続 ・ XI 1 R5 をサポ - ト シート等 ザワション処理、スプレッド 保険などの分野でのトラン ・アプリケーション : 医療、 ・リフレッシュ・レート 70Hz ・分解能 1024X768 、 100dpi イスプレイ ・ 15 インチ・モノワロー乙・テ XPII 型 *188,000 XP12 型 ・大型 19 インチ・モノワロー乙・テ イスプレイ ・高分解能 1280 x 1024 、 100 dp i ・リフレッシュ・レート 72Hz ・アプリケーション : CASE 、ト ランサワション処理、ファイナン シャル・サービス等 \ 480 , 000 XP13 型 ・ 15 インチ・ディスプレイ ・グレースケール 16 階調 ・分解能 1024X7 田、 100dpi ・リフレッシュ・レート 70Hz ・アプリケーション : 金融、教育な どの分野でのオフィス・オートメ ーションファイナンシャル・サ ービス等 \ 318 , OOO XPI 7 型 ・ 14 インチ・カラー・ティスプレイ ・ 1 , 670 万色バレットから 256 色 同時表示 ・分解能 1024X768 、 100dpi ・リフレッシュ・レート 70Hz ・アプリケーション : 工業、化学な どの分野でのプレゼンテーション ン・グラフィッワス、テータ解析等 \ 388 , 000 XP18 型 ・大型 17 インチ・カラー・ディスプ ・ 1 , 6 / 0 万色バレットから 256 色 同時表示 ・高分解能 1152X900 、 100dpi ・リフレッシュ・レート 72Hz ・アプリケーション : DTP 、プレ ゼンテーション・グラフィッワス、 オフィス・オートメーション等 *740,000 TekXpress ファミリ XPIO ンリ ーズ 資料請求 N 。 013

2. UNIX MAGAZINE 1993年9月号

EN'IT E 正 正 メ 頼 ; ■特長 ・ Sun OS 、 NEWS OS 、 HP UX 、 AIX では Boot Device としても使用可能。 ヤ 高速アクセス : 5 インチタイプ平均 llms 、 3 . 5 インチタイプ 10ms 。 ・高速データ転送 : 最大 IOMB / sec の同期転送が可能。 ※ホスト側の応答速度によって制限があります。 ン ・初めての方でも簡単かっ確実に接続できる詳細なインストールマニュアル とインストールプログラム完備。 0 0 ニーズに合わせた豊富なラインアップ 外付 5 インチタイプ * ( 2 ドライプ ) 7.0G バイト ( 2 ドライプ ) 5 . 6G バイト ムヒ 3 . 5G バイト 月ヒ 2 .8G バイト * 表示のディスク容量は全てフォーマット終了後 の容量です 0 対応機種 ・ Sun Microsystems 「 SPARCstation 」シリーズ全機種、および互換機 ・ SONY 「 NEWS 」シリーズ ・ HP 「 HP9000 」シリーズ ・旧 M 「 R 旧 C SYSTEM / 6000 」シリーズ * 富士ゼロックス「 Agross 」シリーズ、東芝「 AS 」シリーズ、富士通「 S 」シリーズ、新日鉄「 NS 」シリーズ、 沖電気「 OKITAC - S 」シリーズ 0 拡張メモリーモジュール ・ 8mm ストリーマ ( SDT シリーズ ) ・ SIMM ・純正品とフルコンバチプル ・大容量ディスクのバックアップに最 ・厳正な検査による確かな信頼性 適な 2.5G 、 5.0G バイトの大容量タイプ ・低価格 & 高品質 ・ MO ディスク ( SDM シリーズ ) ・ DECstatiomVAXstation 、 Silicon ・ 6 圓 M バイト / IG バイトタイプ Graphics 用等もございます。 ※記載されている会社名または製品名は各社の商標または、登録商標です ※お急ぎの方は直接代理店までこ・連絡ください。 販売代理店 総発売元 U 」 SS 株式会社ィー・エム・ティ 株早稲田システムサプライ 東京都新宿区西早稲田 1 ー 4 ー 2 東京都大田区池上 6 ー 20 ー 6 担当 : 加藤 TEL. 03 ー 3204 ー 8919 FAX. 03 ー 3204 ー 2190 担当 : 浅羽 TEL. 03 ー 5700 ー 4013 FAX. 03 ー 5700--4014 テ デ 外付・内蔵 3.5 インチタイプ * 2 . 0G バイト 1 . 6G バイト 1 . 4G バイト 1 . 2G バイト 1 . 0G バイト 880M ノヾイト 0 0 0 ■ 0 資料請求 N 。 . 8

3. UNIX MAGAZINE 1993年9月号

N EWS 4 ) おもな用途は、電子系 CAD 、機械系 によるライン・アンチ・エイリアシング、 CAD 、地図情報システム分野 pixel 単位のデブス・キューイング機能、 NURBS 曲面の動的分割生成機能などを 初年度販売目標は 7 , 000 システム。 もっ ◆ SPARCstation ZX/IOZX 5 ) おもな用途は、機械系 CAD 、分子構造 I) SBus 用グラフィックス・アクセラレー 設言、科学ピジュアライゼーション分野 タ ZX を使用 価格は、主記憶 32MB ( IOZX / 512 は 2 ) 3 次元グラフィックス性能は、 ZX が 725 , 000 3D vector/s 、 IOZX が 750 , 000 64MB ) 、 IGB HDD 、 20inch カラーモニ 2 ) 2 次元グラフィックス性能は 116 万 vec - 3D vector/so 450 , 000 3D アンチ・エイ ターのシステムで、 TurboGXplus が 425 tor/s 、 3 次元べクタ性能 440 , 000 3D vec- リアス処理 vector/s 、 310 , 000 トライア 万円、 ZX が 359 万円、 IOZX / 40 が 516 万 tor/s 、表示解像度最大 1 , 600X 1 , 280 ングル・メッシュ / s 円、 IOZX / 512 ( デュアルプロセッサ ) が 3 ) 標準で 24bit ダブル / Z バッフアをもっ 787 万円。 pixel 3 ) ダブル・バッファリング機能をもつ 4 ) グロー・シェーディング、ハードウェア 初年度販売目標は合計 3 , 000 システム。 •YHP UNIX サーバー 横河・ヒューレット・パッカード (Tel CPU に PA-RISC 7100 を 1 個使用し、 0120 ー 081444 ) は、 PA-RISC 7100 使用の キャッシュ容量 2MB0 処理能力は TPC- UNIX サーバーシステム、、 HP 9000 シリ A べンチマークで 280tpsA 、 SPEC べン ーズ 800 〃の「モデル G60 / H60 / 160 / G70 / チマークで 82SPECint92 、 171.8SPEC- H70 / 170 」の販売を開始した。 ( モデル H70 ) 。 OS は HP-UX9.00 fp920 OS は HP-UX 9.0 。 デスクサイド型で 43 x 42.4 x 53.3cm 価格は、モデル G60 が 768 万 4 , 000 円、 価格は、モデル G70 が 1 , 168 万円、モデ (HxWxD)0 G/H/I クラスは各 4 / 8 / 12 モデル H60 が 1 , 737 万円、モデル 160 が ルⅡ 70 が 2 , 281 万 2 , 000 円、モデル 170 個の HP-PB スロットをもち、最大主記慮 2 , 260 万 2 , 000 円。 が 2 , 710 万 2 , 000 円。 容量は各 512 / 768 / 768MB 。 HDD は内蔵 ◆モデル G70 / H70 / 170 出荷開始は 1993 年 10 月。年間販売目標 が最大 6GB 、外付けが各 100 / 186 / システムボード 1 枚に PA-RISC 7100 は HP 9000 シリーズ 800 全体で 3 , 500 228GB 。 2GB DAT を標準で装備、 CD- を 2 個使用したシンメトリック・マルチプ 台以上。 ROM 、 QIC ドライプか取容可能。 ロセッシング ( SMP ) ・サー 。処理能力 ◆モデル G60 / H60 / 160 は TPC ー A べンチマークで 411.73tpsA ◆おもな仕様 マルチプロセッサ モデル H 70 C P U PA-RISC 7100 ( 96MHz ) x 2 キャッシュ・メモリ 2M B 主記憶容量 32 ~ 512MB 64 ~ 768MB 内蔵 HDD 566MB—6GB 1—6GB 4—6GB 外付け HDD 100GB 228GB 186GB DAT ドライプ 2GB I/O スロット 8 12 0 S HP-UX 9.0 ュニプロセッサ H 60 PA-RISC 7100 ( 96MHz ) x 1 2MB 32 ~ 512MB 64 ~ 768MB 566MB—6GB 1—6GB 4—6GB 1 OOGB 186GB 228G B 2GB 8 12 HP-UX 9.0 G 60 G 70 170 160 4 4 •OMRON DG サーバー「 AV9500 」、デスクサイド型ミッ ドレンジ・サーバー「 AV8500 」、 AV シリ ーズ用「テープアレイ」装置、 UNIX OS 「 DG/UX5.4 リリース 3.0 」の販売を開始 、一 0 中 / 上位サーバー ー 3438 ー 3611 ) は、ラック実装型ハイエンド・ オムロンデータゼネラル (Tel 03 ー 2 UNIX MAGAZINE 1993.9

4. UNIX MAGAZINE 1993年9月号

失敗したときのエラー処理はいささか面倒だが、もっと も簡単な方法は、まず 1 回普通にオープンしてしまうこと だ。これはしつに単純で、 ( 3 ) に示したように ( 1 ) と ( 2 ) を組み 合わせるだけである。最初にオープンした〇 UT というフ ァイルハンドルは、 1 回も使われないまま次の叩 en でも 使用されているが、そんな些細なことにこだわってはいけ ない。次に同しファイルハンドルがオープンされると、そ れまでそのファイルハンドルでオープンされていたファイ ルは自動的にクローズされるのでじ、配無用である。 ( 1 ) パッククオートを使う $to = 'echo $from ー nkf -j ( 2 ) 暗黙の fork を使う unless (open(lN, ' ー open (STDOUT , nkf exit ; $to くエ N > ; ( 3 ) ( 2 ) はこんなふうにも書ける 変数の内容を変換する —e ' ) & & print $from; open(IN, , ー l' ) Ⅱ (open(STDOUT, 'lnkf -e' ) & & print ($from) , exit) ; いままではファイルからデータを読んだり、ファイルに 出力を保存するときにコード変換をおこなっていた。これ は、ファイルと直接に入出力するのではなく、中間にコー ド変換をおこなうプロセスを介在させれはできる。 しかし、たとえば $ from という変数に、、ユニックスマガ ジン〃という文字列が JIS コードで入っていて、これを EUC に変換したい場合、叩 en 文でプロセスを起動する方 法は使えない。では、どうすれはよいのだろうか。 まず、 ( 1 ) のように echo と nkf などのコード変換プログ ラムを組み合わせる方法がある。これでうまくいくことが あるかもしれないが、いつでも使えるとはかぎらない。し たがって、このアイデアはポツである。 お勧めは ( 2 ) の方法である。このプログラムをちらっと見 ただけで、、ふんふん、なるほどクと思った人は、これから さきは読まなくてもよいだろう。 1 月号で、、暗黙の fork" について説明したが、このプログラムを直感的に理解する のはちょっと難しい。すこし解説を加えておこう。 ます最初の、 open(IN, ' ー 話的な処理が必要なときは、この方法は利用できない。 のデータにもとづいて次のデータが決定されるような会 換すべきデータが分かっているときしか使えない。変換後 うと子プロセスに対する制御が利かないので、最初から変 トが高くつくという欠点がある。また、 1 度 fork してしま ているプログラムのサイズが大きいと fork のためのコス ただし、この方法では fork を 2 回おこなうため、実行し IN から読むことができる ( 図 lb)o ロセスの標準出力と同しだから、親プロセスはその出力を スを作り、そこにデータを書き出す。 nkf の標準出力は子プ その後子プロセスは自分の標準出力先に nkf のプロセ 読めるようになる。 標準出力が親プロセスの IN というファイルハンドルから という部分で図 la のように子プロセスが作成され、その 図ー暗黙の fork の利用 fork 親 子 親 く S T D 工 N > nkf <IN>-<—く STDOUT> く STDOUT> 子 くエ N > ーく STDOUT> 160 UNIX MAGAZINE 1993.9

5. UNIX MAGAZINE 1993年9月号

連載 / / Li 眈 Language Non BIocking I/O モードと select UNIX プログラミングに深い興味を寄せている好事家 (hacker?) のために書き添えますと、 Non Blocking I/O モ ードと select という、ネットワーク・プログラミング黒魔術 " の助けを借りると、シグナル樹冓を使わなくても同じ結果カ碍 られそうです。 ソケットが通常モードであるとき、 connect システムコー ルはエラーを検出するか、あるいは相手からなんの返答もない ためにタイムアウトするまでプロックしてしまいます。ソケッ トが Non BIocking I/O モードになっていると、 connect はただちに終了して値ー 1 を返しこのとき errno には EIN- PROGRESS か示されます。そのあと、その Non Blocking ソケットに関して select システムコールを発行すると、 con- nect 処理の終了をタイムアウト付きで待っことができます。制 リスト Non Blocking I/O モードと select 吏用例 限時間を超えてもそのソケットに何も変化か起きなかったら、 たぶんリモートシステムはダウンしている ( あるいはそのよう なマシンは存在しない ) と判断できます。 リスト 1 では 93 ~ 101 行目にかけて、 SIGALRM シグナ ルを使って connect をタイムアウトさせています。その部分 を Non BIocking I/O モードと select の組合せに置き換 えたのが下のリストです。 select したあとで、 getsockopt を 使ってソケットにエラーが発生していないかを調べています。 これで ICMP メッセージか検出できるはすです。 残念なことにこのやり方では、通常モードの connect て検 出できるエラーのすべてを、完全には拾いきれないという観測 結果が得られています。 EINPROGRESS 状態ソケットの select 処理は、いまひとつ等いきません。 ioct1(SOCKET, FIONBIO, & 0 Ⅱ ) ; / * Non blocking モード * / connect(SOCKET, (struct sockaddr *)&addr, sizeof(addr)) ; struct timeval timeo ; int va1 , 1e 取 ; FD_ZERO(&fds) ; FD_SET(SOCKET, &fds) ; timeo . tv_sec = CONNTIMEO ; tlmeo . tv_usec select (SOCKET + 1 , (fd-set * ) 0 , &fds, (fd-set * ) 0 , r &timeo) ; if (r くの { perror("select w/conn?") ・ / * なにかおかしい * / exit(l); if (r = = 0 ) conntimeo() ; / * タイムアウトした * / assert ( て ! = 1 Ⅱ FD—ISSET(SOCKET, &fds) ) ; len = sizeof (val) ; r = getsockopt (SOCKET , SOL-SOCKET , SO—ERROR, &val , &len) ; if (r くの { perror ( "getsockQpt?" ) ; exit(l); if (val ! = 0 ) { errno = val ; exit(l); perror("socketi') ; * socket(l) socket コマンドのソースコード / * なにかおかしい * / / * ICMP メッセージを表示 * / リスト 1 2 4 5 6 7 8 9 Usage : socket く hostname> く portname> #include #include #include #include #include く sys/types . h> く sys/stat . h> く sys/time. h> く sys/file. h> く sys/signal . h> UNIX MAGAZINE 1993.9 85

6. UNIX MAGAZINE 1993年9月号

連載 /UNIX Commumcation Notes—O 類を指定します。指定できるものを、表 1 に示します ( 小文字で指定してもかまいません ) 。表中で、 TXT— MINFO まではあまり使われないリソースレコードで す。また、 type は querytype としても同し処理にな ります。 domain=name name は、相対表記で名前が与えられたときの検索で使 のに変更することができます。 用するデフォルト・ドメインです。 resolv. conf のと ころで説明したように、相対表記カ銘前として指定され た場合は、このドメイン名をもとに検索します。 srch1ist=name1/name2/name3/. デフォルト・ドメインを namel にします。検素市に IN(INternet) クラスを使っていますが、これを次のも リソースレコードのクラスを指定します。通常は class=value せん。 server) として使用します。実際には、はとんど使いま root host に指定されたホストを、ルートサーバ root=host CHAOS HESIOD ANY Chaos クラス Hesiod クラス クラスの別にかかわらす検索し、 トした情報 ヒッ 使用されるサーチリストは、 れ佖 me ノ / れ佖 me2 / れ ame3 /. となります。 resolv. conf と同様、ここて指定できる ドメインの最大数は 6 です。 retry=number timeout=sec UNIX MAGAZINE 1993.9 したい場合などに利用できます。 していますが、ネームサーバーの告や動作チェックを (destination port) を設定します。通常は 53 を使用 ん e には、アクセスするネームサーバーのポート port=value す C 屬己の n) 。標準では 5 ( 5 秒 ) です。 では、最初の問合に対して sec 秒待っことを指定しま 定します。通常は、 4 に設定されます。また、 timeout retry では、問合せの区し最大回数仕記の m) を指 する。 繰返し回数が m 回になったら、エラーとして処理 合をを繰り返す。 ・タイムアウトするたびに、応答待ち時間を倍にして問 から応答がない場合にはタイムアウトしたと考える。 合の倍の時間 ()n 秒 ) 経過してもネームサーバー ・タイムアウトしたら再度問合ををおこない、前回の問 ら応答がなければ、タイムアウトしたと考える。 ・最初の問合迂からⅡ移経過してもネームサーバーか ようにおこなわれます。 nslookup では、ネームサーバーに対する間合せは次の これもはとんど使いません。 set コマンドによる内部フラグの言聢 45 使っているのかが分かります。 ドメインやサーチリストの設定、ルートサーノヾーに何を リスト 6 に示します。これを見れば、現在のデフォルト・ 現在設定されている各種の情報を出力します。出力例を a11 としなけれはなりません。 > s et nodebug ます。通常のモードに戻したいときは、さらに、 とすると、通常のモードではなくデバッグモードに戻り > set nod2 報を表示します。また、いったん d2 のモードにして、 せのためのバケット情報や、受信した応答のバケット情 になります。このモードでは、ネームサーバーへの問合 単なデバッグモード、 d2 でより詳しいデバッグモード nslookup をテンヾッグモードで動かします。 debug で価 d2 debug フラグには、次のものがあります。 set Ⅱ 0 ん ey 0 set ん eywo 決めるフラグを指定することもできます。 set コマンドでは、次のようにして nslookup の重川乍を

7. UNIX MAGAZINE 1993年9月号

図 1 電子メール 1 —S /etc/sendmail . cf /usr/lib/sendmail /usr/bin/mail 5 /etc/sendmail . cf /usr/lib/sendmail /usr/bin/mail /usr/spool/mail/sarumata 給料は高いほうが ええと思います。 0 4 4. その結果、目的地がこの計算機であれば、 /usr/bin/ mail を起動して、 sarumata さん宛のメールのスプー ルである /usr/spool/mail/sarumata にメールの内 容を書き込みます。 /usr/spool/mail/sarumata 22 定することなのです。 子メールの設定とは、 / etc / sen 面 ail. cf ファイルを設 述したファイルが / etc / sen 面 ail. cf です。つまり、電 そして、宛先の解析や各を決定する規則などを記 という処理をおこないます。 mail にメールの内容を送り出す む。そうでない場合は、 sendmail 自身がほかの send- mail を起動して、ローカルのメールスプールに書き込 4. 目的地にたどり着いた場合は、メーラ—/usr/bin/ ム ( メーラー ) を起動する 3. それに従って、実際にメールの酉占逶をおこなうプログラ 2. メールの醋当斈路を決定する 1. メールの宛先を角斤する ると、 sendmail は、 際の酉当はすべて sendmail がおこなっています。まとめ このように、電子メールの酉占医の際の宛先の解釈や、実 れます。 る /usr/spool/mail/sarumata にメールか書き込ま にたどり着き、 sarumata さんのメールのスプールであ 設定にもとづいてメールを酉占医します。いつか、目的地 た sendmail もまた、その算機の sendmail. cf の sendmail にメールを送り出します。メールを受け取っ 5. 別の言 t 算機に送る場合には、その計算機で動いている 電子メールの基本的な設定 「いよいよ電子メールの設定やな。えっと、 sendmail ちゅうプログラムが sendmail. cf とかいう設定ファイ ルを読んでメールを処理してくれるんやったな。そしたら 設定ファイルをうまいこと書いてやったら、それで万事 OK ちゅうことになるはすや」 そうです。さきほど紹介したように、実際にメール を配送する /usr/lib/sendmail プログラムは、 /etc/ sendmail. cf ファイルに日当された規則に従って重川乍し ます。ですから、この sendmail . cf の書き方を間違えな けれは、正常に機能します。 「どれどちょっと、 sendmail . cf を覗いたろ。どっ ひやー ! なんやこ呪文か書いたあるぞ ! 」 sendmail . cf の読み方はもちろん、書き方もたいへん 複雑で、最初から自分で書くのは不可能でしよう。そこで、 ある程度の情報を与えて自重加勺にこのファイルを生成する mailconf というプログラムが用意されています。また、 すこし変更を加えるだけで実際に使える、 ・ /usr/lib/sendmail . subsidiary. cf ・ /usr/lib/sendmail . main. cf という 2 つのテンプレート・ファイルが用意されていま す。ここでは、もっとも簡単な「 sendmail. subsidiary . cf を利用した設定力法」を紹介します。 「 subsidiary ってどんな意味なんや ? どれどれ・・ るほど、、、補助、補足 " か。ということは、 公にはなられへん奴に使えは・ええんやな」 ロ な こいつは主人 UNIX MAGAZINE 1993.9

8. UNIX MAGAZINE 1993年9月号

ASCII C 言語習得セット 入門 C 同ロ改訂新版 十 夫習 C 言言ロ改訂新版 十 応用 C ロ改訂新版 十 ティスクアル / ヾム 入門・実習・応用 c 言語 三田典玄著 お近くに書店の便のない方に、簡単・便利な「アスキー特販システム」 送料無料・代金は後払いで商品をお届けいたします C 言語を操るための基礎力がメキメキつきます ・主な収録内容 C 言語をマスターするための基礎知識、リファレンス、プログラム事 第 2 章最も簡単な c 言語のプログラム 例を豊富な図版により、ていねいに解説。これから C 言語を始めよう 第 3 章基本的な c 言語のプログラム と考えている方でも、着実に習得することができます。また、実践的 第 4 章より C 言語らしいプログラミング 第 5 章標準関数を使ったプログラミング な例題により、実務に即活用したい人にも最適です。 ANSI C に準拠し 第 6 章 C 言語によるプログラム開発の実際 た C コンパイラに対応しています 『実習 c 言語』 第 1 章 C 言語によるシステム設計 第 2 章 演算子 第 4 章 テータ型と宣言 第 5 章 ポインタ変数 第 6 章 関数 第 7 章 入出力とファイル操作 第 8 章 構造体と共用体 第 9 章 プリプロセッサと分割コンパイル 第 10 章 プログラム開発事例 「応用 C 言語 ・バッケーシ内容 ・対象機種 第 1 章本格的なプログラム開発の基礎知識 PC -9801 シリーズ ( メモリ図 OK バイト以上必要 ) フロッヒ。ーティスク 第 2 章オリジナルライフラリの作成 1 枚 OS : MS-DOS Ve 「 3.1 以上 3.5 インチ 2HD 第 3 章日本語処理 ( 1 M フォーマット ) ・処理系 第 4 章 MS - DOS 上でのプログラミング 5 インチ 2HD 第 5 章割込処理 Microsoft C 6. O(MS-C 6.0 ) ほか ( 1 M フォーマット ) 第 6 章 UN Ⅸ上でのプログラミンク ※ UN Ⅸ上の C コンパイラか腰なプログラ 収録プログラムー覧表 1 枚 第 7 章プログラム開発環境 ムもあります。 ■主な収録内容 Windows が完全に理解できます Windows3.O 第 1 章 WindowsX 門 日用祈なストーリーと、豊富なサンカレプログラムで、 Windows のプロ クライアント領域へのテキストの出力ー 第 2 章 グラミングのノウハウを徹底的に紹介します。 Windows を完全掌握す プログラミング 第 3 章 キーポード るためのプログラムを多曷載しています。 第 4 章 マウス 第 5 章 タイマ 、得セット 第 6 章 コントロール 第 8 章 アイコン、カ - ソル、 ビットマップ文字列リソース プログラミング メニューとアクセラレータ 第 9 章 WINDOWS ダイアログホックス 第 10 章 G 団入門 第 1 1 章 Version3 クラフィックスの描画 第 12 章 十 ビットマップ、ビット転送、 第 13 章 、、ディスクアルバム メタファイル 第 14 章 テキストとフォント プログラミングⅧ NTWS Version3 プリンタの使い方 第 15 章 クリップポード 第 16 章 ■対象機種 ・バッケーシ内容 harles Pe レ 0 旧著工←、・ビー、ラボ訳 第 17 章 DDE PC -9801 シリーズ ( メモリ図 OK バイト以上必要 ) フロッヒ。ーティスク マイクロ、フト株式会社監修 第 18 章 MDI 1 枚 OS : WINDOWS Ve 「 3 ℃以上 3.5 インチ 2DD 第 19 章 DLL ( 720KB フォーマット ) ・処理系 1 枚 5 インチ 2HC Microsoft C 6. O(MS-C 6.0 ) 以上 ( 1 MB フォーマット ) MS-WINDOWS 3.0 ソフトウェア開発支援 4 泉プログラムー覧表 1 枚 キット (SDK) 「入門 C 言語』 セット定価 9 , 円 ( 税込み ) セット定価 12 , 600 円 ( 税込み ) アスキー特販部申し込み方法 電話・ FAX 、でのお申し込みは・ アスキー出版局特販部 東電話 03 ・ 37074025 京 FAX03 ・ 5485 ・ 200 ー 受付時間は午前 10 時 ~ 午後 5 時です。 土曜、日曜、祝日は休みです。 はがきでのお申し込みは 右の見本のように必要事項をご記入になり捺印の上、 ご投函ください。 ( 18 才未満の方は、保護者の署名・捺印が必要となります。 ・発送料は当社負担でお届けいた します お申し込みの日より、約 10 日前後でお手 元へ商品をお届けいたします。荷造り手 数料・発送料はすべて当社の負担で全国 どこへでもお送りいたします。 団回ロ - 回回 ■お支払いは商品が届いてから 代金のお支払いは、商品といっしょにお 式 ス京 す 出 リ都 届けする振替通知票により、 8 日以内に が 版 社 お近くの郵便局からご送金ください。 ア 工区 ス フ南 キ寺 ・安心できる責任保証 キ 南青 販 商品はすべて厳重な検査をパスしたもの 行 ですが、万一配送途上の事故等で傷や破 さ ノレ 損が生じた場合、あるいは不良品がお届 けされた場合は、責任をもってすぐに良 品とお取り替えいたします。商品の性質 上、その他の理由による返品はご容赦く ださい。 1. 商品名 / メティア 2. 郵便番号 3. ご住所 ( フリガナ ) 4 お名前 ( フリガナ ) ( ① 5. 職業 6. 年齢 / 性別 7. 電話番号自宅 & 会社 8. 広告掲載雑誌名 月号 ) 株式会社アスキー 〒 107-24 東京都港区南青山 6 ー 11-1 スリーエフ南青山ヒル株式会社アスキー出版営業部電話東京 ( 03 ) 3486-1977

9. UNIX MAGAZINE 1993年9月号

jcode. pl をロードすると、 &jcode'convert というサ プルーチンが使えるようになる。このサプルーチンに、 ( 1 ) の例のように、 *from , ) euc という 2 つの引数を渡せば、 $ fr 。 m のなかの文字列を EUC に変換できる。 3 番目の引数には変換元のコードが 指定できるが、省略するか undef ならは文字列から自動判 定するので、分からなければ何も指定しなくてよい。コー ドの名前は、 ) SJ 1 S こういうふうに &jcode'convert を使うと渡した変数の るためにタイプグロプを使用している。 普通はそんなことはしないので、引数自体の変更を明示す 呼び出した側の変数の内容を変えることができる。しかし、 にはサプルーチンのなかで@ ーという配列の要素を変更し、 変更することができる。 2 月号でも説明したように、実際 のようにすれば、サプルーチンのなかで変数の中身を直接 難しい説明をするよりも、その効能を書いておこう。 ( 1 ) うなものである。、、ポインタ〃といわれることもある。 が内部的に扱っているオプジェクトをそのまま表現するよ glob ) 、あるいは、、型グロプ〃などと呼ばれるもので、 Perl 説明していなかった。これは、、、タイプグロプ〃 (type そういえば、この、、 * from クという記法についてはまだ のいすれかを指定する。 内容を直接コード変換してしまうので、前の内容を保存し ておきたいときは、 ( 2 ) のようにコピーしておかなければな らない。 &jcode'convert が返す値は、変換した文字列ではなく、 もとの文字列のコード名である。 1 度変換してもとのコー ドカ吩かったら、次からはそのコードを &jcode'convert の 3 番目の引数に指定すれは、自動判定する手間が省け、 高速に処理される。 JIS コードに変換するときに使用するエスケープ・シー ケンスは、デフォルトでは ESC-$-B と ESC- ()B である ( いわゆる新 JIS と ASCII)O これを変更するには、 ( 3 ) のよ こ &jcode'jis-inout というサプルーチンの引数に終端 文字を指定する。この例では、デフォルトの代わりに旧 JIS と JIS-Roman を指定している。引数が 1 文字よりも長か ったら、シーケンス全体を指定したものとみなす。 jcode. pl の処理は専用のコマンドを使った場合とくら べてかなり遅いが、小量のデータの変換にはまったく問題 ない。また、 JIS と EUC のあいだの変換はかなり速いが、 JIS と SJIS 、あるいは EUC と SJIS の変換には相当時間 がかかる。これは、文字コードの値をもとに数学的な計算 をしているからである。 PerI は、大量の計算はあまり得意 ではない。 ちなみに、 jcode. pl は JPerl ではまったく動かない。正 規表現による文字列置換を使ってコード変換を実現して いるのだが、正規表現の振舞いが Perl と JPerl で異なる ためである。 perl-kconv を使う ( 1 ) kconv 関数を使用 $to = &kconv($from, $—EUC) ; ②別名を使用 $to = &toeuc($from) ; ( 3 ) kconv-emulate. pl を使えば甬の Perl でも使える requlre ' kconv—emulate. p1 ' ; $to = &kconv($from, $—EUC) ; per ト kconv は、 Perl に日本語文字コード変換の機能を 追加するためのパッチである 1 。このパッチを当てて perl をコンパイルすると、次のような関数が使えるようになる。 1 以前、 fj .lang. perl に投稿された。作者は松下電器産業の高尾直弥さんで、 Message-ID はく NTP. 921dn15174121@gabriel.isl.mei.co.加〉である。 162 &kconv(STRING , OUT [ , IN] ) 最初の引数には変換する文字列、 するコードを指定する。コードは、 $_JIS, $_EUC, $—SJIS 2 番目の引数には変換 UNIX MAGAZINE 1993.9

10. UNIX MAGAZINE 1993年9月号

emaCS 入門 モード行に表示する文字ェンコーディング 表 2 Nemacs のエンコーディングー覧 JIS コード 無変換 未設定 EUC コード シフト JIS コード モード行に表示する文字工ンコーディング 表 3 Mu 厄のエンコーディングー覧 十 1 無変換 自動変換 内部コード JUNET コード 旧 JIS コード シフト JIS コード DOS 用 BIG5( 中国語 ) コード BIG5 ( 中国語 ) コード 中国語 EUC コード ハングルのネットワーク用コード ハングル EUC コード X のコンパウンド・テキスト 日本語 EUC コード DOS 用シフト JIS コード トを用いる IS02022 コード系 96 文字セットの呼出しにロッキングシフ IS02022 コード系 96 文字セットの呼出しに SS2 を用いる でしよう。 Nemacs では内部は EUC コードで処理してい ました。 MuIe では複数の言語が昆在した文章を扱えるよ うに、内部は特別なコードに変換して処理しています。バ ッフア内部コードは、この内部的に使用しているコードを 意味します。 十 自動変換 は、使用しているエンコーディングを文字コードから自動 的に決定してほしいときに指定します。 Nemacs では、、無変換〃が指定されないかぎり、ファイ ルを読み込むときに自動的にファイルで使用している漢 字コードを判断して、コード変換をおこなっていました。 MuIe でもファイルコードを自動変換に指定すれは、分か る範囲で自動的に文字コードの変換をおこなってくれます。 ただし、 MuIe の場合はサポートするエンコーディング が増えたため、区別できないものもあります。もし、区別 できないエンコーディングに当たってしまった場合は、優 先順位に従ってエンコーディングを決定します。どのよう な優先順位になっているかは、次回に説明しましよう。 140 表 4 コード系を変更するコマンド (Nemacs) キー入力コードの変更 change-input-code set—kanJi¯input—code ディスプレイコードの変更 change-display—code set-kanj i-display—code ファイルコードの変更 change—fileio—code change—default-fileio-code set—kanji—fileio—code set—default—fileio—code プロセスコードの変更 change—process—code change-default-process—code set—kanJ l—process—code set—default—kanj l—process—code 文字コードの指定 Nemacs で文字コードを変更するには、表 4 に示したコ マンドを使います。たとえは、 Nemacs でカレントバッフ アのファイルコードを変更するには、 イスプレイコードを変更したいバッフアへカーソルを移動 スプレイコードを日本語 EUC にしてみましよう。ます、デ set-display-coding-system を使います。たとえば、ディ を設定するときには、 set-keyboard-coding-system や MuIe では、キー入力コードおよびディスプレイコード を変更するための Mule のコマンドです。 コードの指定方法が変わっています。表 5 は、文字コード で、文字コードを変更できますが、コマンドの種類や文字 Mule でも change-xxx-code と同しキーバインド 類の漢字コードが順番に切り替わりました。 でした。このキーシーケンスを 1 回入力するごとに、 5 種 C-x C-k f し、 UNIX MAGAZINE 1993.9