C/C++の宿題を片付けます 106代目
■ このスレッドは過去ログ倉庫に格納されています
0115デフォルトの名無しさん
2008/05/06(火) 03:12:10[2] 問題文: 親プロセスと子プロセスをつくり読み込みと書き込みを並行処理する。
親プロセスはfork()とexecl()を使い子プロセスを作成する。
その後親プロセスはキーボードから文章1行ずつを読み取り、一時ファイルに書き込む。
この読み込みと書き込みはユーザーがquitと入力するまで行われる。
子プロセスは一時ファイルから文章を1行ずつ読み取り、出力ファイルに書き込む。
親プロセスと子プロセスはシグナルを使いは並行処理を行う。
親プロセスは文章を1行一時ファイルに書き込むごとに子プロセスにSIGUSR1を送る。
また、親プロセスは入出力が終了した際にSIGUSR2を子プロセスに送る。
子プロセスは、出力ファイルを作成後、SIGUSR1を受け取るまで待機し、受け取り次第一時ファイルから出力ファイルに一行書き込む。
また、書き込みが行われている間はSIGUSR1とSIGUSR2をブロックする。
子プロセスはSIGUSR2を受け取ると終了する。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6439.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 2008年5月6日まで
[5] その他の制限:sigprockmask()sigsuspend()sigaction()などを使い、
シグナルを受け取るまで待機やシグナルのブロックをしなければなりません。
どうしても子プロセスのSIGUSR1を受け取るまで待機し、SIGUSR1を受け取るごとに入出力するという所がわかりません。
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています