/*
 * _file_buf — ленивое выделение буфера потока: malloc(BUFSIZ) при
 * первой буферизуемой операции.  NULL при нехватке памяти — поток
 * НЕ ломается, вызывающие уходят на прямой syscall (небуферизованный
 * fallback), попытка выделения повторится при следующей операции.
 */

#include <stdlib.h>
#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;
}
