This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: popen () fails when running from the windows prompt


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]