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