delorie.com/archives/browse.cgi | search |
X-Recipient: | archive-cygwin AT delorie DOT com |
X-SWARE-Spam-Status: | No, hits=-1.3 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS,TW_QL |
X-Spam-Check-By: | sourceware.org |
To: | cygwin AT cygwin DOT com |
From: | Andrew DeFaria <Andrew AT DeFaria DOT com> |
Subject: | Re: How do I run a program compiled in cygwin from a program that is running in a Windows CMD shell? |
Date: | Wed, 14 Sep 2011 22:24:25 -0700 |
Lines: | 33 |
Message-ID: | <j4s269$bg7$1@dough.gmane.org> |
References: | <loom DOT 20110915T060405-768 AT post DOT gmane DOT org> |
Mime-Version: | 1.0 |
User-Agent: | Mozilla/5.0 (X11; Linux x86_64; rv:6.0.2) Gecko/20110906 Thunderbird/6.0.2 |
In-Reply-To: | <loom.20110915T060405-768@post.gmane.org> |
X-Stationery: | 0.7.5 |
X-IsSubscribed: | yes |
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 09/14/11 21:13, Ted Byers wrote: > The program run, and works, but ... > > I have a perl program Perl script... > running from a WIndows CMD shell, that needs to somehow > run it in bash (with my usual environment when I run the bash shell) Why? Why does it need to run in bash? cmd and bash are just program launchers from the perspective of your Perl script. > If I run bash, I invoke my program my program using './qlt' followed by almost > a dozen commandline arguments. If I had compiled it using MSVC++, I could invoke it from my perl program using "my $op = `qlt a nb c args`;" I'm assuming now that qlt is your "program", probably a C program, that you compile from either MVC++ or perhaps Cygwin - you are not clear here... > How do I modify what is within perl's backticks so that qlt is invoked as a > child in my normal bash environment? Can it be done? It can't be done. When Perl "executes" some thing in backticks it is invoked as a child of the Perl process, not the bash nor cmd process. Normally the Perl process is a child of either bash or cmd depending on which shell you used to launch your Perl process. > I am not asking about building the program so it doesn't need to run within > cygwin's bash. I have other tools that let me do that if I must. Rather, I > want to make a child process that has the cygwin environemt even though the > parent process does not. In order to understand this you need to become cognizant as to exactly what Perl you are running when you run your Perl script. How exactly are you firing off this puppy? Cygwin's Perl will run commands backticked through your shell (normally bash). ActiveState's Perl will run commands backticked through cmd. The two have vastly different semantics. So, what Perl are you running? -- Andrew DeFaria <http://defaria.com> Since light travels faster than sound, isn't that why some people appear bright until you hear them speak? -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |