Boost C++ 库

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

read_until (22 / 24 重载) - Boost C++ 函数库
PrevUpHomeNext

将数据读入动态缓冲区序列,直到其包含的某些部分与正则表达式匹配。

template<
    typename SyncReadStream,
    typename DynamicBuffer_v2,
    typename Traits>
std::size_t read_until(
    SyncReadStream & s,
    DynamicBuffer_v2 buffers,
    const boost::basic_regex< char, Traits > & expr,
    boost::system::error_code & ec,
    constraint_t< is_dynamic_buffer_v2< DynamicBuffer_v2 >::value >  = 0);

此函数用于将数据读取到指定的动态缓冲区序列中,直到动态缓冲区序列的 get 区域包含与正则表达式匹配的某些数据。调用将阻塞,直到满足以下任一条件:

  • 动态缓冲区序列的 get 区域的子串匹配正则表达式。
  • 发生错误。

此操作通过零次或多次调用流的 read_some 函数来实现。如果动态缓冲区序列的 get 区域已包含与正则表达式匹配的数据,则函数将立即返回。

参数

s

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

缓冲区

将读取数据的动态缓冲区序列。

expr

正则表达式。

ec

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

返回值

动态缓冲区序列中,从开始到包含正则表达式匹配的子字符串为止的字节数。如果发生错误,则返回 0。

备注

在成功的 read_until 操作后,动态缓冲区序列可能包含超出正则表达式匹配部分的数据。应用程序通常会将这些数据保留在动态缓冲区序列中,供后续的 read_until 操作进行检查。


PrevUpHomeNext