一个比较简单的getopt,多平台通用
#include "stdio.h"
char * host=0;
int port=0;
int is_show_help=0;
#define true 1
#define false 0
typedef int bool;
bool getoption(int argc,char ** argv)
{
char * p=0;
for(int i=1;i<argc;i++)
{
p = argv[i];
if (*p++ !='-'){
//printf("error option ,unknow -> %s\n",argv[i-1]);
return false;
}
while(*p)
{
switch(*p++)
{
case '?':{
//printf("-h");
is_show_help=1;
break;
}
case 'h':{
if (argv[++i]){
//printf("param -h=%s\n",argv[i]);
host=argv[i];
}
break;
}
case 'p':{
if (argv[++i]){
/* printf("param -p=%d\n",atoi(argv[i])); */
port = atoi(argv[i]);
}
break;
}
default:{
break;
}
}
}
}
return true;
}
int main(int argc,char ** argv)
{
if (! getoption(argc,argv) )
{
printf("param error\n");
return 1;
}
if (is_show_help){
printf("help!!!!!!!help me!\n");
return 0;
}
if (host!='\0'){
printf("host is -> %s \n",host);
}
if (port != 0){
printf("port is -> %d \n",port);
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。