From: Serdar Koylu (serdarkoylu@fisek.com.tr)
Date: Mon 02 Jun 2003 - 13:03:27 EEST
Selamlar..
libc, kernelden "bellek bitti, tukendi, bak basinin caresine" gibi bir bilgi alirsa oyle olur. Ama Linux kerneli bunu soylememek icin elinden geleni yapar. Hatta, en az kullanilan programlari oldurur vs.
Genel kaide olarak, gerek *alloc rutinlerinin, gerekse memset, memcpy, strcpy gibi rutinlerin bir sekilde zapt'u rapt'a alinmasi, en azindan bir garbage collector kullanilmasi tavsiye edilir. Oyleki, bilhassa development ve test asamalarinda tamamen her seyi denetim altinda tutan, production surumunde ise performans getirisi icin bunlardan ayiklanmis kodlarin kullanilmasi mantikli olur. Isin basinda bunlarla kim ugrasacak derken, hata bulup duzeltmek icin 10 kat daha fazla ugrasmak gerekebilir..
Saygi ve sevgiler..
02 Jun 2003 13:28 EEST tarihinde yazmışsınız:
>
>
> GLibc ile ilgili bu dokumani okumak genel olarak faydali olabilir
>
> http://www.gnu.org/manual/glibc-2.2.5/html_mono/libc.html
>
> malloc(), realloc() gibi fonksiyonlarin donus degerleri icin soyle bir=
> tavsiye var dokumanda:
>
> If no more space is available, malloc returns a null pointer. You should=
> check the value of every call to malloc. It is useful to write a=
> subroutine that calls malloc and reports an error if the value is a null=
> pointer, returning only if the value is nonzero. This function is=
> conventionally called xmalloc. Here it is:
>
> void *
> xmalloc (size_t size)
> {
> register void *value =3D malloc (size);
> if (value =3D=3D 0)
> fatal ("virtual memory exhausted");
> return value;
> }
>
> Boyle birseyi kullanmak daha okunabilir programlar saglar. Cunku her hafiza=
> ayrilmasi operasyonunu if'lerle kontrol etmemize gerek kalmaz. Zaten=