[streambuf.buffer]

# 31 Input/output library [[input.output]](./#input.output)

## 31.6 Stream buffers [[stream.buffers]](stream.buffers#streambuf.buffer)

### 31.6.3 Class template basic_streambuf [[streambuf]](streambuf#buffer)

#### 31.6.3.3 Public member functions [[streambuf.members]](streambuf.members#streambuf.buffer)

#### 31.6.3.3.2 Buffer management and positioning [streambuf.buffer]

[ð](#lib:pubsetbuf,basic_streambuf)

`basic_streambuf* pubsetbuf(char_type* s, streamsize n);
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3229)

*Returns*: setbuf(s, n)[.](#1.sentence-1)

[ð](#lib:pubseekoff,basic_streambuf)

`pos_type pubseekoff(off_type off, ios_base::seekdir way,
                    ios_base::openmode which
                      = ios_base::in | ios_base::out);
`

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3242)

*Returns*: seekoff(off, way, which)[.](#2.sentence-1)

[ð](#lib:pubseekpos,basic_streambuf)

`pos_type pubseekpos(pos_type sp,
                    ios_base::openmode which
                      = ios_base::in | ios_base::out);
`

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3255)

*Returns*: seekpos(sp, which)[.](#3.sentence-1)

[ð](#lib:pubsync,basic_streambuf)

`int pubsync();
`

[4](#4)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3266)

*Returns*: sync()[.](#4.sentence-1)
