函数
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
-
类型:
guint
fds
中文件描述符的数量。 timeout
-
类型:
gint
等待的时间(以毫秒为单位),或为 -1 时无限期等待。