X-Recipient: archive-cygwin@delorie.com
X-Spam-Check-By: sourceware.org
Message-ID: <47AB7ACC.503@cyconix.com>
Date: Thu, 07 Feb 2008 21:40:28 +0000
From: Paul Leder <sa212+mingw@cyconix.com>
User-Agent: Thunderbird 2.0.0.9 (Windows/20071031)
MIME-Version: 1.0
To: cygwin@cygwin.com
Subject: Re: Incomplete environ when running MinGW apps?
References: <5E25AF06EFB9EA4A87C19BC98F5C87531641A1@core-email.int.ascribe.com> <47AB31C7.3040909@cyconix.com> <47AB3B0B.9060902@sbcglobal.net> <47AB4520.2050305@cyconix.com> <04d801c869b3$d97c8ce0$2e08a8c0@CAM.ARTIMI.COM> <47AB4D05.2090207@cyconix.com> <04e101c869b8$3c90a330$2e08a8c0@CAM.ARTIMI.COM>
In-Reply-To: <04e101c869b8$3c90a330$2e08a8c0@CAM.ARTIMI.COM>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-IsSubscribed: yes
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com

Dave Korn wrote:

>   Out of curiosity, what's the problem with just using popen("...") always?

I get the feeling you're working up to telling me something I don't want 
to hear, but I shall carry on regardless... :)

[_]popen is fine if you want to execute a process and either just get 
its stdout, or just supply its stdin, but not both (and you only want a 
console app; it's buggy, apparently). If you want all 3 of stin, stdout, 
and stderr redirected, as I do, you must (I think) use CreateProcess and 
do the donkey work yourself. I haven't investigated what _popen does to 
slashes and quotes, but it's presumably the same as 'system'.

You only need to use pipes at all because Windoze processes can't 
reliably inherit sockets. But, as it turns out, the process and pipe 
creation is not the difficult part of the problem anyway. The real 
bu**er is connecting the pipes to the socket that talks to the remote 
peer. Since select is broken, you have to do this with multiple threads 
and events, and async waits.

-Paul

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

