これは、私のオペレーティングシステムクラスの宿題の説明からの抜粋です。太字の部分は私には理解できない部分であり、今は教授に連絡することもできません。今夜から始めたいと思います。私は環境変数が何であるかを知っています、私は推測します...シェルで宣言された変数だけですよね?しかし、特に太字の線はどういう意味ですか?
ユーザーがコマンドを実行する対話型シェルを実装するCプログラムを作成します。
このプログラムをmyshellと呼びます(したがって、gcc -o myshell -Wallなどを使用してコンパイルします)。
ユーザーにコマンドの入力を繰り返し求める無限ループを作成します(以下の出力と入力の例を参照)。
ユーザーが入力したコマンドを実行する前に、環境変数THEPATHで指定されたパスを使用してコマンドを見つける必要があります(PATHは使用しないでください)。デフォルトでは、THEPATH変数は設定されていないため、テストでは、この変数を手動で設定(および設定解除)する必要があります(以下の詳細を参照)。THEPATHが見つかった場合、プログラムはfork()およびexec()システムコールの1つを介して子プロセスでコマンドを実行する必要があります。
THEPATHを取得して解析するには、getenv()関数とstrtok()またはstrsep()関数の使用を検討してください。