问题:
将参数传递给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中文网其他相关文章!