in reply to Re^3: Unix rename behaviour
in thread Unix rename behaviour
So the answer is "neither - rename closes the filehandle".
I think you missed the bit about "... two concurrent (Perl) processes ..." and "... when the second process next reads via it's open handle ..."
A better test would be
#!/usr/bin/perl use strict; use warnings; open OUT, '>', 'junk.1' or die $!; print OUT 'X'x 20 . "$_\n" for 1 .. 20; close OUT; open OUT, '>', 'junk.2' or die $!; print OUT 'Y'x 20 . "$_\n" for 1 .. 20; close OUT; open IO, '+<', 'junk.1' or die $!; seek IO, 0, 0; print scalar <IO>; system $^X, '-le', q[ print rename( 'junk.2', 'junk.1' ) ? 'worked' : +'failed']; print scalar <IO>; seek IO, 0, 0; print scalar <IO>; close IO; unlink 'junk.1';
|
|---|