X-Spam-Check-By: sourceware.org To: cygwin AT cygwin DOT com From: mwoehlke Subject: Re: Unable to delete directory in Cygwin Date: Mon, 19 Jun 2006 10:05:20 -0500 Lines: 41 Message-ID: References: <1F211FE03383644EAA6BB7A52FCD9B9B0927A4 AT sohm DOT kpit DOT com> <4491562C DOT 4020702 AT byu DOT net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Thunderbird 1.5.0.4 (X11/20060516) In-Reply-To: <4491562C.4020702@byu.net> X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Eric Blake wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > According to Gina Verlekar on 6/15/2006 3:53 AM: >> Hi, >> >> 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 > the directory. > > 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 closed.) -- Matthew ...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 Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/