我有一个函数调用,它将命令行作为参数传递,定义如下:
process_raw_cmdline(char** line)
{
//
}
我想最终通读这一行并将其分解以将部分行用作其他事物的参数。采取这一行并保存由空格分隔的不同“单词”的好方法是什么。我最终还必须将此行的部分转换为整数。
通常,当您以 char** 形式获取命令行时,它已经在命令行上分解为单个单词,或者更好的单个实体:
binary-name arg1 arg2 "arg3 arg3" arg4
在这个例子中,arg3 arg3
是一个单一的实体(你不会得到引号)。
但是,要正确阅读 char**,您需要知道字数!这就是为什么在 C 程序中,main()
使用参数 argc(字数)和 argv(char**)调用。然后您可以访问 argv[0] ... argv[argc-1]。在我们的示例中:
binary-name
arg1