- 384 名前: ◆QZaw55cn4c [2010/01/31(日) 15:41:15 ]
- [1] 自主課題:前スレ pc12.2ch.net/test/read.cgi/tech/1260532772/776 関連
[2] パイプ機能(prog1|prog2|prog3) を有するシェルを作成せよ。 [3.1] WindowsXP/cygwin または Linux(Vine linux 4.2) [3.2] gcc3 [3.3] C [4] 特になし 前スレ pc12.2ch.net/test/read.cgi/tech/1260532772/776 を解こうとして挫折しました。 なにとぞ、お手本のプログラムを示していただきたく、お願いいたします。 私のほうでは、 まず、pipe() -> fork() ->read()/write()またはgetchar()/printf() の流れでチャイルドプロセスの鎖の間をパイプでつなごうとしましたがうまくいきません。 プログラムは codepad.org/lkCrVtuo です。 #define LOWLEVEL ではパイプが頭からお尻までつながって、 read()/write() 低水準入出力てデータが渡り、最後にプロンプトが表示されます。 ところが、 /* #define LOWLEVEL */ とコメントアウトした場合、FILE stdin, stdout でデータの読み書きを行うのですが、EOF を検出できず チャイルドプロセスがロックしてしまいます。 ヒントでもかまいませんので、この種のプログラムのやりかたをどうか教えていただきたくよろしくお願いいたします。
|

|