Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm 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 Date: Wed, 27 Apr 2005 18:20:31 -0400 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: mkstemp bug Message-ID: <20050427222031.GB24021@trixie.casa.cgf.cx> Reply-To: cygwin AT cygwin DOT com References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.8i On Wed, Apr 27, 2005 at 06:06:09PM -0400, Sam Steingold wrote: >> * Sam Steingold [2005-04-27 13:24:29 -0400]: >> >> it appears that mkstemp() returns a temp FD pointing to the same file: >> mkstemp ("/tmp/clisp-x-io-XXXXXX"); >> ==> "/tmp/clisp-x-io-000592" >> mkstemp ("/tmp/clisp-x-io-XXXXXX"); >> ==> "/tmp/clisp-x-io-000592" >> mkstemp ("/tmp/clisp-x-io-XXXXXX"); >> ==> "/tmp/clisp-x-io-000592" > >this is note quite as easy to reproduce. sorry. > >the problem is that mkstemp() does not regard FIFOs (as created by >mkfifo() or mknod()) as existing files. > >e.g. > > char s1[] = "/tmp/foo-XXXXXX"; > char s2[] = "/tmp/foo-XXXXXX"; > int fd = mkstemp(s1); > close(fd); remove(s1); > mkfifo(s1,0644); > mkstemp(s2); > strcmp(s1,s2) ===> 0 fifos just barely work under cygwin. I wouldn't recommend using them. cgf -- 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/