X MAGAZINE - みる会図書館


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

1. UNIX MAGAZINE 2005年8月号

連載 / Linux のツールたち 私にとってもっとも嬉しかったのは、、、ゲスト OS のサス 機能が追加されています。もちろん、これらも便利ですが、 チボイント・スナップショットやクローンなど、数多くの した。久々のメジャー・バージョンアップとあって、マル について、旧バージョンからの移行作業を中心に紹介しま 今回は、 VMware Workstation 5.0.0 の Windows 版 ☆ ・音量誌定を変更できなくなります。 しよう。こうしておけば、ゲスト OS からホスト OS の 上記のパラメータを仮想マシン構成ファイルに追加しま 削除してもかまいませんが、そこまでするのカⅷ倒なら、 仮想ハードウェアの設定を変更してサウンドデバイスを なります。 アッフ畤に設定された値に変わり、びつくりすることに ト OS を起動すると、音量がサウンドデバイスのセット このため、たとえばホスト OS で音楽を聴きながらゲス して制御しようとします。 ストリビューションでは、サウンドデバイスを自動検出 ったく使っていませんが、 FC3 や SUSE92 などのディ 私はゲスト OS 上では音を鳴らすアプリケーションをま ・ pciSound. enableV01umeControl= ” FALSE ” ペンド / レジュームが速くなった " ことです。もっとも、バ ージョン 4.0.5 まではあまりストレスを感じなかったので、 、、もとに戻った " というほうが正しいのかもしれません。 なお、私の場合はゲスト OS として Linux を使ってい ますが、いまのところ時刻の同期以外の問題は起こってい ません。 VMware の日本語メーリングリスト 10 によると、 ゲスト OS が Windows 2()00/XP の場合には不具合 ( 突 然、プルースクリーンになるなど ) が出ることもあるよう です。ビデオドライバをバージョン 4.5.2 に付属のものに 戻したら改善されたという報告もあるので、これらの OS を利用していて間題がある場合は参考にしてください。 ( よこがき・はやお ) [ 文献 ] [ 1 ] 白崎博生「特集 : VMware workstation 5.0.0 」、 UNIX MAGAZINE 2005 年 6 ~ 7 月号 10 http://forest.ne ・ jp/vmware-j-ml 読者アンケートのお知らせ いつも弊誌をこ愛読いただき、ありがとうこざいます。 今後の企画・編集の参考とするため、読者アンケートを 実施しています。下記の Web ページにアクセスのうえ、必 要事項をこ記入ください ( 締切は 2005 年 8 月 1 7 日です ) 。 皆様からお寄せいただいたこ意見は、責重な資料として 活用させていただきます。 回答をお寄せいただいた皆様のなかから、 5 名様に特製 QUO カード ( 2 , OOO 円ぶん ) をさしあげます ( 応募者多数 の場合は抽選といたします。なお、当選者の発表は発送を もって代えさせていただきます ) 。 今後ともこ愛読のほど、よろしくお願い申し上げます。 UNIX MAGAZINE 編集部 ASCIJ 500 ( テザインは変更されることがあります ) ・ ( 株 ) アスキー UNIX MAGAZINE 読者アンケート専用 IJ 日 L http://mkt.uz.ascii.co.jp/unixmag/ こ注意雑誌公正競争規約の定めにより、この懸賞に当選された方は、本号のほかの懸賞に入選できない場合があります。 * 個人情報の利用目的および取扱いについては、「個人情報の取り扱いに関するポリシー」 (http://www.ascii.co.jp/privacy.html) をご覧ください。 172 UNIX MAGAZINE 2005 . 8

2. UNIX MAGAZINE 2005年8月号

UNIX MAGAZINE の本 プログラミンク・テクニック プログラミング・テクニック アドバンス ・多治見寿和著 ・ B5 判、 240 ページ プログラミング プログラミング ・ ISBN 4-7561-4389- X ・多治見寿和著 テクニック テクニック ・ 1 , 890 円 ( 税込み ) ・ B5 判、 224 ページ UNIX MAGAZINE に アドバンス リ N Ⅸコマンドのソースコードにみる ・ ISBN 4-7561-4566-3 強プロクラミング手法 ・ 1 , 890 円 ( 税込み ) 好評連載中の「プログラ 実第的 UN Ⅸプログラミング 、多渹見第和 ノスコードにみる球玉の手法 ミング・テクニック」を単 UNIX MAGAZINE に 多論第・和 行本化。 好評連載中の「プログラ inetd フリーの UN Ⅸ上で使わ ミング・テクニック」単行 utmp 第物のコマントを第み・わせ . 重第する物物を鋼・す るの学 uN Ⅸの一の 1 つです . 事・では . UNIX ケーツ・ンノーネ 0 ′ ls 上で興第に慶われているコマンドをとりあげ . そのソ 第み・ら . プログラ ! ースコードを・みながらプ 0 グラムの・り立や れている各種プログラム 本化第 2 弾 ーれ 0 ′・第うというの 0 本・の一・ プログラミングに - な工々を・介レまを です . ・い第おを・け。をく の人の学ですこしすっ・、 ssh のソースコードを読みな UN Ⅸ上で実際に使われ されて・た・′フトウ遥′ tau ・の・・いを宿し になるエ・・といっ あります . そこには . プ 0 ているプログラムのソー がら、そこにちりばめられ 和 p 、 rusers 6 telnet た“名匠の技”を学ほう スコードを読みながら、 れ 9. h yacc れ 9. ( SC というのが本書の目的で その成り立ちや数々の技 す。プログラマー必携の 1 冊をせひお手許に 術的工夫を学ぶことで、先人たちの経験に裏打ちされ たプログラミング手法が自然と身につきます。実用的プ マ目次から ログラミングを目指す方は必携の 1 冊。 ソースコードから学ぶ データ構造 2 重リンクリスト 木構造 AVL 木 / 、ツシュ 端末の操作 端末の制御 cat コマンド COLLECTION 00 [ EC す一 ON 0 ASCII ping telnet XStr cmp と cksum man フィルタコマンド 0 コマンド ファイルのロック パスワード・ファイル ワンタイム・パスワード 公開鍵暗号 ssh 構文の解析 lex マ目次から grep flex 情報の収集 ユーザー情報の取得 LAN 上のシステム情報の取得 rwhod rup 、 rusers 旧 v6 対応の te et 回 n の全体構造 リング / ヾッファ 非同期入出力 シグナルの処理 script コマンド (UNIX MAGAZINE 2000 年 4 月号 ~ 2002 年 3 月号より ) (UNIX MAGAZINE 1997 年 1 1 月号 ~ 2000 年 3 月号より ) Linux の プートプロセスをみる ・白崎博生著 ・ B5 判、 200 ページ Linux の ・旧 BN4-7561-4451-9 プトプロセスをみる ・ 2 , 940 円 ( 税込み ) Linux カーネルがプート 白第博生 する仕組みを、コードを メ、一ドウアあ - ℃ト u のメ響ル第 見ながら詳細に解説 積地 2 GP リの -- 第込みと鋼外 0 のレ 0 アクス、 PC ′ AT アー・テケチャ CPU の構造から始まり、 ウロッビーらのプログラムの 0 ード 、セットアップ・ルチン、 - カーネルの - 駅叡 -32 ルーチン し inux のプートローダと 。す 7- 物 0 からカーネルスレッ「の生で カーネルの動作、 init プ ユーサープロセス′ーー、 ロセスの起動までの道筋 カネをテパッ をみていきます。カーネ ルの“敷居”を低くする 1 冊です。 選りすぐり ワ - クステーションのおと ・坂下秀著 選りすぐり ・ B5 判、 176 ページ ワークステーション ・ 1 , 680 円 ( 税込み ) のおと 長年にわたってシステム 第代を題えて生き残る ツイテ今とネットワーク管理のココロ 管理者を務めてきた著者 が、 UN ー X の管理のコツ を伝授。軽妙な語り口の なかから、時代を超えて 生き残るシステムとネット ワーク管理のココロが浮 かび上がってきます。 ・ COLLECTION メ・ COLLECTION 0 ASCII S ロー v 目次から trap_init() 、 init 」 RQ() 、 time_init() 、 ハードウェアの制御 - ー CPU のメモリ管理 mem_init() 32 CPU の保護機能、割込みと例外 「 est 」 nit ( ) からカーネルスレッドの生成まで CPU のレ 0 アクセス、 PC / AT アーキテクチャ init() と do_basic_setup() フロッピーからのプログラムのロード ユーザープロセス / sbin / init の起動 セットアップ・ルーチン、圧縮カーネルの展開 カーネルデバッガ sta up ー 32 ルーチン start_kernel() と setup_arch() 目次から システムとネットワークの管理 ハードウェアの分解 便利な道具 オフィスの引越し い TEX で文章を書く 自宅のシステムとネットワーク環境 株式会社アスキー ・表示価格は消費税込みです。・書店または書籍を扱っている / ヾソコンショップでお買い求めください。 ・品切れの際は、書店でご注文いただくか、通信販売をご利用ください。 ・通信販売のお問合せ先 : アスキーストア電話 ( 03 ) 3499-9300 http://www.ascii-sto「e.com/ 〒 102-8584 東京都千代田区九段北 1 -13-5 日本地所第一ビル 営業局電話 ( 03 ) 6888-5500 http://www.ascii.co.jp/

3. UNIX MAGAZINE 2005年8月号

if (*p e ててⅡ 0 strtol(p + 1 , &q, if (*q INT_MAX & & errno pr 1 = n ; 10 ) ; ASCII 好評発売中 ! プログラミング テクニック アヾンス 00 はに 0 第 ON 的リ N Ⅸプログラミング アドバンス テクニック プログラミング 多見第物 ースコートにみる瑾玉の手法 数値の読取りは、簡単に strtol 関数を使って実現してい ます。 strtol 関数では、第 2 引数にポインタのアドレスを 指定すると、文字列中のどこまでを数値として読み込んだ かを返すことができます。この値を使い、次の if 文では数 値の直後に、、 > " があること、読み込んだ数値が 0 以上で あること、 strtol が失敗していないことなどを検査し、す べてを満たす場合はポインタや pri の値を適宜修正してい ます。 strtol 関数カ敗することもあります。ところが、 strtol 関数の戻り値の型は long 型で、 long 型のすべての値が返 される可能性があるため、戻り値でエラーが発生したこと を通知できません。同じ問題は getchar 関数などでも起こ りますが、 getchar 関数の返す型は char 型なので、それ よりも広いⅲ t 型の関数とすることで、 char 型とは異なる 値を返してエラーを表せます。 しかし strtol の場合には、戻り値がすでに long 型とい う大きな型になっているため、同じ方法を使うわけにはい きません。そこで、エラーが発生したときには errno 変数 を使ってそれを示す方法をとっています。ただしこれにも 注意が必要で、 errno の値カ数では初期化されないことを 忘れてはいけません。ライプラリ関数ではよけいな処理を おこなわない言気になっているので、わざわざ errno 変数 の値をクリアするといった処理はしません。そのため、今 回のように errno 変数の値を使ってエラーが発生している かどうかを調べる場合には、関数呼出しの前に errno 変数 の値をクリアしておく必要があります。 次に、取得した優先順位の値が正しいものであることを 検査します。具体的には、 LOG-FACMASK と LOG- PRIMASK によりマスクされるビット以外のビットが設 定されていないことを確認します。 if (pri & ~ (LOG—FACMASK ー LOG—PRIMASK) ) pri = DEFUPRI ; これらのマスクをはみ出るようなビットカ羸疋されてい UNIX MAGAZINE 2005 . 8 を・み・わす . 第・す、物を・ま 、の学物スの・ - の一つです . ま第では .0 莠 、れを一茎て・第に・わ載ているコマンドをい】第け。そのソ ースつ一ト第み 0 ・るプ 0 タムの・り査ち 0 実第 ) , 0 グラレ 0 に“な用々第介ドを ・多治見寿和著 ・ B5 判、 224 ページ ・ ISBN 4-7561-4566-3 ・ 1 , 890 円 ( 税込み ) UN ー X プログラムのソース コードにみる珠玉の手法 本誌に好評連載中の「プログラミング・ テクニック」単行本化第 2 弾。 UNIX 上で実際に使われているプログラ ムのソースコードを読みながら、その成 り立ちや数々の技術的工夫を学ぶことで、 先人たちの経験に裏打ちされたプログラ ミング手法が自然と身につきます。実用 的プログラミングを目指す方にお薦めの マ目次から g 「 ep ◆利 ex ◆ ps ◆情報の収集◆ユーサー情報の 取得 LAN 上のシステム情報の取得「 whod 「 up 、「 use 「 s ◆旧V6 対応の telnet ◆ telnet の全 体構造◆リングバッファ◆非同期入出力◆シグナ 0 ◆ 電話 (03) 6888 ー 5500 ( 営業局 ) 東京都千代田区九段北ト 1 3-5 日本地所第一ビル 〒 1 02 ー 8584 株式会社アスキー (UNIX MAGAZINE 2000 年 4 月号 ~ 2002 年 3 月号より ) 丿レの処理◆ sc 「 ipt コマンド 105

4. UNIX MAGAZINE 2005年8月号

連載 / 旧 v6 の実装ー 0 図 7 RRDEL 状態で MOVEMENT イベントを受信した場合の処理 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 115 7 1158 1159 1160 1161 1162 1167 1168 1169 1170 1171 1172 case MIP6_BU_PRI_FSM_EVENT_MOVEMENT : * Stop timers, * Stop RR, * Start RR . mip6—bu—stop—timers (mbu) ; mip6—bu—sec—fsm(mbu , error if MIP6_BU_SEC_FSM_EVENT_STOP_RR, data) ; mip6—bu-sec—fsm(mbu, error MIP6_BU_SEC_FSM_EVENT_START_RR , data) ; ( e てて or ) { return (error) ; *mbu—pri—fsm—state break; MIP6_BU_PRI_FSM_STATE_RRINIT ; 図 8 RRDEL 状態で ICMPv6 工ラーメッセージを受信した場合のタ里 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 case MIP6_BU_PRI_FSM_EVENT_ICMP_PARAMPROB : * Stop timers , * Stop RR. mip6-bu—stop—timers (mbu) ; mip6—bu—sec—fsm(mbu, MIP6_BU_SEC_FSM_EVENT_STOP_RR, data) ; if (error) { return (error) ; *mbu—pri—fsm-state = MIP6—BU-PRI-FSM-STATE_IDLE; mbu—>mbu—state ー = MIP6—BU—STATE—DISABLE ; break ; break; みないようにします。 BOUND 状態 1 , 201 ~ 1 , 453 行目は BOUND たの処理です。これ は、移動ノードがホーム・エージェントもしくは固定ノー ドに対して、正しく対応付け情報を登録できている状態を UN 工 X MAGAZINE 2005.8 未します。 1 , 201 ~ 1 , 243 行目 ( 図 9 ) は、 BOUND たで BRR イベント ( 再対応付け要求メッセージの受信 ) が発生した 場合の処理です。対応付け情報の肩効時間の更新は、移動 ノードが定期的に対応付け更新メッセージを送信すること で実現されています。一方、移動ノードと通信しているノ 113

5. UNIX MAGAZINE 2005年8月号

~ ご加護あれー 一ソースの 00 女子デ - モン君の 評ツス探検 デーモン君のソース探検 BSD のソースコードを探る冒険者たちのための手引き書 BSD magazine の人気連載が遂に単行本化 ! ! C 入門者から一歩先へ踏み出したい人に デーモン / ヾパがソースの読み方のコツを教えます ー氷山素子著 A5 判 200 ページ旧 BN4-7561-4415-2 定価 2 , 310 円 ( 税込 ) 企業内研修・引用によるカスタムメイド・ OEM 供給に関してのお問い合わせ先 . 法人営業担当 ( 03 ) 6888-5545 ・表示価格は消費税込みです。・本製品は書店および書籍を扱っているパソコンショップでお買い求めください。・品切れの際は書店にてご注文いただくか、通信販売をご 利用ください。・通信販売のお問い合わせ先 : アスキーストア電話 ( 03 ) 3499-9300 http://www.ascii-store.com/ ・ ASC Ⅱの新刊・イベント情報を毎週お送 りするメールマガジン A - Mail.yom のお申し込みはこちらから http://www.ascii-sto「 8.com/a-mail/ 株式会社アスキー 〒 102-8584 東京都千代田区九段北 1 -13-5 日本地所第一ビル電話 03-6888-5500 http://www.ascii.co.jp/

6. UNIX MAGAZINE 2005年8月号

連載 / 旧 v6 の実装ー 0 図 3 WAITD 状態で UNKNOYVN-MH-TYPE イベントを受信した場合のタ里 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 case MIP6_BU_PRI_FSM_EVENT_UNKNOWN_MH_TYPE : if ( (mbu—>mbu—flags & IP6MU-HOME) ! = 0 ) { / * XXX correct ? * / break; * Stop timers . mip6—bu—stop—timers (mbu) ; *mbu—pri—fsm—state = MlP6—BU—PRI—FSM—STATE_IDLE ; mbu—>mbu—state ー = MIP6—BU—STATE—DISABLE ; break; 図 4 WAITD 状態で MOVEMENT イベントを言した場合のタ里 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1067 1068 1069 1070 1071 1072 1073 1074 1075 case MIP6_BU_PRI_FSM_EVENT_MOVEMENT : if ( (mbu—>mbu—flags & IP6MU—HOME) ! = 0 ) { * Stop timers, * XXX else break; break ; * Reset retrainsmission counter, * Start retransmission timer, * XXX Start failure timer . mip6—bu—stop-timers (mbu) ; mbu—>mbu_retrans_count = 0 ; error = mip6—bu—pri—fsm—home—registration(mbu) ; if (error) { / * continue and try again. * / *mbu—pri—fsm—state MIP6_BU_PRI_FSM_STATE_WAITA ; * Stop timers, * Start RR . mip6—bu—sec—fsm(mbu, error MIP6_BU_SEC_FSM_EVENT_START_RR, data) ; if (error) { *mbu—pri—fsm—state MIP6_BU_PRI_FSM_STATE_RRINIT ; 処理を開始します。 ントリに対する処理です。 1 037 行目の mip6-bu-stop- 1 , 037 ~ 1 , 052 行目はホーム登録用の対応付け更新エ 110 timers() でホーム登金年除に利用されているタイマーを停 止し、 1 041 行目の mip6-bu-pri-fsm-home-registra- tion() でホーム登録のための対応付け更新メッセージを送 UN 工 X MAGAZINE 2005 . 8

7. UNIX MAGAZINE 2005年8月号

20T ー CE 写真 5 Tyan の 8CPU PC 写真 4 Athlon 64 X2 を実装した PC Clevo[4] のノート PC 8-Way Opte 「 0 れ ' " は、発熱量と消費電力をいかに抑えるかでしよう。 写真 7 SATA RAID キット このように、 DIY 市場では躍進が目立つ AMD です が、大手メーカーの PC では依然として lntel が主流 で、両社の激しい競争力吟後も続きそうです。 これまで、性能向上への試みの中心は CPU やグラフ ィック・プロセッサのクロックアップ、演算機能の強 ・トミこ 化にあり、まさにムーアの法則そのものでした。この 流れは、最近では、ン」皸 " にも波及してきたようです。 Gigabyte Technology[5] の「 i-RAM 」 ( 写真 6 ) はバックアッフ。充電池付きのメモリディスク・ボード で、入出力は SATA (SeriaI ATA) 経由でおこなわ れます。つまり、オンポードのシリコンディスクが構 ように思います。 成できるわけです。書き込まれた情報は、何時間かは ACARD TechnoIogy[6] は、「 SATA RAID キッ 保持されます ( 保持時間は現在調整中とのことです ) 。 ト」を展示していました ( 写真 7 ) 。このキットは、カ 今夏にはリリース予定だそうですが、メモリ以外のお ートリッジ方式で SATA ディスクを 4 台内蔵する もな部品は充電池だけなので襾です ( 日本の市場価 RAID ケージ「 ARS -4800 」とコントローラ「 AEC- 格で 1 万円以下の予定 ) 。速度は通常のディスクとく 6898 」から構成されています。車幻医速度は 150MB/s らべて 30 ~ 60 倍とのことなので、 /tmp などにマウ で、 RAID 0 / 1 / 0 十 1 / 5 構成が可能です。前面の扉 ントすれは高速なディスクとして使えるかもしれませ を閉じると、まさしく一・体のディスク装置に見えます。 ん。多量のメインメモリを用いてソフトウェアで実現 コントローラは 64bit-PCI バス形式です。ディスク する方法も考えられますが、キャッシュの乱れやバス 3 台ぶんのスペースに、 SATA の特徴を活かしたホッ ラインの混雑を避け、分散化する点で一日の長がある UNIX MAGAZINE 2005.8 写真 6 i-RAM テスクトッフ試イ P. れ 00 ト れ一 nhi Chil ー 0 をヨ 23

8. UNIX MAGAZINE 2005年8月号

ワークステーションのおとーー 図 2 加寺に表示される警告 201 WARNING: bge0 : 5701-based subsystem 'pci103c, 128a ' not supported bgeO: BCM579x driver vO .44 : type "ether" mac address 00 : 03 :ba: 12 : c3:4d うなのに認識されなかったカードの場合、同様なことをす れは動く可能性カ皜いと考えられます。 それでは、この ID はどのようにして取得すればいいの でしようか。手近に L ⅲ ux マシンがあれば、カードを装着 してから lspci コマンドを実行してみれば分かります。あ るいは、 Windows XP か勠いているマシンでも確認でき ます。 Windows のデバイス・マネージャーで、そのデバ イスのプロバティを選び、、、詳細 " タブを開きます。ドロッ プダウン・リストで、、デバイスインスタンス ID" を選ぶと、 次のように表示されるはずです。 PCIWEN_14e4&DEV_1645&SUBSYS_103c128a& ・・ 謎めいた文字が並んでいますが、これらのうち、 VEN- と DEV ーに続いて書かれている値を /etc/driver-alias フ ァイルに言杢します。 さて、これで大丈夫かというと、すこし気になる点があ りました。起動時に、図 2 のようなメッセージカ俵示され るのです。 しかし、この問題は簡単に解決できました。 4 月号で触 れた /platform/sun4u/kernel/drv/bge. conf ファイル の bge-known-subsystems に、図 2 のメッセージにある 、、 103C128a " という数値を追加するだけです。 これは、次のように言当すればよいでしよう ( 下線部を /opt/sfw/bin/sudo に注意 ふだん、私はシステムの設疋作業をおこなうときに sudo コマンドを利用しているので、 Solaris 10 でも使えるよう にしましよう。 Solaris 10 の Companion CD をインストールすれ ば、 sudo はすでに入っているはすです。ただし、利用する には、 /opt/sfw/etc/sudoers で設疋をおこなう必要があ ります。 さて、定を終えて実行してみると・・ $ /opt/sfw/bin/sudo sudo : must be setuid root 「あれ ? 」 ちょっと変です。 / 叩 t/sfw/bin/sudo の権限を調べる と、 $ cd /opt/sfw/bin $ ls ー 1 . /sudo —x——x——x 1 root sudO となっています。なぜかは分かりませんが、 setuid ビット カ第又疋されていません。そこで、 追加 ) 。 bge—known—subsystems $ su # cd /opt/sfw/bin # chmod u + s . /sudo # 1s ー 1 sudo —S——X——X 1 root # exit $ /opt/sfw/bin/sudo Password : root sudo 0X108e1647 , 0X108e1648 , 0X1028865d , 0X0e11005a , 0X103C12bC , 0X103C128a ; この、 103C128a " は、 Windows のデノヾイス・マネージ ャーで表示させたとき、、、 SUBSYS ー " の次に表示されてい たものと同じです。 ここで紹介した方法は、 bge ドライバ以外にも応用でき るかもしれません。正常に動いているカードと同じチップ を使っているのに、認識されないものがあったら、試して みてはどうでしようか。 UNIX MAGAZINE 2005.8 としたら、 ( 当り前ですが ) 使えるようになりました。 その後、マニュアルやいくつかの Web サイトで調べた ところでは、セキュリティに注意する必要があるため、初 期た態では sudo の実行ファイルに setuid ビットを設疋 していないようです。 ( さかした・しゅう Acutus Software) 145

9. UNIX MAGAZINE 2005年8月号

39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 連載 / Pe 日活用のヒント End 工 f dstfile . WriteLine(matches . Item(O) . SubMatches . Item(O) ) If matches . count > 0 Then Set matches re . Execute(Iine) srcfile . ReadLine line Do Unti1 srcfile . AtEndOfStream Dim 1ine , matches re . Pattern Set re = New RegExp End Function "wrote ” & dstfname & chr(10) srcfile . C10se dstfile . C10se LOOP 0 Ⅱ Error GoTo 0 End If Exit Function Set dialog = CreateObject ("UserAccounts . CommonDia10g") Dim dialog ReDim srcpaths ( 0 ) 工 f args . Count = 0 Then Dim srcpaths() Set args = WScript . Arguments Dim args "SMIL Fi1eI* . smil" dialog. Fi1ter If dialog. ShowOpen Then srcpaths ( 0 ) = dialog. Fi1eName WScript . Ech0("Fi1e is not specified. WScript . Quit End 工 f E1se E1se msg = msg & convert (i) Each i in srcpaths msg Next srcpaths(i) = args . ltem(i) For i = 0 TO args . Count ー 1 Dim ReDim srcpaths (args . Count ー 1 ) For Dim End If Dim sh Next Aborting ・ Set sh = WScript . CreateObject ("WScript . S 五 e11 " ) Dim ret sh. Popup (msg , ret 2 "smai121st" UNIX MAGAZINE 2005 . 8 135

10. UNIX MAGAZINE 2005年8月号

図 24 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1715 1716 1717 1718 1719 1720 1721 172 2 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1750 1751 1752 124 連載 / 旧 v6 の実装ー 0 WAITC 状態での状蒐豊勢里 switch (event) { case MIP6_BU_SEC_FSM_STATE_WAITC : return (error) ; if (error) { data) ; MIP6_BU_PRI_FSM_EVENT_RR_DONE , error mip6—bu—pri—fsm(mbu , mip6-bu—stop-timers(mbu) ; sizeof(ip6mc—>ip6mhct—keygen8) ) ; bcopy (ip6mc—>ip6mhct—keygen8 , mbu—>mbu—careof—token , htons (ip6mc—>ip6mhct-nonce—index) ; mbu—>mbu_careof_nonce_index * RR done . * Stop timers , * Store token and nonce index , MIP6_BU_SEC_FSM_EVENT_COT : *mbu_sec_fsm_state break; MIP6_BU_SEC_FSM_STATE_START ; case MIP6_BU_SEC_FSM_EVENT_STOP_RR : * Stop timers . mip6—bu-stop-timers (mbu) ; *mbu_sec_fsm_state = MIP6_BU_SEC_FSM_STATE_START ; break ; MIP6_BU_SEC_FSM_EVENT_RETRANS_TIMER : * Send CoTI , * retransm1SS1011 timer . if (mip6—bu-send-coti(mbu) ! = 0 ) break ; mbu—>mbu_retrans mono_time . tv_sec + MIP6_HOT_TIMEOUT; *mbu_sec_fsm_state break ; break ; return ( 0 ) ; = MIP6_BU_SEC_FSM_STATE_WAITC ; UNIX MAGAZINE 2005 . 8