Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^2: Unix rename behaviour

by ioannis (Priest)
on May 03, 2006 at 06:14 UTC ( #547073=note: print w/ replies, xml ) Need Help??


in reply to Re: Unix rename behaviour
in thread Unix rename behaviour

True, but I think the OP meant "cp" and not "mv" when refering to the rename(?) command. Although the cp(1) command will create a new inode, the already opened filehandles are pointing to older inodes.


Comment on Re^2: Unix rename behaviour
Re^3: Unix rename behaviour
by Anonymous Monk on May 03, 2006 at 09:46 UTC
    Well, he meant "rename" when he said "rename"?! (it's linked to perl rename)

    -> Code should look like this

    $ cat foo.pl #!/usr/bin/perl -w ################## open(OUT,">testfileA"); print OUT "This is testfileA\n"; close(OUT); open(OUT,">testfileB"); print OUT "This is testfileB\n"; close(OUT); open(IN,"/tmp/testfileA"); rename ("testfileB", "testfileA"); print <IN>; close IN;

    Yields:
    $ ./foo.pl readline() on closed filehandle IN at ./foo.pl line 15.
    So the answer is "neither - rename closes the filehandle". I.
      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';

      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://547073]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (11)
As of 2014-12-17 20:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (32 votes), past polls