c - 在 C 中访问可选参数,两个参数合二为一

标签 c shell args

我需要访问 [pid[value]] ,但我什至不确定这个符号是什么意思。

我知道如何使用 **args获取给我的程序的参数。如果我有 [pid][value] ,我能做到args[1]对于 pidargs[2]对于 value , 但如果我有 [pid[value]] , 我不知道。如何访问这两个参数?

最佳答案

可选参数只有在您有合理的默认值时才有意义。假设您这样做,请确定最常需要的那个,并将其设为第一个。

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] ;
    }

只有当你有一组非常有限的参数(你这样做)或者你经常使用它时,才真正使用位置可选参数,输入标志或参数名称是不值得的。

精通命令行解析是个好主意。这是一件事, future 不会有太大变化。

关于c - 在 C 中访问可选参数,两个参数合二为一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19939195/

相关文章:

c - 在 C 中附加输出文件

java - 使用 Firefox 插件获取特定参数

linux - 如何使用 grep 排除多个模式

bash - 在 bash if 语句中使用通配符

linux - 使用 shell 命令比较 ZIP 文件和目录

java - 如何通过命令行/批处理 Args[] 将所有类型的 SQL 查询传递到 Java 中?

python-3.x - 是否可以采用这种使用字典来查找/评估许多函数之一及其相应参数的方法?

c - free() 释放的内存中的数据会怎样?

Cygwin-尝试用C语言运行DOS命令

c - 无法让 fgets() 和 strcat() 以所需的方式运行