
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ streambuf::pubsync() function
The C++ std::streambuf::pubsync() function is used to synchronize the buffer with the associated Input/Output sequence. Typically, this function calls the protected virtual function sync(), which handles the actual synchronization.
If the sync() is succeeds it returns 0, otherwise it returns -1.
Syntax
Following is the syntax for std::streambuf::pubsync() function.
int pubsync();
Parameters
It does not accept any parameter.
Return Value
It returns the default definition of sync in streambuf always returns zero, indicating success.
Exceptions
If an exception is thrown, the stream buffer is in a valid state.
Data races
It modifies the stream buffer object.
Example 1
In the following example, we are going to consider the basic usage of the pubsync() function.
#include <iostream> #include <streambuf> #include <sstream> int main() { std::stringstream a; a << "Hello"; std::streambuf * b = a.rdbuf(); int result = b -> pubsync(); std::cout << "Result : " << result << std::endl; return 0; }
Output
Output of the above code is as follows −
Result : 0
Example 2
Consider the following example, where we are going to perform the synchronization after multiple insertion.
#include <iostream> #include <sstream> int main() { std::ostringstream x; x << "A "; x << "B "; x << "C "; int result = x.rdbuf() -> pubsync(); std::cout << "Result: " << result << std::endl; std::cout << "Buffer content: " << x.str() << std::endl; return 0; }
Output
Following is the output of the above code −
Result: 0 Buffer content: A B C
Example 3
Let's look at the following example, where we are going to check the pubsync() on std::cin.
#include <iostream> int main() { std::streambuf * pbuf = std::cin.rdbuf(); int a = pbuf -> pubsync(); std::cout << "Result : " << a << std::endl; return 0; }
Output
If we run the above code it will generate the following output −
Result : 0