|
|
1.1 ! root 1: /* ! 2: * libc/stdio/_fpseek.c ! 3: * ANSI-compliant C standard i/o library internals. ! 4: * _fpseek() ! 5: * Align file seek address with current pointer in buffer. ! 6: */ ! 7: ! 8: #include <stdio.h> ! 9: ! 10: int ! 11: _fpseek(fp) register FILE *fp; ! 12: { ! 13: register _FILE2 *f2p; ! 14: ! 15: f2p = fp->_f2p; ! 16: if (fp->_ff2 & _FUNGOT) ! 17: (*f2p->_gt)(fp); /* Discard ungotten character */ ! 18: if (f2p->_dp <= fp->_cp) ! 19: return fflush(fp); /* Flush buffered output */ ! 20: if (lseek(fileno(fp), (long)(fp->_cp-f2p->_dp), SEEK_CUR) == -1L) ! 21: return EOF; /* Seek back over unread input */ ! 22: f2p->_dp = fp->_cp; ! 23: fp->_cc = 0; ! 24: return 0; ! 25: } ! 26: ! 27: /* end of libc/stdio/_fpseek.c */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.