/* * _file_buf — ленивое выделение буфера потока: malloc(BUFSIZ) при * первой буферизуемой операции. NULL при нехватке памяти — поток * НЕ ломается, вызывающие уходят на прямой syscall (небуферизованный * fallback), попытка выделения повторится при следующей операции. */ #include #include "_file.h" uint8_t *_file_buf(FILE *fp) { if (!fp->buf) { fp->buf = (uint8_t *)malloc(BUFSIZ); fp->curp = fp->buf; } return fp->buf; }