std::basic_streambuf::sgetn, std::basic_streambuf::xsgetn
From cppreference.com
< cpplrm; | iolrm; | basic streambuf
std::streamsize sgetn( char_type* s, std::streamsize count ); |
(1) | |
protected: virtual std::streamsize xsgetn( char_type* s, std::streamsize count ); |
(2) | |
1) Calls
xsgetn(s, count)
of the most derived class.2) Reads
count
characters from the input sequence and stores them into a character array pointed to by s
. The characters are read as if by repeated calls to sbumpc(). That is, if less than count
characters are immediately available, the function calls uflow() to provide more until Traits::eof() is returned. Classes derived from
std::basic_streambuf
are permitted to provide more efficient implementations of this function.Parameters
s | - | pointer to the beginning of a char_type array |
count | - | maximum number of characters to write |
Return value
The number of characters successfully read. If it is less than count
the input sequence has reached the end.
Notes
The rule about "more efficient implementations" permits bulk I/O without intermediate buffering: that's how std::ifstream::read simply passes the pointer to the POSIX read()
system call in some implementations of iostreams
Example
This section is incomplete Reason: no example |
See also
invokes xsputn() (public member function) |