home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / EFFO / forum7.lzh / RICO / MAN / man.getopt < prev    next >
Text File  |  1988-09-26  |  4KB  |  182 lines

  1.  
  2.  
  3. GETOPT(3)         os9-68000 Programmers Manual          GETOPT(3)
  4.  
  5.  
  6.  
  7. _N_A_M_E       
  8.  
  9.      getopt - get option letter from argv 
  10.  
  11. _S_Y_N_O_P_S_I_S       
  12.  
  13.       int getopt(argc, argv, optstring) 
  14.       int argc; 
  15.       char **argv; 
  16.       char *optstring; 
  17.  
  18.       extern char *optarg; 
  19.       extern int optind; 
  20.  
  21. _D_E_S_C_R_I_P_T_I_O_N       
  22.  
  23.      Getopt  returns  the next option letter in argv that matches
  24.      a  letter in optstring.  Optstring is a string of recognized
  25.      option  letters;  if  a  letter  is followed by a colon, the
  26.      option  is  expected to have an argument that may or may not
  27.      be  separated  from  it  by  white  space.  Optarg is set to
  28.      point  to  the  start  of the option argument on return from
  29.      getopt.  
  30.  
  31.      Getopt  places in optind the argv index of the next argument
  32.      to   be  processed.   Because  optind  is  external,  it  is
  33.      normally  initialized to zero automatically before the first
  34.      call to  getopt.  
  35.  
  36.      When  all options have been processed (i.e., up to the first
  37.      non-option  argument),  getopt  returns  EOF.   The  special
  38.      option  --  may  be  used to delimit the end of the options;
  39.      EOF will be returned, and -- will be skipped.  
  40.  
  41. _S_E_E _A_L_S_O      
  42.  
  43.      getopt(1) 
  44.  
  45. _D_I_A_G_N_O_S_T_I_C_S       
  46.  
  47.      Getopt  prints  an  error  message  on  stderr and returns a
  48.      question  mark ( ? ) when it encounters an option letter not
  49.      included in optstring.  
  50.  
  51. _E_X_A_M_P_L_E       
  52.  
  53.      The  following code fragment shows how one might process the
  54.      arguments   for   a  command  that  can  take  the  mutually
  55.      exclusive  options  a and b , and the options f and o , both
  56.      of which require arguments: 
  57.  
  58.  
  59.  
  60. GETOPT(3)                 unix-library                     page 1
  61.  
  62.  
  63. GETOPT(3)         os9-68000 Programmers Manual          GETOPT(3)
  64.  
  65.  
  66.  
  67.       main(argc, argv) 
  68.       int argc; 
  69.       char **argv; 
  70.       { 
  71.              int c; 
  72.              extern int optind; 
  73.              extern char *optarg; 
  74.              &.  
  75.              &.  
  76.              &.  
  77.              while ((c = getopt(argc, argv, "abf:o:")) != EOF) 
  78.                      switch (c) { 
  79.                      case 'a': 
  80.                              if (bflg) 
  81.                                      errflg++; 
  82.                              else 
  83.                                      aflg++; 
  84.                              break; 
  85.                      case 'b': 
  86.                              if (aflg) 
  87.                                      errflg++; 
  88.                              else 
  89.                                      bproc(); 
  90.                              break; 
  91.                      case 'f': 
  92.                              ifile = optarg; 
  93.                              break; 
  94.                      case 'o': 
  95.                              ofile = optarg; 
  96.                              break; 
  97.                      case '?': 
  98.                      default: 
  99.                              errflg++; 
  100.                              break; 
  101.                      } 
  102.              if (errflg) { 
  103.                      fprintf(stderr, "Usage: ..."); 
  104.                      exit(2); 
  105.              } 
  106.              for (; optind < argc; optind++) { 
  107.                      &.  
  108.                      &.  
  109.                      &.  
  110.              } 
  111.              &.  
  112.              &.  
  113.              &.  
  114.       } 
  115.  
  116. _H_I_S_T_O_R_Y       
  117.  
  118.  
  119.  
  120. GETOPT(3)                 unix-library                     page 2
  121.  
  122.  
  123. GETOPT(3)         os9-68000 Programmers Manual          GETOPT(3)
  124.  
  125.  
  126.      Written  by  Henry  Spencer, working from a Bell Labs manual
  127.      page.  Behavior believed identical to the Bell version.  
  128.  
  129. _B_U_G_S       
  130.  
  131.      It   is  not  obvious  how  `-'  standing  alone  should  be
  132.      treated;   this  version treats it as a non-option argument,
  133.      which is not always right.  
  134.  
  135.      Option  arguments  are  allowed  to  begin with `-'; this is
  136.      reasonable   but   reduces  the  amount  of  error  checking
  137.      possible.  
  138.  
  139.      Getopt  is  quite  flexible  but  the  obvious price must be
  140.      paid:   there  is  much  it  could  do that it doesn't, like
  141.      checking   mutually  exclusive  options,  checking  type  of
  142.      option arguments, etc.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180. GETOPT(3)                 unix-library                     page 3
  181.  
  182.