Main index | Section 3 | Options |
#include <pcap/pcap.h>int pcap_get_selectable_fd(pcap_t *p);
Some network devices opened with pcap_create(3) and pcap_activate(3) , or with pcap_open_live(3) , do not support those calls (for example, regular network devices on FreeBSD 4.3 and 4.4, and Endace DAG devices), so PCAP_ERROR is returned for those devices. In that case, those calls must be given a timeout less than or equal to the timeout returned by pcap_get_required_select_timeout(3) for the device for which pcap_get_selectable_fd() returned PCAP_ERROR, the device must be put in non-blocking mode with a call to pcap_setnonblock(3) , and an attempt must always be made to read packets from the device when the call returns. If pcap_get_required_select_timeout() returns NULL, it is not possible to wait for packets to arrive on the device in an event loop.
Note that a device on which a read can be done without blocking may, on some platforms, not have any packets to read if the packet buffer timeout has expired. A call to pcap_dispatch(3) or pcap_next_ex(3) will return 0 in this case, but will not block.
Note that in:
FreeBSD prior to FreeBSD 4.6; | |
NetBSD prior to NetBSD 3.0; | |
OpenBSD prior to OpenBSD 2.4; | |
Mac OS X prior to Mac OS X 10.7; | |
Note also that poll() and kevent() doesn't work on character special files, including BPF devices, in Mac OS X 10.4 and 10.5, so, while select() can be used on the descriptor returned by pcap_get_selectable_fd(), poll() and kevent() cannot be used on it those versions of Mac OS X. poll(), but not kevent(), works on that descriptor in Mac OS X releases prior to 10.4; poll() and kevent() work on that descriptor in Mac OS X 10.6 and later.
pcap_get_selectable_fd() is not available on Windows.
25 July 2018 | PCAP_GET_SELECTABLE_FD (3) |
Main index | Section 3 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
“ | … one of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs. | ” |
— Robert Firth |