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