我正在开发一个使用 Rsync 的应用程序。 我在 rsync 代码中添加了一个 HTTP 选项,例如“-v”表示“--verbose”。
但现在我想选择接受参数。 对于 options.c 文件中的那个,我在结构数组中添加了条目,
static struct poptOption long_options[] = {
/* longName, shortName, argInfo, argPtr, value, descrip, argDesc */
{"xxxx", 'x', xxxxxxx, x, xxxxx, x, x},
{"https", 'N', POPT_ARG_VAL, &https_port, 0, 0, 0}}
这里我提供的值应该在变量 https_port
中。但是我得到的错误是
Rsync: -N=1234: option does not take an argument
我需要做更多更改以使 N 选项接受参数。
谢谢
最佳答案
您必须将 arg 解析为 POPT_ARG_STRING
而不是 POPT_ARG_VAL
,然后将其转换为整数(或其他)。
以max-size
实现为例:
{"max-size", 0, POPT_ARG_STRING, &max_size_arg, OPT_MAX_SIZE, 0, 0 },
关于c - 向 Rsync 中的选项添加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16901248/