Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ pipe(2) — HP-UX 5.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.

HARDWARE DEPENDENCIES

Integral PC
Writes of up to 10240 bytes of data are buffered by the pipe before the writing process is blocked.

SEE ALSO

sh(1), read(2), write(2), popen(3S). 

Hewlett-Packard Company  —  Version B.1,  May 11, 2021

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