[so] (no subject)

Adrian Stanciu adrian.stanciu.pub at gmail.com
Mon Mar 23 10:19:00 EET 2015


2015-03-23 10:09 GMT+02:00 Andrei Tuicu via so <so at cursuri.cs.pub.ro>:
>
>
> În data de 23 martie 2015, 09:59, Vlad Dogaru via so <so at cursuri.cs.pub.ro>
> a scris:
>
>> On Mon, Mar 23, 2015 at 07:36:32AM +0000, Sebastian ENE via so wrote:
>> > Salut,
>> >
>> > Am si eu o intrebare daca puteti sa ma lamuriti va rog :
>> >
>> > Pe Linux intr-un process copil aloc memorie inainte de a executa
>> > execv().
>> > Dupa ce am executat execv() toata memoria procesului copil se suprascrie
>> > (asta inclusive heap-ul in urma alocarilor cu malloc, calloc..)
>> > 1.Apelul free() dupa execv() nu mai are sens deoarece s-a suprascris
>> > intreaga zona de memorie nu?
>>
>> După un execv() cu succes nu se mai execută nimic din codul de după.
>> Deci dacă pui free() după nu are sens, pentru că nu se ajunge la el.
>>
>> Are sens să apelezi free dacă execv() eșuează, dar nu cred că asta
>> întrebai.
>>
>> > 2.File descriptorii deschisi inainte de execv() se pierd, dar
>> > structurile aferente procesului care fac legatura cu inode-urile
>> > raman?
>>
>> File descriptorii nu se pierd decât dacă au flag-ul close on exec [1].
>> Ceilalți rămân.  This makes sense if you think about it, poți moșteni,
>> at the very least, stdin, stdout și stderr, ca să nu te trezești că ai
>> executat un program redirectat într-un fișier și apoi el face exec()
>> altuia care începe să scrie la consolă.
>>
>> [1]
>> http://stackoverflow.com/questions/6125068/what-does-the-fd-cloexec-fcntl-flag-do
>>
>> > 3.Pe Windows trebuie sa dealocam memoria pentru parametrii in linie de
>> > comanda trimisi catre CreateProcess() din procesul parinte pentru a
>> > evita memory leak-uri ?
>>
>> Asta nu știu.
>
> Poti sa incerci sa rulezi cu DrMemory pe Windows sa vezi ce zice:
> http://www.drmemory.org/  (free and open source).
>

Nu este permis să ai leak-uri de memorie. Trebuie să te gândești la o
soluție să-i eliberezi.

PS: te rog să dai un titlu sugestiv la thread-urile pornite pe listă.


Adrian


More information about the so mailing list