DUP(II)                      8/5/73                       DUP(II)


     dup - duplicate an open file descriptor


     (dup = 41.; not in assembler)

     (file descriptor in r0)

     sys dup


     int fildes;


     Given a file descriptor returned  from  an  open,  pipe,  or

     creat  call,  dup  will  allocate  another  file  descriptor

     synonymous with the original.  The new  file  descriptor  is

     returned in r0.

     Dup is used more to reassign the value of  file  descriptors

     than  to  genuinely  duplicate a file descriptor.  Since the

     algorithm to allocate file descriptors  returns  the  lowest

     available  value  between  0  and 9, combinations of dup and

     close can be  used  to  manipulate  file  descriptors  in  a

     general  way.  This is handy for manipulating standard input

     and/or standard output.


     creat(II), open(II), close(II), pipe(II)


     The error bit (c-bit) is set if: the given  file  descriptor

     is  invalid;  there are already 10 open files.  From C, a -1

     returned value indicates an error.