I'm not sure why I get the error above, but is there a way to wait to
unlink a file until it's no longer being used by another process?

IIn a CGI file, when trying to unlink a file I get the following message.

"The process cannot access the file because it is being used by another process"

What I'm doing is:
 basically I'm
reading file 1 and writing it to file 2.
close file 1
close file 2.

rename file 2 to file 1.

Since I can't rename if the file exists, I first unlink file 1. When I
do, I get the error above. I've closed the file, and It's not open
anywhere else so I don't understand what the problem is.

What's odd is that this code runs fine if I run it as a command line
script, but if it's run as a CGI script if fails.

Here's the relevant code:
read file 1.
write file 2.
  close (RIGHTSLISTFILE);
  close (TMPFILE);

  # rename tmpfile to rightslistfile
$a = stat($tmpfilename);
$b = stat($rightslistfilename);
printf "perms: %04o\n<br>", $a & 07777;
printf "perms: %04o\n<br>", $b & 07777;
if ( ! unlink( $rightslistfilename ))
{
     print "Unlink ERROR!<br>";
     print "$tmpfilename<br>";
     print "$rightslistfilename<br>";
     print "$!<br>";
     print "$^E<br>";

}

 if( ! rename $tmpfilename, $rightslistfilename )
 {
     print "Rename ERROR!<br>";
     print "$tmpfilename<br>";
     print "$rightslistfilename<br>";
     print "$!<br>";
     print "$^E<br>";
     system("whoami");
     print "<br>";
 }

Thanks.

Ed
--
Ed

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to