728x90
반응형
windows::basic_random_access_handle::async_write_some_at
지정된 오프셋에서 비동기 쓰기 작업을 시작한다.
template<
typename ConstBufferSequence,
typename WriteHandler = DEFAULT>
DEDUCED async_write_some_at(
uint64_t offset,
const ConstBufferSequence & buffers,
WriteHandler && handler = DEFAULT);
[ConstBufferSequence, WriteHandler, DEFAULT, DEDUCED]
이 함수는 임의 접근 핸들에서 데이터를 비동기로 쓰는 데 사용된다. 함수 호출은 항상 즉시 반환된다.
파라미터
offset
데이터를 쓰기 위한 위치에 해당하는 오프셋이다.
buffers
데이터를 쓰기 위한 하나 이상의 버퍼이다. 필요에 따라 버퍼의 개체를 복사할 수 있지만, 기저 메모리 블럭의 소유권은 호출자가 유지하므로 핸들러가 호출될 때까지 유효하게 유지되야 한다.
handler
쓰기 작업이 완료되는 시점에 호출되는 핸들러이다. 필요에 따라 핸들러의 복사본이 만들어 진다. 핸들러의 함수 서명은 아래와 같아야 한다:
void handler( const boost::system::error_code& error, // Result of operation. std::size_t bytes_transferred // Number of bytes written. );
비동기 작업이 즉시 완료되는지 여부에 상관없이, 핸들러는 이 함수 내에서 호출되지 않는다. 작업이 즉시 완료되는 경우, 핸들러의 호출은 "post"를 사용하는 것과 동일한 방식으로 수행된다.
비고
쓰기 작업이 피어로 모든 데이터를 전송하지 못할 수 있다. 비동기 작업이 완료되기 전에 요청된 양의 데이터를 읽을 필요가 있으면 async_write_at 함수를 사용하는 것이 좋다.
예제
단일 데이터 버퍼 쓰려면 다음과 같이 "buffer" 함수를 사용한다:
handle.async_write_some_at(42, boost::asio::buffer(data, size), handler);
한 번에 여러 버퍼로 쓰는 방법과 배열, boost::array 또는 std::vector와 함께 사용하는 방법에 대한 정보는 "buffer" 문서를 참조한다.
Boost.Asio 홈
728x90
반응형
'Boost C++ Libraries > Boost.Asio' 카테고리의 다른 글
Boost.Asio 색인 - use_awaitable_t::as_default_on (0) | 2021.01.08 |
---|---|
Boost.Asio 색인 - detached_t::as_default_on (0) | 2021.01.08 |
Boost.Asio 색인 - windows::basic_stream_handle::async_write_some (0) | 2021.01.08 |
Boost.Asio 색인 - ssl::stream::async_write_some (0) | 2021.01.08 |
Boost.Asio 색인 - posix::basic_stream_descriptor::async_write_some (0) | 2021.01.08 |