2006年06月02日

UNIXとC

課題関連は分けようと思ったので
自分用メモとして

forkとpipeで「./a.out logfile command arg1 ...」としたとき
標準入力を保存しておいて「command arg1 ...」を実行するプログラム

親:標準入力を子へ送ると同時にファイルへ保存
子:execでcommand以降を実行

作ったものの、実行例の
「./kadai3 stdin_log more -10 < /usr/include/stdio.h」
で10行出た後にqを押すと
パイプ破壊というエラーが出る

パイプ破壊:
パイプの出口が閉じているのに、入り口からデータ送ってるのでエラー

標準入力はwhileで回して子に送っている
qを押して子が終了した後も入力を送るためにエラーになってるぽい
→子が終了したか感知してループ条件に入れる?
 →でもどうやって子の状態を知るんだろう
readとwriteを交互にやるのがマズイ?
一度入力を全部出してからexecとかできないだろうか
いっそ親と子の役割を逆転させるというのはどうだろう

まぁ、提出は2週間先だからまだいいか
他のグループが先に提出するからそれを待つのも手
posted by mitra at 16:04| Comment(0) | TrackBack(0) | 勉強 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。