Boost C++ 库

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

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

尝试从流中读取指定数量的数据,然后返回。

template<
    typename SyncReadStream,
    typename MutableBufferSequence>
std::size_t read(
    SyncReadStream & s,
    const MutableBufferSequence & buffers,
    boost::system::error_code & ec,
    constraint_t< is_mutable_buffer_sequence< MutableBufferSequence >::value >  = 0);

此函数用于从流中读取指定数量的字节数据。调用将阻塞,直到满足以下任一条件:

  • 提供的缓冲区已满。即,传输的字节数等于缓冲区大小的总和。
  • 发生错误。

此操作通过零次或多次调用流的 read_some 函数来实现。

参数

s

要从中读取数据的流。类型必须支持 SyncReadStream 概念。

缓冲区

一个或多个缓冲区,数据将读取到这些缓冲区中。缓冲区大小的总和表示要从流中读取的最大字节数。

ec

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

返回值

传输的字节数。

示例

要将数据读取到单个缓冲区中,请使用 buffer 函数,如下所示:

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

有关一次性读取到多个缓冲区以及如何与数组、boost::array 或 std::vector 一起使用,请参阅 buffer 文档。

说明

此重载等同于调用

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

PrevUpHomeNext