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

C/C では `argv[0]` には常に実行可能ファイルの名前が含まれますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-09 01:57:15979ブラウズ

Does `argv[0]` Always Contain the Executable's Name in C/C  ?

「argv[0] = 実行可能ファイルの名前」の規則

質問:

引数をC または C プログラムの main 関数では、argv[0] には常に実行可能ファイルの名前が含まれますか?それともこれは、すべての場合に当てはまらない単なる一般的な慣行でしょうか?

回答:

ISO C11 標準によると:

場合argc の値がゼロより大きい、argv[0] が指す文字列 プログラム名を表します。プログラム名がホスト環境から利用できない場合、argv0 は null 文字になります。

したがって、argv[0] が実行可能ファイルの正確な名前を表すことが常に保証されるわけではありません。むしろ、これはホスト環境によって提供される実装定義の値であり、必ずしも実行可能ファイルのファイル名であるとは限りません。

ISO C 標準ではさらに、argc が 0 より大きい場合、配列メンバー argv[ 0] から argv[argc-1] には、プログラムの開始前にホスト環境によって決定される実装定義の値を持つ文字列へのポインタが含まれます。

これは意味します。 argv[0] の値は標準によって明示的に指定されていないため、プラットフォームやオペレーティング システムごとに動作が異なることが考慮されています。

以上がC/C では `argv[0]` には常に実行可能ファイルの名前が含まれますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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