| delorie.com/archives/browse.cgi | search |
| X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f |
| From: | Georg <dosusb AT googlemail DOT com> |
| Newsgroups: | comp.os.msdos.djgpp |
| Subject: | Re: System() |
| Date: | Sun, 6 May 2012 13:54:54 -0700 (PDT) |
| Organization: | http://groups.google.com |
| Lines: | 43 |
| Message-ID: | <fea067ab-ee56-4b9e-bb73-ed3365fb9d59@ee2g2000vbb.googlegroups.com> |
| References: | <92c86f75-e970-4998-94c6-56d6fbf885fe AT e15g2000vba DOT googlegroups DOT com> |
| <1c38ca22-52f5-470e-813f-1af6ed5f21d4 AT m16g2000yqc DOT googlegroups DOT com> | |
| NNTP-Posting-Host: | 2.174.182.95 |
| Mime-Version: | 1.0 |
| X-Trace: | posting.google.com 1336337694 28925 127.0.0.1 (6 May 2012 20:54:54 GMT) |
| X-Complaints-To: | groups-abuse AT google DOT com |
| NNTP-Posting-Date: | Sun, 6 May 2012 20:54:54 +0000 (UTC) |
| Complaints-To: | groups-abuse AT google DOT com |
| Injection-Info: | ee2g2000vbb.googlegroups.com; posting-host=2.174.182.95; posting-account=v5xbdQoAAAAOGc9Ccc-kLZyobvPlN3Qr |
| User-Agent: | G2/1.0 |
| X-HTTP-UserAgent: | Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.4) |
| Gecko/20091016 Firefox/3.5.4,gzip(gfe) | |
| Bytes: | 2589 |
| To: | djgpp AT delorie DOT com |
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
| Reply-To: | djgpp AT delorie DOT com |
When I open a DOS window in Windows XP, mem.exe tells me that 590 kb
are available for a program.
Now I made the following program:
#include <stdio.h>
main(int argc,char **argv)
{
system("mem.exe /d >memn.tmp");
}
1. Windows XP:
When I run this on Windows XP it tells me that 572 kb are available
for a program.
There are two command.com programs loaded with 2976 bytes each, plus
the above program which I called testsys.exe which consumes 16.540
bytes and has 1936 bytes data.
2. Real mode DOS 7.0:
When I run this program in real mode with DOS 7.0 it tells me that 366
kb are available for a program.
There is one command.com with 6k and one command.com with 88k. 43k for
CWSDPMI. The above program still is 16k but has 162k(!) data this
time.
So a rough calculation: 572k minus 43k for CWSDPMI and minus 162k for
testsys.exe's data gives 367k remaining. That is what DOS tells to be
available for a program.
Question:
Maybe one can load high CWSDPMI. But why are there 162k for
testsys.exe's data while it is just 1936 bytes in Windows XP?
I use gcc 4.5.3.
Thank you for the links Rugxulo. I looked at ytree: it uses system()
to execute a program. Since ytree is mainly developed for Linux this
does not result in any memory problems.
As far as I could find, DOSZIP uses int21/ah=4Bh to execute a program.
I guess this the assembler equivalent for system().
Georg
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |