ホームページ >バックエンド開発 >C++ >argv[0] は常に C/C の実行可能ファイル名ですか?

argv[0] は常に C/C の実行可能ファイル名ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-14 12:23:11840ブラウズ

Is argv[0] Always the Executable Name in C/C  ?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。