std::istream
的原型是 istream& read (char* s, streamsize n)
,实际读取的字节数可以通过调用 istream::gcount()
来获取,同时可以从 ios::good
中了解 istream
的有效性。
我正在与同事讨论另一个流类的实现,我想写的时候可能会遵循这个设计;但他说,不必每次都调用 gcount,可以将 read 的原型设置为 istream& read (char* s, streamsize n, size_t &bytes_read)
,这样就可以在一次调用中完成,前者比较笨拙。我无法为 std
的设计选择进行辩护。什么是 istream::read
的真正原理?
size_t& bytes_written
吗?而且,它可能应该是streamsize& bytes_written
(或者也许是chars_read
)。 - James McNellissizeof
是相同的 :) - legends2k