Chinaunix首页 | 论坛 | 博客
  • 博客访问: 455954
  • 博文数量: 113
  • 博客积分: 446
  • 博客等级: 下士
  • 技术积分: 1229
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-09 16:01
个人简介

Let's go!!!!!

文章分类

全部博文(113)

文章存档

2019年(5)

2018年(4)

2017年(9)

2016年(5)

2015年(39)

2014年(6)

2013年(28)

2012年(17)

分类: LINUX

2012-12-11 22:51:03

第一次测试
[root@localhost ~]# gcc test.c -o test
[root@localhost ~]# cat test.c
#include <stdio.h>
#include <getopt.h>

static struct option original_opts[] = {
       {.name = "tcp",        .has_arg = 1, .val = 't'},
       {.name = "udp",        .has_arg = 1, .val = 'u'},
       {.name = "icmp",       .has_arg = 1, .val = 'i'},
       {NULL},
};

struct global_parameter
{
   char name[10];
   int number;
   struct option *opts;
};

struct global_parameter globals = {
   .name = "caijie",
   .number = 10,
   .opts = original_opts,
};

#define opts globals.opts

int main(int argc,char **argv)
{
   int c = 0;
       while ((c = getopt_long(argc, argv,"-t:u:i:",opts, NULL)) != -1) {
           switch (c) {
               case 't':
           printf("tcp ---- opt = %s\n",optarg);
           break;
               case 'u':
           printf("udp ---- opt = %s\n",optarg);
           break;
               case 'i':
           printf("icmp ---- opt = %s\n",optarg);
           break;
        case 1:
           printf("nothing ---- opt = %s\n",optarg);
           break;
        case '?':
           printf("ukonwn\n");
       }
   }
   return 0;
}
[root@localhost ~]# ./test -t tcp x -u udp ! -i icmp
tcp ---- opt = tcp
nothing ---- opt = x
udp ---- opt = udp
nothing ---- opt = !
icmp ---- opt = icmp




第二次测试
[root@localhost ~]# gcc test.c -o test
[root@localhost ~]# cat test.c
#include <stdio.h>
#include <getopt.h>

static struct option original_opts[] = {
       {.name = "tcp",        .has_arg = 1, .val = 't'},
       {.name = "udp",        .has_arg = 1, .val = 'u'},
       {.name = "icmp",       .has_arg = 1, .val = 'i'},
       {NULL},
};

struct global_parameter
{
   char name[10];
   int number;
       struct option *opts;
};

struct global_parameter globals = {
   .name = "caijie",
   .number = 10,
       .opts = original_opts,
};

#define opts globals.opts

int main(int argc,char **argv)
{
   int c = 0;
       while ((c = getopt_long(argc, argv,"t:u:i:",opts, NULL)) != -1) {
               switch (c) {
               case 't':
           printf("tcp ---- opt = %s\n",optarg);
                       break;
               case 'u':
           printf("udp ---- opt = %s\n",optarg);
                       break;
               case 'i':
           printf("icmp ---- opt = %s\n",optarg);
           break;
       case 1:
           printf("nothing ---- opt = %s\n",optarg);
           break;
       case '?':
           printf("ukonwn\n");
       }
   }
   return 0;
}
[root@localhost ~]# ./test -t tcp x -u udp ! -i icmp
tcp ---- opt = tcp
udp ---- opt = udp
icmp ---- opt = icmp

阅读(1389) | 评论(0) | 转发(0) |
0

上一篇:linux getopt()

下一篇:linux pwrite() pread()

给主人留下些什么吧!~~