// Wait until data can be read without blocking.
size_t read_some(implementation_type& impl,
const null_buffers&, asio::error_code& ec)
{
// Wait for descriptor to become ready.
descriptor_ops::poll_read(impl.descriptor_, ec);
return 0;
}
descriptor_ops 内
int poll_read(int d, asio::error_code& ec)
{
if (d == -1)
{
ec = asio::error::bad_descriptor;
return -1;
}
pollfd fds;
fds.fd = d;
fds.events = POLLIN;
fds.revents = 0;
errno = 0;
int result = error_wrapper(::poll(&fds, 1, -1), ec);
if (result >= 0)
ec = asio::error_code();
return result;
}
pollfd
、プロトタイプはどこで定義されていますか?::poll
どのファイルのポーリングを参照していますか?ioctl
、fcntl
UNIXおよびウィンドウシステムで動作しますか?const null_buffers&
、null_buffer への参照を渡す使用法は何ですか?
どうも