プログラム - みる会図書館


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

1. UNIX MAGAZINE 1993年8月号

CDROM 通販カタログ ユーティリティ、コマーシャル用の「チャートシート」、シェアウェア ン内での闘いがあなたを待ち構えています。もちろん、多岐にわたる 収められています。アドベンチャーゲームの世界では、暗いダンジョ 言ではないでしよう。また、ソリティア / 対戦型の両カードゲームが 去における、優良教育ソフトの全財産がここ結集されたと言っても過 ら、大学生向けのの生命シミュレーションまでカバーしています。過 言ってもかなり広範囲にわたっており、幼児向けキータイプソフトか ません。教育ソフトも数多く取り揃えました。教育ソフトとーロに ゲームの全てがアクションとかパズルというわけでは、もちろんあり ァイルから構成されています。そうです。なんと、 3 , 000 以上もです。 最新の Winddows 用シミュレーションゲームまで、 3 , 000 以上ものフ 驚くほどのゲームのコレクションです。昔のアーケードゲームから、 収められました。その名も、 Giga Games ! このディスクの特徴は、 1 , 000 本以上の MSDOS 、 MS Windows 用ベストゲームが 1 枚の CD に 紹鬯側 CD ー 119 Giga Games CDROM ド e ヾ 築する事ができ、総てのゲームは完全に動作します。 プログラムファイルはディスクからの指示によって簡単にシェルを構 ンターテイメント、その他たくさん入っています。 ジョーク、クロスワード、ウォーシミュレーション、ヴィジュアルエ ゲーム等も入っています。 Mah Jongg T ⅱセット、スポーツゲーム、 NEW NEW VisuaIBasic のプログラミング・ユーティリテイも収められています。 のフォントも完備。ソースのリストや、 C 、 C + + 、 To 引 book 、 TurboPascal. いています。ポストスクリプト、 A 、トウルータイプ・フォントを含めた多く Windows のデモプログラムもあります。数多くのプリンタ・ビデオドライバもつ 入っています。 が収めてあり、シェル、アプリケ - ション、各種ユーティリティ、ゲーム等が インディアナ大学で収録された、合計 140MB 以上の CICA Windows 用プログラム V r M れ歩 7993 6 , 500 #CD-34 CICÅ MS W ⅲ面脚 CDROM いう凝りに凝りまくったサウンドと画像を思う存分お楽しみください。 20 z ステレオ上映可能、上映時間 16 分以上、圧縮をかけて 1.44 Ⅷぎりぎり、と 勝した、あの UNREAL が収められてあります。あらゆる人々の絶賛を集めた、 デモも数多く入っていますが、何といっても ' 92 年の世界 PC ソフト・デモ選で優 zmodem など ) が入っています。 BBS 用のユーティリティなども完備しています。 インクルードッール、通信のユーティリティ (CMU の PC/IP 、 kermit 、 uucp 、 Pascal, Perl 、 Pr010g 、 SmaIItalk 、 XIisp などが用意されています。その他に L 、アセンプラ、 basic 、 C 、 C + + 、 Clipper 、 DBase 、 Forth 、 Lotus123 、 Modula2 、 テクニ功ルマニュアル、ユーティリティが入っており、また開発ツールとして、 したプログラマに配布されているソースコード ( 普通は C) が付属しています。 詰め込まれています。その数々のファイルの例をあげれば、まず、多くの熟練 この Simtel には、約 500 のディスクの中に 8 , 500 以上もの MSDOS のファイルが V を r 訂 Vf 住 ). 7993 Y6 , 500 #CD ー 33 S 一 20 MSDOS CDROM Save Money ! Save Time. ! Don't Wait 0 「 de 「 NOW ! 株式会社ビレッジセンター通信販売部 TEL 0424 ー 88 ー 8428 FAX 0424 ー 88 ー 5471 することが可能です。 Usenet の 11 , 000 近くのファイルが 39MB の容量に入っており、 iga 、 A 叩 2 、 Atari-ST 、 Mac 、 Sun 、 Unix 、など各機種用に alt / co 叩ソースが用意されています。 そして、 Simtel-20 Unix-C Archive の、 1 , 000 もの C ソースファイルが 130 Ⅷの容 量で入っており、ほば全てのジャンルを網羅しています。 MSD 用は 73 Ⅷで、 zip で圧縮された 2 , 000 のソースが入っています。ソースの 多くは、 C によって書かれていますが、 Pascal(TurboPascal) 、 basic 、アセンプ ラ、 Lisp 、 C + + 、 M0dula-2 、 Fortran 、 Awk 、 Forth などでも書かれています。 # CD -38 〃励み OS, / 2 CDROM V . Ⅳ 0 7992 Ⅵ 0 , 000 lnternet の hobbes. nmsu. edu から、約 2 , 000 の OS / 2 用プログラムが 100 Ⅷの容量 に収められており、アーカイプ・圧縮ユーティリティ、モデムユーティリティ、 通信、ディスクユーティリティ等の他に、ピデオ、プリンタ、キーポードの各 ドライバも入っています。 DTP やエデイタ、ワープロまで入っています。そし て、使用のための説明書やテクニカルドキュメントがついています。 ポストスクリプト、 TeX 、 A などのフォントも収められています。ほかにアイ コン、グラフィック、プレビューワー、ビットマップエデイタなど入っており、 多くのゲームとそれらのソースが入っています。更に fernwood コレクションか ら抜粋した数多くのサンプルや、 G ユーティリテイも入っています。 この CD は全ての OS / 2 ユーザーにとって必要不可欠なものでしよう。もし、この ディスクに無い数少ないプログラムを使おうとするのなら、多くの金額と時間 を費やすことになるのではないでしようか ( と原文には書いてあります ) 。 #CD ー 39 Prime Time お e 2 -2 V に′ . Aug. 7993 Ⅵ 5 , 000 Unix 用の PDS を収録した米国 Prime Time Freeware (PTF) の最新版。この PDS 集 には 3 , 000MB にも及ぶ UNIX-Re I ated のソース・コードやドキュメントなどと共 に、 200 タイトル以上のソフトウェアが ISO ー 9660 CDROM 2 枚に納められていま す。また、英文 50 ページのブックレットも付属します。 200 タイトルの中には、 NEW G プロジェクトをはじめ盛沢山です。 #CD-40AB20Amiga CDROM V . M .1992 町仇 000 # CD ー 35X 〃 5 & GNUCDROM 材に′ . D に c. 7992 Ⅵ 4 , ″ 00 X11R5 Windows System のパッチレベル 17 までの全ソースが含まれており、 Usenet co 叩から配布されたソフトのほとんどを網羅し、 GNU Emacs 、 GNU CO 叩 iler を代表とする G 用フリーウェアのソースコードも同梱されています。 配布されたソースコードの中には、 SPARC の実行ファイル、そして GNU プログラ ムのライプラリイ、 XI 1R55 等が含まれており、もしあなたがスパーク・ステー ションかその互換機をもっているのなら、何も作らなくても XI 1R5 、 G プログ ラムを走らせることが可能です。 CD に含まれる 120 以上の GNU プログラムを挙げると、 G Emacs 、 ghostscript 、 onscreen 、 PostscriIjt 、 previewer 、 Gawk programming Languege 、 GNU Assembler 、 BISON parser 、 GDB symbol ic debugger 、 smalltalk 、 interpreters 等 です。全てのプログラムは Un ⅸ上でもコンパイル・実行が可能です。 #CD-37Source 朝 CDROM Ⅵ 4 00 Simtel-20 、 Unix-C など、多くの MSDOS のソースコードがディスクに収められて います。トータルでは 600 Ⅷの容量を持ち、 15 , 000 以上のソースが入っていま す。またインデックスによって、ファイル名やジャンル等から格納位置を検索 このディスクには、 ab20 コ arc ・ nasa ・ gov からの計 300MB 以上のソフト、総計 3 , 000 以上のファイルからなる Amiga lnternet Archive が収められています。 100 にも及ぶソフトの数々を見てみれば、 G のユーティリティ、エデイタ、ハ イバーテキスト、プロット用ユーティリティ、モデム・通信プログラム等が見つ かる事でしよう。デモ CM 、各種のゲームも入っていはす。多くのグラフィック イメージ、アニメーション、そしてビューワーも当然入っています。 iga をもっと知りたい人のために、数多くのハードウェア・ドキュメントも用 意されています。膨大な数におよぶ、厳選されたサウンドファイルと、それら を演奏するためのユーティリティ、そして、 Noisetraker と MED modem も入って います。また、 Amiga で TeX を動かす為のタイプセッティングプログラムと Met ONT 、 dvi フィルターが入っています。 そして、この CD には Usenet の co 叩 . sources. amiga 、 comp. binaries. iga の全て のファイルが収めてあり、プログラマーにとって常に財産となり得る、 1 , 000 の ソースコードが含まれています。尚、この CD は Amiga CD-TV では動きません。 #CD-41 G 催み 0 MSDOS/Mac CDROM V をれ」 4 1992 0 , 000 このディスクにはフィンランドの Vasa 大学内、 Garbo Archive から選りすぐり の、約 250 Ⅷの MSDOS のソフトと約 125 Ⅷの Macintosh のプログラムが入ってお り、イギリス産の殆ど全てのプログラムをカバーしています。 MSI)()S 用では、アニメーション、ユーティリティ集、 BBS プログラム等が含まれ ています。実用ソフトの分野では、ピジネス、科学、教育などの他に、天文学、 言語学、学習ソフトなどのプログラムまでが入っています。膨大な量に及ぶプ ログラムツール、テクニカルドキュメントのコレクションと、 100 を越すのシス テム・ユーティリティ、対ウイルスプログラムももちろん入っています。 Macintosh 用には、多くの gif ファイルとその他のイメージファイル、ビットマ ップとフォント、数多くの有名なデモ CM 、ポストスクリプト・ジェネレータ、シ ステムユーティリティ、ハイバーカードプログラム等が入っています。 #CD ー 42 C 催 ' s 併 0 叩〃み ra CDROM 阨れ仇ロ 992 靼 5 , 0 側 米国 C User's Group のユーザーサポートより、 C のソースコードのコレクショ ンをお送りいたします。ほとんど大半のコードは MSD()S 用ですが、幾つかのポ リュームは、 UNIX とその他のシステム用のコードとなっています。若いポリ ュームの幾つかには、 CP / M 用のソースコードが多数入っています。ポリューム は 100 から 364 まであり、ソースコードは、エデイタ、逆アセンプラ、コンパイ ラ、インタープリタ、通信、 BBS 、ゲーム、教育、数学のライプラリなどです。 ・上記掲載の価格には、消費税は含まれておりません。また、それぞれ別途に送料 + 手数料が \ 1 , 000 かかります。 商品の内容はバージョンアップ等に伴い、予告無く変更される場合がございます。御了承下さい。

2. UNIX MAGAZINE 1993年8月号

◆〃 SOlaris への OW- 田 4 OW- Ⅱ 4 SL- 2 SA ー 280 SA-2 田 SA ー 289 教育サービスのごあんない 旅立ちをサポートします 日本サン・マイクロシステムズ株式会社の教育コースは、 米国 Sun Microsystems, lnc. で開発されたコーステキストを べースに、日本のユーザ向けに内容を組み替えた、独自の カリキュラムにそって学習を進めます。 弊社教育コースでは、 SPARCs ね tion を用いた豊富な実習を 通じて、実践的な知識をイできます。 また、自習用教材や、お客様だけの特別コースの設定、 Sun の教育プログラムをお客様が開設できるライセンストレー ニンク喫約など、標準コース以外のメニューも設けています。 新たに SoI is2. x 対応のエンドユーザ、プログラマー、シス テム管理者向けのコースフローも開催し、みなさまのお越 しをお待ちしています。 特別割引コースパック実施中 6 月 28 日から 9 月 30 日まで、 solaris 2. x および SunOS 4. x それぞれのコースフローに低料金のコースパックを設定します。 この機会にお得なコースパックをご利用ください。また、エンドユーザパック受講者 ( 先着 28 名 ) には、、 OpenWindows 操作 日本語 Solaris 2. x 対応コースパック コースパックの一例 ビデオ′′をプレゼントします。 工ンドユーザバック \ に 0 , 000.- プログラマバック \ 四 6 , 000.- システム管理バック \ 23L000.- お問い合わせ 詳しい資料を希望される方は、資料請求カードをご利用ください。 教育コースカタログを送付いたします。 ・ OpenWindows オペレーション I ・ OpenWindows オペレーションⅡ ・プログラマのための基礎 ・ ANSI C プログラミング I ・ ANSI C プログラミングⅡ ・ Solaris2. x システム管理 basic ・ S 引 aris2. x システム管理 I ・ Solaris2. x インスト 3 日問 2 日問 3 日間 2 日問 3 日間 2 日問 日本サンマイクロシステムス株式会社 A Sun Mlcrosystems Computer Corporation BuSIness KSP トレーニンク発ンター TEL044 ー 819 ー 3181 川崎市高津区坂戸 3 ー 2 ー 1 KSP 西棟 413 号 FAX044 ー 819 ー 3180 Sun Microsystems, Sun Microsystems 社のロゴ・マークは、米国における米国 Sun Microsystems, lnc. の登録商標てす。 OpenWindows は日本サン・マイクロシステムズ株式会社の商標てす。 SPARC は、米国 SPARC lnternational, lnc. の商標てす。 SPARC 商標のついた製品は、米国 Sun Microsystems 社が開発したアーキテクチャに基づくものてす。 Solaris は米国 Sun M icrosystems, lnc. の登録商標てす。

3. UNIX MAGAZINE 1993年8月号

を宣言します 1 。この手続きを、、ファイルをオープンす る " といいます。プログラムを実行すると、システムはユ ーサーの要求に従ってファイルをオープンし 2 、ファイル 記述子 (FiIe Descriptor) と呼ふ番号を返します。 いったんオープンしたファイルをプログラム中で扱う 場合には、 ( ファイルの名前ではなく ) システムから返さ れたファイル言子を使います。たとえは、 fd = open("aya" ,O—RDWR'O) ; Ⅱ = read(fd,buf ,BUFSIZE) ; という C 言語のプログラムでは、 open の実行によって ファイル " aya " がオープンさオ蹊 fd にファイル言当子が 返されます。そして read では、そのファイル記述子 (fd) を使ってファイルを読み込みます。 ・・のように、 0 か ファイル言己子には、 0 、 1 、 2 、 ら始まる番号が頂に割り当てられます。 1 つのプログラム では、ファイルを同時にオープンできる数に制限があり、 20 個ならは、プログラム中て使用されるファイル言子 は 0 ~ 19 までとなります。 ところで、シェルからプログラムを実行すると、 ( ユー ザーがオープンするのではなく ) 自重加勺に標準入力、標準 出力、標準ェラー出力という 3 つのファイルがオープン さそれぞ 0 ( 標準入力 ) 、 1 ( 標準出力 ) 、 2 ( 標準工 ラー出力 ) のファイル言己子か割り当てられます。 ( 入出 カリダイレクションを使わないかぎり ) これらは皆、ユー サーカイ吏用している端末ファイルになります。プログラム 中でファイル言己子 0 を使って言ムみをおこない、ファ イル言己子 1 や 2 を使って書込みをおこなえば、 ( 自分 でファイルをオープンせすに ) 入出力の ( 檪ができるわけ です。 また、ファイル言子 1 を使って書込みを、ファイル 言己子 0 を使って言ムみをすれば、そのプログラムの実 行時にファイルからの読込みやファイルへの書込みが必 要になったときに、入出力リダイレクションを利用して、 データの受け渡しができます。 1 このような手きを踏まずに、ファイルを扱うことも可能てす。 2 もちろんこのとき、実際にファイルカイ了在するか、ユーサーがそのファ イルを扱えるかなどのチェック引におこなわ問題がなけ川よオー プンされます。 UNIX MAGAZINE 1993.8 UN Ⅸへの招待朝 ) Bourne シェルの入力リダイレクション ファイル記述子について、おおよそのところはご理解 いただけたでしようか ? それでは本題の、 Bourne シェ ルの入出力リダイレクションに入りましよう。 ますは入力リダイレクションから説明します。 Bourne シェルの入力リダイレクションは、 C シェルのそれと同 しように、 コマンドくファイル名 とします。コマンド " カワ。ロセスとして実行されるとき は、ファイル名のファイルか第売込み用にオープンさ ファイル記述子 0 か割り当てられます。 Bourne シェルではこのほかに コマンドく & 数字 という形式で入力リダイレクションを使うこともできま 、 & " 、数字 ' は、連続して入力しなければ す ( く なりません ) 。これは、ファイル記述子数字 ' に割り当 てられたファイルを標準入力用のファイルに使用する、と いうものです。たとえば、 コマンドく & 4 では、標準入力 ( ファイル言己子 0 ) の代わりに、ファ イル記述子 4 カリり当てられているファイルから入力を 読み込むことになります。 Bourne シェルではさらに コマンド数字くファイル という形式で入力リダイレクションが使えます。ここで は、、、ファイル ' にファイル言己子数字カり当てられま す。作成したプログラム ( コマンド ) 中で、ファイル記 述子数字から読込みをおこなっている場合、この機能を 使えは、実行時にそのファイルをほかのファイルにリダ イレクトできるわけです。 Bourne シェルの出力リダイレクション Bourne シェルにおける標準出力の出力リダイレクショ ンは ( やはり C シェルと同様に ) 、 167

4. UNIX MAGAZINE 1993年8月号

UN Ⅸへの招待⑩ ションを使い、 % exec—redirect > 10g ー f 土 Ie と実行するのと同しことです。しかし、どこかのファイ ルに実行記録をとると決まっているようなプログラムで あれば、このガ去を使ったほうが ( 出力リダイレクショ ンを使い忘れてしまうという ) 間違いがなく確実です。 % cat exec redirect # ! /bin/sh exec > 10g ー file while true do dat e sleep 10 % exec—redirect & [ 3 ] 1003 % tail —f log—file 1993 年 06 月 06 日 ( 日 ) 00 時 56 分 18 秒 JST 1993 年 06 月 06 日 ( 日 ) 00 時 56 分 29 秒 JST 1993 年 06 月 06 日 ( 日 ) 00 時 56 分 39 秒 J ST おわりに 今月は、 Bourne シェルの入出力リダイレクションと、 それに関係したシェル・プログラムの作り方として、工 ラーメッセージの出力と実行記録のとり方を説明しまし た。以 - ヒで、シェル・プログラムにおける入出力は終り プログラムでは、 date と sleep 10 を (while true ます。次回は、変数の使い方について紹介します ( 今度は do ~ done で泳久ループを作成し ) 繰り返し実行してい ホント ) 。 ます。プログラムを実行しても、 date の出力 ( 票準出力 ( さかもと・あや YDC) ( 画面 ) には出力されす、 exec でリダイレクトしたファイ ル log-file に出力されています。 これは、プログラムを実行するときに出力リダイレク SC 翡 UNIX MAGAZINE 好評連載中「 UN Ⅸへの招待」単行本化第 2 弾 坂本文・著 『続・たのしい UN Ⅸーシェルへの招待 1 , 900 円 シェルは、 UNIX の世界のいわば「裏方さん」。その動きや仕組みを知 れば、 UN Ⅸがいっそう楽しく、便利に使えるようになります。本書は、 続トたのしい UN Ⅸ ひろく使われている C シェルを中心に、シェルの使い方から仕組みま シェルへの招 ' 叛本文著 で分かりやすく解説しています。前巻の『たのしい UNIX—UNIX への招待』とあわせて、ぜひご一読ください。 [ 目次から ] 1 章知っておきたいコマンド入力のコツ 2 章シェルとプロセス士組み 3 章シェルの仕事 4 章 .login と .csh 「 c のサンプレ 付録 C シェルの組込みコマンド、シェル変数、メタキャラクタ 株式会社アスキー 〒 1 07 ー 24 鯨都港区南青山 6 ー 1 1 ョスリーエフ南青山ビル出版営業部 Tel()3 ) 3486 ー 1977 好評発売中 172 UNIX MAGAZINE 1993.8

5. UNIX MAGAZINE 1993年8月号

$japanese $j apanese next ; unshift (@ー else { # 日本語の始まり # 日本語の終り # 無関係のシーケンス # ーに戻してもう 1 度 # 日本語のなかなら文字列の長さの半分、そうでなければ長さを加算 $c + = $japanese ? (1ength($-)/2) : length($-) ; if (eof) { print"$ARGV: $. lines $c chars\n" # ファイルの終りで表示する close ARGV; 前回は EUC と SJIS 用の wc プログラムの例をいくっ かとりあげたが、今度は JIS コード用の wc プログラムの 例を挙げて、 JIS コード文字列を扱うプログラムについて 説明しよう。 JIS コードの場合、日本語文字の始まりと終りを表す工 スケープ・シーケンスがあり、実際の日本語データを見た だけでは、それが日本語かどうかを判定することはできな い。そのため、どうしてもモードを意識したプログラムに ならざるをえない。 筆者が使う常套手段は、読み込んだ文字列をまずェスケ ープ文字で split してしまう方法である。このときに、 split する文字列を、 のように ( ) で話ると、区切り文字列も含んだリストを作る という文字列を / ( \ e ) / で split すると、 " 123 \ e456 \ e789 " ことができる。たとえは、 \e" " 456 " ( " 123 " " 789 " ) というリストが得られる。それを先頭から処理していけ ば、どこで ASCII と日本語が切り替わるかが分かる、とい う寸法である。 (1) は、 JIS コードのファイルを読み込んで、そのなかに文 160 字がいくつ含まれているかを表示するプログラムである。 ます、エスケーフ文字で区切った文字列のリストを得る while (defined($— と、それを、 UNIX MAGAZINE 1993.8 正規表現を用いてエスケープ・シーケンス全体を使って の値がモードを表しているということである。 ま使える。ポイントは、そのときの $japanese という変数 こは決まり文句なので、どんな場合でもほとんどそのま ェスケープ・シーケンスの処理の部分がすこし面倒だが、 うでなければ文字列の長さぶんの値をそれぞれ加算する。 て加算すれはよい。日本語ならば文字列の長さの半分、そ たんなる文字列だから、そのなかに含まれる文字数を数え リスト要素が単独のエスケープ文字でなけれは、それは いう変数で記憶する。 本語文字列のなかにいるか、そうでないかを $japanese と 除いてしまう。そして、そのシーケンスに従って、現在日 を調べて、もし工スケープ・シーケンスならばそれを取り スである可能生が高い。そこで、次のリストの要素の先頭 れに続く文字列が日本語の始まりと終りを表すシーケン 能生もあるからだ。 $ ーがエスケープ文字であった場合、そ く。 defined を使っているのは、 " O " という文字列がくる可 というループで先頭から順番に $ ーに代入して処理してい

6. UNIX MAGAZINE 1993年8月号

最初の実行では、引数を指定していないのでエラーメ ッセージが出力されています。次の実行では、出力リダ イレクションを使っていますが、エラーメッセージはフ ァイル記子 2 の標準ェラー出力に出力していますから、 (stdout ではなく ) 画面に出力されています ( もちろん stdout には、プログラムの 1 行目で驃準出力に出力して いるメッセージが出力されています ) 。最後では、 2 > を 使ってエラーメッセージをファイル stderr に出力して います ( 標準出力はリダイレクトしていないので、画面に 出力されています ) 。 Bourne シェノレ・プログラムでは、エラーメッセージ を出力しなければならない点で、このようなガ去を使っ てエラー出力にメッセージを出力します。 Usage メッセージ ところで、さきほどの例では、 た場合に、 Usage : $ 0 filename > & 2 実行時の引数か というエラーメッセージを出力しています。これは、 Us- age メッセージと通称されているもので、コマンドの正 しい入力形式を教えるためのメッセージです。 UNIX に は、 ( ファイル名の引数が必要などの ) 引数が必頭のコマ ンド、不要なコマンド、あってもなくてもよいコマンド などがあります。このうち、引数が必顎のコマンドには、 Usage メッセージを出すものが多くあります。つまり、 コマンド本来の入力形式とは違う入力をおこなった際に、 正しい使い方を教えてくれるわけです。このほか、予想外 の引数カ甘旨定された場合に Usage メッセージを出すコマ ンドもあります。以下は、引数が必要な rm コマンドを 引数なしで実行した例と、おかしな引数を指定した date の実行例です。いすれも、 Usage メッセージが出力され ています。 % rm usage: rm [—rif] file % date 1 usage : date [—a sss . fff] [—u] [ + format] [yy mmddhhmm [ . ss] ] これにならい、皆さんが作るシェル・プログラムのな UNIX MAGAZINE 1993.8 LJN Ⅸへの招待⑩ かで、引数が必要、あるいは特定の引数の入力を想定して いるという場合には、プログラム中で引数のチェックをお こない、不正であれば Usage メッセージを出すようにし ておくとよいでしよう。 では、現在のシェルに代わって kterm が実行されます (kterm 以降の入力は、 kterm への引数です ) 。 ところでこの exec は、上の例のようにコマンドを引数 に指定せす、入出力リダイレクションだけを引数で指定 することができます。たとえば、 exec く input exec > output などです。すると、このシェルの標準入出力が、すべて 入出力リダイレクションで指定したファイルに変史され ます。シェルの標準入出力は、シェルから起動するコマ ンドに継承されます。したがって、いったんこの形式の exec を実行すると、シェルから起動されるコマンドの標 準入出力にもすべて、 ( コマンドで入出力リダイレクショ ンを使っていないかぎり ) 指定したファイルが用いられ ます。これを、シェル・プログラム Cf 吏った例を見てみ ましよう。 3 C シェルでも提供されています。 exec の基オ能は Bourne シェル 実行記録の出力 今回は、変数についての説明をするつもりでした。と ころが、変数の話は内容が多岐にわたるものと予測される ので、中途半端な角見をするよりも次回から気持ちを新た にスタートすることにします。その代わり、残りの部分で シェル・プログラムの実行言求をとるガ去を紹介します。 今回紹介した入出力リダイレクションとちょっと関係のあ る話です。 sh には、 exec という糸ムみコマンドカ甘是供されていま す 3 。 exec は現在のシェルに代わって、引数で指定され たコマンドを実行するものです。たとえば、 exec kterm —C —display unix : 0 —geometry ・ = + 1 + 1 —n login 2 > /dev/null も C シェルも同してすが、 シェル独自のものてす。 こで説明している入出力の機能は Bourne 171

7. UNIX MAGAZINE 1993年8月号

UN Ⅸへの招待⑩ 表 1 Bourne シェルの入出力リダイレクション メタギャラクタとその使用例機能 く file く川 e く & 数字 >file > 川 e > & 数字 1 > & 2 標準入力を file に ファイル記子数字を file に ( 入力 ) 標準入力をファイル記述子のファイルに 標準出力を file に ファイル子を川 e に ( 出力 ) 標準出力をファイル記述子数字のファイルに ファイル言子 1 をファイル言当子数字 2 のファイルに 工ラーメッセージの出力 とすれば、標準出力への出力がファイル記述子 2 、すなわ echo 引数 1 > & 2 あるいは、 echo 引数 > & 2 バックします。これを、 のが一勺です。 echo は、標準出力にその引数をエコー 出すことカ呵能です。その場合、コマンドは echo を使う ンの機能を使えば、標準工ラー出力にエラーメッセージを 一方 Bourne シェルでは、前述の出力リダイレクショ ラーメッセージは標準出力に出力するほかありません。 出す機能は提供されていないので、プログラム中からの工 ところが、 C シェルでは標準ェラー出力にメッセージを ムでのエラーメッセージも標準工ラー出力に出力します。 力するのが一勺です。これにならい、シェル・プログラ 果を、標準工ラー出力 ( あれにエラーメッセージを出 ついて説明しましよう。 UNIX では、標準出力に実行結 た。その続きとして、今度はエラーメッセージの出力に プログラムからの、メッセージ出力について解説しまし 前回は、 echo や cat と組込みデータを使ったシェル・ ムとしてはなんの未もないものですか ) ェラーメッセー ッセージか驃準工ラー出力に出せるわけです。 ち標準ェラー出力に出力されます。このガ去で、エラーメ ( プログラ ジを出力する例を見てみましよう。 % cat err—prog # ! /bin/sh echo ' はじまりはじまり ) if test $ # —eq 0 then ech0 Usage : $ 0 170 filename > & 2 exit echo ' おしまいだす , % err—prog はじまりはじまり Usage : err—prog filename % err—prog myfile はじまりはじまり おしまいだす このプログラムでは、最初に、 echo コマンドで標準 出力へメッセージ、、はじまりはじまり " を出力します。次 に、もし (if) このプログラム実行時の引数の数 ( $ # ) が 0 に等し (-eq) ければ (then) 、 echo でエラーメッセージ を出力し、 exit コマンドを実行します ( シェル・プログ ラムカ鮗了します ) 。引数の数が 0 のときは、以の 2 つ のコマンドを実行してプログラムは終了しますが、引数の 数が 0 でない場合は、最終行の echo を実行しプログラ ムか終了します。 さて、 if ~ fi のあいだで使用した ech 。コマンドは、 > & 2 を利用し標準出力への出力をファイル言当子 2 、すなわち 標準ェラー出力に変更しています。 echo は、標準出力に 引数をエコーバックします。その出力をファイル記述子 2 にリダイレクトしておけば、メッセージがエラー出力に 出力されるわけです。 % err—prog > stdout Usage : err—prog filename % cat stdout はじまりはじまり % err—prog myfile > stdout % cat stdout はじまりはじまりい一 おしまいだす % err—prog 2>stderr はじまりはじまりい一 % cat stderr Usage : err—prog filename UNIX MAGAZINE 1993.8

8. UNIX MAGAZINE 1993年8月号

sub bd { local ( $ ー ) shift ; 使って、文字列のうちの一部分を重ね打ちしたり、下線を nroff の出力では、バックスペースやアンダーラインを は " abc " という文字列に下線を引くことを表し、 AHa_AHb_AHc 引いたりする。たとえば、 線を引くには、 ように単純にはいかない。多くの場合、日本語文字列に下 しかし、日本語の 2 バイトコードが入ってくると、この てのワード ( / \ w + / ) に下線を引いている。 る。 ( 1 ) は、そのためのプログラムである。この例ではすべ このようにアンダーラインや重ね打ちを使いたいことがあ 普通のプログラムでも、出力の一部を強調するときに、 UNIX の世界ではいまでもひろく使われている。 で、ページプリンタの時代では意味をもたないのだが、 ことを意味する。これはタイプライタの時代にできた習慣 で、” abc " のそれぞれを 2 回ずっタイプして重ね打ちする ー H H 漢ーー H H 字 のように、アンダーラインを 2 回出力したあと、バックス ペースで 2 カラム戻ってから文字を出力する。 ( 2 ) はこれを おこなうプログラムである。 / [ \ 200 ー \ 377 ] ? . / というバターンは、 2 バイトコードあるいは 1 バイトコー ドの各 1 文字にマッチする。したがって、マッチした文字 列が 2 バイトならば、その前に ~ \ cH \ cH " という文字列 を加えればよい。 1 バイトならば " ー \ cH " という文字列を加 える。 ( 3 ) の例は下線ではなく重ね打ちする場合であるが、処理 の内容はほとんど同しである。 テキストに対してこのような加工をしても、端末に表示 しただけではその効果は見えないが、プリンタに出力した り、ページャ・プログラム ( less や more など ) を使って画 面に表示させると、その部分が強調されて表示される。 おわりに 2 回にわたって、 PerI による日本語データ処理について 解説した。やはり、力すくという感しは否めないが、けっ こうなんとかなるということだけは分かっていただけたと アスキーの日本語 UNIX が発表されると同時に使い始 めて、いままで何種類もの日本語 UNIX を使ってきた。 それまで社内で UNIX を推進してきた人たちのあいだで は、べつに日本語なんか必要ないよ、という意見も多かっ たし、筆者もわりとそのように感していた。しかし、いざ 日本語の使える UNIX を使い始めてみると、ふだん話し ている言葉を自在にコンピュータで処理できるのはしっ に快適である。日本語が使えるようになると、それまで皆 無だった troff ユーザーが急に増えだしたし、メールの量 164 も圧倒的に多くなった。 JUNET で日本語のニュースが送 られるようになってからは、目にするデータも日本語のは うが多いような気がする。 こうしてみるとやはり、 UNIX のツールは日本語を処理 できるということが、いまや必須なのだろう。それどころ か日本語だけでは不十分で、多国語をサポートしなければ ならない時代になってきた。すこしましめに国際化という ものを考えてみようか。 ( うたしろ・かすまさ SRA) UNIX MAGAZINE 1993.8

9. UNIX MAGAZINE 1993年8月号

IJNIX ワークステーション用 自動シャットタウンシステム聰 LJN Ⅸワークステーションは、 LJN Ⅸの世界的標準化の流れにのり、今やあらゆる分野で急速に導入されています。 システムを停止させる場合、正規の「システム停止 ( シャットダウン ) 手続き」を実行しないと、 OS の性格上ディス ク上の重要なソフトウェア資産を全て失いかねないという危険な側面を持っています。 FEL -1020 は専用インテリジェント ups ( 無停電電源装置 ) と停電監視及び自動起動 / 停止制御プログラム ( Fe ⅱ safe / 20 ) からなり、操作をパソコン並に使いやすくした画期的なシステムです。無人運転時に発生する 停電対策や、タイマー及びカレンダー機能を利用することで自動運転が容易になり、ワークステーションを自動 制御装置の一部として使用したり、定時にワークステーションを起動しておくことにより、いつでもすぐに作業に 取り掛かる事ができる等、色々な利用形態に柔軟に 対応できるようになりました。 システム構成 停電監視及び自動起動 / 停止制御プログラム (FeliSafe/20) は LJN Ⅸワークステーションのティスク上にインストールし専用イン テリジェント IJPS とペアで使用します。 UPS が発生するシャッ トタウン信号及び制御プログラムによる USP 切断信号をインター フェースする為、ワークステーションの日 S232C ホートを 1 個使用 し、専用ケープルで IJPS と接続します。 ◇サン・マイクロシステムズ IJNIX ◇富士通 ワークステ - ション◇東芝 SPARC station S シリーズ AS シリーズ ※その他のワークステ ーションにつきまし ては御相談下さい。 ◇ YHP 対応機種 ◇ソニ HP ApollO 9000 シリーズ 700 NWS -3800 / 3700 / 3400 / 3200 シリーズ FEL- 1020 システム構成図 RS232C 手元スイッチ タイマ IJPS 切断信号ー ぐーシャットダウン信号 特徴 ワークステーション電源 ( 1 ) 停電発生時の自動シャットダウン / 予めセットした時間経過後、損傷を与えす安全に自動停止させます。 UPS ACI 00V 2 停電時のユーサ定義手続きの実行 / 停電発生時、予め登録した手続きを自動実行することで、利用者への警告等を行うことができます。 3 シャットタウン時のユーサ定義の実行 / 稼働中のアプリケーション固有の終了手順を登録することにより、停電時に完全にアプリケー ションを終了させた後、ワークステーション ( システム ) を停止させます。 4 手元スイッチによる自動起動 / 自動シャットタウン ( オプション ) / 手元スイッチを押すことにより、ワークステーション及び IJPS 並 びにシステムを起動 / 停止させることがてきます。停止時には、 3 のユーサ定義手続きの実行を行った後にシャットダウンを行います。 5 タイマーによる定時起動 / 自動シャットダウン ( オプション ) / タイマーによりワークステーション及び IJPS 並びにシステムを起動 / 停止させることができます。停止時には、 3 のユーサ定義手続きの実行を行った後にシャットダウンを行います。 6 カレンダー機能 ( タイマーと連動 ) ( オプション ) / カレンダープログラムで休日はシステムが動作しないようにすることができます。ま 7 電源の自動切断 / シャットダウン手続きをワークステーションで行うとシャットダウン後、 UPS の電源も切断し、寿命を延ばします。 た、休日に使用したい場合には事前の設定変更だけて、当日通常どうりの時間にシステムか起動します。 価格・構成 Y30 , 000 カレンダー機能 Y30 , 000 オプション / 手元スイッチ V8.000 、タイマー \ 440 , 000 UPS 接続用 RS232C ケープル ( 3 メートル ) UPS ( IKVA 、 4 ロ、 10 分 / ヾックアップ ) 構成 / システム制御プログラム (FeIiSafe/20) FE い 020 停電対策専用の制御プログラム〔 Fe ⅱ safe / 10 〕も好評発売中 FeliSafe/10 ( FEL -1020 の機能・特徴の ( 1 ) ~ ( 3 ) をサポート ) ・・・・・・ V 158 , 000 600VA/UPS ・ 1 KVA/UPS ・ FEL-610(600VA/UPS 十 FeliSafe/10) ・・ FEL -1010 ( 1 KVA/LJPS 十 FeIiSafe/10) ・ ・・ V 138 , 000 ・・ V 178 , 000 ・・ Y270 , 000 ・・ V 31 0 , 000 精冖ハイテックインターナショナル十 EL. 3249-3181 代 ~ 。ー。 - 。。。 ・開発 / 製造元株式会社アクシス 資料請求 N 。 .89

10. UNIX MAGAZINE 1993年8月号

リファイ ビュ PURIFY は、メモリ・アクセス・エラーを 素早く検出しま魂 短時間 00 開発を可能 00 ます SRA ー P ロ阜 Y 2 メモリ・エリアの使い方を誤ったために起きるエラーは、どんなに巌密なテストをしてもソ フトウェアにしっこく付きまといます。なかなか再現しない - gmentation fault" に悩ん だことや、偶然見つけた変数への代入ミスに冷や汗をかいたことはないてしようか。また、 うまく動いていたモジュールも、他のモジュールと結合したとたん徹夜てテッヾッグするこ とになった、というのもよくあることてす。 PURIFY は、そのようなとき、プログラムを実行させながらエラーを見つけ出し、さら には無駄になっているメモリ領域をレポートしてくれます。 PURIFY を使うと、あなたの プログラムの信頼性は格段に向上し、出荷するまての時間も大幅に短縮されます。 市場ては、プログラムの品質と適時性がなによりも重要な一要素となっています。 ソフトウェアの信頼性を高め、短時間ての開発を可能にするために、この PURIFY をぜひお使いください *PURIFY は Pure 代 w e I . の登録商標てす。 株式会社 S RA 本社 / 〒 102 東京都千代田区平河町トト 1 谷 03 ー 3234 ー 2611 代 関西支社 / 〒 530 大阪市北区堂島浜 2 ー 2 ー 28 谷 03 ー 344 ー 2611 代 中部支社 / 〒 460 名古屋市中区栄 2-3 ー 1 谷 052-204 ー 5411 代 お問い合わせ先 PURIFY デスク谷 03 ー 5395 ー 7507 資料請求 86 出荷 PU 印 FY を使わなかった場合 PURIFY を /フー 使った場合 機能および品質 時間 PU 印 FY を使うと、品質の向上が速くなります。 開発元・ Pure Software 旧 c. Software Research Associates, .