Location:
stdio_t.h
struct __sFILE;
Stdio state variables.
The following always hold:
if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR), _lbfsize is -_bf._size, else _lbfsize is 0 if _flags&__SRD, _w is 0 if _flags&__SWR, _r is 0
This ensures that the getc and putc macros (or inline functions) never try to write or read from a file that is in `read' or `write' mode. (Moreover, they can, and do, automatically switch from read mode to write mode, and back, on "r+" and "w+" files.)
_lbfsize is used only to make the inline line-buffered output stream code as compact as possible.
_ub, _up, and _ur are used when ungetc()
pushes back more characters than fit in the current _bf, or when ungetc()
pushes back a character that does not match the previous one in _bf. When this happens, _ub._base becomes non-nil (i.e.,
a stream has ungetc()
data iff _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
Defined in __sFILE
:
_bf
, _blksize
, _close
, _cookie
, _data
, _file
, _flags
, _lb
, _lbfsize
, _nbuf
, _offset
, _p
, _r
, _read
, _seek
, _ub
, _ubuf
, _up
, _ur
, _w
, _write
_reent * _data;