小编n00*_*ter的帖子

带有自定义argc和argv的getopt_long()函数

我在使用自定义argc和argv的getopt_long()函数时遇到问题.

我用字符串而不是真正的命令行args接收我的参数.然后从该字符串构建new_argc和new_argv以与getopt_long()一起使用.但getopt_long()在第一次调用时失败.返回EOF和optarg = NULL.

string is "-c 10.30.99.41" 
new_argc = 3
new_argv[0]=>./prog_name
new_argv[1]=>-c
new_argv[2]=>10.30.99.41
Run Code Online (Sandbox Code Playgroud)

如果我通过命令行参数,getopt_long对我来说还可以.所以我的短期和长期选择是正确的.但是如果我传递new_argc和new_argv就失败了.

我确信我的短期和长期选项是正确的,并且argv是NULL终止的.我道歉,我不能在这里发布更多代码.

我怀疑getopt_long是否可以与自定义argc和argv一起使用.我怀疑它只适用于真正的argc和argv,因为它必须引用与argc,argv相关的libc中的其他一些代码.任何意见?

option = getopt_long( new_argc, new_argv, short_options, long_options, NULL );
Run Code Online (Sandbox Code Playgroud)

c c++ getopt command-line-arguments c-libraries

2
推荐指数
1
解决办法
1136
查看次数

标签 统计

c ×1

c++ ×1

c-libraries ×1

command-line-arguments ×1

getopt ×1