home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume14 / sharedmem / part01 / src / client2.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-05-17  |  1.0 KB  |  47 lines

  1. /* client2.c
  2.  this client writes the following to common memory:
  3. s_var: a line read from stdin
  4. i_var: the length of s_var
  5. d_var: a random double variable
  6. */
  7. #include <sys/time.h>
  8. #include "cm.h"
  9.  
  10. cm_variable *i_var, *d_var, *s_var;
  11. cm_value i_val, d_val, s_val;
  12. double d_val_data = 3.14159;
  13.  
  14. char s_val_data[1000];
  15. int i_val_data;
  16.  
  17. main(argc,argv)
  18. int argc;
  19. char **argv;
  20. {
  21.     if (argc>1) printf("going to host %s for cmm\n",argv[1]);
  22.     if (0 > cm_init("don",(argc>1?argv[1]:(char *)0),0)) exit(-1);
  23.  
  24.     s_var = cm_declare("s_var",CM_ROLE_NONXWRITER);
  25.     i_var = cm_declare("i_var",CM_ROLE_NONXWRITER);
  26.     d_var = cm_declare("d_var",CM_ROLE_NONXWRITER);
  27.  
  28.     d_val.data = (char *)&d_val_data;
  29.     d_val.size = sizeof(d_val_data);
  30.     s_val.data = s_val_data;
  31.     i_val.data = (char *)&i_val_data;
  32.  
  33.     while (TRUE) {
  34.         cm_set_value(d_var,&d_val);
  35.  
  36.         printf("enter string for s_val: ");
  37.         gets(s_val_data);
  38.         s_val.size = strlen(s_val_data);
  39.         cm_set_value(s_var,s_val);
  40.  
  41.         i_val_data = strlen(s_val_data);
  42.         cm_set_value(i_var,&i_val);
  43.  
  44.         if (0 > cm_sync(CM_NO_WAIT)) return;
  45.     }
  46. }
  47.