#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int
main(int argc, char *argv[])
{
int flags, opt;
int nsecs, tfnd;
int i;
nsecs = 0;
tfnd = 0;
flags = 0;
while ((opt = getopt(argc, argv, "nt:")) != -1)
{
switch (opt)
{
case 'n':
flags = 1;
break;
case 't':
nsecs = atoi(optarg);
tfnd = 1;
break;
default: /* '?' */
fprintf(stderr, "Usage: %s [-t nsecs] [-n] name\n",
argv[0]);
exit(EXIT_FAILURE);
}
}
printf("flags=%d; tfnd=%d; nsecs:%d,optind=%d,argv[%d]:%s\n", flags, tfnd, nsecs,optind,optind,argv[optind]);
if (optind >= argc)
{
fprintf(stderr, "Expected argument after options\n");
exit(EXIT_FAILURE);
}
for( i = optind ; i < argc ; i++ )
{
printf("name argument = %s\n", argv[i]);
}
/* Other code omitted */
exit(EXIT_SUCCESS);
}
$ ./getopt hello -n world -t 100 I love you
flags=1; tfnd=1; nsecs:100,optind=4,argv[4]:hello
name argument = hello
name argument = world
name argument = I
name argument = love
name argument = you
sunke@ubuntu:~/workspace/misc/getopt$