Mail Archives: cygwin/2011/07/16/03:25:43
On Jul 16 00:31, Thomas Wolff wrote:
> 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.
Not really. These are dependencies of sh.exe, which is bash by default.
$ ldd popen | grep -i cyg
cygwin1.dll => /usr/bin/cygwin1.dll (0x61000000)
cyggcc_s-1.dll => /usr/bin/cyggcc_s-1.dll (0x6d5d0000)
$ ldd /bin/ls | grep -i cyg
cygwin1.dll => /usr/bin/cygwin1.dll (0x61000000)
cygintl-8.dll => /usr/bin/cygintl-8.dll (0x6a990000)
cygiconv-2.dll => /usr/bin/cygiconv-2.dll (0x6b770000)
cyggcc_s-1.dll => /usr/bin/cyggcc_s-1.dll (0x6d5d0000)
$ ldd /bin/sh | grep -i cyg
cygwin1.dll => /usr/bin/cygwin1.dll (0x61000000)
cygintl-8.dll => /usr/bin/cygintl-8.dll (0x6a990000)
cygiconv-2.dll => /usr/bin/cygiconv-2.dll (0x6b770000)
cyggcc_s-1.dll => /usr/bin/cyggcc_s-1.dll (0x6d5d0000)
cygreadline7.dll => /usr/bin/cygreadline7.dll (0x725a0000)
cygncursesw-10.dll => /usr/bin/cygncursesw-10.dll (0x6a2e0000)
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Project Co-Leader cygwin AT cygwin DOT com
Red Hat
--
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 -