svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
pipe(2)
pipe(2) System Calls pipe(2)
NAME
pipe, pipe2 - create an interprocess channel
SYNOPSIS
#include <unistd.h>
int pipe(int fildes[2]);
int pipe2(int fildes[2], int flags);
DESCRIPTION
The pipe() function creates an I/O mechanism called a pipe and returns
two file descriptors, fildes[0] and fildes[1]. The files associated
with fildes[0] and fildes[1] are streams and are both opened for read‐
ing and writing. The O_NDELAY, O_NONBLOCK, and FD_CLOEXEC flags are
cleared on both file descriptors. The fcntl(2) function can be used to
set these flags.
A read from fildes[0] accesses the data written to fildes[1] on a
first-in-first-out (FIFO) basis and a read from fildes[1] accesses the
data written to fildes[0] also on a FIFO basis.
The pipe2() function behaves like pipe() but has a second argument
which can contain the following flags: O_CLOEXEC, O_CLOFORK, O_NOSIG‐
PIPE, O_NDELAY, O_NONBLOCK and O_NOSTDFD. See the open(2) man page for
the description of each of these flags and their effects.
Upon successful completion pipe() and pipe2() mark for update the
st_atime, st_ctime, and st_mtime fields of the pipe.
RETURN VALUES
Upon successful completion, 0 is returned. Otherwise, −1 is returned
and errno is set to indicate the error.
ERRORS
The pipe() and pipe2() functions will fail if:
EMFILE More than {OPEN_MAX}-1 file descriptors are already in use by
this process.
ENFILE The number of simultaneously open files in the system would
exceed a system-imposed limit.
The pipe2() function will fail if:
EINVAL An invalid flags argument has been passed.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelAsync-Signal-
Safe _ StandardSee standards(7).
SEE ALSO
sh(1), fcntl(2), fstat(2), getmsg(2), open(2), poll(2), putmsg(2),
read(2), write(2), streamio(4I), attributes(7), standards(7)
NOTES
Since a pipe is bi-directional, there are two separate flows of data.
Therefore, the size (st_size) returned by a call to fstat(2) with argu‐
ment fildes[0] or fildes[1] is the number of bytes available for read‐
ing from fildes[0] or fildes[1] respectively. Previously, the size
(st_size) returned by a call to fstat() with argument fildes[1] (the
write-end) was the number of bytes available for reading from fildes[0]
(the read-end).
On some other systems, pipes are not bi-directional, and fildes[0] may
only be used for reading from the pipe, and fildes[1] may only be used
for writing to the pipe.
HISTORY
The pipe2() function was added to Oracle Solaris in Solaris 11.4.0. See
the open(2) man page for the history of each flag that pipe2() accepts.
The pipe() function has been included in all Sun and Oracle releases of
Solaris.
Oracle Solaris 11.4 30 Jan 2023 pipe(2)