EUNATCH
Linux / POSIXERRORNotableDeviceHIGH confidence

Protocol Driver Not Attached

Production Risk

Rare; STREAMS-specific configuration error.

What this means

EUNATCH (errno 49) is returned when a STREAMS ioctl requires a protocol driver to be attached to the stream, but none is attached.

Why it happens
  1. 1Attempting a STREAMS operation that requires an attached protocol module before one has been pushed
How to reproduce

STREAMS ioctl without required protocol module.

trigger — this will error
trigger — this will error
// STREAMS operation without pushing required module
ioctl(fd, STREAMS_OP, &arg);
// Returns -1, errno = EUNATCH

expected output

Protocol driver not attached (EUNATCH)

Fix

Push required protocol module first

WHEN When a STREAMS operation requires a protocol driver

Push required protocol module first
// Push the protocol module onto the stream
ioctl(fd, I_PUSH, "timod");
// Now perform the operation
ioctl(fd, STREAMS_OP, &arg);

Why this works

STREAMS modules must be pushed in the correct order before protocol operations.

Sources
Official documentation ↗

Linux Programmer Manual errno(3)

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All Linux / POSIX errors