[Overview][Constants][Types][Procedures and functions][Index] | Reference for unit 'BaseUnix' (#rtl)

# FpPipe

Create a set of pipe file handlers

## Declaration

Source position: bunxh.inc line 37

`function FpPipe(`
`var fildes: TFilDes`
`):cint;`

## Description

FpPipe creates a pipe, i.e. two file objects, one for input, one for output. The file handles are returned in the array fildes. The input handle is in the 0-th element of the array, the output handle is in the 1-st element.

The function returns zero if everything went successfully, a nonzero return value indicates an error.

## Errors

In case the function fails, the following return values are possible:

sys_emfile
  Too many file descriptors for this process.
sys_enfile
  The system file table is full.

## See also

#rtl.unix.POpen |  | Pipe file to standard input/output of program
fpMkFifo |  | Create FIFO (named pipe) in file system

## Example

    Program Example36;

    { Program to demonstrate the AssignPipe function. }

    Uses BaseUnix,Unix;

    Var pipi,pipo : Text;
        s : String;

    begin
      Writeln ('Assigning Pipes.');
      If assignpipe(pipi,pipo)<>0 then
        Writeln('Error assigning pipes !',fpgeterrno);
      Writeln ('Writing to pipe, and flushing.');
      Writeln (pipo,'This is a textstring');close(pipo);
      Writeln ('Reading from pipe.');
      While not eof(pipi) do
        begin
        Readln (pipi,s);
        Writeln ('Read from pipe : ',s);
        end;
      close (pipi);
      writeln ('Closed pipes.');
      writeln
    end.

Documentation generated on: May 14 2021