我已经读过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?
不要改变实际的论点;下一个出现的人可能会期望他们处于原始状态.