12

C 標準ライブラリは、関数systemを提供popenし、コマンドを実行します。しかし、コマンドが存在するかどうかを検出するポータブルな方法はありますか?

4

4 に答える 4

5

いいえ、そのための標準 C 関数はありません。

Unix のみの解決策は、分割(コロン)getenv("PATH")し、ディレクトリ内で:実行可能なコマンド (関数を含む) を見つけようとすることです。stat

于 2009-05-21T00:30:25.873 に答える
5

これを行うための完全に移植可能な方法はないと思いますが (一部のシステムはコマンド インタープリターをサポートしていません)、system()コマンドの実行中にエラーが発生しなかった場合は 0 を返します。コマンドを実行してから、システムの戻り値を確認するだけでよいと思います。

コマンド インタープリターが使用可能かどうかを確認するには、呼び出しsystem( NULL )てゼロ以外の値を確認します。

于 2009-05-21T01:04:18.987 に答える