私はCで独自のシェルを作成しています。ユーザーの現在のディレクトリを表示し、フルパスに基づいてコマンドを実行し(execvを使用する必要があります)、ユーザーがcdでディレクトリを変更できるようにする必要があります。
これは宿題です。先生は私たちにCの基本的な入門書と、プログラムがどのように機能するかについての非常に簡単な骨組みだけを教えてくれました。私は簡単に諦める人ではないので、これを行う方法を3日間研究してきましたが、今は困惑しています。
これは私がこれまでに持っているものです:
- ユーザーのユーザー名、コンピューター名、および現在のディレクトリ(デフォルトはホームディレクトリ)を表示します。
- ユーザーに入力を求め、入力を取得します
- ユーザーの入力を「」で引数の配列に分割します
- 環境変数PATHを「:」でトークンの配列に分割します
ここから先に進む方法がわかりません。execvコマンドを使用する必要があることはわかっていますが、Googleでの調査では、理解できる例は実際には見つかりませんでした。たとえば、コマンドがbin / lsの場合、execvはホームディレクトリからすべてのファイル/フォルダを表示することをどのようにして知るのでしょうか。ディレクトリを変更したことをシステムに伝えるにはどうすればよいですか?
私はこのサイトをたくさん使ってきました。http://linuxgazette.net/111/ramankutty.htmlですが、やはり困惑しています。
ご協力いただきありがとうございます。既存のコードの一部を投稿する必要があるかどうかを教えてください。ただし、それが必要かどうかはわかりません。