Date: Fri, 14 May 1993 11:09 EDT From: "Wonkoo Kim, EE, U. of Pittsburgh" Subject: New fact on system() error To: djgpp AT sun DOT soe DOT clarkson DOT EDU Hi. I found a new fact on system() error, which occurs only under a certain condition. Having this error should be lucky(?). (System: 486-25MHz/8MB/msdos5.0/qemm, djgpp/gcc 1.09/2.2.2 with no patching) In my arguments, READ(fxxKB) stands for the following steps: 1. system("zcat fxxKB.Z > fxxKB") /* uncompressing step */ 2. allocate xx KB memory /* file size of fxxKB is xx KB. */ 3. read fxxKB file into memory The new fact is: If the allocated memories sumed up to 64KB, the next system() failed. That is, after the program(.exe size 125KB) started, any further READ() failed after four READ(f16KB)'s or single READ(f64KB) had been called. If the allocated memory chunks didn't sum up to 64KB (in the order of calling sequence), there was no problem with system() call. I.e. the followings are all worked: READ(f16KB); READ(f64KB); READ(anything); ... READ(f16KB); READ(f16KB); READ(f64KB); READ(anything); ... READ(f16KB); READ(f16KB); READ(f16KB); READ(f64KB); READ(anything); ... READ(f256KB); READ(anything); ... In summary, there is a critical point in memory address to harm the system() call. If the boundary of allocated memory chunks does not fall to the critical point, there is no problem with system() call. So, encouting this error is very(?) rare. (Again, I used the unpatched original go32 1.09) Thanks. Regards, Wonkoo.