Boost C++ Libraries/Boost.Asio

Boost.Asio 색인 - buffer_copy

까마귀75 2021. 1. 13. 17:19
728x90
반응형

buffer_copy

boost::asio::buffer_copy 함수는 소스 버퍼(또는 버퍼 시퀀스)에서 대상 버퍼(또는 버퍼 시퀀스)로 바이트를 복사하는 데 사용된다.

소스 버퍼 시퀀스에서 대상 버퍼 시퀀스로 바이트를 복사한다.

[1 / 2 오버로드]

template<
    typename MutableBufferSequence,
    typename ConstBufferSequence>
std::size_t buffer_copy(
    const MutableBufferSequence & target,
    const ConstBufferSequence & source);

[MutableBufferSequence, ConstBufferSequence, buffer_copy]


제한된 수의 바이트를 소스 버퍼 시퀀스에서 대상 버퍼 시퀀스로 복하한다.

[2 / 2 오버로드]

template<
    typename MutableBufferSequence,
    typename ConstBufferSequence>
std::size_t buffer_copy(
    const MutableBufferSequence & target,
    const ConstBufferSequence & source,
    std::size_t max_bytes_to_copy);

[MutableBufferSequence, ConstBufferSequence, buffer_copy]


buffer_copy 함수는 두 가지 형식으로 사용할 수 있다:

  • 2개-인수 형식 : buffer_copy(target, source)
  • 3개-인수 형식 : buffer_copy(target, source, max_bytes_to_copy)

두 형식 모두 실제로 복사된 바이트 수를 반환한다. 복사된 바이트 수는 다음 중 더 적은 값이다:

  • buffer_size(target) : 대상 버퍼 크기
  • buffer_size(source) : 소스 버퍼 크기
  • 3개-인수 형식인 경우 max_bytes_to_copy : 복사 크기

이렇게 하면 복사 작업에 사용되는 버퍼 크기에 상관없이 버퍼 오버플로우를 방지할 수 있다.

buffer_copy는 memcpy를 기반으로 구현되므로, 겹치는 메모리 영역 간에 복사 작업에 사용할 수 없다.

요구 사항

일반 헤더: boost/asio/buffer.hpp
편의 헤더: boost/asio.hpp

Boost.Asio 홈

728x90
반응형