/* * fflush — сбросить буфер потока: накопленную запись — write()'ом, * readahead — откатом позиции fd (стандартная POSIX-семантика fflush * для читаемых потоков). fflush(NULL) сбрасывает ВСЕ открытые потоки * таблицы (по стандарту). Консольные псевдопотоки небуферизованы — * всегда успех. */ #include "_file.h" int fflush(FILE *fp) { if (!fp) { int rc = 0; for (uint8_t i = 0; i < OPEN_MAX; i++) { if (_file_slots[i].flags && _file_sync(&_file_slots[i])) rc = EOF; } return rc; } if (fp->flags & (_F_CONIN | _F_CONOUT)) return 0; return _file_sync(fp); }