多路I/O複用:select、poll、epoll(二)

不愛練舞的死肥宅發表於2020-12-12

多路IO複用模型之poll

poll和select一樣,都可用於執行多路複用IO。

poll函式原型

int poll(struct pollfd * fds,
		unsigned int nfds,
		int timeout);

這裡還是用一張圖來說明各個引數的作用

在這裡插入圖片描述
當poll()返回-1時,errno的值為下列中的一個:

  • EBADF:一個或多個結構體中指定的檔案描述符無效;
  • EFAULTfds:指標指向的地址超出程式的地址空間;
  • EINTR:請求的事件之前產生一個訊號,呼叫可以重新發起;
  • EINVALnfds:引數超出PLIMIT_NOFILE值;
  • ENOMEM:可用記憶體不足,無法完成請求。

未完待續。。。

相關文章