Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-ID: <3B162F6B.449496A1@bellatlantic.net> Date: Thu, 31 May 2001 07:47:55 -0400 From: "John W. Kennedy" Reply-To: jwkenne AT attglobal DOT net X-Mailer: Mozilla 4.75 [en] (Win95; U) X-Accept-Language: en MIME-Version: 1.0 To: Cygwin Users Subject: Re: 1.3.2 Catch-22 in tmpnam/tmpfile with gcc -mno-cygwin References: <3B1510F5 DOT 8BCF31AF AT bellatlantic DOT net> <20010530130630 DOT C19066 AT redhat DOT com> <3B15394E DOT E07EBB39 AT yahoo DOT com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Earnie Boyd wrote: > > Christopher Faylor wrote: > > > > On Wed, May 30, 2001 at 11:25:41AM -0400, John W. Kennedy wrote: > > >At present, gcc option -mno-cygwin is incompatible with tmpfile and > > >tmpnam. When -mno-cygwin is used, at runtime all temporary files are > > >put into directory "/tmp", which is incompatible with no-cygwin > > >operation unless a writable "x:\tmp" directory happens to exist, where > > >x: is the current drive. > > > > > >The obvious fix would make -mno-cygwin executables sensitive to a > > >standard Windows environment variable such as TMP, or at least to an > > >ad-hoc environment variable. > > > > -mno-cygwin produced Microsoft native binaries. It uses some libraries > > from the mingw project, but they are not supported here. You probably want > > to send email to a mailing list mentioned at www.mingw.org. > > > > I'm not understanding this. What is it that isn't working? Give > examples of your environment, command line and results. Any C program using the tmpnam/tmpfile functions (in stdio), and compiled with the -mno-cygwin flag, places the temporary file in directory "/tmp". Using this directory name works fine with cygwin.dll, because it is mapped to (for example) "C:\Cygwin\tmp", but in -mno-cygwin mode, it is interpreted as "x:\tmp" where x: is the current drive. This directory normally won't exist, and may not be writable; in either case, the program will fail. With cygwin.dll, an environment variable at run time can override the "/tmp", but there appears to be no way to do it with -mno-cygwin. In essence, all C programs compiled with -mno-cygwin and using tmpnam or tmpfile can be expected to fail. -- John W. Kennedy (Working from my laptop) -- Want to unsubscribe from this list? Check out: http://cygwin.com/ml/#unsubscribe-simple