Subject: Re: Different behaviour of "test -f" under cmd and bash, when called from compiled App
From: "Luis Torres" <[email-masked]>
To: "Brian Ford" <[email-masked]>, "Luis Torres" <[email-masked]>
Cc: "[email-masked]" <[email-masked]>
Date: Thu, 11 Dec 2003 11:41:47 +0000

Hi Brian,

Thans for the hint. I have not tested it out, but it suggested me a way to handle the problem, and 
was quite helpful. In fact the whole issue was because I wanted to get a Java application that relies
on Cygwin compiled code, symbolic links and shell scripts, to work [number 1)- you  stripped off ...].
That is Java provides the graphical interface but i/o is dealt with by Unix code.

In fact I discovered the commands test -f issued from a program compiled for Cygwin, while not working
under cmd.exe, caused no problem when the program was invoked from Java, so made no changes in
the code. What caused problems were the scripts and symbolic links: so if the scripts are compiled using
sch-3.2-tgz (from Rosales) into *.exe files and the symbolic links replaced by *.exe files things work.

There is a more complex construct in the code -  a program that dynamically pipes to and runs a script 
(which I compiled), which I on't now if it works. But for the stand alones it works fine.

Regards,

Luis

On Tue, 9 Dec 2003 16:40:24 -0600 (CST), Brian Ford wrote:

>On Tue, 9 Dec 2003, Luis Torres wrote:
>
>> 2)  In relation to the above I tracked the following problem. If I use (interactive shell):
>>       test -f AfileIKnowExists && echo YES (under either cmd.exe or Cygwin/bash), I get the correct answer
>>        (test.exe  from /cygdrive/c/cygwin/bin as per official distribution)
>>       while if I use the code bellow within a program.exe compiled under Cygwin, I get the correct answer if
>>          I use it within bash but NOT the correct answer if I use the program in cmd.exe
>>
>>      Code : "
>>           strcpy(command,"test -f ");
>>   strcat(command,fpath);
>>   if(verbose)
>>     fprintf(stderr,"Executing %s\n", command);
>>   if(!system(command))
>>
>I don't see the problem right off, but HTH.
>
>This will do:
>
>/bin/sh -c command
>
>Also, sh is ash.
>
>With  a  command argument, the result of `system' is the exit
>status returned by `/bin/sh'.
>
>-- 
>Brian Ford
>Senior Realtime Software Engineer
>VITAL - Visual Simulation Systems
>FlightSafety International
>Phone: 314-551-8460
>Fax:   314-551-8444
>

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