delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2007/07/06/15:25:08

X-Spam-Check-By: sourceware.org
Date: Fri, 6 Jul 2007 15:24:44 -0400 (EDT)
From: Igor Peshansky <pechtcha AT cs DOT nyu DOT edu>
Reply-To: cygwin AT cygwin DOT com
To: MVUKOVIC AT nycap DOT rr DOT com
cc: cygwin AT cygwin DOT com
Subject: Re: cygwin changes default directory of (fortran) code
In-Reply-To: <c429f9ef447d4.447d4c429f9ef@nyroc.rr.com>
Message-ID: <Pine.GSO.4.63.0707061514290.7471@access1.cims.nyu.edu>
References: <c429f9ef447d4 DOT 447d4c429f9ef AT nyroc DOT rr DOT com>
MIME-Version: 1.0
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On Fri, 6 Jul 2007, MVUKOVIC wrote:

> Hello,
>
> I am compiling a fortran program using intel's compiler, and use cygwin
> for the command-line interface (I will be switching to a linux machine
> soon, so I am staying away from MS's visual studio).
>
> When I invoke the executable from cygwin, it tries to find the input
> files in C:\windows\system32.  If I invoke it from the windows command
> prompt, it finds the files ok.  If I specify the full file path, than I
> don't have a problem in cygwin.
>
> I am a bit puzzled by this behavior because last time I did some fortran
> coding under the same environment (about a year ago), I do not remember
> having that issue.
>
> I could not find info on such behavior on the prior mailings.
>
> Any ideas/suggestions as to what may be going on?

To implement POSIX functionality like allowing to remove the current
directory, Cygwin changes the Win32 current working directory of a process
to C:\WINDOWS\system32, while keeping its own notion of what the CWD is.
This is transparent to the Cygwin file IO calls, but will confuse the
Win32 calls.

The CWD is inherited by child processes.  When invoking non-Cygwin
programs, Cygwin's exec() should change the cwd back to its real value.
That doesn't seem to be happening in your case.

A simple testcase (e.g., a Win32 program that invokes getpwd() and prints
the value) which ought to demonstrate the discrepancy should be easy to
produce.  If that works as expected, you'll need to check what else is
happening in your FORTRAN executable.
	Igor
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_	    pechtcha AT cs DOT nyu DOT edu | igor AT watson DOT ibm DOT com
ZZZzz /,`.-'`'    -.  ;-;;,_		Igor Peshansky, Ph.D. (name changed!)
     |,4-  ) )-,_. ,\ (  `'-'		old name: Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

Belief can be manipulated.  Only knowledge is dangerous.  -- Frank Herbert

--
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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019