which
コマンドのように機能する POSIX 関数はありますか? つまり、コマンド名を渡すと、$PATH
その名前の実行可能ファイルが検索され、コマンドがあれば絶対パスが返されます。
foo
より長い説明: 私の POSIX-C アプリケーションは、プロセスがまたはと呼ばれる可能性のあるサブプロセスを起動したいと考えていますbar
。私が持っていた最初のアイデアは次のようなものでした(子供の が必要であることを無視してstdin/stdout/stderr
):
system("which foo && foo || which bar && bar");
この一般的なアプローチは好きではありません。これは、プロセス呼び出しに関するすべてのエラーを子プロセスの終了コードとstdout/stderr
(アプリケーションでバイナリ ストリームとして必要です!) に押し込むためです。
そのため、または実行可能ファイルwhich
を見つけるために、アプリケーション コードでの動作を複製する必要があるようです。適切な POSIX 関数はありますか、それともコード スニペットもありますか?foo
bar