Boost C++ 库

...世界上评价最高、设计最精良的 C++ 库项目之一。 Herb SutterAndrei AlexandrescuC++ Coding Standards

write (11 of 16 overloads) - Boost C++ 函数库
PrevUpHomeNext

在返回前将一定量的数据写入流。

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 中的所有数据。
  • completion_condition 函数对象返回 0。

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

参数

s

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

b

将从中写入数据的 basic_streambuf 对象。

completion_condition

用于确定写入操作是否完成的函数对象。函数对象的签名必须是:

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` 函数时要写入的最大字节数。

返回值

传输的字节数。

异常

boost::system::system_error

失败时抛出。


PrevUpHomeNext