Im sur la plate-forme unix.qu'en est-il une fuite de mem dans un processus enfant
La mémoire d'un processus avec un memleak est nettoyée à la fin du processus.
Qu'en est-il d'un processus, qui a engendré un enfant, où l'enfant a un memleak. La mémoire filtrée sera-t-elle nettoyée lors de la fermeture de l'enfant? Ou cette mémoire va-t-elle maintenant coller avec le processus parent?
Merci
+1 bien que vous devriez mentionner le fait que certains appels comme 'vfork' et' clone' aboutissent à un espace d'adressage partagé. – casablanca
Je n'appellerais pas les résultats de 'vfork' un espace mémoire partagé. 'vfork' a un comportement indéfini si vous appelez autre chose qu'une liste restreinte de fonctions sûres entre' vfork' et '_exit' ou l'une des fonctions de la famille' exec'. Associer 'malloc' à partir de l'enfant' vfork''d risque certainement d'entraîner une corruption de la mémoire. La même chose s'applique généralement à 'clone' avec un espace d'adressage partagé, sauf si vous êtes l'implémenteur de l'implémentation des threads système et avez la liberté d'ajouter les bons mécanismes de synchronisation dans l'implémentation du système' malloc'. –
Et pour mettre en évidence le comportement indéfini, il est complètement autorisé (par les spécifications les plus récentes qui ont 'vfork', IIRC, le POSIX actuel n'a même pas' vfork') pour 'vfork' simplement appeler' fork', donc vous pouvez Ne comptez pas avoir un espace mémoire partagé après 'vfork'. –