|
|
1.1 ! root 1: .TH GETOPT 3 ! 2: .CT 2 data_man ! 3: .SH NAME ! 4: getopt \(mi get option letter from argv ! 5: .SH SYNOPSIS ! 6: .nf ! 7: .B int getopt (argc, argv, optstring) ! 8: .B int argc; ! 9: .B char **argv; ! 10: .B char *optstring; ! 11: .PP ! 12: .B extern char *optarg; ! 13: .B extern int optind; ! 14: .fi ! 15: .SH DESCRIPTION ! 16: .I Getopt ! 17: returns the next option letter in ! 18: .I argv ! 19: that matches a letter in ! 20: .IR optstring . ! 21: .I Optstring ! 22: is a string of recognized option letters; ! 23: if a letter is followed by a colon, the option ! 24: is expected to have an argument, which may or ! 25: may not be separated from it by white space. ! 26: .I Optarg ! 27: is set to point to the start of the option argument ! 28: on return from ! 29: .IR getopt . ! 30: .PP ! 31: .I Getopt ! 32: places in ! 33: .I optind ! 34: the ! 35: .I argv ! 36: index of the next argument to be processed. ! 37: Since ! 38: .I optind ! 39: is external, it is normally initialized to zero ! 40: automatically before the first call to ! 41: .IR getopt . ! 42: .PP ! 43: Option letters appear in nonempty clusters preceded by ! 44: .BR - . ! 45: When all options have been processed ! 46: (i.e., up to the first non-option argument), ! 47: .I getopt ! 48: returns \-1. ! 49: The special option ! 50: .L -- ! 51: may be used to delimit the end of the options; ! 52: \-1 ! 53: will be returned, and ! 54: .L -- ! 55: will be skipped. ! 56: .SH EXAMPLES ! 57: This fragment processes arguments ! 58: for a command that can take option ! 59: .B a ! 60: and option ! 61: .BR f , ! 62: which requires an argument. ! 63: .PP ! 64: .EX ! 65: .ta \w'12345678'u +\w'12345678'u ! 66: main (argc, argv) char **argv; ! 67: { ! 68: int c, errflg; ! 69: extern int optind; ! 70: extern char *optarg, *ifile; ! 71: while((c = getopt(argc, argv, "af:")) != -1) ! 72: switch (c){ ! 73: case 'a': aflg=1; break; ! 74: case 'f': ifile = optarg; break; ! 75: case '?': errflg=1; break; ! 76: } ! 77: if(errflg){ ! 78: fprintf(stderr, "usage: . . . "); ! 79: exit(2); ! 80: } ! 81: for( ; optind < argc; optind++){ ! 82: if(access(argv[optind], 4)){ ! 83: ... ! 84: } ! 85: } ! 86: ... ! 87: } ! 88: .EE ! 89: .SH SEE ALSO ! 90: .IR getflags (3) ! 91: .SH DIAGNOSTICS ! 92: .I Getopt ! 93: prints an error message on ! 94: .I stderr ! 95: and returns a ! 96: question mark ! 97: .L ? ! 98: when it encounters an option letter not included in ! 99: .IR optstring .
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.