最終更新:2016-09-15 (木) 15:43:32 (2770d)  

pollfd
Top / pollfd

  • int poll(struct pollfd *fds, nfds_t nfds, int timeout);
struct pollfd {
        int   fd;         /* file descriptor */
        short events;     /* requested events */
        short revents;    /* returned events */
    };
pollfd.fd?file descriptor
pollfd.events?requested events
pollfd.revents?returned events

フラグ

  • POLLIN?読み出し可能なデータがある。
    POLLPRI?読み出し可能な緊急データ (urgent data) がある (例えば、TCP ソケットの帯域外 (out-of-band data) データを受信した場合や、 パケットモードの擬似端末のマスタがスレーブ側の変化を見つけたとき)。
    POLLOUT?書き込みが可能になった。ただし、ソケットやパイプで利用可能な空間よりも大きなデータを書き込んだ場合には (O_NONBLOCK がセットされている場合以外は) やはり停止することになる。
    POLLRDHUP?(Linux 2.6.17 以降)ストリームソケットの他端が、コネクションを close したか、 コネクションの書き込み側を shutdown した。 この定義を有効にするには、 (「どの」ヘッダーファイルをインクルードするよりも前に) _GNU_SOURCE 機能検査マクロを定義しなければならない。
    POLLERR?エラー状態 (出力の場合のみ)。
    POLLHUP?ハングアップした (出力の場合のみ)。
    POLLNVAL?不正な要求: fd がオープンされていない (出力の場合のみ)。

参考