index_html
shell を作ってみよう(ver.1).
exsh-1
以下の順序で exsh-1 (Exercise shell ver.1) を作成し、実行結果を記録せよ.1. execlp() によるサブコマンドの起動.
- サブコマンド "ls" を execlp() により起動する.
- Makefileを作成する.
- Makefile に不要なファイルと生成物を削除するためのエントリ clean を追加する.
- コマンド名を標準入力から入力できるようにする. echo, date, ls, pwd の実行を確認すること.
- プロンプト "> " を出力する.
- コマンドの起動に失敗した場合に perror() を用いてメッセージを出力する.
2. fork()を用いた,サブコマンドの繰り返し起動.
- プロンプトの出力,コマンド入力,コマンドの起動を永久に繰り返すようにする. fork() を用いてサブプロセスを生成し,execlp() によってコマンドを起動すること.
- debug write 用オプション "-d" を用意し,デバッグ情報を出力する. fork() の戻り値などを出力すること.
3. 発展.
- "exit" を入力することにより終了する機能を追加する.
- 空入力では何もせず,次のプロンプトを出力すること.
- 以下のように起動した場合どのような問題が起きるか? 問題が起きた場合は
feof()を用いて対処せよ.
% echo ls | ./exsh-1
- 上記のように起動した場合,一般のシェルでは,プロンプトを出さずに終了す る.isatty() を用いてこれを実現せよ.