シェルのいくつかのコマンドの機能(UNIX)をC言語で書くにはどうしたらいいですか?例:exit関数のソースコードは何ですか?どのようにしてC言語でその関数を書くことができますか?シェルコマンドのソースコード
または
たとえば、 exitコマンド:シェルを終了するexitコマンドを実装します。
と同様にpwdコマンドの場合:ユーザーの現在の作業ディレクトリを表示するpwdコマンドを実装します(この方法は/リンク/ブックから取ることができます)。
シェルのいくつかのコマンドの機能(UNIX)をC言語で書くにはどうしたらいいですか?例:exit関数のソースコードは何ですか?どのようにしてC言語でその関数を書くことができますか?シェルコマンドのソースコード
または
たとえば、 exitコマンド:シェルを終了するexitコマンドを実装します。
と同様にpwdコマンドの場合:ユーザーの現在の作業ディレクトリを表示するpwdコマンドを実装します(この方法は/リンク/ブックから取ることができます)。
ソースコードが必要な場合は、ページで見つけることができます。
プログラム内からシェルを終了する方法を尋ねる場合は、exit
コマンドラインコマンドはbashビルトインで、/bin/exit
はありません。適切なPIDを見つけてそれを殺さなければなりません。 exit
ビルトインはおそらく何らかのクリーンアップを実行した後、exit(int)
を使用します。
シェル組み込み関数のソースコードを使用する場合は、bash sourceを参照してください。
多くのシェルはオープンソースまたはフリーソフトウェアであるため、ダウンロードしてソースコードを調べることができます。簡単な例では、より複雑な例は、(シェルのexit
builtinから呼び出さ)exit
機能がGNU libcの内側に、それは(atexitなどにより、例えば。)登録したハンドラを実行しているzsh
で、sashあり、その後_exitシステムを呼び出しますコール。
system callsは主に、私は強く、例えばのように、オペレーティング・システム上で良い教科書を読んでお勧めします、そのソースコードkernel.org
にあるlinux kernelによって処理されます最新のオペレーティングシステム Andrew Tanenbaum著オペレーティングシステムの理解 by Ann McHoes &、Ida M. Flynn。
また、良いPosix/Unixプログラミングブックを読むことをお勧めします。 Rochkindによって&スティーブンス遅い
あなたはどの教科書を読むのが好きでしょうか? exit、pwd、lsなどのC言語でSHELL(UNIX)のコマンドをいくつか実装したいと思っています。 –
編集した答えで参考にしました。そして、私があなたに与えたすべてのリンクに従うことを本当に勧めます。最後に、なぜこの質問をしているのか分かりません。あなたは家の仕事として小さなシェルをコーディングしていますか? –
はい;タスクは、小さなシェルを作成することです!わずか数日が残っています!ほとんど一週間。これらのすべてを行う適切な考えを得ることができませんでした。最初のステップは、これらのコマンドを実行し、入力を取得するコードを書くことです。 –
「exit」は必ずシェルビルトインです。 –