/* @(#)setbuf.c 4.1 (Berkeley) 12/21/80 */ #include <stdio.h> setbuf(iop, buf) register struct _iobuf *iop; char *buf; { extern _cleanup(); extern _setcleanup; if(_setcleanup){ _setcleanup = 0; onexit(_cleanup); } if (iop->_base != NULL && iop->_flag&_IOMYBUF) free(iop->_base); iop->_flag &= ~(_IOMYBUF|_IONBF|_IOLBF); if ((iop->_base = (unsigned char *)buf) == NULL) iop->_flag |= _IONBF; else iop->_ptr = iop->_base; iop->_cnt = 0; }