getopt参数没被读取
代码如下,-i参数后的内容为什么没有被读取啊。
typedef struct
{
char filename[100];//filename里读取数据库字符串
char province_code[30];
char city_code[30];
char acct_cycle[6];
char rule_id[20];
}stru_args;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mysql.h"
#include <unistd.h>
#define COMMIT_TMES 500
char str_opt[20] = "f:p:c:a:i:";
stru_args args; //参数
int main(int argc, char **argv)
{
//char szSql[160]; //存放查询sql语句字符串
//profile_info db_connect;
memset(&args,'\0',sizeof(args));
//参数获取
int result;
while( (result = getopt(argc, argv, str_opt)) != -1 )
{
switch(result)
{
case 'f':
strcpy(args.filename,optarg);
break;
case 'p':
strcpy(args.province_code,optarg);
break;
case 'c':
strcpy(args.city_code,optarg);
break;
case 'a':
strcpy(args.acct_cycle,optarg);
break;
case 'i':
strcpy(args.rule_id,optarg);
break;
default:
break;
}
}
puts(args.acct_cycle);
puts(args.rule_id);
//printf("rule_id:%s\n",args.rule_id);
//解析配置文件信息
//parse_profile(args.filename,&db_connect);
//printf("host:%s\n",db_connect.host);
//printf("host:%s\n",db_connect.usr);
//printf("host:%s\n",db_connect.password);
//printf("host:%s\n",db_connect.db_name);
return 0;
}
-i后的参数没被解析出来。。什么原因, c
[解决办法]
没有问题啊,i:说明i这个选项必须带有参数,所以你可以这样输入:
./a.out -ituringo
这样turingo就是-i选项的参数,将会打印turingo后结束。