1: /*
   2:  * Unix routine to do an "fopen" on file descriptor
   3:  * The mode has to be repeated because you can't query its
   4:  * status
   5:  */
   6: 
   7: #include    <stdio.h>
   8: #include    <errno.h>
   9: 
  10: FILE *
  11: fdopen(fd, mode)
  12:     register char *mode;
  13: {
  14:     register FILE *iop;
  15:     FILE *_findiop();
  16: 
  17:     if ((iop = _findiop()) == NULL)
  18:         return(NULL);
  19: 
  20:     iop->_cnt = 0;
  21:     iop->_file = fd;
  22:     switch (*mode) {
  23: 
  24:     case 'r':
  25:         iop->_flag |= _IOREAD;
  26:         break;
  27: 
  28:     case 'a':
  29:         lseek(fd, 0L, 2);
  30:         /* No break */
  31:     case 'w':
  32:         iop->_flag |= _IOWRT;
  33:         break;
  34: 
  35:     default:
  36:         return(NULL);
  37:     }
  38: 
  39:     if (mode[1] == '+') {
  40:         iop->_flag &= ~(_IOREAD|_IOWRT);
  41:         iop->_flag |= _IORW;
  42:     }
  43: 
  44:     return(iop);
  45: }

Defined functions

fdopen defined in line 10; used 2 times
Last modified: 1979-05-05
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 433
Valid CSS Valid XHTML 1.0 Strict