Supposons que j'appelle
int execve(const char *filename, char *const argv[], char *const envp[])
Où ai-je malloc
édité la mémoire pour envp
, alors comment le programme filename
accède-t-il au contenu de ce tableau lorsqu'il execve
efface toute la mémoire précédente (y compris le tas)?
execve
copie argv [] et envp [] dans un autre domaine (éventuellement la mémoire du noyau) avant de supprimer le reste, n'est-ce pas?argv
etenvp
quelque part, puis les rend disponibles pour la nouvelle image de processus. Il s’agit là d’un détail d’implémentation, ce qui ne devrait pas vous intéresser, à moins que vous ne fassiez quelque chose de profond et de magique, ou de piratage du noyau.