函数
GLibpoll
自 2.20 起
声明 [src]
gint
g_poll (
GPollFD* fds,
guint nfds,
gint timeout
)
说明 [src]
侦听 fds,就像 poll() 系统调用一样,但具有可移植性。(在没有侦听的系统上,它使用 select() 进行模拟。)GMainContext 会在内部使用它,但是,如果您需要在文件描述符就绪之前阻止全部循环运行,则可以直接调用它。
fds 的每个元素都是 GPollFD,描述要侦听的单个文件描述符。fd 域表明文件描述符,而 events 域表明要侦听的事件。返回时,revents 域会填入实际发生的事件。
在 POSIX 系统上,fds 中的文件描述符可以是任何类型,但在 Windows 上,情况要复杂得多。如果您需要在必须在 Windows 上运行的代码中使用 g_poll(),最简单的解决方案是使用 g_io_channel_win32_make_pollfd() 来构造所有 GPollFDs。
自 2.20 起提供
参数
fds-
类型:
GPollFD要侦听的文件描述符。
数据归函数调用者所有。 nfds-
类型:
guintfds中文件描述符的数量。 timeout-
类型:
gint等待的时间(以毫秒为单位),或为 -1 时无限期等待。