首頁 > 後端開發 > C++ > `argv[0]` 是否始終包含 C/C 中可執行檔的名稱?

`argv[0]` 是否始終包含 C/C 中可執行檔的名稱?

Barbara Streisand
發布: 2024-12-09 01:57:15
原創
983 人瀏覽過

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

「argv[0] = 執行檔名稱」的約定

問題:

將參數傳遞給CC或C 程式中的main 函數,argv[0] 是否始終包含可執行檔的名稱?或者這只是一種常見做法,可能並不適用於所有情況?

答案:

根據ISO C11 標準:

如果argc 的值大於零,即argv[0] 指向的字串 代表程式名稱;如果程式名稱在主機環境中不可用,則argv0 應為空字元。

因此,並非總是保證 argv[0] 將代表可執行檔的確切名稱。相反,它是由主機環境提供的實作定義的值,不一定是可執行檔的檔名。

ISO C 標準進一步規定,如果argc 大於零,則數組成員argv[ 0] 到argv[argc-1] 將包含指向字串的指針,這些字串具有由程式啟動前主機環境決定的實作定義值。

這表示標準未明確指定 argv[0],允許不同平台和作業系統之間的行為變化。

以上是`argv[0]` 是否始終包含 C/C 中可執行檔的名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板