X11 - みる会図書館


検索対象: UNIX MAGAZINE 1991年3月号
222件見つかりました。

1. UNIX MAGAZINE 1991年3月号

応援しますあなたのネットワーキング 〇〇 NCD で新しい窓を開いてネットワーキングの世界へ NCD はソフトウェア重点主義 X ウインドウ・ターミナルの世界最実績 NCD のソフトウェア (NCDware) は最新 X サーバ ( X11 NCD はネットワーク・コンヒ。ューティングに必要なあらゆる 要素を検討し、ソフトウェア / ハードウェア / ASIC 技術を (4) と完全互換性を持ち、さらに多くの機能を追加してい 凝縮したものて高機能とその使い勝手の良さに満足し ます。 TCP /IP 、 DEC net を通じて UNIX 、 VMS 、 ULTRIX のホストとの接続をするばかりて、なく、 Telnet や ていただけるものと信じています。 NCD は世界の X ウインド LAT を介して X をサポートしていないホストとも接続するこ ウ・ターミナルの中て、は最も実績があります とがて、きま魂 《製品ラインアップ》 モノクロ : NCD15b 、 NCD16 、 NCD16e 、 NCD19 、 NCD19b カラー : NCD14c 、 NCD17c キーポード : PS 標準、カナ、 UN Ⅸスタイル、 VT220 コンバチ 株式会社日本 NCD 〒 102 東京都千代田区平河町 1 ー 1 ー 1 TEL: ( 03 ) 5276-1756 FAX: ( 03 ) 3237 ー 9456 * 会社名、商品名は各社の商標または登録商標てす。

2. UNIX MAGAZINE 1991年3月号

COLOR X WINDOW TERMINAL 新発売 新星、誕生。こんな製品を待っていた ! そして、実績と信頼の一台。 Xstation ・ 2000 台以 E の実績を誇るベストセラー機 ・ MC68030 ( 25MHz ) 採用 ・ X 1 1 R 4 対応 ・最大 32MB 、 256 色同時表示の拡張性 ・モニタ 3 種、キーボ、一ド 5 種サポート ・オートプロセスキラー機構採Ⅲ ( 仕様 ) CPU/MC68030(25MHz) 、メインメモリ / 2 ~ 32 M B 、ウインドウシステム /X 1 1 R 4 、モニタ / 20 气 1 7 气 14 〃ノンインタレースカラー、解像度 / 1280 x 1 024 ド ット ( 14 ″ = 1024X 768 ) 、同時表示色 / 8 ~ 256 色、漢字 フォント / 1 6 x 1 6 、 18 X 1 8 、 24 x 24 、 26 X 26 ドット、キー ポード / PC / AX ( タイプ 1 、 2 ) : PC / AT 、 PC98 、ショート、 ィーサネット /THI N 、 TH ℃ K 、マウス / メカニカル 3 ポ タン、 RS232C SuperXs 、 21 ・ハイリフレッシュ 72Hz / 21 インチモニタ 搭載によりちらっきのない安定性の高い 画像を表現 ・ 4 ウェイノンインターリープ機構により 33MHz MC68030 の高速性をノンウェイ トて、メモリ実行 ・新開発 X サー / ヾーアクセラレータにより、 ビットマップ処理を高速実行 ・超小掣化、ファンのない設計により省ス ペース、より静粛な開発環境を構築 ・オートプロセスキラー機構採用 ( 仕様 ) CPU/MC68030(33MHz) 、メインメモリ / 4 ~ 32 MB 、ウインドウシステム / XI 1 R4 、モニタ / 21 ″ノンイ ンタレースカラー、解像度 / 1280 x 1 024 ドット、同時 表示色 / 16 ~ 1670 万色、漢字フォント / 16X16 、 18X18 、 24 x 24 、 26 x 26 ドット、キーポード /PC/AX ( タイプ 1 、 2 ) 、 PC/AT 、 PC98 、ショート、イーサネット / T 印 N 、 TH ℃ K 、マウス / メカニカル 3 ボタン、 RS232C ※フルカラー 70 万色同時表示可能モデルもございます TM TM ※ xst 籌一 on. Su を「を ( は日本電算機株が登録出願中の商標てす。 ネットは米一社登録商標て ※ XIIR 、は米国、イー

3. UNIX MAGAZINE 1991年3月号

シーツ″ ' 91 年声た。 『 1 人 1 台 IJN Ⅸ環境』 ・ビルト・イン X-Window+-- バ (X11R第樹処) UTelne い、 login プロトコルをサポート UEthernet ( IEEE802.3 ) TCP/IP プロトコルをサホート ■ AUI/BNC インタフェースを内蔵 ■明朝体漢字フォント ( 16X16 / 24X24 ド・ツト ) を搭載 ■フォントを口一ディング ( BDF / SNF ) 機能をサポート ■ RARP (Reverse Address Resolution Protocol) をサホ ート ■電源 ( ) FF 時のフェイル・セーフ機能 UBacking Store/Save Under 機能 ■メモリー残料表示及び警告ブザー機能 ■ 3 タイプのネーム・サーバ (YP/Domain/IEN116) をサホート ■メモリーを最大 17M バイト ( 標準 I.M バイト ) まで拡張可能 ■ 3 タイプのイニシェータ ( rsh 、 rexec 、 XDMCP) をサホート C ー T ー X は、あらゆるワークステーションのクライアント を実行したいと考え、 R ( ) M 内の 36 種類のフォントの他 にワークステーションで使用しているフォントを TFTP により口一ドして使用できます。 CIT-X は、ネットワーク・ビギナーにも簡単に使用でき ます。 C 阯ー X は、 rexec 、 rsh 、 XDMCP をグイレクトに当力す ることにより、 TeInet からクライアントを指定する手間 を省くことができます。また、終「時には、プロセスを 自動終「することができます。 CIT ー X は、漢字ターミナル、℃ IT48 鼕をベースに、 UNIX をはじめとする各種 OS 搭載マシンとのネットワーク ( E [ hernet ) 接続をサポートしたことにより、ネットワー ク端末機能 ( Telnet 、 rlogin) を実現しました。さらに CIT-X は、 EWS マーケットにおける Window System の業界標準としてま史に普及している X-WindowSystem ( X11R4 ) のサー / 鱧分を R()M 化したことにより、ユー ザは、 Ethernet に接続されている複数のマシン上で、複 数のセッションを開いたり、複数のプログラムを実行す ることが可能です。

4. UNIX MAGAZINE 1991年3月号

ます。これにより、ファンクション shcat には引数が複数 指定できることになるわけです。ファンクション機能って おもしろいですね。 UN Ⅸへの招待⑩ alias では、このようなことはできません。なせなら、複 数行にまたがるコマンド ()f 、 while 、 foreach など ) は別名 に定義できないからです。 コマンドの実行結果を使う UNIX では、あるコマンドの実行結果をコマンド行で使、ゝ える機能があります。これを、コマンドの置換えなどと呼 びます。 この機能を使う場合には、結果を置き換えるコマンド全 setenv T 団討 ktem set 0g10b ; % tset -sQ kterm ー sQ 端末の種類 t s et この意味を、ざっと紹介しておきましよう。 % set 0g10b ; eval 'tset —sQ ktem す。 では grep と awk の結果が less コマンドの引数になりま ' {print % less grep aya * ー awk —F" : " 体をバッククオート ( ・ ) で囲みます。たとえは・、 unset % cat ( ls ( では、 ls コマンドの実行結果が cat コマンドの引数となり ます。また、 、、コマンドの置換えは、さまざまな場面でとても役に立ち ゝでは、次のような結果が得られます。 0g10b ます。私がよく使うのは次のコマンド行です。 setenv TER.I ・℃ AP 'vsl kteml VS100 : cr=AM : do=AJ :nI=AJ :bI=AG : :ho=\E 田 : co # 80 : li # 24 : c1=\E CH\E C2J :bs : : cm=\E [%i%d ; % 醴 :nd=\E CC : up=\E [A : ce=\E CK : cd=\E CJ : so=\E [7m : se=\ E Cm: us=\E C4m : ue=\E [m : md=\E C1m :mr=\E C7m:me=\E [m : k1=\E [ 11 ~ : k2=\E [ 12 ~ : k3=\E [ 13 ~ : k4= \E [ 14 ~ :k5=\E [ 15 ~ : k6=\E [ 17 ~ : k7=\E [ 18 ~ : k8=\E [ 19 ~ : k9=\E [ 20 ~ :k ; =\E [ 21 ~ : FI=\E [ 23 ~ : F2= \E [ 24 ~ : F3=\E [ 25 ~ : F4=\E [ 26 ~ : F5=\E [ 35 ~ : F6=\E [ 36 ~ : F7=\E [ 43 ~ : F8=\E [ ~ : F9=\E [ 45 ~ : FA= \E [ 46 ~ : FB=\E [ 47 ~ : FC=\E[4C : FD=\E [ 49 ~ : FE=\E [ 50 ~ :FF=\E- : FG=\E\A : Æ=\E\\ : ku=\E CA : kd =\E CB : kr=\E CC : k1=\E [D : kb=AH: ta=AI : pt : sf=\n : sr=\EM: a1=\E CL: d1=\E CM : is=\E [r\E Cm\E [ 2J\E CH\E [?7h\E [ ? 1 ; 3 ; 4 ; 61 : rs=\E [r\E く \E Cm\E C2J\E CH\E C?7h\E [ ? 1 ; 3 ; 4 ; 61 : : sc=\E7 : rc= J\E [ ? 471 \ E8 :hs : ts=\E C?%i%dT : fs=\E C?F : es : i2=\E C?S : ds=\E C?H: # 3 : GS=\E(O : GE=\E(B : G V=x:GH=q:GU=v:GD=w:G1=k:G2=1:G3=m:G4=j :RP=\E[6n:AP=\EC%d;%dR:TY=sjis:DEMT: , ; unset Ⅱ 0g10b ; こでは、 setenv コマンドを使って環境変数 TERM と TERMCAP を設定するためのコマンドが出力されます。さ て、 ev は引数で指定されたコマンドを実行するコマンド です。したがって、 eval ctset —SQ ktemC では、 test -sQ kterm から出力された一連のコマンド が eval によって実行され、環境変数 TERM と TERM- UNIX MAGAZINE 1991.3 CAP の値が設定されます。つまり、 tset の引数 ( 端末の種 類 ) で指定した端末の設定がおこなえるわけです。 あるマシンからモデムを介して別のマシンにログインし たとき、または telnet などを使ってどこかのマシンにログ インした際、実際に使っている端末 ( モデムや telnet を使 っているローカルなマシンの端末 ) とログインしたマシン での端末の設定がかならすしも一致しているとはかぎりま せん。そのような場合は、ローカルで使っている端末の種 155

5. UNIX MAGAZINE 1991年3月号

ニューフェイスを プロにする、 DZ ー XCO 日間、 td O = 日間。→ 誰か教えるのか、どのように指導すれば効果か得られるのか 技術者教育に頭を悩ます担当の方々に、 富士ゼロックス総合教育研究所はお応えします 連載 / Li Language¯ msgsnd ()D MSG , FLAGS) msgrcv ()D , VAR , SIZE TYPE , FLAGS) semctl ()D , SEMNUM , CMD ARG) semget (KEY , NSEMS , SIZE , FLAGS) semop (KEY , 〇 PSTRING) shmctl ()D , CMD ARG) shmget (KEY , SIZE , FLAGS) shmread ()D , VAR , P 〇 S , SIZE) shmwrite ()D , STRING , P 〇 S , SIZE) ・ cmp と←〉 cmp と←〉というオペレータが追加されました。これ は、 sort で使うと便利なもので、 $a く = > $b のようにすると、 $a のはうが小さいときには一 1 、同しなら 0 、大きければ 1 を返します。く = 〉は数値、 cmp は文字列 変数に対して使います。 ・ caller 現在実行しているスクリプトが、どのように呼はれたか を調べることができるようになりました。 ($package ,$filename,$line) = caller; のように実行すると、そのサプルーチンが呼ばれたバッケ ージ、ファイル名、行番号が分かります。 ・ sysread 、 syswrite perl には入出力用として read と print という関数が 用意されていますが、実際に内部的に呼はれるのはバッフ アリングをおこなう fread と fwrite です。これに対し、本 当にシステムコールの read 、 write を実行するために sysread と syswrite という関数が追加されました。 また、 read には sysread とともに 4 番目の引数が追加 され、変数の途中にデータを読み込むことができるように なりました。 ・ DATA ファイルハンドル -x オプションをつけて実行すると、一一 EOF ーの後のデ ータカ鰾準入力として扱えます。このデータは、どんな場 合でも DATA というファイルハンドルから読み込むこ とができます。データをスクリプトに続けてファイルに入 れておけるので便利です。 ミ ・開催日 ・オペレーティング・システム入門セミナー = UNIX 上てのオペレーション = 第 53 回 / 3 月 5 日火 ~ 7 日木 第 54 回 / 4 月 9 日火 ~ 11 日木 ・ C プログラミング入門セミナー 第 53 回 / 3 月 12 日火 ~ 15 日金 第 54 回 / 4 月 16 日火 ~ 19 日金 ・ C プロクラミング応用セミナー 第 31 回 / 3 月 26 日火 ~ 29 日金 第 32 回 / 4 月 23 日火 ~ 26 日金 ・実践プロクラミングセミナー = UNIX 上てのソフトウェア開発 = 第 33 回 / 2 月 26 日火 ~ 28 日木 第 34 回 / 4 月 2 日火 ~ 4 日木 ・ SmaIItaIk-80 基礎編 第 32 回 / 3 月 11 日 ( 月 ) ~ 15 日金 第 33 回 / 4 月 22 日 ( 月 ) ~ 26 日金 ・ SmalltaIk-80 プログラミング編 第 9 回 / 3 月 25 日 ( 月 ) ~ 29 日金 ・ SmaIItaIk-80 応用編 第 2 回 / 4 月 8 日 ( 月 ) ~ 12 日金 ■開催場所 ( 東京・新宿 ) ソフトウェア技術研修所セミナー・ルーム ※ UNIX は AT&T ( 米国電話電信会社 ) のベル研究所 が開発した OS て、す。 ※セミナーのお申し込み、お間い合わせはド記へ FWI XEROX LEARNI NG INSTITUTE C. 富士セロックス総合教育研究所 メディア・システム部担当 : 大石 〒 170 東京都豐島区東池袋 3 ー 1 ー 1 サンシャイン 60.17 階 電話 03 ( 5391 ) 3311 FAX03 ( 5391 ) 2550 75 UNIX MAGAZINE 1991.3

6. UNIX MAGAZINE 1991年3月号

皆様御用達 - 第一、第・第い第一第い第一 M INT X window TerminaI 時代のニーズともなりつつある分散コンビューティ ング。「 X MiNT 」は、ユーザインターフェースを向 上させるとともに、 X ウインドウシステムのサーバ 部分を分離することで、 x 環境の低価格、高効 率化を一気に実現しました。ワークステーション 並みの処理スビードと相まって、実に容易なネッ トワーキング「 X MiNT 」は皆様ひとりひとりのマル チニーズに柔軟に対応し、理想的なネットワーク 環境を構築します RELEASE INFORMATION 現在の 1 5 インチ 17 インチに加えて更に 1 9 インチもライン ナップ。また、 X 1 1 日 3 に加えて X 日 4 もサポート。 これらにより更に X 環境が充実。 ハードウェアの主な仕様 CPLJ : MC68030 ( 16.67MHz ) 主記憶 : 40 「 8MB 画面サイズ : 1 5 、 1739 インチ ( ペーバーホワイト ) 解像度 : 1 , 280XL024 ピクセル OO " 1 ⅱ蔔 = 一ⅱ - 「 i' 新す 1 イ TAKAOKA 株式会社高岳製作所 ・浜松〒 430 浜松市元城町幻 8 ー 29 ( フラワービル ) 谷 ( 0534 ) 57 ー 0035 代 ・関西〒 530 大阪市北区堂島ト 6 ー ( 毎日大阪会館北館 ) 容 ( 06 ) 344 ー 53 引代 ご購入希望の方には評価機の用意をしております。 ご希望の方はご連絡ください。無償て、お貸しします。 システム事業部販売部 ・東京〒ー田東京都千代田区猿楽町 2 ートⅡ ( 東燃神田ビル ) ( 03 ) 3292 ー 6543 代 ・中部〒 450 名古屋市中村区名駅 4 ー -25 ( 名駅ビル ) 谷 ( 052 ) 582 ー 95 引代

7. UNIX MAGAZINE 1991年3月号

地 e $ & 0 ee 0 ce では、 DoubIeView が優れている。だが、 mscreen のた 今月の評者。建築家、登山家であり、ときにはシステム・ハッカーで めのメモリがいくらか追加されれば素晴らしい。 もある。 UNIX 関連の開発・システム会社 Whitehorse Systems GroupInc. ( メイン州ポートランド ) の創立者にして社長。長年にわ これらの製品は、われわれの多くがまさに必要として たり、さまざまなマシンおよびシステムで仕事をしてきた。現在は、 環境モニターのための開発をおこなっている。 いたものである。 DOS ューサーの UNIX への橋渡し、 (e-mail:mikeh@wsg.com/ UNIX ューサーの DOS 処理のいすれかの要件を満た 「 DOS-to-UNIX Connectivity 」 すものであろう。 UNIX REVIEW 1990 年 12 月号より ■ Mike Hassey NEWS-OS ReIease4.0 の概要 1 ) 竹内正樹、古柴浩司、手塚宏史 ( 68020 / 68030 ) NEWS 用が NEWS-OS 3.4 、 RISC 1990 年末にリリースされた NEWS-OS ReIease 4.0 ( R3000 ) NEWS 用が NEWS-OS 3 .91R と系列が別 には、以下のような特徴があります ( 正式には、 CISC になっていましたが、今回から CPU に固有な部分を除 NEWS 用が「 NEWS ー OS Release 4 . OC 」、 RISC いて一本化しました。 NEWS 用が「 NEWS-OS Release 4. OR 」ですが、 こでは両方をまとめて、、 NEWS-OS4.0〃と呼びます ) 。 NEWS-OS 3. X との互換性 ・ CISC/RISC の OS のリリースを一本化 NEWS-OS 4 . 0 では、一部を除いて NEWS-OS 3 . ・ NEWS-OS 3 . X 上位互換 X のアプリケーションが動かせます ( NEWS ー OS 3. X ・ SystemV および POSIX の機能の一部を実装 固有の環境変数などを用いている場合は、ユーサーによ ・ X Window System Version11 ReIease4 ( X11R4 ) る設定が必要です ) 。 NEWS-OS 4.0 では動かない可能 を採用 性のあるアプリケーションには、下記のようなものが挙 OSF/Motif(Version1.1 ) を日本語化して採用 げられます。 多国語対応の強化 ◆カーネル内部の情報を直接アクセスしている。 NFS 4 . 0 を採用 、 / public /... などのパス名を使ってい ◆ /private/. NFS の咼速化 ファイルシステムの強化 る。 ファイルアクセスの高速化 なお、 NEWS-OS 4 . 0 で作成したアプリケーション ネットワークの高速化 の NEWS-OS 3. X での動作は保証されません。これ デスクトップ環境 NEWS Desk を搭載 は、いくつかのシステムコールの実装方法が変わってい SNMP(Simple Network Management Proto- るためです。 21 ページの図 8 にもありますが、 c 。 I) を用いたネットワーク管理ツールを搭載 ◆ wait4 ( 2 ) の追加により wait3 ( 3 ) などが wait4(2) を 今回は、上に挙けた点について簡単に説明します。な 用いるライプラリになった お、 NEWSDesk および SNMP ネットワーク管理ツー ◆ getdent(2) の追加 ルに関しては次回以降に紹介します。 ◆ exportfs ( 2 ) の仕様変史 リリースの一本化 などによるものです。つまり、 NEWS ー OS 4 . 0 は NEWS-OS 3.4 / 3.91R に対して」「 . 位互換です。 従来 NEWS のオペレーティング・システムは、 CISC 16 UNIX MAGAZINE 1991.3

8. UNIX MAGAZINE 1991年3月号

e $ & 0 ee 0 ce servers) ファイルの編集から始めます。通常、このファ イルには tftp の設定が 2 つ書かれており、そのうちの 1 つがコメントアウトされているはすです。この 2 つの相 違は、 -s/tftpboot がついているか否かで、これがつい ている行が tftpboot 用の設定です。こちらを活かして、 もう 1 つの行をコメントアウトします 1 。 26 分かります。 ェルスクリプトですから、これを読めばどういう動作をしているのかがよく /tftpboot/tftpboot を /tftpboot にリンクしてください。 in. tftpbootd はシ tftpboot として /tftpboot にコピーしておいてください。また、 -s す。 in. tftpbootd のほうが tftpboot の設定です。この場合は、 in. tftpd を 1 /etc/servers ファイルの場合には、 in. tft 図と in. tftpbootd の相違がありま # 1 れ -s Xncd15b 874F874F 135.79 で 16 進数に直すと 874F874F となりますから、 様です ) 。このとき、 X 端末の IP アドレスは 135.79. イルを読み込むことが多いからです ( NCD の場合も同 スを得たマシンはそのアドレスを 16 進数に直したファ ります。これは、 RARP によって自分自身の IP アドレ IP アドレスを 16 進数に直したファイル名でリンクを張 このファイルを /tftpboot に置くのですが、 X 端末の を実行する機能です。詳細はマニュアルを参照してくだ が入ったサーバーです。これは、 X 端末自身でサーバー ルもありますが、こちらはローカル・クライアント機能 バーの本体です。このほかに後ろに一 lt がついたファイ (NCD16e 場合は Xncd16e) がありますが、これがサー れます。その下に Xncd15b という名前のファイル しているので、これとは異なることもあります ) が作成さ Xncd2.2.0 というディレクトリ ( バージョン番号を示 コマンドを使います。コピーしたディレクトリの下に テープの内容をホスト上にコピーするには、一般に tar やっとディストリピューション・テープの出番です。 ティストリビューション・テープ としてください。 # kill ー印卯プロセス旧 で inetd プロセスのプロセス ID を調べ、 ファイルを再度読み込んでもらいます。 ps コマンドなど inetd プロセスに HUP シグナルを送ってコンフィグ・ /etc/inetd. conf ファイルを編集した場合には、 1 0 進数と 1 6 進数 10 進数から 16 進数に変換するとき、私は adb を使っ て次のようにしています。 % adb a$d radix=IO base ten 87 = d %adb 79 = x 135 = x ちなみに 16 進数から 10 進数への変換は、 4f 87 135 とします。また、 bc を使うこともできます。 10 進数から 85 133 obase=16 % bc 16 進数へは、 133 85 ibase=16 % bc と、 16 進数から 10 進数へは次のようにします。 などはリンクを切り替えれは実現できます。 Xncd15b-It というサーバーと切り替えて利用するとき 要ですが、ローカル・クライアント機能の入った Xncd15b というサーバーだけを使うのならリンクは不 Xncd15b という名前のファイルを読み込みます。 このファイルが存在しない場合は、 NCD15b は とします。 次はコンフィグ・ファイルです。 NCD の場合は、 コンフィク・ファイル UNIX MAGAZINE 1991.3

9. UNIX MAGAZINE 1991年3月号

emacs 入門 /( ▽ 図 30 set-comment-column コマンドの実彳デ列 fprinte ( stdout. “ % 9 ・し E233 ヨ g 日 ) : Nincaude く stdio. h> func ( ョ「 gc. argv. message ) : char ••argv 〔 ] : int argc; main(argc.argv) char m 日 55 ョ ge [ ] = ” h2110.30r1d \ n ” : コンパイルしましょ Comment column set tO 4 一Ⅱ E 「 1 ヨ匚 5 : 「 n ヨー . こ ・端末を隣に置いて make する。 グラムをコンバイルしていますか ? Nemacs ユーザーの皆様、ふだん、どのようにしてプロ ・別のウインドウを開いて make する。 Compi1e command: make -k く CR> M-x compile ちょっと簡単な方法を試してみましよう。 でも、せつかく Nemacs を使っているのですからもう すが、 func. c ファイルの 6 行目付近にどうやらヾ文法工ラ す。図 31 は make を実行したときに表示されたエラーで され、そのエラーをデバッグに利用することだってできま も、単に make するだけではなく、エラーもちゃんと表示 cc main. c" のように記述してもかまいません。しか す。コンパイル・コマンドとして、 mäke の代わりに直接 という名前かもしれません ) を使って make が実行されま クトリにある makefile(Makefile や MAKEFILE など を実行してみてください。カレントファイルと同しディレ UNIX MAGAZINE 1991.3 析を開始し、その後で、 と表小してコンパイラが出力したエラー・メッセージの解 parslng error messages . を実行してみましよう。 M—X next—error ー〃があったようです。ここで、 図引 compile コマンドの実彳デ列 Einclude く 3td10. h 〉 char message 〔 ] = "hel 10.30r ld\n main ( argc. argv ) int argc : char ••argv [ ] : eprintf ( stdout. "%s ". message ) : Func ( argc. argv. message ) : cd /home/ara/Doc/Emacs/9102/sample/ make —k —target Sun4 —C func. c CC 一 N E m ヨこ s : m ヨ 1 n . こ Compilation finished at Tue 」ョ n 日 22 : 02 : 17 make : bJarning : Target 、ヨ . out ・ 00t remade because 0 「 errors 物物物 Error code 1 "func. c" 11n2 6 : syntax er 「 or at or near variable name "itn" ー Em ヨこ三 : 十、 un 匸 . C FILE •des: ・ m 日 SS ヨ日 : char sargv [ ] : @tn argc; eunc ( argc. argv. message ) ßinclude "func . h" *include く std ー 0. h 〉 tinclude く 9td10. h > 図 32 next-erroc コマンドの実彳デ列 什他 11e9 need saving) Compil ョ tion finished at Tue Jan 日 22 : 02 : 17 make : Uarning : Target 、ヨ . out ・ not remade because 0 ・ errors 物物物 Error code 1 11 ne 6 : sgntax error at near variable name " Itn ・・ い func. C “ . done ーⅡ巳川ヨ匚 S : “匚ロ川一 1 ヨた 1 ロい - parsing 日「 messages . ーし 0 川 ) ー ] ヨこ】 on : に 1 t ) ー - - bO を - ・ *compilation* ウインドウをスクロールして、最初の 工ラーを 1 行目に表示する。 ・エラーのあったファイル func. c を読み込んでエラー行 へ移動する。 など、デバッグが簡単におこなえるように取り計らってく れました ( 図 32 参照。もちろん、エラーの修正まではして くれませんが ) 。残念ながら ( ! ? ) 図 31 にはエラーが 1 カ所 しかありませんが、エラーが複数あった場合も next- error コマンドを繰り返せば次のエラー行 ( ファイル ) への 移動を繰り返します。 ところで、今のロードモジュールが必要なのに、ちょっ としたタイプミスあるいは気の迷いからコンパイルを実行 してしまったらどうしましよう ? 別の端末を引きすりだ してプロセス番号を調べ・・・・・・なんてことをしていると、間 に合わすに必要なロードモジュールを失ってしまうかもし M-x kill-compiler れません。そんなとき、いちばんいいのは、 125

10. UNIX MAGAZINE 1991年3月号

連載ー / 凵 Language—O 8 ; # + ポートの指定がなければ適当に作る。 10 ; # + クライアントが指定されると、そこからの接続だけを受け付ける。 12 unless ()o 'sys/socket. ph' ) { eval 'sub SOCK-S ・ I'REAM { 1 ; } sub AF-IN€r { 2 ; } sub PF_INET { &AF_INEr; } ' ・ 15 $sockaddr='S n a4 x8' ・ 16 ($name, $aliases , $TCP) = getprotobyname( 'tcp') ; 76 75 } 73 71 70 } 69 shutdown($from, 1 ) ; shutdown($to, 0 ) ; 68 67 65 62 60 59 57 } 56 55 50 48 42 41 39 } 38 33 } 32 31 30 28 26 } 25 24 23 22 21 19 17 14 } 13 11 20 while ($-=$ARGV [ 0 ] , た一 / ) { 18 se1ect(STDERR. ) ; &usage ; if (/-p$/) {$localport=shift Ⅱ &usage; next;} if (/-s$/) {$silent=l ; next;} if (/-d(\d*)$/) {$debug=$l Ⅱ 1 ; next;} shift; 29 sub usage { 27 $clientname = shift ; exit(l) ; print "Usage : $ 0 [-p port] [client] " 37 if ($clientname) { 36 ($name, $aliases , $type, $len, $localaddr) = gethostbyname($localname) ; 35 chop ( $ localn 肥 Chostname' ) ; &dotted($peeraddr) , $ e 。れ ) if ($debug) ; 58 printf STDERR ("Comection established with %s(%d)\n" exit(l) ; printf つ且 "Connection from %s is not allowed! \n" , &dotted($peeraddr) ; if ($clientaddr $peeraddr ne $clientaddr) { 53 ( $ , $ e 。れ , $peeraddr) = unpack($sockaddr, $addr) ; 51 ($addr = accept(NS, S) ) Ⅱ die "accept: $ ! \ Ⅱ " ・ 49 printf STDERR "P1ease connect t0 port=%d\n't $newport ; 47 $ Ⅱ e 。れ = (unpack($sockaddr, getsockname(S))) [ 1 ] ; 46 1isten(), 1 ) Ⅱ die "listen: $ ! \n" 45 bind(), $this) Ⅱ die "bind: $ ! \n" socket(), &PF—INET, &SOCK—STREAM, $TCP) Ⅱ die 'tsocket : $ ! \ Ⅱ " 43 $this = pack($sockaddr, &AF-INrr, $localport, " \ 0 \ 叭 0 \ 0 " ) ; unless $serverport = ~ / 八 d + $ / ; 40 $serverport = (getservbyname($serverport, 'tcp' ) ) [ 2 ] $clientaddr = &getaddr($clientname) Ⅱ die " Un 10m1 client $clientname. \Ⅱ" 63 print STDERR " $ 0 ( $ $ ) : exiting\n" if $debug; 61 &foxvard(NS, SI つ 0 び T) ; 66 sub forvard { 64 exit(0) ; local($from, $to) eval 、 print $to \ $ ー while(read($from, \ $ ー , 4096 ) ) ; 、 72 sub getaddr { た [ 0 ー 9 \. ] + $ / ? pack("C4" , split(/\. / ) ) : (gethostbyname($-)) [ 4 ] ; UNIX MAGAZINE 1991.3 77 sub dotted { join(' . ' , unpack('C4' , shift)) 81