流式句柄
Asio拥有在Windows句柄上实现同步、异步读写操作的类,比如named pipe。
举个例子,为了使用异步操作的named pipe,以下对象会被创建:
HANDLE handle = ::CreateFile(...);
window::stream_handle pipe(my_io_service, handle);
它们被使用为异步或同步的读写流,这意味着可以使用read等自由函数。
内核要实现这些句柄的调用,必须要支持有名管道(意味着不支持匿名管道和控制台流)。
参见
windows::stream_handle, windows::basic_stream_handle, windows::stream_handle_service
注意
你可以用ASIO_HAS_WINDOWS_STREAM_HANDLE宏来判定该功能是否可用,不能则会在编译期报错。