連載 / 凵 Language X + Y + Z * 4 U + V / N E 2 ・・・ \ 括弧を補充 ・・ \ prefix 形式 ・・・ \ 括弧を補充 ・・ \ prefix 形式 ここでⅲⅱ x 形式を prefix 形式に変換する、 fix とい う lc 。 n 手続きを考えます。すると、変換の過程は x の再帰呼出しで表現できます。 e 工〃河 0 〃 e 工 7 、 2 → 0 〃 ( fix(expr ・の , fix(expr2) ) さて、演算式の解釈方法についてここで整理しておき ましよう。もし演算式中に括弧があれば、それは対応す る括弧を含めて明示的に 1 つの被演算子をなしているわ けですから、その部分は括弧の対応だけに注目していれ ばよいわけです。間題は括弧のない演算子の連鎖の解釈 です。演算式の解釈ルールを整理すると、以下のように なります。 優先頂位の異なる演算子からなる場合は、もっとも優 先順位の低い演算子から順に注目する 優先順位の等しい演算子からなる場合には、 a) 左結合の演算子は右から順に、 b) 右結合の演算子は左から順に注目する 例を挙げましよう。 I)X ー Y * 2 2)X ー Y ー 2 3)X E 2 1 ) では乗算のはうが減算よりも優先順位が高いので、 x と Y*2 が減算の被演算子になります。 2 ) の場合、減算は左結合なので、 (X-Y) と z の減算 のほうをさきに注目します。 一方、 3 ) では冪乗演算は右結合なので、 x と ( 2 ) の羃乗演算に注目するというわけです。 では、演算式に含まれる括弧の対応関係はどのように 処理すればよいでしようか ? lcon には対応する括弧を うまく取り扱ってくれる関数 bal が用意されています。 bal は、テキストを左から走査して与えられた文字を捜 if exp : = lassoc(exp, ' + ー ) ) then return exp UNIX MAGAZINE 1991.9 else if exp lassoc(exp, ) * / ) ) then return exp す、という点で以前紹介した関数 upto に似ています。 しかし upto とは異なり、対応する括弧とのあいだに括 られている文字を読み飛ばします。 ↑ ↑ 上の例では、 bal( , + , ) は↑印て示す文字位置を検出 します。つまり括弧のなかに + が含まれていても、 bal はそれを読み飛はしてしまうのです。これで、ようやく 演算式の変換プログラム expr の全容を解説できるよう になりました。右結合の演算子を処理する手続き rassoc は次のようになります。 procedure rassoc (exp , op) return exp ? { form(tab(bal(op)) , move(l) , tab( の ) end tab(bal(op)) は左辺の式を、 tab(0) は右辺の式 を切り出します。また、演算子自身は m 。 ve ( 1 ) で切り 出されます。 form は演算子とその 2 つの被演算子を文 字列として連接 catenate する手続きで、被演算子をさ らに分解するために、 fix を再帰呼出しします。 procedure form(argl, 0 arg2) , ・い ' f ⅸ ( gl ) Ⅱ return op Ⅱ Ⅱ fix(arg2) " ) " 一方、左結合の演算子を処理する手続き lassoc は、 次のようになります。 procedure lassoc(exp, op) 10Ca1 j &nul 1 return exp ? { = bal(op) every 」 if \j then form(tab(j) , move(l), tab(O)) end end lassoc は演算式中でもっとも右よりにある左結合演 算子からさきに処理するので、少々込み入っています。 式 \j は、変数 j が値 &null でないとき成功します。 las- soc は、 \j とその直前にある every の組合せでもっと も右よりにある演算子を捜しだしているのです。 さて、演算子は優先順位にもとづいて順番に走査しな くてはならないのでした。 103
LJN Ⅸ流プログラミング 11 たファイルポインタに対して getc を繰り返し呼び出し 外の文字からなる文字列を意味しています。つまり 2 つ 目の引数には、 = の直後から改行文字の直前までが代入 ます。 されます。 工ラーを判定する場所はもう 1 カ所あります。 2 つ目 さきほど、 fscanf の戻り値は変換できた引数の数だ の引数に代入された値が on か。仕かを検査する部分で と述べましたが、入力が終了した場合には EOF を返し す。 2 つ目の引数に代入された値がこれらの文字列でな ます。この値をループの終了条件として使うことも忘れ いのならは、エラーである旨を表示して次の行の処理に てはいけません。これで、行単位の処理ができるように 移らなければなりません。 なりました。次はエラーを検出するガ去です。 残りの部分は、さきほどのプログラムとよく似た手 工ラーの検出は、 fscanf が返す値にもとづいておこ 順になります。最初にオフションの設定か書かれたファ こでは 2 つの引数を指定していますから、 ないます。 イルをオープンするための処理、それぞれの文字に対応 2 以外の値 ( つまり 0 や 1 。 EOF は特別 ) が返された ら入力行にエラーがあると判定するのです。その場合、 するオプションを設定したり解除したりする処理、オー プンしたファイルをクローズする処理、それぞれのオフ その行のなかでまだ fscanf か第売み込んでいない入力が ションの値を出力する処理などをおこないます。最終的 あるはすですから、それを読み飛はさなけれはなりませ ん。それには、改行文字か EOF がくるまで指定され には、次のようになります。 #include く stdio . h> ・ 1 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 #define MAXLEN 256 0 0 0 int i nt int *fp; buf [MAXLEN] ; *ptr ; ch ; retval , tmpval ; line = 0 ; FILE Char Char char int int if ( (ptr = getenv("HOME") ) = = NULL) { fprintf (stderr , "Can ' t get HOME environment variable\n" ) ; exit(l); strcpy(buf , ptr) ; strcat(buf, "/ . test_file") ; if ((fp = fopen(buf, "r")) = NULL) { fprintf(stderr, "Can't open file %s\n" , buf); exit(l); / * main 100P * / fscanf(fp, "set %c while ( (retval 取十十・ if (retval ! = 2 ) { &ch, buf)) ! = EOF) { 140 UNIX MAGAZINE 1991.9
TOSHIBA エネルギーとエレク植 : クス E & E の東芝 コンビュとら 止まらなし , 立 次代の情報処理システムを 実現するオープンサーバ。 無停止運用を実現する、 DS/TWIN 新登場 情報処理のあらゆるニ - ズに応えるオ - プンサ - バ ますます進行する企業活動のポーダーレス化や予断を許さない社会状況 の激変に対応するため、携ゆる業種・業務において新しいステージが求めら れています。東芝は、・情報のリアルタイム処理、・国際標準のソフトウェア 環境、・あらゆるネットワークとアクセス可能なオープンネットワーク環境、 ・プログラム開発の大幅な効率化を可能にする第 4 世代言語採用などのコ ンセプトに基ずいた新しいコンピュータ、オープンサーバを提唱。オープン サーバは、個人と組織の情報処理を融合する、次代の情報処理システムで す。オープンサーバの第一弾として大規模 LAN 構築のエキスパート、 DS / XVER を提供。さらに経済活動の 24 時間化、システムの大規模化や分 散化に伴って増加する高信頼性ニーズ、無停止システムの需要に応えるた め、シリーズ第二弾として DS / TWIN を発表しました。 第ニ弾、 DS / TW が実現する無停止システム オープンサーバのコンセプトに基ずいて開発された DS / TWIN の最大の 特長は無停止システムの構築。万が一の事態に対しても情報処理は決し て止まらない、高い信頼性を確保しています。 DS / TWIN の主な特長は、 ・コンパクトなサイズでハードウェアの完全二重化を実現 ・世界最高水準 VLSI の高性能プロセッサを核した高性能システムの構築 ・マルチベンダシステム構築を可能とする多くの業界標準、国際標準を提供 ・オンラインシステム構築を容易にする高性能 OL 丱システ 2 の提供 ・地球規模での電子コミュニケーションを実現するグローバルメールの提供 DSITWIN は、高信頼性を要求されるシステムや業務の性格上、 365 日 24 時間の無停止運用を必要とし、オンラインでの保守やシステム拡張を要求 されるシステムにおいて、特にその能力を発揮するオープンサーバです。 オ - フンサ - バの提案 オープンサーバ ※この誌面に掲載しております全商品及び役務等をご購入の際、消費税が付加されますので こ・承知おき願います。※ DS / TW についてのお問い合わせ・資料請求は、株式会社東芝 コンビュータ事業部〒田 5 ー田東京都港区芝浦トトば東芝ビルディング ) ( 03 ) 3457 ー 2725 ( ダイヤルイン ) までどうぞ。
LJN Ⅸ流プログラミング 11 用してコマンドをカスタマイズする準備か整いました。 ている部分です。この部分では、 fopen の結果によって 分岐しています。 fopen は、指定されたファイルがオー さっそく、例題プログラムの作成にとりかかりましょ プンできなかったときには NULL を返します。この値 う。さきはど getchar() を使うと書きましたが、実際に は fopen() を利用してファイルポインタを使い、ファイ が NULL であれば、ファイルがオープンできなかった ことを示して、次のファイルの処理に移ります。この段 ルの内容にアクセスすることになりますから、正確には 階でコマンド自身を終了してしまってもよいのですが、 getc() を使うことになります。 今回は終了せすに次のファイルを出力するようにしてみ このプログラムは、基本的には前号でお話ししたシェ ました。出力に標準工ラー出力を使う点についても、す ルを用いたプログラムと似たものになります。注意しな でにお話ししましたね。さもないと、作成した cat コマ ければならないのは、シェルでは行単位の処理が簡単に ンドからの出力にこのエラー出力が交しってしまうので おこなえましたが、 C 言語で書くときは行単位の処理は 注意してください。 難しいという点です。今回は、設定のためのオプション は各行に書かれた文字ですから、無理に行単位で処理せ すに文字単位で処理することにしましよう。 したがって、プログラムは指定されたファイルのな かに書かれた文字を順に読み込み、書かれている文字に 対応する変数を設定することになります。 オプションファイルの読込み C 言語でファイルの内容を読み込む方法は、お分か りいただけたでしようか。これで、ファイルの内容を利 1 #include く stdio . れ> 2 3 #define MAXLEN 256 4 5 main() 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2 2 2 3 24 25 26 27 28 29 30 0 0 0 int int int *fp; buf CMAXLEN] ; *ptr ; ch; FILE char char int if ( (ptr = getenv("HOME") ) = = NULL) { fprintf (stderr , "Can ' t get HOME environment variable\n" ) ; exit(l) ; strcpy(buf, ptr) ; strcat(buf , "/. test—file") ; if ((fp = fopen(buf, "r")) = = NULL) { , buf ) ; fprintf (stderr, "Can't open file %s\n" exit(l); ((ch = getc(fp)) ! = EOF) { while switch (ch) { case a = 1 ; 137 UNIX MAGAZINE 1991.9
リアルタイムと UNIX ■ を追う地上レーダーの場合、 1 ~ 2 秒のデータサンプリン できない場合、どの程度のデータ・ロスなら許容できるか グ間隔は致命的ではない。しかし、ジェット戦闘機のレー を知る必要がある。 ダーでは、そうした遅延が生死にかかわる問題となる。こ の場合、敵のミサイルが接近するスピードは戦闘機と合わ せると音速の 5 ~ 6 倍にもなる。だが、このデータをプロ セッサに過負荷をかけすに入力できるようなシステムを作 データを時間内に処理するのと同しくらい重要なのは、 るのは難しい。場合によっては、データを直接メモリ中に 障害のないことである。 書き込んで CPU がデータ転送をしなくてもよいようにで シャトル本体が降下中にデジタルシステムを失えば、宇 きる。さもなければ、 CPU のサーピスを要求する割込みを 宙船は奇妙なかたちをした隕石となってしまう。機オ細勺な 起こすことになるだろう。 バックアップ・システムはない。しかし、信頼性を確保す る 2 つの手段が考えられる。 1 つは同等の能力をもつ冗長 アポロ月着陸船の例 性、もう 1 つはメインシステムよりは能力の劣る代替バッ 後者のリアルタイム・システムの一例が、アポロ月着陸 クアップを使うことである。 船を制御したシステムである。宇宙船が月面に降下するあ 冗長性と代替バックアップ いだ、誘導操縦システムのプロセッサは 20 ミリ秒の間隔 で数種類のプログラムを実行していた。 たとえばシャトルのデータ処理システムは、多重に発生 ある種のカウンタ割込み ( その一部は、着陸船が司令船 した障害にも耐えられなければならない。システムの冗長 と再結合するのを助けるランデブー・レーダーから送られ 性は、同しソフトウェアを稼動する 4 つの同型プロセッサ る ) サービスには、きわめて高い優先順位が与えられてい より構成される。それぞれがジョブ全体をこなせるため、 た。そのような割込みが監視ソフトウェアに知らされると、 いすれかのプロセッサが動作不能に陥ったとしても許容 ソフトウェアはいったんカレントジョブを中断し、カウン の範囲である。 タ増分を処理したあと、中断していたプログラムを再開す さらに、 5 番目のプロセッサが用意されている。これは るわけである。 本来、冗長セットの一部として加えられたもので、フライ だがアポロ 11 号が最初に月へ着陸しようとしていたと トシステムのバックアップ・ソフトウェアを稼動する。 き、ランデブー・レーダーからの割込みがあまりにも頻繁 のソフトウェアは宇宙船が軌道に向かったり地球に帰還 に処理を中断させたため、 20 ミリ秒の間隔で実行されるべ するときに作動するもので、軌道上での作業や宇宙飛行全 きプログラムのいくつかは処理を完了できなかった。監視 体をカバーするものではない。 プログラムはシステム全体をリスタートし、そして同し状 アポロの月着陸船はさらに、月の軌道への飛行を中止す 況が繰り返された。このため、宇宙船と管制センターの両 るためだけに小型のプロセッサを備えていた。ソフトウェ 方で何度か緊張する場面が生した。幸いにも、コンピュー アだけが別になっているシャトルのバックアップとは異な タ・システムに詳しい管制センターのスタッフがシミュレ り、このプロセッサは構成もまったく違うものだった。 ーションで同し状況があったことに気づき、降下の続行が こうした幾重もの冗長性がつねに必要とはかぎらない。 許可された。 世の中のリアルタイム・システムのほとんどが、単一の冗 長性になっている。より入念なシステムは、たいへん高く この例から、時間どおりに処理しながら不可欠なデータ を確保していくという、その兼合いがいかに重要であるか つくからである。今日では、ハードウェアの故障はあまり がお分かりいただけるだろう。 起こらない。しかし真に冗長性のあるシステムでソフトウ 所定の時間の枠内で確実に処理を完了するようなソフト ェア上の欠陥が露顕することは、危険な側面もある。欠陥 ウェアをつくるアプリケーション・プログラマーは、その がまさに普遍的なエラーであれば、バックアップの冗長シ 監視構造とスケジューリングのアルゴリズムを計算に入れ ステムに切り替えても解決にならないからである。そのシ なければならない。さらに流入するデータをいちどに確認 ステムも同し理由で欠陥をもっているかもしれない。 ロ 信頼性の問題 74 UNIX MAGAZINE 1991.9
た ( このとき、 /usr/man/man? の該当データの更新 日時が /usr/man/cat? のそれよりも新しけれは、もう 一度 /usr/man/cat? のデータが更新されます ) 。一方、 /usr/man/cat? に存在しなければ、 /usr/man/man? を見にいき、従来どおり nroff を実行して結果を画 面に表示するとともに /usr/man/cat? の該当ディレ クトリにその清書結果を置くようになったのです。 のため、 1 回 man コマンドの対象になったマニュア ルページの出力は、 2 回目以降は nroff による処理 カ坏要になり、 man の出力はとても速くなりました。 usr man/man? のデータをⅡ ro 仕で処理し、 また、 / / /usr/man/cat? に置くための catman という管理者用 のコマンドも提供されるようになりました。 さて、 /usr/man の話はこれくらいにして、ユーザー が自分の作ったマニュアルを整理し、 man コマンドでそ れを表示するために必要な知識について説明しておきま しよう。それがシステムのユーサー全員に公開すべきも のであれば、管理者に頼んで /usr/man/manl(local) などにインストールしてもらいます。まったくプライ べートなものであれば、自分のホームディレクトリ以下 の任意のディレクトリに /usr/man 以下と同しような 構成でディレクトリを作成します。たとえば、自分が 作ったコマンドのマニュアルを保存するためには、次の ようにディレクトリを作成します。 そして、 nr 。仕で記述したデータを“コマンド名 .1 ”と % mkdir manl catl % cd man % mkdir man % cd UN Ⅸへの招待⑩ いう名前で ma Ⅱ 1 に置いておきます。たとえば、 my- com というコマンドを作った場合、 manl/mycom. 1 に nroff のデータを作成しておけばいいわけです。ち ょっとトリッキーですが、 nroff のデータを作成せすに nroff の整形結果、つまりそのまま表示できる形式でマ ニュアルを作ってしまったときには、 catl ディレクトリ に mycom. 1 を置いておきます。このとき、 manl のほ うには適当な内容 1 のファイルを mycom. 1 というファ イル名で置いておきます。もちろん、 manl/mycom. 1 の更新日時は catl/mycom. 1 のそれよりも前でなけれ ばなりません。 さて、このあとでもう 1 つ作業が必要です。 man コマンドは、とくに指定がなければ /usr/man/cat? と /usr/man/man? のディレクトリを参照します。した がって、このままではプライベートなマニュアルを用意 しても、 man コマンドでそれを表示することはできま せん。そこで、ユーサーは環境変数 MANPATH を設定し、 自分が作成したマニュアル用ディレクトリのパス名をそ の値に設定しておきます。前例の場合は、以下のように MANPATH を設疋します。 % setenv MANPATH $HOME/man : /usr/man MANPATH に /usr/man を含めないと、システムで提 供されているマニュアルが見られなくなりますから要 注意です。以止のように準備したあとで man を実行す ると、 man コマンドは /usr/man/manl よりもさきに $HOME/man/man1 から該当するマニュアルを捜し にいくようになります。 rsh コマンドと usr/hosts 、、、マンドか提供されています。 rsh は、 UNIX には、リモートマシンにログインする rlogin や、リモートマシンでコマンドを実行する rsh というコ / rsh ん 0 [ ー 1 username ] [ 0 を 0 れ ] comrnand という形式で実行し、 host で指定したホストで com- 1 スペース 1 つでもかまいません。ただし大きさが 0 ではだめです。 mand を実行します。 UNIX MAGAZINE 1991.9 また、 rsh を省略して、 157
GHL UNIX ライプラリ・ツーノレ ( ソースコードの開示・改変・再版権の提供 ) OEM / プセンス Geometry HandIing Library ( 幾何演算ライプラリ ) GHL は SRA が開発した CAD / CAM / CAE および CG 用の演算ライプラリ・ツールて、す。 《概要 《ご利用例》 ・自由曲線 / 曲面を含む 2 次元および 3 次元形状要素の幾何的な問題を倍精度の浮動小数点て処理する 汎用の形状演算ライプラリて、す。 ・ C 言語とのインタフェイスをもっサカレーチンの集合として提供 ( C 言語く K & R 仕様 > て、記述 ) します。 ■機械系・建築系の CAD システム用演算モジュールとしての使用が可能て、す。 ■約 500 のライプラリおよび数値演算関数を備えており、大きく分けて以下の 4 種類の処理になります。 4. その他・・ 3. 単独要素の生成・・・ 1. 単独要素の評価・ ・・・座標変換 / べクトル演算。各種の方程式を解く。 ・・・通過点から円錐曲線を得る。点列を自由曲線 / 曲面て、補間 / 近似する。 曲面 : 平面 / 球 / 円柱 / 円錐 / Bezier 曲面 / B - spline 曲面 / 柱面 / 回転面 曲線 : 直線 / 円 / 楕円 / 放物線 / 双曲線 / Bezier 曲線 / B - spline 曲線 サポートしている形状は、次の種類の組み合わせて、す。 2. 複数要素間の干渉・・・・曲線 / 曲面間の交点 / 交線、共通接線 / 共通法線を得る。 ・・・与えられたパラメータ値て、の幾何特性、特異点、変曲点を得る。 ・数値データを 3 次元のグラフとして表示するといったグラフィカルなインタフェイスをもつ事務アプリケー ・ビジネス・アプリケーションの開発に ・トキュメント用作図ツールの高性能化に、座標関数の機能として ・ドキュメンテーション・ツールの開発に ・現在お使いの CAD / CG を機能拡張する際の演算機能の補充に ・ CAD / CG の形状処理システムの開発における演算機能の核として ■形状処理システムの開発に ションを開発する際の形状演算部分として 《稼働ハードウェア》 以下のマシンでの動作は確認済みです。 ・ Sony/NEWS ・ Sun/Sun-3, Sun-4, SPARCstation ・旧 M / POWER ステーション その他、 UN Ⅸペースのワークステーションで動作可能。 《提供物件》 ・ライプラリ機能仕様書 ・ソース・プログラム ・ユーサマニュアル ( インストール・マニュアルを含む ) ・演算結果一覧 の、株式会社日 A 本社 / 〒 102 東京都千代田区平河町 1 ー 1 ー 1 谷 03 ー 3234 ー 2611 代 関西支社 / 〒 530 大阪市北区堂島 1 ー 5 ー 17 谷 06 ー 344 ー 2611 代 資料請求 N082 お問い合わせは・・・・ワークステーション引事業本部テクノロジ・マーケティング部 TEL. 03 ー 3234 ー 2624 FAX. 03 ー 3234 ー 8048 谷 052 ー 204 ー 541 1 代 Software Research Associates, . 中部支社 / 〒 460 名古屋市中区栄 2 ー 3 ー 1
これは、オープンするファイルに施したい処理を指 定します。ここに指定できる文字列は r 、 w 、 a の 3 つ で、それぞれ読込み (r) 、書込み (w) 、追加 (a) に使う という意味になります。各文字列の後ろに、十という文 字をつけることもできます。この場合には、読み書きの 両方をおこなうことができます。「読込み用と書込み用 に別の文字を使っているのに、十と書くと両方できるの はどうして ? 」と思われる方もいらっしやるでしようが、 r や w は読込みや書込みという意味だけを示しているの ではありません。これらの 3 つの文字と、それぞれに十 をつけた場合の違いを表にしてみました ( 次ページの表 1 参照 ) 。 この表だけではちょっと分かりにくいので、すこし説 明しておきましよう。たんにファイルを読み込みたいだ けなら、 r を使えば十分です。新たにファイルを作成し たいときは、 w か a を使ってください。この 2 つは、 指定したファイルがすでに存在している場合だけ異なる 動作をします。ます、 w では存在しているファイルは捨 てられ、 0 から新たにファイルを作成していきます。ま た、 a では既存のファイルの後ろに付け加えるかたちで ファイルを作成していきます。 次は、十をつけた場合です。 r 十は、既存のファイル の先頭から読み書きをおこなうときに使います。 w 十は、 既存のファイルを捨て、新たにファイルを読み書きする ときに使います。 a 十は基本的には r 十と同しですが、最 初に処理をおこなう場所が先頭ではなくファイルの最後 になります。もっとも、処理をおこなう位置はほかの関 数 (fseek など ) を利用して変更できますから、この違 いは些細なものといえるでしよう。 このような相違がありますので、ファイルをオーフ ファイルのクロース ンするときは方法に注意してください。 UNIX MAGAZINE 1991.9 3 main(argc , argv) #include く stdio . h> や stdout に対して使用した getc や putc などの関数 は、 stdin や stdout などと同じ型です。つまり、 stdin ンすると、 FILE * 型の値が返されます。この FILE* 型 さて、このように f 。 pen を使ってファイルをオープ LJN Ⅸ流プロクラミング 11 がこれらの引数を使って簡単に利用できるのです。 もう 1 つ、お話ししておきましよう。それは fclose 関数です。これは、 fopen 関数を使ってオープンしたも の ( ファイルポインタと呼はれます ) を正しくクローズ するために使います。 UNIX では、 1 つのプロセスで オープンできるファイルの数が決まっています。その 数を超えてファイルをオープンしようとしてもできませ ん。ですから、不要になったファイルポインタはきちん とクローズする習慣をつけておきましよう。 この関数の使い方はとても簡単で、 #include く stdio . h> ファイルの読み書き これで、前処理としてのファイルのオープンと後処 理としてのファイルのクローズについてはお話ししまし た。あとは、実際にファイルを読み書きする方法だけ です。 fopen を使ってファイルをオープンした場合、スト リーム I/O を利用してファイルに対する読み書きがお こなえます。たとえは文字単位の入出力を考えると、読 み込むときには getc(fp) 、書き出すときには putc(c, (p) を使えは実現できます。簡単ですね。 1990 年 11 月号で作った cat コマンドを例に、引数 か指定された場合にはそのファイルを出力するように変 更してみます。できるかぎり本物の cat コマンドに近く なるように、複数のファイルカ甘旨定されたときは指定さ れたファイルを順番に標準出力に表示するようにし、何 も指定されなかったときは標準入力を入力として使うも のとします。 作成したプログラムは、次のようなものです。 fclose(stream) FILE *stream; となっています。つまり、クローズしたいファイルポ インタを引数としてこの関数を呼び出すだけでよいの です。 135
EWS には、 TekBaseo ■■ 身■・を■■ーを を第第第■ ー■■な [ [ △①ー N ① 工ンジニアのための統合化環境 0 ① UC ー 5 工ンジニアリング・テータ管理 / 解析ソフトウェア TekBase は、データベースを核として、科学技術データの管理 / 検索機能、データの入出力、各種関数演算、プログラム レスのグラフ表示機能など、各コンポーネントを統合し た先進のエンジニアリング・データ管理 / 解析ソフト ウェアです。 lmport RDB Graph Function 工ンジンノイズ周波数スペクトラム 主な機能 ・インターフェースを介してのデータ転送機能 ・プロセス ( ューザ・プログラム ) とのデータの入出力 ・リレーショナル型のデータベース・マネジメント機能 ・豊富な数値データ・タイプ ( 実数・整数・複素数・日付・時間・プ ール・文字列 ) ・最大 128 , 000 要素の数値配列取り扱い ( 可変長配列のサポート・数値 配列編集機能 ) ・多彩なデータ処理関数 ( 数学関数、三角関数、配列関数ライプラリ、 信号処理、統計処理ライプラリ ) ・プログラムレスの各種グラフ表示機能 ( 折れ線グラフ、棒グラフ、散布 図、ウェーハ・マップ、レーダー・チャート、ナイキスト機能 ) ・コマンド・ログ、マクロ機能 ・プログラム・インターフェース ・クライアント / サーパ・アーキテクチャによるネットワークのサポート 工ンジン住転数 周沒ま ( ト迂 ) 号 = = ロ 計測結果 ウェハーマップ 日付 : 23 / 27 / 引 ユ - ザ : 角文株式会 第定第 ト物ー F 第 0 半導体 / ヾラメータ管理 丸文は、 YHP VAR 第 1 号として感高付加価値″を万全の体制でお届けします。 〇立第式会ネ土 東京都中央区日本橋大伝馬町 8-1 丸文ダイヤピル〒 103 お問い合わせ先第 2 営業本部森田 / 丸山 TEL03-3639-9816 ( ダイヤルイン ) FAX03-3661-7433 代 9 横河セ = ーレ , トジカード 資料請求 N 。 .041 ハードウェアには、 YHP の / 、イ′くフォーマンス EWS 「 HP9000 シリーズ 700 / 400 / 300 」がご利用いただけます。 AD ー C21009
BR1mE 自由自在。 オープン指向のわヾプリス ' て、統合文書処理環境を実現。 技術者の作業効率の飛躍的な向上をお約束します。 Publiss 0 カ e Do じ襯 e 〃 0 ヾプリス ' は、テキスト入力 / 編集から、図 / 表 / グラフの作成、イメージ処理、ワープロや CAD データの読み込み、ページ レイアウト、印刷など文書作成に欲しい機能をすべてサポートした UNIX ワークステーションのための統合型文書処理ソフト。 マニュアルや仕様書・企画書など、図や表・イメージの多く入った文書の作成に最適て、す。またヾプリス ' は、デスクトップ環境 への組み込み、データコンバータの追加、汎用 DBMS による文書管理など、統合文書環境構築のために先進的て拡張性にとんだ アプリケーション・インタフェースを数多く搭載し、文書ファイルの構造もすべてオープンにしています。目的に合わせて各種初期値や プログラムの構成を変更したり、異機種間ネットワークて、文書ファイルやプリンタを共有するといったこといパプリス ' なら自由自在て、す。 対応機種 : サンマイクロシステムズ Sun-3, 4 , SPARCstation / 横河ヒューレットパッカード H 円 000 , HP ApoIIo 9000 , HP Apollo DOMAIN/SONY NEWS/ オムロン LUNA/ 富士通 S ファミリー / ユニシス US シリーズ , U6000 / 新日本製 NSSUN/ 日立 U N I X ワークステーションのための 製作所 2050 / 32E / 日本電気 EWS4800 / 松下コンヒ。ュータシステム BE, S 引 bourne / 三菱電機 MELCOM ME/DEC DEC オープン・ドキュメントプロセッサ station, VAXstation/IBM POWER ステーション / クボタコンヒ。ュータ mips RS3230 E ト :F ・ RESS PubLa ou に PubDtaw PubScan PubTable pubText PubS cra. ubConve pub Fi 降 PubGafi ※ UNIX オペレーティングシステムは AT & T 社が開発しライセンスしています。 株式会社プリッジ営業本部〒 101 東京都千代田区神田北来物町 11 イザキビル 4F ・デモや製品に関するお問い合わせは、営業部第 1 営業課まて TEL. 03 ー 32 一 419 0 資料請求 N 。 034 000 0 0 0