스트림-지향 파일 설명자 (Stream Oriented File Descriptors)
Boost.Asio에는 파이프, 표준 입출력, 다양한 장치와 같이 POSIX 파일 디스크립터로 동기식과 비동기식 읽기/쓰기 작업을 수행할 수 있도록 추가된 클래스가 포함되어 있다.
또한 이러한 클래스는 일반 파일에 대한 제한된 지원도 제공한다. 이 지원은 운영 체제에서 제공하는 기본적인 읽기/쓰기 작업이 EAGAIN 또는 EWOULDBLOCK으로 실패하지 않는다고 가정한다. (이 가정은 일반적으로 버퍼링 된 파일 I/O에 적용된다.) 파일 디스크립터에 대한 동기식과 비동기식 읽기/쓰기 작업은 성공하지만, I/O는 항상 즉시 수행된다. 대기 작업 및 boost::asio::null_buffers 관련 작업은 이식 가능하게 지원되지 않는다.
예를 들어, 표준 입출력에 대한 읽기/쓰기 작업을 수행가기 위해 다음 개체를 만들 수 있다:
posix::stream_descriptor in(my_io_context, ::dup(STDIN_FILENO)); posix::stream_descriptor out(my_io_context, ::dup(STDOUT_FILENO));
그런 다음 동기식이나 비동기식 읽기/쓰기 스트림으로 사용된다. 이는 개체가 read(), async_read(), write(), async_write(), read_until(), async_read_until() 중 사용가능한 함수와 함께 사용됨을 의미한다.
더 보기
posix::stream_descriptor, Chat example (C++03), Char example (C++11).
참고
POSIX 스트림 설명자는 대상 운영 체제에서 지원하는 경우 컴파일 타임에만 사용할 수 있다. 프로그램은 BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR 매크로를 테스트하여 지원 여부를 결정할 수 있다.
'Boost C++ Libraries > Boost.Asio' 카테고리의 다른 글
Boost.Asio 개요 - Windows 전용 기능 (0) | 2020.12.12 |
---|---|
Boost.Asio - POSIX 전용 기능 - 포크 (0) | 2020.12.12 |
Boost.Asio 개요 - POSIX 전용 기능 - UNIX 도메인 소켓 (0) | 2020.12.11 |
Boost.Asio 개요 - POSIX 전용 기능 (0) | 2020.12.11 |
Boost.Asio 개요 - 시그널 핸들링 (0) | 2020.12.11 |