c - 在 C 命令行程序中处理 `argv`

标签 c command-line-arguments

我读过 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 来创建一个新进程,而不是在命令行参数中传递程序名称用于填充 argcargv)。

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/

相关文章:

c - 删除链表中M个节点后的N个节点

java - 使用命令行参数输入计算 BMI

ruby-on-rails - Rails 生成模型,包括验证?

windows - JSFL:FLfile.runCommandLine & 正确转义 Windows 命令行参数的空格

assembly - 如何读取汇编语言中的命令行参数?

c - 动态 C 字符串 (char*) 奇怪的行为

c - 4096 个 float 和 2 个选项哪个是最好的方法,为什么?

objective-c - 组合多个 y = mx + b 方程的最有效方法是什么?

c - 我想知道如果缺少某些字段,如何存储来自分号分隔文本的输入

c - 在 C/C++ 中处理命令行标志