在TCP网络通信时的一个实例遇到argc/argv,于是顺便巩固一下知识
argc 是 argument count的缩写,表示传入main函数的参数个数;
argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要我们输入的main函数的参数个数应该是argc-1个;
C/C++语言中的main函数,经常带有参数argc,argv,如下:
一般有以下两种常见使用形式
int main(int argc, char **argv)
int main(int argc, char *argv[])
这两个参数的作用:
argc 是指命令行输入参数的个数,argv存储了所有的命令行参数。
例如下列代码
#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
for (i=0; i < argc; i++)
printf("Argument %d is %s\n", i, argv[i]);
return 0;
}
argv是指向指针的指针,main函数的第二个参数“char *argv[]“也可以替换为 “char **argv“,两者是等价的。
假如上述代码gcc编译为a.out
在文件保存的目录下运行
[root@localhost ~]# gcc hello.c
[root@localhost ~]#./a.out a b c d e
运行
[root@localhost ~]# ./a.out hello world !
Argument 0 is ./a.out
Argument 1 is hello
Argument 2 is world
Argument 3 is !
希望能对你有帮助!