Re: dup2() vs dup3() inconsistency when

From: Bodo Eggert
Date: Fri Oct 10 2008 - 07:31:37 EST


Michael Kerrisk <mtk.manpages@xxxxxxxxxxxxxx> wrote:

> Well, as long as we are fixing the dup3() interface in the way that Al
> and Ulrich have suggested, what about another fix:
>
> give an error if newfd is already open, thus forcing the user to do an
> explicit close
>
> ?
>
> This silent close in dup2() is an implementation blemish. Why not eliminate
> it?

I think it might be usefull:
Thread B does some logging to fd 42
Thread A switches the logfile by creating a new file, writing a header and
then does dup3(fd, 42, O_WRONLY|O_APPEND|O_CLOEXEC); close(fd);

(Off cause this is not yet implemented, O_RDONLY would give some problems,
O_CLOEXEC alone might be better done while open()ing the file, ... but you
get the idea.)


BTW: I think dup3(fd, -1, flags) should use the file descriptor dup() would
return. Or should there be a dupf(fd, flags) syscall instead?


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/