X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-0.5 required=5.0 tests=AWL,BAYES_50,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS X-Spam-Check-By: sourceware.org Message-ID: <4E20BFBC.7050504@towo.net> Date: Sat, 16 Jul 2011 00:31:24 +0200 From: Thomas Wolff User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.18) Gecko/20110616 Lightning/1.0b2 Thunderbird/3.1.11 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: popen () fails when running from the windows prompt References: <4E2089CB DOT 4090608 AT valdetaro DOT com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes 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 Am 15.07.2011 21:22, schrieb Andy Koppe: > On 15 July 2011 19:41, Luiz Claudio Valdetaro wrote: >> i, >> >> I am planning a minimalistic installation of my application using cygwin. >> Everything works fine, except that popen() fails when running from the >> windows prompt. >> >> If I ran from the bash shell prompt of cygwin , it works fine. It is the >> only api I use that is failing. I created a simple, test program to narrow >> the issue, and it also fails. >> >> my intention is an installation with just my app, plus the cygwin.dll, as >> little files as possible. >> >> This is my test program: >> >> main (argc,argv) >> int argc; >> unsigned char *argv[]; >> { >> FILE *f; >> char command[80]="ls -l CGI-BIN"; >> char response[200]; >> f = popen (command,"r"); >> if (f == NULL) { >> puts ("stream error"); >> exit (0); >> } >> while (fgets(response,199,f) != NULL) { >> puts (response); >> } >> fclose (f); >> } >> >> The program allays fails printing "stream error" > It's because popen() requires /bin/sh. It works if you copy the following files plus popen itself into a subdirectory "bin" and include that into your PATH: cyggcc_s-1.dll cygiconv-2.dll cygintl-8.dll cygncursesw-10.dll cygreadline7.dll cygwin1.dll ls.exe sh.exe I wonder though why all these libraries are dependencies; the program doesn't use curses, nor intl or iconv, and I linked it with -static-libgcc. Still miraculous. ------ Thomas -- 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