当前位置: 技术问答>linux和unix
getopt函数的用法?
来源: 互联网 发布时间:2015-11-06
本文导语: getopt函数怎么查找它的用法呢?最好教查找方法。man getopt不行,没什么有用信息。 | 表头文件:#i nclude 函数声明:int getopt(int argc, char * const argv[], const char *optstring); 函数说明:get...
getopt函数怎么查找它的用法呢?最好教查找方法。man getopt不行,没什么有用信息。
|
表头文件:#i nclude
函数声明:int getopt(int argc, char * const argv[], const char *optstring);
函数说明:getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数optstring 则代表欲处理的选项字符串。此函数会返回在argv 中下一个的选项字母,此字母会对应参数optstring 中的字母。如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,全域变量optarg 即会指向此额外参数。如果getopt()找不到符合的参数则会印出错信息,并将全域变量optopt设为“?”字符,如果不希望getopt()印出错信息,则只要将全域变量opterr设为0即可。
返回值:如果找到符合的参数则返回此参数字母,如果参数不包含在参数optstring 的选项字母则返回“?”字符,分析结束则返回-1。
#include
#include
int main(int argc, char **argv)
{
int ch;
opterr = 0;
while( ( ch = getopt( argc, argv, "s:b:c:p:" ) ) != EOF )
{
switch(ch)
{
case 's':
printf("s opt: %sn", optarg);
break;
case 'b':
printf("b opt: %sn", optarg);
break;
case 'c':
printf("c opt: %sn", optarg);
break;
case 'p':
printf("p opt: %sn", optarg);
break;
case '?':
printf( "illegal option: %cn", ch );
break;
}
}
return 0;
}
函数声明:int getopt(int argc, char * const argv[], const char *optstring);
函数说明:getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数optstring 则代表欲处理的选项字符串。此函数会返回在argv 中下一个的选项字母,此字母会对应参数optstring 中的字母。如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,全域变量optarg 即会指向此额外参数。如果getopt()找不到符合的参数则会印出错信息,并将全域变量optopt设为“?”字符,如果不希望getopt()印出错信息,则只要将全域变量opterr设为0即可。
返回值:如果找到符合的参数则返回此参数字母,如果参数不包含在参数optstring 的选项字母则返回“?”字符,分析结束则返回-1。
#include
#include
int main(int argc, char **argv)
{
int ch;
opterr = 0;
while( ( ch = getopt( argc, argv, "s:b:c:p:" ) ) != EOF )
{
switch(ch)
{
case 's':
printf("s opt: %sn", optarg);
break;
case 'b':
printf("b opt: %sn", optarg);
break;
case 'c':
printf("c opt: %sn", optarg);
break;
case 'p':
printf("p opt: %sn", optarg);
break;
case '?':
printf( "illegal option: %cn", ch );
break;
}
}
return 0;
}