我正在Linux上编写一些C代码。我想循环传递给 main 的 *argv[] 参数,但我不知道如何在出现段错误之前停止。
i = 0;
while (i < sizeof(argv)) {
printf("%s\n", argv[i]);
i ++;
}
这会产生 seg 错误,因为 sizeof 总是返回 8。如何获取 argv 中的实际元素数,或者应用某种测试在 argv 末尾停止?
第一个参数..argc
应该已经有 CLI 参数计数..有什么理由不使用它?
int main(int argc, char** argv)
{
if(argc > 1)
}
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
argc 包含 argv 中的参数计数。