首页 > 后端开发 > C++ > `argv[0]` 是否始终包含 C/C 中可执行文件的名称?

`argv[0]` 是否始终包含 C/C 中可执行文件的名称?

Barbara Streisand
发布: 2024-12-09 01:57:15
原创
982 人浏览过

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 应为空字符。

因此,并不总是保证 argv[0] 将代表可执行文件的确切名称。相反,它是由主机环境提供的实现定义的值,不一定是可执行文件的文件名。

ISO C 标准进一步规定,如果 argc 大于零,则数组成员 argv[ 0] 到 argv[argc-1] 将包含指向字符串的指针,这些字符串具有由程序启动前主机环境确定的实现定义值。

这意味着标准未明确指定 argv[0],允许不同平台和操作系统之间的行为变化。

以上是`argv[0]` 是否始终包含 C/C 中可执行文件的名称?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板