c - 向 Rsync 中的选项添加参数

标签 c arguments rsync

我正在开发一个使用 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/

相关文章:

c - 使用 c 指针转置矩阵,内存访问错误

c - 如何编译使用 getsubopt() 的代码?

C 递归函数 - 在 main 中调用函数显示不正确的值

clojure - 如何将 "expand"列表作为函数的参数?

node.js - 从脚本(nodejs)运行时如何让rsync识别ssh publickey

linux - 同步: dont delete few files in source after upload

objective-c - 对字节缓冲区进行位移

javascript - Arguments 对象是否泄漏?

arguments - 在 TCL 中使用多个参数启动程序 (vcom) 时出现问题

linux - 在 zlinux 上使用 lftp 或 rsync