This is because xputc() only *might* be called. ostream may update streambuf's buffer without calling streambuf virtual methods