.\" (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de) .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" License. .\" Modified Sat Jul 24 19:00:59 1993 by Rik Faith (faith@cs.unc.edu) .\" Clarification concerning realloc, iwj10@cus.cam.ac.uk (Ian Jackson), 950701 .\" Documented MALLOC CHECK , Wolfram Gloger (wmglo@dent.med.uni-muenchen.de) .\" .TH MALLOC 3 "April 4, 1993" "GNU" "Linux Programmeurs Handleiding" .SH NAAM calloc, malloc, free, realloc \- Reserveren en vrijmaken van dynamisch geheugen .SH BESCHRIJVING .nf .B #include .sp .BI "void *calloc(size_t " "n" ", size_t " "grootte" ");" .nl .BI "void *malloc(size_t " "grootte" ");" .nl .BI "void free(void " "*wzr" ");" .nl .BI "void *realloc(void " "*wzr" ", size_t " "grootte" ");" .fi .SH BESCHRIJVING .B calloc() Reserveert geheugen voor een tabel van .I n elementen van .I grootte bytes elk, en geeft een wijzer naar het toegewezen geheugen terug. Het geheugen wordt ge`nul'd. .PP .B malloc() Reserveert .I grootte bytes geheugen en geeft een wijzer naar het gereserveerde geheugen terug. Het geheugen wordt niet schoon gemaakt. .PP .B free() Maakt de geheugen-ruimte waar .I wzr naar wijst vrij, geheugen dat gereserveerd moet zijn door een eerdere aanroep naar .BR malloc() , .B calloc() of .BR realloc() . Anders, of als .BI "free(" "wzr" ) al eerder werd aangeroepen, ontstaat onbepaald gedrag. Als .I wzr .B NULL is wordt niets gedaan. .PP .B realloc() Verandert de grootte van het geheugen-blok waar .I wzr naar wijst in .I grootte bytes. De inhoud zal onveranderd blijven tot het minimum van de oude en nieuwe maten; nieuw gereserveerd geheugen zal niet worden geďnitialiseerd. Als .I wzr .B NULL is, is de aanroep gelijk aan .BR malloc(grootte) ; als grootte gelijk aan nul is, is de aanroep gelijk aan .BI "free(" "wzr" ) . Tenzij .I wzr .B NULL is, moet het teruggegeven zijn door een eerdere aanroep naar .BR malloc() , .BR calloc() of .BR realloc() . .SH "EIND WAARDE" Voor .BR calloc() " en " malloc() , is de teruggegeven waarde een wijzer naar het gereserveerde geheugen, dat geschikt is opgelijnd voor het soort variabele, of .B NULL als de aanvraag mislukt. .PP .B free() Geeft geen waarde terug. .PP .B realloc() Geeft een wijzer naar het nieuw gereserveerde geheugen, wat geschikt is opgelijnd voor de soort variabele. Het kan verschillen van .IR wzr . Het is .B NULL als de aanvraag mislukt, of als de grootte gelijk is aan 0. Als .B realloc() niet slaagt blijft het originele blok onveranderd - het wordt niet vrijgegeven of verplaatst. .SH "VOLDOET AAN" ANSI-C .SH "ZIE OOK" .BR brk (2) .SH OPMERKINGEN De Unix98 standaard vereist van .BR malloc() , .BR calloc() , en .BR realloc () dat ze .I errno naar ENOMEM zetten bij mislukken. Glibc neemt aan dat dit wordt gedaan (en de glibc versie van deze routines doen dit); als u een privé malloc implementatie gebruikt dat errno niet zet, dan zullen bepaalde bibliotheek routines falen zonder een reden te vermelden met .IR errno . .LP `Crash-es' in .BR malloc() , .BR free() of .BR realloc() zijn vrijwel altijd gerelateerd aan stapel {heap} corruptie, zoals overschrijden van een toegewezen homp of vrijmaken van dezelfde wijzer twee keer. .PP Recente versies van Linux libc (later dan 5.4.23) en GNU libc (2.x) bevatten een malloc implementatie die instelbaar is via omgevingsvariabelen Wanneer .BR MALLOC_CHECK_ gezet is, wordt een speciale (minder snelle) implementatie gebruikt die ontworpen is om tolerant te zijn voor eenvoudige fouten, zoals dubbele aanroepen van .BR free() met hetzelfde argument, of overschrijden van een buffer met een enkele byte (off-by-one bugs). Niet tegen all dergelijke fouten kan echter worden beschermd, en geheugen lekken kunnen resulteren. Als .BR MALLOC_CHECK_ gezet is naar 0, elke opgemerkte stapel {heap} corruptie wordt stilletjes genegeerd; als gezet naar 1, wordt een diagnose gegeven op stderr; als gezet naar 2, wordt onmiddellijk .BR abort() aangeroepen om het krakkemikkige programma uit zijn lijden te verlossen. Dit kan bruikbaar zijn omdat anders later een crash kan optreden, en de ware oorzaak van het probleem dan moeilijk te achterhalen is. .\" Translated to Dutch ma mrt 19 09:47:40 CET 2001 .\" .SH VERTALING Dit is een handleiding uit \fBmanpages-nl 1.34\fR. Alles wat tussen `\fB{\fR'..`\fB}\fR' staat is \fBaanvullende vertaling\fR, en hoort \fBniet\fR bij de originele handleiding. Email naar . .\"Vertaling Jos Boersema $Id: malloc.3,v 1.1 2003/04/28 18:43:36 bokkie Exp $