main (int argc,char *argv[ ]) 与 getopt
来源:互联网 发布:内外网络切换器设置 编辑:程序博客网 时间:2024/06/07 02:25
main(int argc, char *argv[ ], char **env)才是UNIX和Linux中的标准写法。
argc: 整数,用来统计你运行程序时送给main函数的命令行参数的个数
* argv[ ]: 字符串数组,用来存放指向你的字符串参数的指针数组,每一个元素指向一个参数
argv[0] 指向程序运行的全路径名
argv[1] 指向在DOS命令行中执行程序名后的第一个字符串
argv[2] 指向执行程序名后的第二个字符串
...
argv[argc]为NULL。
**env:字符串数组。env[ ]的每一个元素都包含ENVVAR=value形式的字符
串。其中ENVVAR为环境变量,value 为ENVVAR的对应值。
argc, argv,env是在main( )函数之前被赋值的,编译器生成的可执行文件,main( )不是真正的入口点,而是一个标准的函数,这个函数名与具体的操作系统有关。
getopt:int getopt(int argc,char * const argv[ ],const char * optstring);
函数说明 getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数 optstring为选项字符串, 告知 getopt()可以处理哪个选项以及哪个选项需要参数:
getopt:int getopt(int argc,char * const argv[ ],const char * optstring);
表头文件 #include<unistd.h>定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);extern char *optarg;extern int optind, opterr, optopt;
getopt() 所设置的全局变量包括:
optarg——指向当前选项参数(如果有)的指针。
optind——再次调用 getopt() 时的下一个 argv 指针的索引。
optopt——最后一个未知选项。
函数说明 getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数 optstring为选项字符串, 告知 getopt()可以处理哪个选项以及哪个选项需要参数:
如果选项字符串里的字母后接着冒号“ :”,则表示还有相关的参数,全域变量optarg 即会指向此额外参数。如果在处理期间遇到了不符合optstring指定的其他选项getopt()将显示一个错误消息,并将全域变量optarg设为“?”字符,如果不希望getopt()打印出错信息,则只要将全域变量opterr设为0即可。optstring中的指定的内容的意义(例如getopt(argc, argv, "ab:c:de::");
1、单个字符,表示选项,(如上例中的abcde各为一个选项)2、单个字符后接一个冒号:表示该选项后必须跟一个参数。参数紧跟在选项后或者以空格隔开。该参数的指针赋给optarg。(如上例中的b:c:)3、 单个字符后跟两个冒号,表示该选项后可以跟一个参数,也可以不跟。如果跟一个参数,参数必须紧跟在选项后不能以空格隔开。该参数的指针赋给optarg。(如上例中的e::,如果没有跟参数,则optarg = NULL)
阅读全文
0 0
- main (int argc,char *argv[ ]) 与 getopt
- main()与main(int argc,char *argv[])
- int main(int argc ,char *argv[])与 if(argc<2)
- main(int argc,char **argv)
- main(int argc,char *argv[ ])
- main(int argc,char **argv)
- main(int argc, char **argv)
- main(int argc, char **argv)
- main(int argc,char *argv)
- main(int argc, char* argv[])
- main(int argc,char *argv[])
- 关于 int main(int argc,char*arg[])与 int main(int argc,char**argv)的理解
- main( intmain(int argc,char *argv[]) argc ,char*argv[ ] )
- main(int argc, char* argv[], char* envp[])
- main(int argc,char* argv[],char *envp[] )
- main(int argc,char* argv[],char *envp[] )
- int main(int argc,char **argv)
- 有关 int main(int argc, char* argv[])
- SVN操作
- LINUX命令行 查看memcache运行状态
- LADP使用
- socket阻塞和非阻塞的区别【转】
- C语言static关键字解析 【转】
- main (int argc,char *argv[ ]) 与 getopt
- Page Size 【转】
- /usr/bin/ld: cannot find -lc 解决
- 【转载】互斥锁pthread_mutex_t的使用(转载)
- Vim 复制粘贴探秘【转】
- yum 配置 nginx+php +php-fpm环境
- 理解php内核的 引用计数器与写时复制
- 【消息队列MQ】各类MQ比较 【转载】
- Kafka