|
|
1.1 root 1: /* @(#)setbuffer.c 4.2 (Berkeley) 2/27/83 */
2: #include <stdio.h>
3:
4: setbuffer(iop, buf, size)
5: register struct _iobuf *iop;
6: char *buf;
7: int size;
8: {
9: if (iop->_base != NULL && iop->_flag&_IOMYBUF)
10: free(iop->_base);
11: iop->_flag &= ~(_IOMYBUF|_IONBF|_IOLBF);
12: if ((iop->_base = buf) == NULL) {
13: iop->_flag |= _IONBF;
14: iop->_bufsiz = NULL;
15: } else {
16: iop->_ptr = iop->_base;
17: iop->_bufsiz = size;
18: }
19: iop->_cnt = 0;
20: }
21:
22: /*
23: * set line buffering for either stdout or stderr
24: */
25: setlinebuf(iop)
26: register struct _iobuf *iop;
27: {
28: static char _sebuf[BUFSIZ];
29: extern char _sobuf[];
30:
31: if (iop != stdout && iop != stderr)
32: return;
33: fflush(iop);
34: setbuffer(iop, NULL, 0);
35: setbuffer(iop, iop == stderr ? _sebuf : _sobuf, BUFSIZ);
36: iop->_flag |= _IOLBF;
37: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.