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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
/**
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include <string.h>
#include <errno.h>
#include "voApps.h"
char optval[128];
/* Task specific option declarations.
*/
char *opts = "abn:v:";
struct option long_opts[] = {
{ "debug", 0, 0, 'd'},
{ "nport", 1, 0, 'n'},
{ "verbose", 2, 0, 'v'},
{ NULL, 0, 0, 0 }
};
/*
* -v
* -v 0
* -v=0
* --verbose
* --verbose 0
* --verbose=0
* verbose=0
*/
int ch=0, all=0, debug=0, verbose=0, nport=0;
int
main (int argc, char *argv[])
{
int i, pos;
char **pargv;
/* Initialize the parameters, i.e. rewrite the options so they can
* be processed by getopt_long().
*/
pargv = vo_paramInit (argc, argv, opts, long_opts);
while ((ch = vo_paramNext (opts,long_opts,argc,pargv,optval,&pos)) != 0) {
if (ch > 0) {
switch (ch) {
case 'a': printf ("'a' key\n");
break;
case 'd': printf ("'d' key\n");
break;
case 'n': printf ("'n' key, arg '%s'\n", optval);
nport = atoi (optval);
break;
case 'v':
if (optval[0]) {
printf ("'v' key, arg = '%s'\n", optval);
verbose = atoi (optval);
} else {
printf ("'v' key\n"); verbose = 1;
}
break;
default:
printf ("\nDEFAULT\n");
}
} else if (ch == PARG_ERR) {
return (1);
} else
printf ("pos=%d optind=%d argc=%d val='%s'\n",
pos, optind, argc, optval);
}
printf ("\n\n");
printf ("final nport = %d\n", nport);
printf ("final verbose = %d\n", verbose);
/* Free the allocated arguments.
*/
vo_paramFree (argc, pargv);
}
|