Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ pipe(2) — HP-UX 6.20

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sh(1)

read(2)

write(2)

popen(3S)

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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026