popen() fails while system() works

Rainer Hochreiter rainer@hochreiter.at
Wed Jan 5 10:04:00 GMT 2005

my main program 'mpsvcd.exe' dynamically loads a shared library using
dlopen(). one of the functions from this shared library calls popen() to
read the standard output from another executable - and this fails with the
error messages listed below! using system() instead of popen() to start
the executable works fine, except that i can't read it's standard output.
what's the difference between using popen() and system() here?
under linux popen() works also! 

any hints?

some more infos:
my main program and the shared library are built with cygwin, while
the called executable is a Win32 exe file.

error output:
C:\cygwin\opt\topcall\bin\mpsvcd.exe (1340): *** unable to remap
C:\cygwin\bin\cygintl-2.dll to same address as parent(0x1CC0000) !=
   1884 [main] mpsvcd 2308 sync_with_child: child 1340(0x63C) died before
   initialization with status code 0x1
  18224 [main] mpsvcd 2308 sync_with_child: *** child state child loading
EXCEPTION - reason: popen() failed for command
'/opt/topcall/bin/mytest.exe': Resource temporarily unavailable

Rainer Hochreiter
Research & Development
TOPCALL Internation AG
A-1230 Vienna, Talpagasse 1
Phone: +43 1 86353 198 Fax: +43 1 86353 8198
Email: rainer.hochreiter@topcallcom
WWW: http://www.topcall.com

Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

More information about the Cygwin mailing list