#pragma once #include "buffered.h" #include #include #include namespace NYsonPull { namespace NDetail { namespace NOutput { class TStdioFile: public TBuffered { FILE* file_; public: TStdioFile(FILE* file, size_t buffer_size) : TBuffered(buffer_size) , file_(file) { } void write(TStringBuf data) { auto nwritten = ::fwrite(data.data(), 1, data.size(), file_); if (Y_UNLIKELY(static_cast(nwritten) != data.size())) { throw NException::TSystemError(); } } }; } } // namespace NDetail }