pcap_get_selectable_fd man page on FreeBSD

Printed from http://www.polarhome.com/service/man/?qf=pcap_get_selectable_fd&af=0&tf=2&of=FreeBSD

PCAP_GET_SELECTABLE_FD(3)			     PCAP_GET_SELECTABLE_FD(3)

NAME
       pcap_get_selectable_fd  - get a file descriptor on which a select() can
       be done for a live capture

SYNOPSIS
       #include <pcap/pcap.h>

       int pcap_get_selectable_fd(pcap_t *p);

DESCRIPTION
       pcap_get_selectable_fd() returns, on UNIX, a file descriptor number for
       a  file descriptor on which one can do a select() or poll() to wait for
       it to be possible to read packets without blocking, if such a  descrip‐
       tor  exists, or -1, if no such descriptor exists.  Some network devices
       opened	with	pcap_create()	 and	pcap_activate(),    or	  with
       pcap_open_live(), do not support select() or poll() (for example, regu‐
       lar network devices on FreeBSD 4.3 and 4.4, and Endace DAG devices), so
       -1 is returned for those devices.

       Note  that  on most versions of most BSDs (including Mac OS X) select()
       and   poll()    do    not    work    correctly	 on    BPF    devices;
       pcap_get_selectable_fd() will return a file descriptor on most of those
       versions (the exceptions being FreeBSD 4.3 and 4.4), a simple  select()
       or poll() will not return even after the read timeout expires.  To work
       around this, an application that uses select() or poll()	 to  wait  for
       packets	to  arrive  must put the pcap_t in non-blocking mode, and must
       arrange that the select() or poll() have a timeout less than  or	 equal
       to  the	read  timeout, and must try to read packets after that timeout
       expires, regardless of whether select() or poll()  indicated  that  the
       file descriptor for the pcap_t is ready to be read or not.  (That work‐
       around will not work in FreeBSD 4.3 and later; however, in FreeBSD  4.6
       and  later,  select()  and poll() work correctly on BPF devices, so the
       workaround isn't necessary, although it does no harm.)

       Note also that poll() doesn't work on character special files,  includ‐
       ing  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()
       cannot  be  used	 on it those versions of Mac OS X.  Kqueues also don't
       work on that descriptor.

       pcap_get_selectable_fd() is not available on Windows.

RETURN VALUE
       A selectable file descriptor is returned if one exists;	otherwise,  -1
       is returned.

SEE ALSO
       pcap(3), select(2), poll(2)

				 5 April 2008	     PCAP_GET_SELECTABLE_FD(3)
[top]

List of man pages available for FreeBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net