Blame man-pages-posix-2013-a/man0p/stropts.h.0p

Packit 7cfc04
'\" et
Packit 7cfc04
.TH stropts.h "0P" 2013 "IEEE/The Open Group" "POSIX Programmer's Manual"
Packit 7cfc04
.SH PROLOG
Packit 7cfc04
This manual page is part of the POSIX Programmer's Manual.
Packit 7cfc04
The Linux implementation of this interface may differ (consult
Packit 7cfc04
the corresponding Linux manual page for details of Linux behavior),
Packit 7cfc04
or the interface may not be implemented on Linux.
Packit 7cfc04
Packit 7cfc04
.SH NAME
Packit 7cfc04
stropts.h
Packit 7cfc04
\(em STREAMS interface (\fBSTREAMS\fP)
Packit 7cfc04
.SH SYNOPSIS
Packit 7cfc04
.LP
Packit 7cfc04
.nf
Packit 7cfc04
#include <stropts.h>
Packit 7cfc04
.fi
Packit 7cfc04
.SH DESCRIPTION
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define the
Packit 7cfc04
.BR bandinfo
Packit 7cfc04
structure, which shall include at least the following members:
Packit 7cfc04
.sp
Packit 7cfc04
.RS 4
Packit 7cfc04
.nf
Packit 7cfc04
\fB
Packit 7cfc04
int            bi_flag  \fRFlushing type.\fR
Packit 7cfc04
unsigned char  bi_pri   \fRPriority band.\fR
Packit 7cfc04
.fi \fR
Packit 7cfc04
.P
Packit 7cfc04
.RE
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define the
Packit 7cfc04
.BR strpeek
Packit 7cfc04
structure, which shall include at least the following members:
Packit 7cfc04
.sp
Packit 7cfc04
.RS 4
Packit 7cfc04
.nf
Packit 7cfc04
\fB
Packit 7cfc04
struct strbuf  ctlbuf   \fRThe control portion of the message.\fR
Packit 7cfc04
struct strbuf  databuf  \fRThe data portion of the message.\fR
Packit 7cfc04
t_uscalar_t    flags    \fRRS_HIPRI or 0.\fR
Packit 7cfc04
.fi \fR
Packit 7cfc04
.P
Packit 7cfc04
.RE
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define the
Packit 7cfc04
.BR strbuf
Packit 7cfc04
structure, which shall include at least the following members:
Packit 7cfc04
.sp
Packit 7cfc04
.RS 4
Packit 7cfc04
.nf
Packit 7cfc04
\fB
Packit 7cfc04
char  *buf     \fRPointer to buffer.\fP
Packit 7cfc04
int    len     \fRLength of data.\fP
Packit 7cfc04
int    maxlen  \fRMaximum buffer length.\fP
Packit 7cfc04
.fi \fR
Packit 7cfc04
.P
Packit 7cfc04
.RE
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define the
Packit 7cfc04
.BR strfdinsert
Packit 7cfc04
structure, which shall include at least the following members:
Packit 7cfc04
.sp
Packit 7cfc04
.RS 4
Packit 7cfc04
.nf
Packit 7cfc04
\fB
Packit 7cfc04
struct strbuf  ctlbuf   \fRThe control portion of the message.\fR
Packit 7cfc04
struct strbuf  databuf  \fRThe data portion of the message.\fR
Packit 7cfc04
int            fildes   \fRFile descriptor of the other STREAM.\fR
Packit 7cfc04
t_uscalar_t    flags    \fRRS_HIPRI or 0.\fR
Packit 7cfc04
int            offset   \fRRelative location of the stored value.\fR
Packit 7cfc04
.fi \fR
Packit 7cfc04
.P
Packit 7cfc04
.RE
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define the
Packit 7cfc04
.BR strioctl
Packit 7cfc04
structure, which shall include at least the following members:
Packit 7cfc04
.sp
Packit 7cfc04
.RS 4
Packit 7cfc04
.nf
Packit 7cfc04
\fB
Packit 7cfc04
int    ic_cmd     \fIioctl\fR(\|) command.\fR
Packit 7cfc04
char  *ic_dp      \fRPointer to buffer.\fR
Packit 7cfc04
int    ic_len     \fRLength of data.\fR
Packit 7cfc04
int    ic_timout  \fRTimeout for response.\fR
Packit 7cfc04
.fi \fR
Packit 7cfc04
.P
Packit 7cfc04
.RE
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define the
Packit 7cfc04
.BR strrecvfd
Packit 7cfc04
structure, which shall include at least the following members:
Packit 7cfc04
.sp
Packit 7cfc04
.RS 4
Packit 7cfc04
.nf
Packit 7cfc04
\fB
Packit 7cfc04
int    fd   \fRReceived file descriptor.\fR
Packit 7cfc04
gid_t  gid  \fRGID of sender.\fR
Packit 7cfc04
uid_t  uid  \fRUID of sender.\fR
Packit 7cfc04
.fi \fR
Packit 7cfc04
.P
Packit 7cfc04
.RE
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define the
Packit 7cfc04
.BR uid_t
Packit 7cfc04
and
Packit 7cfc04
.BR gid_t
Packit 7cfc04
types through
Packit 7cfc04
.BR typedef ,
Packit 7cfc04
as described in
Packit 7cfc04
.IR <sys/types.h> .
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define the
Packit 7cfc04
.BR t_scalar_t
Packit 7cfc04
and
Packit 7cfc04
.BR t_uscalar_t
Packit 7cfc04
types, respectively, as signed and unsigned opaque types of equal
Packit 7cfc04
length of at least 32 bits.
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define the
Packit 7cfc04
.BR str_list
Packit 7cfc04
structure, which shall include at least the following members:
Packit 7cfc04
.sp
Packit 7cfc04
.RS 4
Packit 7cfc04
.nf
Packit 7cfc04
\fB
Packit 7cfc04
struct str_mlist  *sl_modlist  \fRSTREAMS module names.\fR
Packit 7cfc04
int                sl_nmods    \fRNumber of STREAMS module names.\fR
Packit 7cfc04
.fi \fR
Packit 7cfc04
.P
Packit 7cfc04
.RE
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define the
Packit 7cfc04
.BR str_mlist
Packit 7cfc04
structure, which shall include at least the following member:
Packit 7cfc04
.sp
Packit 7cfc04
.RS 4
Packit 7cfc04
.nf
Packit 7cfc04
\fB
Packit 7cfc04
char  l_name[FMNAMESZ+1]  \fRA STREAMS module name.\fR
Packit 7cfc04
.fi \fR
Packit 7cfc04
.P
Packit 7cfc04
.RE
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define at least the following symbolic constants for use
Packit 7cfc04
as the
Packit 7cfc04
.IR request
Packit 7cfc04
argument to
Packit 7cfc04
\fIioctl\fR():
Packit 7cfc04
.IP I_ATMARK 12
Packit 7cfc04
Is the top message ``marked''?
Packit 7cfc04
.IP I_CANPUT 12
Packit 7cfc04
Is a band writable?
Packit 7cfc04
.IP I_CKBAND 12
Packit 7cfc04
See if any messages exist in a band.
Packit 7cfc04
.IP I_FDINSERT 12
Packit 7cfc04
Send implementation-defined information about another STREAM.
Packit 7cfc04
.IP I_FIND 12
Packit 7cfc04
Look for a STREAMS module.
Packit 7cfc04
.IP I_FLUSH 12
Packit 7cfc04
Flush a STREAM.
Packit 7cfc04
.IP I_FLUSHBAND 12
Packit 7cfc04
Flush one band of a STREAM.
Packit 7cfc04
.IP I_GETBAND 12
Packit 7cfc04
Get the band of the top message on a STREAM.
Packit 7cfc04
.IP I_GETCLTIME 12
Packit 7cfc04
Get close time delay.
Packit 7cfc04
.IP I_GETSIG 12
Packit 7cfc04
Retrieve current notification signals.
Packit 7cfc04
.IP I_GRDOPT 12
Packit 7cfc04
Get the read mode.
Packit 7cfc04
.IP I_GWROPT 12
Packit 7cfc04
Get the write mode.
Packit 7cfc04
.IP I_LINK 12
Packit 7cfc04
Connect two STREAMs.
Packit 7cfc04
.IP I_LIST 12
Packit 7cfc04
Get all the module names on a STREAM.
Packit 7cfc04
.IP I_LOOK 12
Packit 7cfc04
Get the top module name.
Packit 7cfc04
.IP I_NREAD 12
Packit 7cfc04
Size the top message.
Packit 7cfc04
.IP I_PEEK 12
Packit 7cfc04
Peek at the top message on a STREAM.
Packit 7cfc04
.IP I_PLINK 12
Packit 7cfc04
Persistently connect two STREAMs.
Packit 7cfc04
.IP I_POP 12
Packit 7cfc04
Pop a STREAMS module.
Packit 7cfc04
.IP I_PUNLINK 12
Packit 7cfc04
Dismantle a persistent STREAMS link.
Packit 7cfc04
.IP I_PUSH 12
Packit 7cfc04
Push a STREAMS module.
Packit 7cfc04
.IP I_RECVFD 12
Packit 7cfc04
Get a file descriptor sent via I_SENDFD.
Packit 7cfc04
.IP I_SENDFD 12
Packit 7cfc04
Pass a file descriptor through a STREAMS pipe.
Packit 7cfc04
.IP I_SETCLTIME 12
Packit 7cfc04
Set close time delay.
Packit 7cfc04
.IP I_SETSIG 12
Packit 7cfc04
Ask for notification signals.
Packit 7cfc04
.IP I_SRDOPT 12
Packit 7cfc04
Set the read mode.
Packit 7cfc04
.IP I_STR 12
Packit 7cfc04
Send a STREAMS
Packit 7cfc04
\fIioctl\fR().
Packit 7cfc04
.IP I_SWROPT 12
Packit 7cfc04
Set the write mode.
Packit 7cfc04
.IP I_UNLINK 12
Packit 7cfc04
Disconnect two STREAMs.
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define at least the following symbolic constant for use
Packit 7cfc04
with I_LOOK:
Packit 7cfc04
.IP FMNAMESZ 12
Packit 7cfc04
The minimum size in bytes of the buffer referred to by the
Packit 7cfc04
.IR arg
Packit 7cfc04
argument.
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define at least the following symbolic constants for use
Packit 7cfc04
with I_FLUSH:
Packit 7cfc04
.IP FLUSHR 12
Packit 7cfc04
Flush read queues.
Packit 7cfc04
.IP FLUSHRW 12
Packit 7cfc04
Flush read and write queues.
Packit 7cfc04
.IP FLUSHW 12
Packit 7cfc04
Flush write queues.
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define at least the following symbolic constants for use
Packit 7cfc04
with I_SETSIG:
Packit 7cfc04
.IP S_BANDURG 12
Packit 7cfc04
When used in conjunction with S_RDBAND, SIGURG is generated instead of
Packit 7cfc04
SIGPOLL when a priority message reaches the front of the STREAM head
Packit 7cfc04
read queue.
Packit 7cfc04
.IP S_ERROR 12
Packit 7cfc04
Notification of an error condition reaches the STREAM head.
Packit 7cfc04
.IP S_HANGUP 12
Packit 7cfc04
Notification of a hangup reaches the STREAM head.
Packit 7cfc04
.IP S_HIPRI 12
Packit 7cfc04
A high-priority message is present on a STREAM head read queue.
Packit 7cfc04
.IP S_INPUT 12
Packit 7cfc04
A message, other than a high-priority message, has arrived at the head
Packit 7cfc04
of a STREAM head read queue.
Packit 7cfc04
.IP S_MSG 12
Packit 7cfc04
A STREAMS signal message that contains the SIGPOLL signal reaches the
Packit 7cfc04
front of the STREAM head read queue.
Packit 7cfc04
.IP S_OUTPUT 12
Packit 7cfc04
The write queue for normal data (priority band 0) just below the STREAM
Packit 7cfc04
head is no longer full. This notifies the process that there is room
Packit 7cfc04
on the queue for sending (or writing) normal data downstream.
Packit 7cfc04
.IP S_RDBAND 12
Packit 7cfc04
A message with a non-zero priority band has arrived at the head of a
Packit 7cfc04
STREAM head read queue.
Packit 7cfc04
.IP S_RDNORM 12
Packit 7cfc04
A normal (priority band set to 0) message has arrived at the head of a
Packit 7cfc04
STREAM head read queue.
Packit 7cfc04
.IP S_WRBAND 12
Packit 7cfc04
The write queue for a non-zero priority band just below the STREAM head
Packit 7cfc04
is no longer full.
Packit 7cfc04
.IP S_WRNORM 12
Packit 7cfc04
Equivalent to S_OUTPUT.
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define at least the following symbolic constant for use
Packit 7cfc04
with I_PEEK:
Packit 7cfc04
.IP RS_HIPRI 12
Packit 7cfc04
Only look for high-priority messages.
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define at least the following symbolic constants for use
Packit 7cfc04
with I_SRDOPT:
Packit 7cfc04
.IP RMSGD 12
Packit 7cfc04
Message-discard mode.
Packit 7cfc04
.IP RMSGN 12
Packit 7cfc04
Message-non-discard mode.
Packit 7cfc04
.IP RNORM 12
Packit 7cfc04
Byte-STREAM mode, the default.
Packit 7cfc04
.IP RPROTDAT 12
Packit 7cfc04
Deliver the control part of a message as data when a process issues a
Packit 7cfc04
\fIread\fR().
Packit 7cfc04
.IP RPROTDIS 12
Packit 7cfc04
Discard the control part of a message, delivering any data part, when a
Packit 7cfc04
process issues a
Packit 7cfc04
\fIread\fR().
Packit 7cfc04
.IP RPROTNORM 12
Packit 7cfc04
Fail
Packit 7cfc04
\fIread\fR()
Packit 7cfc04
with
Packit 7cfc04
.BR [EBADMSG] 
Packit 7cfc04
if a message containing a control part is at the front of the STREAM
Packit 7cfc04
head read queue.
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define at least the following symbolic constant for use
Packit 7cfc04
with I_SWOPT:
Packit 7cfc04
.IP SNDZERO 12
Packit 7cfc04
Send a zero-length message downstream when a
Packit 7cfc04
\fIwrite\fR()
Packit 7cfc04
of 0 bytes occurs.
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define at least the following symbolic constants for use
Packit 7cfc04
with I_ATMARK:
Packit 7cfc04
.IP ANYMARK 12
Packit 7cfc04
Check if the message is marked.
Packit 7cfc04
.IP LASTMARK 12
Packit 7cfc04
Check if the message is the last one marked on the queue.
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define at least the following symbolic constant for use
Packit 7cfc04
with I_UNLINK:
Packit 7cfc04
.IP MUXID_ALL 12
Packit 7cfc04
Unlink all STREAMs linked to the STREAM associated with
Packit 7cfc04
.IR fildes .
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header shall define the following symbolic constants for
Packit 7cfc04
\fIgetmsg\fR(),
Packit 7cfc04
\fIgetpmsg\fR(),
Packit 7cfc04
\fIputmsg\fR(),
Packit 7cfc04
and
Packit 7cfc04
\fIputpmsg\fR():
Packit 7cfc04
.IP MORECTL 12
Packit 7cfc04
More control information is left in message.
Packit 7cfc04
.IP MOREDATA 12
Packit 7cfc04
More data is left in message.
Packit 7cfc04
.IP MSG_ANY 12
Packit 7cfc04
Receive any message.
Packit 7cfc04
.IP MSG_BAND 12
Packit 7cfc04
Receive message from specified band.
Packit 7cfc04
.IP MSG_HIPRI 12
Packit 7cfc04
Send/receive high-priority message.
Packit 7cfc04
.P
Packit 7cfc04
The
Packit 7cfc04
.IR <stropts.h> 
Packit 7cfc04
header may make visible all of the symbols from
Packit 7cfc04
.IR <unistd.h> .
Packit 7cfc04
.P
Packit 7cfc04
The following shall be declared as functions and may also be defined as
Packit 7cfc04
macros. Function prototypes shall be provided.
Packit 7cfc04
.sp
Packit 7cfc04
.RS 4
Packit 7cfc04
.nf
Packit 7cfc04
\fB
Packit 7cfc04
int    fattach(int, const char *);
Packit 7cfc04
int    fdetach(const char *);
Packit 7cfc04
int    getmsg(int, struct strbuf *restrict, struct strbuf *restrict,
Packit 7cfc04
           int *restrict);
Packit 7cfc04
int    getpmsg(int, struct strbuf *restrict, struct strbuf *restrict,
Packit 7cfc04
           int *restrict, int *restrict);
Packit 7cfc04
int    ioctl(int, int, ...);
Packit 7cfc04
int    isastream(int);
Packit 7cfc04
int    putmsg(int, const struct strbuf *, const struct strbuf *, int);
Packit 7cfc04
int    putpmsg(int, const struct strbuf *, const struct strbuf *, int,
Packit 7cfc04
           int);
Packit 7cfc04
.fi \fR
Packit 7cfc04
.P
Packit 7cfc04
.RE
Packit 7cfc04
.LP
Packit 7cfc04
.IR "The following sections are informative."
Packit 7cfc04
.SH "APPLICATION USAGE"
Packit 7cfc04
None.
Packit 7cfc04
.SH RATIONALE
Packit 7cfc04
None.
Packit 7cfc04
.SH "FUTURE DIRECTIONS"
Packit 7cfc04
None.
Packit 7cfc04
.SH "SEE ALSO"
Packit 7cfc04
.IR "\fB<sys_types.h>\fP",
Packit 7cfc04
.IR "\fB<unistd.h>\fP"
Packit 7cfc04
.P
Packit 7cfc04
The System Interfaces volume of POSIX.1\(hy2008,
Packit 7cfc04
.IR "\fIclose\fR\^(\|)",
Packit 7cfc04
.IR "\fIfattach\fR\^(\|)",
Packit 7cfc04
.IR "\fIfcntl\fR\^(\|)",
Packit 7cfc04
.IR "\fIfdetach\fR\^(\|)",
Packit 7cfc04
.IR "\fIgetmsg\fR\^(\|)",
Packit 7cfc04
.IR "\fIioctl\fR\^(\|)",
Packit 7cfc04
.IR "\fIisastream\fR\^(\|)",
Packit 7cfc04
.IR "\fIopen\fR\^(\|)",
Packit 7cfc04
.IR "\fIpipe\fR\^(\|)",
Packit 7cfc04
.IR "\fIread\fR\^(\|)",
Packit 7cfc04
.IR "\fIpoll\fR\^(\|)",
Packit 7cfc04
.IR "\fIputmsg\fR\^(\|)",
Packit 7cfc04
.IR "\fIsignal\fR\^(\|)",
Packit 7cfc04
.IR "\fIwrite\fR\^(\|)"
Packit 7cfc04
.SH COPYRIGHT
Packit 7cfc04
Portions of this text are reprinted and reproduced in electronic form
Packit 7cfc04
from IEEE Std 1003.1, 2013 Edition, Standard for Information Technology
Packit 7cfc04
-- Portable Operating System Interface (POSIX), The Open Group Base
Packit 7cfc04
Specifications Issue 7, Copyright (C) 2013 by the Institute of
Packit 7cfc04
Electrical and Electronics Engineers, Inc and The Open Group.
Packit 7cfc04
(This is POSIX.1-2008 with the 2013 Technical Corrigendum 1 applied.) In the
Packit 7cfc04
event of any discrepancy between this version and the original IEEE and
Packit 7cfc04
The Open Group Standard, the original IEEE and The Open Group Standard
Packit 7cfc04
is the referee document. The original Standard can be obtained online at
Packit 7cfc04
http://www.unix.org/online.html .
Packit 7cfc04
Packit 7cfc04
Any typographical or formatting errors that appear
Packit 7cfc04
in this page are most likely
Packit 7cfc04
to have been introduced during the conversion of the source files to
Packit 7cfc04
man page format. To report such errors, see
Packit 7cfc04
https://www.kernel.org/doc/man-pages/reporting_bugs.html .