我在使用自定义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)