C程序中的命令行参数?
如何在C中读取命令行参数? 例如,在
./test --help
要么
./test --build
我如何访问“–build”或“–help”?
您的参数在argv中:
int main(int argc, char **argv)
如果你打印argv(argv [0],argv [1]等)的内容你就会明白。
尝试:
int main (int argc, char **argv) { for(int i = 0;i< argc;i++) printf("%s\r\n",argv[i]); }
您可以使用argc
argv
的argc
和argv
参数,并根据它们执行不同的操作:
#include void dohelp(void) { /* whatever; */ } void dobuild(void) { /* whatever; */ } int main(int argc, char **argv) { if (argc == 2) { if (!strcmp(argv[1], "--help")) dohelp(); if (!strcmp(argv[1], "--build")) dobuild(); } return 0; }
argc
包含shell传递给程序的参数数量,包括程序名称。 所以myapp --help
获得了2的argc。
argv
是自己的论点。 最后一个argv( argv[argc]
)是NULL指针。
编辑:参数不需要命名为argc
和argv
,但是命名别的东西是非常非常糟糕的!
int main(int foo, char **bar) /* RGAGGGGHH */ int main(int n, char **options) /* RGAGGGGHH */
最基本的是使用参数(int argc, char *argv[])
,你可以直接解析它们。
一种更高级的方法是使用getopt … http://www.gnu.org/s/libc/manual/html_node/Getopt.html
有几种方法[照常]。 从argv读取命令行参数(与argc一起传递给main)。
您可以自己解析这些并在每次在argv中找到新选项时都有一些开关设置标志。 或者您可以使用库来解析命令行参数。 我建议使用libc getopt(google it)。