| Previous | Next |
| ETIMEDOUT | ENODATA |
ENOSTR
ENOSTR is Solaris errno value 60. Solaris documents it for putmsg() or getmsg() when the supplied file descriptor is not associated with a STREAMS device. The failure is a descriptor/interface mismatch, not a report that the stream is temporarily empty.
Verify descriptor identity and lifetime
Trace where the descriptor was opened and which process or thread owns it at the failing call. Descriptor reuse is especially important: after a close, the same integer can later identify an ordinary file, socket, pipe, or different device. Passing that reused value to a STREAMS message API can produce ENOSTR even though an earlier version of the descriptor referred to a stream.
Check the device and module setup expected by the application before altering STREAMS queue handling. If the program merely needs byte-oriented I/O, read() or write() may be the intended interface; if it requires STREAMS control and data parts, the descriptor must come from the correct STREAMS endpoint. ENODATA describes an available-interface/no-message condition and should not be confused with this type mismatch.
References
Looking for a different code? Search another status or error code.
