X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Message-ID: <4F90288C.1070304@lysator.liu.se> Date: Thu, 19 Apr 2012 17:00:28 +0200 From: Peter Rosin User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120327 Thunderbird/11.0.1 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: 1.7.10->1.7.13 : output from .NET programs does not get through pipeline to a visual c++ program References: <20120419141426 DOT GA9010 AT ednor DOT casa DOT cgf DOT cx> In-Reply-To: <20120419141426.GA9010@ednor.casa.cgf.cx> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , 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 2012-04-19 16:14, Christopher Faylor wrote: > On Thu, Apr 19, 2012 at 12:56:33PM +0100, somebody wrote: >> Hi all, >> >> This started in 1.7.10 and I thought this may be fixed in 1.7.12 due >> to emails in the mailing list: >> http://sourceware.org/ml/cygwin/2012-03/msg00666.html >> >> But there still seems to be a problem piping from a .net console >> application to a visual c++ console application. >> >> Using the following simple C# program complied using "csc /optimize >> /target:exe /out:./consoleout.exe Program.cs" >> >>>>>> Begin Program.cs >> namespace consoleout >> { >> using System; >> >> internal static class Program >> { >> private static void Main(string[] args) >> { >> foreach (var arg in args) { >> Console.Out.WriteLine(arg); >> } >> } >> } >> } >> <<<< End Program.cs >> >> I can use this to output to cygwin exes OK >> $ ./consoleout.exe Hello There | cat >> Hello >> There >> $ ./consoleout.exe Hello There | grep ll >> 1:Hello >> $ >> >> I also created a visual c++ executable like the simple one below >> compiled with "cl /EHs readin.cxx /link" >> >>>>>> Begin readin.cxx >> #include >> #include >> >> int >> main(int argc, char** argv) >> { >> static_cast(argc); >> static_cast(argv); >> std::string buf; >> buf.reserve(1024); >> while (std::getline(std::cin, buf, '\n')) { >> std::cout << buf << '\n'; >> } >> return EXIT_SUCCESS; >> } >> <<<< End readin.cxx >> >> I can use this to output anything read in >> $ echo Hello | ./readin.exe >> Hello >> $ cat 'readin.cxx' | ./readin.exe >> #include >> #include >> >> int >> main(int argc, char** argv) >> { >> static_cast(argc); >> static_cast(argv); >> std::string buf; >> buf.reserve(1024); >> while (std::getline(std::cin, buf, '\n')) { >> std::cout << buf << '\n'; >> } >> return EXIT_SUCCESS; >> } >> $ >> >> But when combining the two, nothing happens. >> $ ./consoleout.exe Hello There | ./readin.exe >> $ >> >> It "seems" as though the console out from the .net is not being >> correctly piped through to a vc++ program. I know that is a strange >> defect given all the other combinations work. >> >> The reverse works i.e. output from a visual c++ console application is >> piped correctly to a .net console application. >> >> This worked prior to 1.7.10 (1.7.9 and before). >> >> I am sorry that I cannot point to an area in the Cygwin code or >> suggest a fix, but I am hoping this is enough of a description to help >> someone find out what the issue is. > > Sorry but I'm not going to set up a .NET development environment to > figure out a problem. If someone else wants to provide a clue as > to what's going on, I'd appreciate it. I'll bite, and it WJFFM... $ ./consoleout hello world | ./readin hello world $ uname -a CYGWIN_NT-6.1-WOW64 PEDA-PC 1.7.13(0.260/5/3) 2012-04-05 12:43 i686 Cygwin To stress it a tiny bit more: $ ./consoleout hello world | ./readin | ./readin | ./readin | ./readin hello world $ ./consoleout hello world | ./readin | ./readin | grep rl | ./readin | ./readin world Question for the OP: Does the pipe work from a cmd prompt? Cheers, Peter -- 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