Boost C++ 库

……被誉为全球最受推崇、设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

write (16 个重载中的第 2 个) - Boost C++ 函数库
PrevUpHomeNext

在返回之前,将所有提供的数据写入流。

template<
    typename SyncWriteStream,
    typename ConstBufferSequence>
std::size_t write(
    SyncWriteStream & s,
    const ConstBufferSequence & buffers,
    boost::system::error_code & ec,
    constraint_t< is_const_buffer_sequence< ConstBufferSequence >::value >  = 0);

此函数用于将指定数量的字节数据写入流。调用将阻塞,直到以下任一条件为真。

  • 已写入提供的缓冲区中的所有数据。也就是说,传输的字节数等于缓冲区大小的总和。
  • 发生错误。

此操作是根据对流的 `write_some` 函数的零次或多次调用来实现的。

参数

s

要写入数据的数据流。类型必须支持 SyncWriteStream 概念。

缓冲区

包含要写入数据的一个或多个缓冲区。缓冲区大小的总和表示要写入流的最大字节数。

ec

用于指示发生何种错误(如果有)。

返回值

传输的字节数。

示例

要写入单个数据缓冲区,请使用 buffer 函数,如下所示:

boost::asio::write(s, boost::asio::buffer(data, size), ec);

请参阅 buffer 文档,了解一次写入多个缓冲区以及如何将其与数组、boost::array 或 std::vector 一起使用。

备注

此重载等同于调用

boost::asio::write(
   s, buffers,
   boost::asio::transfer_all(), ec);

PrevUpHomeNext