Date: Tue, 29 Apr 2003 13:26:45 +0200 From: Christian Lackas <c.lackas@kfa-juelich.de> To: freebsd-stable@freebsd.org Subject: Speicher alloziieren. Message-ID: <20030429112645.GB87324@zel726.zel.kfa-juelich.de>
next in thread | raw e-mail | index | archive | help
Hallo zusammen, wodurch ist der Speicher den ich anfordern kann eigentlich begrenzt? Ich würde nämlich eigentlich gerne folgendes Programm erfolgreich ausführen: #include <stdio.h> #include <stdlib.h> int main() { size_t size = 536870912; char *a = malloc(size); if (a) printf("succeded\n"); else perror("error"); } Aber es ist mir nicht vergönnt. Ich bekomme immer einen error: Cannot allocate memory Verursacht durch break(0x2804b000) = -1 ENOMEM (Cannot allocate memory) Und extern char *malloc_options = "X"; erklärt mir nur, dass kein Speicher mehr da sein soll: a.out in malloc(): error: out of memory Die Grenze scheint bei 512 MB zu liegen und dass passt auch zu der Ausgabe von limits(1): Resource limits (current): cputime infinity secs filesize infinity kb datasize 524288 kb stacksize 65536 kb coredumpsize infinity kb memoryuse infinity kb memorylocked infinity kb maxprocesses 5547 openfiles 11095 sbsize infinity bytes vmemoryuse infinity kb Aber auch ein limits -d 1g ./a.out (als root) bringt nicht den gewünschten Effekt. Wo muss/kann ich hier drehen, damit mir das System meine Wünsche wieder erfüllt? Da in meiner login.conf für meinen User bei »datasize« ein »unlimited« steht ist mir auch nicht ganz klar wo obige 512 MB herkommen. Ist das irgendein ein hartes Limit? Auf meiner UltraSparc (Solaris) kann ich fröhlich Speicher anfordern, ohne das sie mir das übel nimmt. Gruss Christian -- Lächle - morgen wird es schlimmer. http://www.lackas.net/ Perl Delphi Linux MP3 Searchengines Domainchecker
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030429112645.GB87324>