我正在Linux上编写一些C代码。我想循环传递给main的* argv []参数,但我不知道在获得seg错误之前如何停止。
i = 0;
while (i < sizeof(argv)) {
printf("%s\n", argv[i]);
i ++;
}
这会产生一个seg错误,因为sizeof总是返回8.如何获取argv中的实际元素数,或者在argv结束时应用某种类型的测试?
答案 0 :(得分:2)
main的第一个参数是argc
,它是传递给程序的参数数量。这至少是1,这是可执行文件的名称。
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("%d\n", argc);
return 0;
}
调用为:
$ ./a.out
1
$ ./a.out 1 2 3 4
5
$ ./a.out 1 2 3
4
答案 1 :(得分:1)
第一个参数.. argc
应该已经有CLI参数计数。为什么没有使用它?
int main(int argc, char** argv)
{
if(argc > 1)
}
答案 2 :(得分:0)
argc包含argv中的参数计数。