C 使用getopt_long,如何在optarg中存储两个值?

C 使用getopt_long,如何在optarg中存储两个值?,c,linux,getopt-long,C,Linux,Getopt Long,如果我定义 static struct option long_option[]={ {"add", 1, 0, 'a'} } 我可以在optarg中存储两个值吗?这是我想要使用的代码: ./a.out --add Tommy 123-123-123 我想用--add一次性存储两个值,Tommy和123-123-123。恐怕不能。根据getopt手册页,getopt使用下一个参数。因此,您可以: 使用/a.out——添加'Tommy 123-123-123',引号使shell将'Tommy

如果我定义

static struct option long_option[]={ {"add", 1, 0, 'a'} }
我可以在optarg中存储两个值吗?这是我想要使用的代码:

./a.out --add Tommy 123-123-123

我想用--add一次性存储两个值,Tommy和123-123-123。

恐怕不能。根据getopt手册页,getopt使用下一个参数。因此,您可以:

  • 使用
    /a.out——添加'Tommy 123-123-123'
    ,引号使shell将
    'Tommy 123-123-123'
    作为单个参数
  • 或者手动编写您自己的选项解析器