This is the mail archive of the
mailing list for the Cygwin project.
Re: Unable to delete directory in Cygwin
Eric Blake wrote:
-----BEGIN PGP SIGNED MESSAGE-----
According to Gina Verlekar on 6/15/2006 3:53 AM:
I have implemented some changes in the linker code for some intermediate
processing. For that I need to create a temporary directory, generate
some intermediate in it, process those files by calling a function.
After processing of the intermediate files, I delete the intermediate
files and the temporary directory.
While this logic works fine in the linux, the temporary directory does
not get deleted in cygwin.
Windows is not Linux, and will not allow users to delete in-use
directories (where a directory is considered in-use if it contains files,
or if any process is using that directory as its current working
directory), nor the clean deletion of files that are still open. POSIX
allows this behavior, and cygwin cannot change Window's implementation of
deletion semantics. Just because Linux behaves nicer doesn't mean that it
is portable to remove in-use directories. Fix your code to first close
all outstanding file handles before trying to remove the files, and then
That said, cygwin does try to emulate linux, and if someone were to
contribute a patch that would allow cygwin to emulate directory deletion
if it knows that all open handles have also been scheduled for unlinking
at process end, then http://cygwin.com/acronyms/#PTC.
Not a patch, but for the record, it looks like Interix solves this
problem (http://www.interopsystems.com/tools/tm.aspx?m=9403). Maybe
Cygwin could do something similar?
(And in case that link dies; apparently Interix has a special 'temp'
directory where "unlinked" files are sent until their handles are all
...Ruthlessly beating Windows with a hammer until it looks like POSIX.
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html