我读过 argv
的第一个数组成员将始终是程序名称。
坚持下去有用吗?我正在学习,所以如果这是一个愚蠢的问题,请原谅我。
人们是否曾经因为第一个成员无用而取消移位(并将 argv
重置为少一个?),或者将其留在那里最佳实践是因为人们期望它永远存在(并且对于它开箱即用 argc
) ?
最佳答案
I've read the first array member of argv will always be the program name.
它应该是。 C 和 C++ 都要求如果 argc
大于零,则 argv[0]
应该是程序名称或空字符串。
有些系统不一定在所有情况下都遵循此约定(例如,在 Windows 上,您可以使用 CreateProcess
来创建一个新进程,而不是在命令行参数中传递程序名称用于填充 argc
和 argv
)。
Is it ever useful to hang on to this?
当然。例如,如果你想生成你自己的另一个实例,或者你想打印你的程序名称(例如在使用说明中)。
Do people ever unshift the first member because it is useless, or is leaving it there best practice?
不要改变实参;下一个出现的人可能会期望他们保持原来的状态。
关于c - 在 C 命令行程序中处理 `argv`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3445457/