[comp.unix.questions] Question about dup

mark@spider.co.uk (Mark Valentine) (05/10/89)

I came across the following code fragment, and was wondering about its
history...  It's not mentioned in any of the manuals I've looked at.

        #define DUPFLG  0100

	    ...

        dup(f1 | DUPFLG, f2);

There was some parallel code (the other half of an #ifdef RES) which used
a F_GETFD/F_DUPFD/F_SETFD sequence instead, so I guess that this must be
somebody's way of saving the close-on-exec flag across a dup.

	Can anyone offer some enlightenment?

		Mark.
__
Mark Valentine, Spider Systems Limited, Edinburgh, UK.		/\oo/\
<mark@spider.co.uk, mark%spider.co.uk@uunet.uu.net, uunet!mcvax!ukc!spider!mark>

gwyn@smoke.BRL.MIL (Doug Gwyn) (05/10/89)

In article <19538@adm.BRL.MIL> mark@spider.co.uk (Mark Valentine) writes:
>        dup(f1 | DUPFLG, f2);

That was an early implementation of what we now know of as dup2(f1,f2)
or close(f2),fcntl(f1,F_DUPFD,f2).  dup2() is still sometimes actually
implemented that way in the system call interface, but user code should
use one of the officially approved methods.