(C++ [cmake] 和 Linux CentOS 7.0)
我在 Linux 中有一个带有参数的命令,其选项是一个空格分隔值列表:
命令一般是这样的:
getemail -c robert 12345 google.com
我的论点选项是:
robert 12345 google.com
我将它传递给这样的变量:
char* option_value = optarg;
但 option_value 和 optarg
都不是包含完整的选项序列,它们只包含第一个空格之前的字符序列,因此当我 cout << optarg;
我得到:
robert
但是当我调试它时,我看到了 optarg
包含由 \000
分隔的完整字符列表,像这样的数组:
r
o
b
e
r
t
/000
1
2
3
4
5
/000
g
o
o
g
l
e
.
c
o
m
谁能告诉我这是什么问题?
最佳答案
如果您想将 robert 12345 google.com 作为单个对象传递,并将其作为 optarg 提供给某些选项。您可以在命令行参数中使用双引号或单引号。
不要忘记在 getopt 中为选项提供 ':'。
关于c++ - 使用 optarg 在 Linux 中获取参数选项(包含空格)列表的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33384756/