PCAP\_SET\_IMMEDIATE\_MODE(3PCAP) PCAP\_SET\_IMMEDIATE\_MODE(3PCAP)

# [NAME](#NAME)

pcap\_set\_immediate\_mode - set immediate mode for a not-yet-activated capture handle

# [SYNOPSIS](#SYNOPSIS)

```
#include <pcap/pcap.h>
```

```
int pcap_set_immediate_mode(pcap_t *p, int immediate_mode);
```

# [DESCRIPTION](#DESCRIPTION)

**pcap\_set\_immediate\_mode**() sets whether immediate mode should be set on a capture handle when the handle is activated. In immediate mode, packets are always delivered as soon as they arrive, with no buffering. If *immediate\_mode* is non-zero, immediate mode will be set, otherwise it will not be set.

# [RETURN VALUE](#RETURN_VALUE)

**pcap\_set\_immediate\_mode**() returns **0** on success or **PCAP\_ERROR\_ACTIVATED** if called on a capture handle that has been activated.

# [BACKWARD COMPATIBILITY](#BACKWARD_COMPATIBILITY)

This function became available in libpcap release 1.5.0. In previous releases, if immediate delivery of packets is required:

on FreeBSD, NetBSD, OpenBSD, DragonFly BSD, macOS, and Solaris 11, immediate mode must be turned on with a **BIOCIMMEDIATE** [**ioctl**(2)](/man/os/libpcap/ioctl.2), as documented in [**bpf**(4)](/man/os/libpcap/bpf.4), on the descriptor returned by [**pcap\_fileno**(3PCAP)](/man/os/libpcap/pcap_fileno.3PCAP), after [**pcap\_activate**(3PCAP)](/man/os/libpcap/pcap_activate.3PCAP) is called;

on Solaris 10 and earlier versions of Solaris, immediate mode must be turned on by using a read timeout of 0 when opening the device (this will not provide immediate delivery of packets on other platforms, so don't assume it's sufficient);

on Windows, immediate mode must be turned on by calling **pcap\_setmintocopy**() with a size of 0.

On Linux, with previous releases of libpcap, capture devices are always in immediate mode; however, in 1.5.0 and later, they are, by default, **not** in immediate mode, so if **pcap\_set\_immediate\_mode**() is available, it should be used.

On other platforms, capture devices are always in immediate mode.

# [SEE ALSO](#SEE_ALSO)

[**pcap**(3PCAP)](/man/os/libpcap/pcap.3PCAP), [**pcap\_create**(3PCAP)](/man/os/libpcap/pcap_create.3PCAP), [**pcap\_activate**(3PCAP)](/man/os/libpcap/pcap_activate.3PCAP)

27 January 2024

---

Document: pcap_set_immediate_mode(3pcap) from libpcap 1.11.0-r0 (Chainguard OS)
Source: https://github.com/the-tcpdump-group/libpcap.git
