canput(9r) canput(9r)
NAME
canput - STREAMS: Tests for room in a message queue
SYNOPSIS
#include <sys/stream.h>
int canput(
queue_t *message_queue );
ARGUMENTS
Specifies a pointer to the message queue. The typedef queue_t is an alternate name for struct queue_entry *.
DESCRIPTION
The canput interface searches through the stream (starting at the message queue identified by the message_queue argument) until it finds a
queue that contains a service interface where the message can be enqueued or until it reaches the end of the stream. If canput finds a
service interface in a queue, it tests the queue to determine if there is space in the queue to accommodate a message. If the queue is
full, canput sets the q_flag member of the queue_entry structure pointer (the message queue) to the constant QWANTW to back-enable the
caller's service interface.
NOTES
You are responsible for both testing a queue with canput and not placing a message on the queue if canput fails.
RETURN VALUES
The canput interface returns a value of 1 if the message queue is not full. It returns the value zero(0) if the message queue is full.
SEE ALSO
Kernel Interfaces: bcanput(9r), putbq(9r), putnext(9r)
Programmer's Guide: STREAMS
canput(9r)