delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2011/10/09/16:28:49

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_NEUTRAL
X-Spam-Check-By: sourceware.org
Message-ID: <4E9203EA.2070801@cornell.edu>
Date: Sun, 09 Oct 2011 16:28:26 -0400
From: Ken Brown <kbrown AT cornell DOT edu>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: Problem redirecting stderr to pipe in subprocess
References: <4E906DD1 DOT 50107 AT cornell DOT edu> <32620821 DOT post AT talk DOT nabble DOT com>
In-Reply-To: <32620821.post@talk.nabble.com>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.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 10/9/2011 4:10 PM, jan.kolar wrote:
>
>
> Ken Brown-6 wrote:
>>
>> The attached STC arose from my attempt to understand the problem
>> discussed starting in
>>
>>     http://cygwin.com/ml/cygwin/2011-09/msg00405.html .
>>
>> I'm starting a new thread because there appears to be a Cygwin problem
>> having nothing to do with emacs.
>>
>> The STC creates a pipe and then runs `bash -ic ls' in a subprocess, with
>> both stdout and stderr sent to the pipe.  The parent process reads from
>> the pipe and echoes it to the terminal.
>>
>> On Linux, I first get the error messages (presumably expected)
>>
>> bash: cannot set terminal process group (-1): Invalid argument
>> bash: no job control in this shell
>>
>> followed by the directory listing.  On Cygwin, the bash process produces
>> no output but is simply stopped, and I have to kill it from another
>> terminal before the main program will exit.  This happens both with
>> cygwin-1.7.9 and the latest snapshot.  Here are a few comments:
>>
>> 1. The problem disappears if I don't send bash's stderr to the pipe.
>>
>> 2. The problem also disappears if I replace -ic by -c in the call to
>> bash, presumably because there's nothing sent to stderr in that case.
>>
>> 3. The problem disappears if I don't use a pipe but just have the bash
>> subprocess write to the terminal, even if I redirect bash's stderr to
>> stdout.
>>
>> Ken
>>
>
>
> * Does your program work when compiled by gcc-4 (as opposed to gcc-3) ?
>
> --
>
> Because I also spot some problem with it, if gcc-3 is used:
>
> # correct with gcc-4
> $ gcc-4 STC.c&&  ./a.exe
> ls: cannot access neeeee: No such file or directory
> .bashrc*
>
> # custom cygwin1.dll warning with gcc-3 :
> $ gcc-3 STC.c&&  ./a.exe
> #####   Ooops, first in forkee and it is not dll:init; where=dcrt0.cc
> dll_crt0_1()   pozde - je po linked dll::init iwhere=90
> ls: cannot access neeeee: No such file or directory
> .bashrc*
>
> I think I've have never seen the message (its my debug message); if you
> confirm your program makes difference between gcc-3 and gcc-4, I will have
> find out what it means.
> (Probably it is like unexpected ordering of DLL's or ordering of their
> initialization.)

I always use gcc-4.  I've just recompiled with gcc-3, and the results 
are the same.

Ken


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

- Raw text -


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