[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 05/09 16:30 / Filesize : 142 KB / Number-of Response : 667
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

UNIXプログラミング質問すれ Part8



227 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 14:05:54 ]
今、『OS自作入門』を読んでる途中で、ちょっと興味があるので実験してみました。
書いたコードは、ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2397.txt です。
このコードは次のことを行います。
・親プロセスがpipeを二つ作る
・lsの結果をmycat(自作)を二回通す
・起動するアプリは、パイプでつなげながらfork-exec

ここで質問なんですが、
・一番最後のclose(fd[0][1])を実行しないと、子プロセスが終了しないのですが、
 それはなぜでしょうか?
・なんか、もっと簡単にできないでしょうか。
 今の方針だと、n個のプロセスを起動する場合は、n-1個のpipeが必要で、
 それぞれfork後、関係ないpipeを全部closeしなければなりません。

なお、maycat.cは以下です。
#include <unistd.h>
int main()
{
char buf[1];
while (read(0, buf, 1) > 0) {
write(1, buf, 1);
}
return 0;
}






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<142KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef