Mail Archives: djgpp/1993/05/14/11:57:47
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.
- Raw text -