home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / languages / c / oslib / Examples / p3-743 < prev    next >
Text File  |  1994-04-20  |  827b  |  33 lines

  1. #include <stddef.h>
  2. #include <string.h>
  3.  
  4. #include "os.h"
  5. #include "osmodule.h"
  6. #include "messagetrans.h"
  7.  
  8. extern void *x_alloc (int);
  9.  
  10. typedef struct desc desc;
  11. struct desc {messagetrans_control_block cb; char file_name [UNKNOWN];};
  12. #define DESC(N) struct {messagetrans_control_block cb; char file_name [N];}
  13. #define SIZEOF_DESC(N) (offsetof (desc, file_name) + (N))
  14.  
  15. void ex (char *file_name)
  16.  
  17. {  bits flags;
  18.    int size;
  19.    char *buffer;
  20.    desc *file_desc;
  21.  
  22.    messagetrans_file_info (file_name, &flags, &size);
  23.    if ((flags & messagetrans_DIRECT_ACCESS) != NONE)
  24.       buffer = NULL;
  25.    else
  26.       buffer = x_alloc (size);
  27.  
  28.    file_desc = osmodule_alloc (SIZEOF_DESC (strlen (file_name) + 1));
  29.    strcpy (file_desc->file_name, file_name);
  30.    
  31.    messagetrans_open_file (&file_desc->cb, file_desc->file_name, buffer);   
  32. }
  33.