PIPE(2) — HP-UX
NAME
pipe − create an interprocess channel
SYNOPSIS
int pipe (fildes)
int fildes[2];
DESCRIPTION
Pipe creates an I/O mechanism called a pipe and returns two file descriptors, fildes[0] and fildes[1]. Fildes[0] is opened for reading and fildes[1] is opened for writing.
Writes up to 5120 bytes of data are buffered by the pipe before the writing process is blocked. A read only file descriptor fildes[0] accesses the data written to fildes[1] on a first-in-first-out (FIFO) basis.
EXAMPLES
The following example uses pipe to implement the command string "ls | sort":
int pid;
int pipefd[2];
/* Assumes file descriptor 0 and 1 are open */
pipe (pipefd);
if ((pid = fork()) == 0) {
close(1); /* close stdout */
dup (pipefd[1]);
execlp ("ls", ls , 0);
}
else if (pid > 0) {
close(0);/* close stdin */
dup (pipefd[0]);
execlp ("sort", sort , 0);
}
RETURN VALUE
Upon successful completion, a value of 0 is returned. Otherwise, a value of −1 is returned and errno is set to indicate the error.
ERRORS
Pipe will fail if one or more are true:
| [EMFILE] | NFILE - 1 or more file descriptors are currently open. |
| [ENFILE] | The system file table is full. |
| [ENOSPC] | Not enough space on file system. |
SEE ALSO
sh(1), read(2), write(2), popen(3S).
Hewlett-Packard Company — May 11, 2021