unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (v7man)
Page:
Section:
Apropos / Subsearch:
optional field

PIPE(2)                       System Calls Manual                      PIPE(2)



NAME
       pipe - create an interprocess channel

SYNOPSIS
       pipe(fildes)
       int fildes[2];

DESCRIPTION
       The  pipe system call creates an I/O mechanism called a pipe.  The file
       descriptors returned can be used in read and  write  operations.   When
       the  pipe is written using the descriptor fildes[1] up to 4096 bytes of
       data are buffered before the writing  process  is  suspended.   A  read
       using  the  descriptor  fildes[0] will pick up the data.  Writes with a
       count of 4096 bytes or less are atomic; no  other  process  can  inter-
       sperse data.

       It  is assumed that after the pipe has been set up, two (or more) coop-
       erating processes (created by subsequent fork  calls)  will  pass  data
       through the pipe with read and write calls.

       The  Shell has a syntax to set up a linear array of processes connected
       by pipes.

       Read calls on an empty pipe (no buffered data) with only one  end  (all
       write file descriptors closed) returns an end-of-file.

SEE ALSO
       sh(1), read(2), write(2), fork(2)

DIAGNOSTICS
       The  function value zero is returned if the pipe was created; -1 if too
       many files are already open.  A signal is generated if  a  write  on  a
       pipe with only one end is attempted.

BUGS
       Should  more  than  4096 bytes be necessary in any pipe among a loop of
       processes, deadlock will occur.

ASSEMBLER
       (pipe = 42.)
       sys pipe
       (read file descriptor in r0)
       (write file descriptor in r1)



                                                                       PIPE(2)