57SysStreamBuf::SysStreamBuf(FILE* file,
const char* name):
62 setp(buffer_, buffer_ + (bufferSize_ - 2));
67SysStreamBuf::~SysStreamBuf()
73SysStreamBuf::int_type SysStreamBuf::overflow(int_type c)
78 *pptr() =
static_cast<char>(c);
89int SysStreamBuf::sync()
91 const int n =
static_cast<int>(pptr() - pbase());
92 assert(n >= 0 && (pbase() + n == pptr()));
100 if (Py_IsInitialized())
102 LockGIL LASS_UNUSED(lock);
103 PyObject* obj = PySys_GetObject(
const_cast<char*
>(name_));
106 ok = PyFile_WriteString(buffer_, obj) == 0;
117 ok = fputs(buffer_, file_) != EOF;
125SysOStream::SysOStream(FILE* file,
const char* name):
126 std::ostream(&buffer_),
129 setf(std::ios_base::unitbuf);
136impl::SysOStream sysStdout(stdout,
"stdout");
137impl::SysOStream sysStderr(stderr,
"stderr");
Comprehensive C++ to Python binding library.
Library for Assembled Shared Sources.