我需要访问[pid[value]]
,但我不确定符号的含义是什么。
我知道如何使用**args
来获取我的程序的参数。如果我有[pid][value]
,我可以为args[1]
pid
和args[2]
value
,但如果我有[pid[value]]
,我就不会知道。我如何访问这两个参数?
答案 0 :(得分:1)
该表示法通常表示pid
和value
都是可选参数,只有在首次指定value
时才允许进一步pid
。因此,可以使用零参数,一个参数(因此args[1]
是PID)调用您的程序,或者两个参数(args[1]
仍然是PID,args[2]
是新优先级。< / p>
答案 1 :(得分:1)
只有合理的默认值时,可选参数才有意义。假设你这样做,决定最常需要哪一个并将其作为第一个。
char *pid ;
char *value ;
if (argc < 1) {
value = VALUE_DEFAULT ;
pid = PID_DEFAULT ;
}
else if (argc < 2) {
value = VALUE_DEFAULT ;
pid = argv[1] ;
}
else if (argc < 3) {
value = argv[1] ;
pid = argv[2] ;
}
位置可选参数真的只有在你有一组非常有限的参数(你这样做)或你使用它时才有效,所以经常输入标志或参数名称是不值得的。
熟练掌握命令行解析是个好主意。这是将来不会发生太大变化的一件事。