On Thu, Feb 28, 2019 at 10:53 AM Valentin Ilie via so <[email protected]> wrote: > > On Thu, 28 Feb 2019 at 10:12, Alex Rotaru via so <[email protected]> wrote: > > In tema sunt testate leak-urile de memorie. Daca programul esueaza la al > > doilea apel malloc si apelezi exit va ramane leak-ul de la primul apel > > malloc. > > Cum va rămâne leak-ul? Sistemul de operare face curățenie după un > proces în momentul în care va apela exit(..). > > --Valentin
Salut, Doar pentru că există personalul auxiliar care poate să curețe în urma ta, nu înseamnă că ți se permite să arunci gunoi oriunde. La fel, abordarea în programare este că trebuie să te asiguri că nu există date de care nu te-ai ocupat atunci când termini execuția. Acum tu ai plecat de la premiza "este un program simplu, se poate face exit oricând". În general bine să pleci de la premiza că ce scrii se poate refolosi, iar un exit pus în cod poate produce efecte neașteptate. În plus, (chiar dacă nu este valabil în particular în acest caz) în caz de eroare se poate să vrei să faci logging, să închizi conexiuni către alte sisteme, să ștergi (prin umplere cu 0) a unor buffere cu date importante (ex. parole), etc. Buttom line, exit în mijlocul programului ar trebui folosit doar în cazuri extreme, când programul nu mai poate funcționa oricum. Este similar cu folosirea SIGKILL abuziv [1]. [1]: https://www.facebook.com/nixcraft/posts/2287275314619167/ Darius Mihai _______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
