argv[0] は実行可能ファイル名であることが保証されていますか?
C または C アプリケーションを使用する場合、多くの場合、 main() に渡される最初の引数 (argv[0]) は、実行可能ファイルの名前を表します。ただし、この仮定が常に当てはまるとは限りません。
規格の定義
ISO C11 標準によると、
「argc の値がargv[0] がゼロより大きい場合、argv0 はプログラム名を表します。プログラム名はホスト環境から利用できません。"
このステートメントは、名前がホスト環境から利用できる場合にのみ argv[0] にプログラム名を含めるべきであることを明確にしています。さらに、それは完全一致ではなく、表現である可能性があります。
実装定義の値
標準ではさらに、argv[0] の値は次のように規定されています。実装定義。これは、オペレーティング システムや環境が異なると、argv[0] の生成が異なる方法で処理される可能性があることを意味します。
たとえば、UNIX ベースのシステムでは、exec ファミリの呼び出しで argv[0] に任意の値を割り当てることができます。ただし、標準では、実装がこの動作を文書化する必要があります。
結論
したがって、argv[0] に実行可能ファイル名を含めるのが一般的な規則ですが、これは C または C 標準では保証されていません。実装では、argv[0] の動作が文書化されている限り、argv[0] の内容が変更される可能性があります。
以上がargv[0] は常に C/C の実行可能ファイル名ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。