-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathosnadmin.c
66 lines (60 loc) · 1.21 KB
/
osnadmin.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#define OPT_NUMBER 9
typedef enum {
TYPE_HELP,
TYPE_LIST_HANDLER,
TYPE_LIST_DEVICE,
TYPE_LIST_DRIVER,
TYPE_LIST_TARGET,
TYPE_LIST_GROUP,
TYPE_LIST_DGRP,
TYPE_LIST_TGRP,
TYPE_NUM
}op_t;
const char *short_options = "h";
const struct option long_options[] = {
{"help", 0, NULL, 'h'},
{"list_handler", 2, NULL, TYPE_LIST_HANDLER},
{"list_device", 2, NULL, TYPE_LIST_DEVICE},
{"list_driver", 2, NULL, TYPE_LIST_DRIVER},
{"list_target", 2, NULL, TYPE_LIST_TARGET},
{"list_group", 2, NULL, TYPE_LIST_GROUP},
{"list_dgrp", 2, NULL, TYPE_LIST_DGRP},
{"list_tgrp", 2, NULL, TYPE_LIST_TGRP},
{NULL, 0, NULL, 0},
};
static void show_help()
{
fprintf(stdout, "hehe\n");
}
static int parse_params(int argc, char **argv)
{
int ch;
if(argc == 0)
return 0;
while((ch = getopt_long(argc, argv, short_options,
long_options, NULL)) != -1) {
printf("ch = %d\n", ch);
switch(ch) {
case '?':
printf("Unknown option\n");
break;
case 'h':
show_help();
break;
case TYPE_LIST_HANDLER:
printf("handler\n");
break;
}
}
}
int main(int argc, char **argv)
{
printf("hello world\n");
if(!parse_params(argc, argv)) {
return 0;
}
return 1;
}