From: dslate AT interaccess DOT com ("David J. Slate") Subject: popen problems 7 Sep 1997 09:32:32 -0700 Approved: cygnus DOT gnu-win32 AT cygnus DOT com Distribution: cygnus Message-ID: <199709061315.IAA29452.cygnus.gnu-win32@pc4.prs.nunet.net> Original-To: dslate AT interaccess DOT com, gnu-win32 AT cygnus DOT com Original-Sender: owner-gnu-win32 AT cygnus DOT com To: gnu-win32 AT cygnus DOT com Reply-To: dslate AT interaccess DOT com Subject: popen problems I recently installed the gnu-win32 package (b18, with development tools) on my DELL PentiumII box running Windows-95. I got a simple "Hello, world!" program to compile and run with gcc, and am now trying to port a complex application from a Linux/Unix environment. I'm having a problem with popen, which seems to fail consistently. For example, compiling and running the following program: -------------------------------------------------------------------------- #include #include #include int main( int argc, char *argv[]) { char s[ 1000], *t; FILE *fp; fp = popen( "cat >zfile", "w"); if (! fp) exit( 1); fprintf( fp, "Hello, World!\n"); return (0); } -------------------------------------------------------------------------- produces the following on stderr: (C:\TMP\A.EXE 1111) In cygwin_except_handler (C:\TMP\A.EXE 1111) Exception trapped! (C:\TMP\A.EXE 1111) exception C0000005 at BFF76EF6 (C:\TMP\A.EXE 1111) exception: ax 81605000 bx 82BA8C38 cx C30 dx 0 (C:\TMP\A.EXE 1111) exception: si 816221D4 di E bp 253ECA0 sp 253E574 (C:\TMP\A.EXE 1111) exception is: STATUS_ACCESS_VIOLATION (C:\TMP\A.EXE 1111) Stack trace: (C:\TMP\A.EXE 1111) frame 0: sp = 0x253E38C, pc = 0x1000CEC2 (C:\TMP\A.EXE 1111) frame 1: sp = 0x253E3A8, pc = 0xBFF76780 (C:\TMP\A.EXE 1111) frame 2: sp = 0x253E3CC, pc = 0xBFF858F3 (C:\TMP\A.EXE 1111) frame 3: sp = 0x253E464, pc = 0xFFECBAD7 (C:\TMP\A.EXE 1111) frame 4: sp = 0x253ECA0, pc = 0x1000D776 (C:\TMP\A.EXE 1111) frame 5: sp = 0x253ECDC, pc = 0x10026A39 (C:\TMP\A.EXE 1111) frame 6: sp = 0x253F0F0, pc = 0x1002876F (C:\TMP\A.EXE 1111) frame 7: sp = 0x253F120, pc = 0x401079 (C:\TMP\A.EXE 1111) frame 8: sp = 0x253F520, pc = 0x1000C102 (C:\TMP\A.EXE 1111) frame 9: sp = 0x253FE0C, pc = 0x1000C113 (C:\TMP\A.EXE 1111) frame 10: sp = 0x253FE18, pc = 0x40120D (C:\TMP\A.EXE 1111) frame 11: sp = 0x253FE28, pc = 0x40103B (C:\TMP\A.EXE 1111) frame 12: sp = 0x253FE38, pc = 0xBFF88E93 (C:\TMP\A.EXE 1111) frame 13: sp = 0x253FF78, pc = 0xBFF88D41 (C:\TMP\A.EXE 1111) frame 14: sp = 0x253FFF4, pc = 0xBFF87759 (C:\TMP\A.EXE 1111) frame 15: sp = 0x81621EE0, pc = 0x4 (C:\TMP\A.EXE 1111) End of stack trace (more stack frames may be present) Here is the output from the set command, to show my environmental vars: !C:=C:\tmp BASH=/GNUWIN32/B18/H-I386~1/BIN/BASH.EXE BASH_VERSION=1.14.7(2) BLASTER=A220 I5 D1 T4 CMDLINE=bash COMSPEC=C:\WINDOWS\COMMAND.COM EUID=500 GCC_EXEC_PREFIX=C:\gnuwin32\b18\H-i386-cygwin32\lib\gcc-lib\ GDBTK_LIBRARY=C:/gnuwin32/b18/share/gdbtcl HISTFILE=/.bash_history HISTFILESIZE=500 HISTSIZE=500 HOSTTYPE=i386 IFS= MAILCHECK=60 MSINPUT=C:\MSINPUT OPTERR=1 OPTIND=1 OSTYPE=win32 PATH=/WINDOWS:/windows:/windows/COMMAND:/LOCAL/BIN:/GNUWIN32/B18/H-I386-CYGWIN32/BIN:/GNUWIN32/B18/TCL/BIN PPID=1000 PROMPT=$p$g PS1=bash\$ PS2=> PS4=+ PWD=/TMP SHELL=/bin/sh SHLVL=1 TCL_LIBRARY=C:/gnuwin32/b18/tcl/lib/tcl7.6 TEMP=C:\windows\TEMP TERM=dumb TMP=c:\windows\TEMP UID=500 WINBOOTDIR=C:\WINDOWS WINDIR=C:\WINDOWS _=pwd I have tried system(), and that seems to work. Is popen supposed to work, and, if so, do you have any idea why it is failing? Thanks, -- Dave Slate - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".