|
|
1.1 root 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: extern int errno;
15: register FILE *iop;
16: extern FILE *_lastbuf;
17:
18: for (iop = _iob; iop->_flag&(_IOREAD|_IOWRT); iop++)
19: if (iop >= _lastbuf)
20: return(NULL);
21: iop->_cnt = 0;
22: iop->_file = fd;
23: if (*mode != 'r') {
24: iop->_flag |= _IOWRT;
25: if (*mode == 'a')
26: lseek(fd, 0L, 2);
27: } else
28: iop->_flag |= _IOREAD;
29: return(iop);
30: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.