勉強する必要が出てきたのでこれまた勉強中。
先日はサーバーの動きを見たが、マルチプロセスが
微妙に理解できてないので余裕ができたらそれを
今日は残りで調べるつもり。
同日 18:14
本を読む速度がありえねぇ事になってるのに驚く。
いくら入門書とはいえ、200ページ以上が
30分そこらで終わるのには驚愕した。
何事も、分かりにくい部分がなければ脳内で
直結するもんだなとしみじみ感じるのであった。
javaはライブラリ、サブクラス、スーパークラス、
インターフェース、アプレットを残して
本を読むのをちょっと休憩する。
同日 19:30
JAVA入門読破。インターフェースによる多重継承、
ファイル入出力や、Thread、Runnable、アプレット等、
C言語に比べれば非常に楽な感じでした。
やはり、クラスのライブラリや関数が最初から
ある程度簡略化されてるからこそ、とっつきやすい。
コンストラクタやメモリの確保もnewで終わるし、
おそらくプログラマ初心者はCよりJAVAから
先にやるといいと思える程、丁寧で分かりやすかった。
では、マルチプロセスについて調べるか・・・。
資料として一番よさげなのはこちらかな。
http://www.fides.dti.ne.jp/~tokai/vc/vcchips1.html・ パイプでプロセス間通信の基本 という題目の箇所。
プロセスはタスクマネージャのプロセスを見れば
という意見があって、成る程確かにマルチじゃねーか
と妙に納得した。exe同士が会話するのに
パイプを繋ぐ必要があって、それがややこしい。
定数からまずは理解せんとな・・・。
同日 21:06
パイプは親プロセスと子プロセスを繋ぐが、
stdin,stdout,stderrの3つの情報をやり取りする
必要があるのと、親→子と子→親で継承してはいけない
パイプハンドルが存在するのでそれは複製する。
(ちょっと理解不足)
パイプの設定が終わったら、実際に実行するプロセス
をGetEnvironmentVariable関数を用いて
環境変数からフルパスで取得し、CreateProcess。
プロセスが終了=やり取りを終えたかを確認する為に
WaitForSingleObject関数を使い、子から返された
結果をReadFileして表示すれば完了。という流れ。
環境変数から取得とは粋な技だこと。