home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / languages / c / oslib / Examples / p1-467 < prev    next >
Text File  |  1995-05-22  |  1KB  |  47 lines

  1. /*Example of how to use OS_ReadArgs in C.*/
  2.  
  3. #include <stdio.h>
  4.  
  5. #include "macros.h"
  6. #include "os.h"
  7.  
  8. int main (void)
  9.  
  10. {  struct {char *programme, *from, *to, *since; bool help; os_gi *size;
  11.          os_gs *name; char argd [1024];} argl;
  12.  
  13.    os_read_args ("programme/a,from/a,to/a,since/k,help/s,size/e,name/g",
  14.          os_get_env (NULL, NULL), (char *) &argl, sizeof argl);
  15.    /*Each structure element must correspond to the keyword in that place:
  16.  
  17.             keyword qualifier       component type
  18.             ------- ---------       --------- ----
  19.             switch (/s)             bool
  20.             expression (/e)         os_gi
  21.             string (/g)             os_gs
  22.             everything else         char *
  23.    */
  24.  
  25.    printf
  26.    (  "programme: %s\n"
  27.       "from: %s\n"
  28.       "to: %s\n"
  29.       "since: %s\n"
  30.       "help: %s\n"
  31.       "size: %d\n"
  32.       "name: %.*s\n",
  33.       argl.programme,
  34.       argl.from,
  35.       argl.to,
  36.       argl.since? argl.since: "(not given)",
  37.       WHETHER (argl.help),
  38.       argl.size? WORD (argl.size->i): -1,
  39.       argl.name? SHORT (argl.name->size): 80,
  40.       argl.name? argl.name->s: "(not given)"
  41.    );
  42.    /*Note use of WORD and SHORT, since these are not necessarily word-
  43.          aligned pointers.*/
  44.  
  45.    return 0;
  46. }
  47.