FreeBSD Manual Pages
std::strstreambuf::setbuf(3) C++ Standard Libary std::strstreambuf::setbuf(3) NAME std::strstreambuf::setbuf - std::strstreambuf::setbuf Synopsis protected: virtual streambuf<char>* setbuf(char* s, std::streamsize n); If s is a null pointer and n is zero, this function has no effect. Otherwise, the effect is implementation-defined: some implementa- tions do nothing, while some implementations deallocate the dynamic member array used as the buffer and begin using the user-supplied character array of size n, whose first element is pointed to by s. This function is protected virtual, it may only be called through pubsetbuf() or from member functions of a user-defined class derived from std::strstreambuf. Parameters s - pointer to the first byte in the user-provided buffer n - the number of bytes in the user-provided buffer Return value this Example Implementation test to check if setbuf() is supported on a dynamic strstream (output obtained with Sun Studio) // Run this code #include <strstream> #include <iostream> int main() { char a[100] = {}; std::strstream str; str.rdbuf()->pubsetbuf(a, sizeof a); str << "Test string" << std::ends; std::cout << "user-provided buffer holds '" << a << "'\n"; } Possible output: user-provided buffer holds 'Test string' See also pubsetbuf invokes setbuf() (public member function of std::basic_stream- buf<CharT,Traits>) setbuf replaces the buffer with user-defined array, if permitted [virtual] (virtual protected member function of std::basic_stream- buf<CharT,Traits>) setbuf attempts to replace the controlled character sequence with an array [virtual] (virtual protected member function of std::basic_stringbuf<CharT,Traits,Allocator>) setbuf provides user-supplied buffer or turns this filebuf un- buffered [virtual] (virtual protected member function of std::basic_file- buf<CharT,Traits>) http://cppreference.com 2022.07.31 std::strstreambuf::setbuf(3)
NAME | Synopsis | Parameters | Return value | Example | Possible output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::strstreambuf::setbuf&sektion=3&manpath=FreeBSD+Ports+15.0>
