Out-of-memory un malloc()

Kāds ir uzrakstījis diezgan labu rakstu par malloc() kļūdu apstrādi dažādās atvērtā koda programmās un bibliotēkās. Visus variantus atgremot nav vērts, tomēr vispopulārākā stratēģija ir kļūdas ziņojums un priekšlaicīgā procesa pārtrauce (abort), kas ir saprātīgs kompromiss starp mēģinājumu apstrādāt kļūdu un nekā nedarīšanu.

Arī komentāri lasīšanas vērti. Ir interesanta versija (ļoti ticami, bet precīzi pārbaudījis neesmu): malloc() uz Linux pēc noklusēšanas vienmēr atgriezīs ne-NULL adresi. Atmiņa tiks izdalīta tikai brīdī, kad mēģinās rakstīt šajā adresē un programmu nokaus OOM killer.

Pēc šī teksta vēlme apstrādāt malloc() kļūdas vēl vairāk tuvojas nullei.

One Response to “Out-of-memory un malloc()”

  1. LCD TV says:

    thanks !! very helpful post!

Leave a Reply

You must be logged in to post a comment.