next up previous contents index
Next: Dup2 Up: Functions and procedures Previous: DirName

Dup

   

Declaration:

Procedure Dup (Var OldFile, NewFile : Text) ;

Description:

Makes NewFile an exact copy of OldFile, after having flushed the buffer of OldFile. Due to the buffering mechanism of Pascal, this has not the same functionality as the dup (2) call in C. The internal Pascal buffers are not the same after this call, but when the buffers are flushed (e.g. after output), the output is sent to the same file. Doing an lseek will, however, work as in C, i.e. doing a lseek will change the fileposition in both files.

Errors:

Linuxerror is used to report errors.

sys_ebadf
OldFile hasn't been assigned.
sys_emfile
Maximum number of open files for the process is reached.

See also:

Dup2, Dup (2)

Example
program Example31;

{ Program to demonstrate the Dup function. }

uses linux;

var f : text;

begin
  if not dup (output,f) then 
    Writeln ('Dup Failed !');
  writeln ('This is written to stdout.');
  writeln (f,'This is written to the dup file, and flushed');flush(f);
  writeln
end.



Michael Van Canneyt
Thu Sep 10 13:59:33 CEST 1998