---
name: "pcap_set_immediate_mode"
section: "3pcap"
platform: "macos"
package: "libpcap"
version: "146"
release: "macOS 26.5"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/pcap_set_immediate_mode"
---

# pcap\_set\_immediate\_mode(3pcap)

set immediate mode for a not-yet-activated capture handle

## NAME

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

## SYNOPSIS

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

**int pcap\_set\_immediate\_mode(pcap\_t \*p, int immediate\_mode);**

## 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

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

## 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)](/ioctl/2.md), **as documented in** [**bpf**(4)](/bpf/4.md), **on the descriptor returned by** **pcap\_fileno**(3PCAP), **after** **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 Digital UNIX/Tru64 UNIX, immediate mode must be turned on by doing a** **BIOCMBIC** **ioctl**, **as documented in** **packetfilter**(7), **to clear the** **ENBATCH** **flag on the descriptor returned by** **pcap\_fileno**(3PCAP), **after** **pcap\_activate**(3PCAP) **is called;**

-

  **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

**pcap**(3PCAP), **pcap\_create**(3PCAP), **pcap\_activate**(3PCAP)
