0

これは切り株です。ユーザーがいくつかのコマンドを実行できるようにするシェルプログラムをCで作成しました。これまでの私の調査によると、「ls」や「cat」などのすべてのコマンドは「/bin/」にあります。

「wc」はこのディレクトリにリストされていません-「/bin」。ターミナルを起動すると、「wcfileName」と入力できます。「/」ディレクトリから「find.wc」を実行しましたが、「wc」コマンドが見つかりません。

「wc」がどこに隠れているか知っている人はいますか?

4

4 に答える 4

6

シェルに入力which wcしてみてください...それがどこにあるかを教えてくれるはずです。

私のマシンで、それはにあり/bin/ます。

ただし、パスの解決を単独で実行したい場合は、system()関数を使用できます(詳細についてはを参照man 3 systemしてください)。ドキュメントで読むことができるように、これはパス解決のためにBourneシェル(またはそのシンボリックリンクが指す場所)を呼び出すのと実際には同じです。したがって、そのオーバーヘッドが必要ない場合は、どの方法でも使用する必要があります。現在使用しています。

于 2010-10-12T00:20:41.347 に答える
1

試しwhereis wcてみました/usr/bin/wc

于 2010-10-12T00:22:10.240 に答える
0

個々のユーティリティがどこにあるかを心配したくないが、呼び出しsystemに伴うオーバーヘッドを避けたい場合は、中間レベルの関数execvpまたはその友人の1つ(このページにもリストされています)を試してください。悲しいことに、ありませんexecvpe

于 2010-10-12T00:43:35.983 に答える
0

使用しているシェルに応じて、、、またはexecパス内の任意のプログラムを検索whenceできwhichます。whereis

のようなユーティリティwcは通常、/binまたは、または/usr/binのような場所にあります。/usr/local/bin/usr/site/bin

于 2010-10-12T01:11:55.190 に答える