unlink() problem

John Wiersba John.Wiersba@medstat.com
Tue Jul 31 15:24:00 GMT 2001


I'm having a problem with unlink().  I've scanned the FAQ and searched some
in the newsgroup archives for information about the following problem.  I
did find a post (see
http://sources.redhat.com/ml/cygwin/2001-05/msg01095.html ) but no apparent
resolution.

$ touch asdf
$ perl -i -pe 1 asdf
Can't do inplace edit on asdf: Permission denied.

What perl is doing is equivalent to:

$ perl -e '
   open A, "< asdf" or die "one $!";  # open asdf for read
   unlink "asdf";
   open B, "> asdf" or die "two $!";  # open asdf for write
   while (<A>) { print B }            # copy from A to B
'
two Permission denied at -e line 4.

The problem:  after the unlink(), I can't open the same filename for write
as I can on unix.  If I pause the program after unlinking asdf, it is still
there and can be seen by ls, but can't be read by ls -l.  

Is there a workaround for this behavior?  Is it considered a bug or is it
just a quirk of the cygwin implementation of trying to implement unix
filesystem semantics on top of windows?

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list