On Sun, Sep 09, 2007 at 07:10:59PM +0100, Stephane Chazelas wrote:
[...]
> What OS and version of glibc? I do get the error message but I
> get both a and b in the file.
>
> That was on Linux, glibc 2.6.1.
[...]
Actually,
bash -c 'echo a; echo b > a' >&-
is enough for me to reproduce the problem.
And that program below shows the same behavior when run as
./a.out >&-
#include <stdio.h>
#include <fcntl.h>
int main()
{
printf("a\n");
fflush(stdout);
dup2(open("a", O_WRONLY|O_CREAT, 0644), 1);
printf("b\n");
fflush(stdout);
return 0;
}
--
Stéphane