在返回前将一定量的数据写入流。
template< typename SyncWriteStream, typename Allocator, typename CompletionCondition> std::size_t write( SyncWriteStream & s, basic_streambuf< Allocator > & b, CompletionCondition completion_condition, constraint_t< is_completion_condition< CompletionCondition >::value > = 0);
此函数用于将指定数量的字节数据写入流。调用将阻塞,直到以下任一条件为真。
basic_streambuf
中的所有数据。此操作是根据对流的 `write_some` 函数的零次或多次调用来实现的。
要写入数据的数据流。类型必须支持 SyncWriteStream 概念。
将从中写入数据的 basic_streambuf
对象。
用于确定写入操作是否完成的函数对象。函数对象的签名必须是:
std::size_t completion_condition( // Result of latest write_some operation. const boost::system::error_code& error, // Number of bytes transferred so far. std::size_t bytes_transferred );
返回值为 0 表示写入操作已完成。非零返回值表示下一次调用流的 `write_some` 函数时要写入的最大字节数。
传输的字节数。
失败时抛出。