O que acontece com a memória em Malloc'ed após exec () alterar a imagem do program
Sei que quando ligo para um dosexec()
sistema @ chama no Linux que substituirá o processo atualmente em execução por uma nova imagem. Então, quando eu bifurcar um novo processo e executarexec()
, a criança será substituída pelo novo process
O que acontece com qualquer memória que eu aloquei da pilha? Digamos que eu queira analisar um número arbitrário de comandos e enviá-lo paraexec()
. Para manter esse número arbitrário, provavelmente terei que alocar memória em algum momento, pois acho que não consigo fazê-lo corretamente com matrizes de tamanho estático, então provavelmente usareimalloc()
ou algo equivalente.
Preciso manter essa memória alocada até depois de ligar paraexec()
, masexec()
nunca retorn
A memória é recuperada pelo sistema operacional?