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)?
argv
et envp
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.
execve
copie argv [] et envp [] dans un autre domaine (éventuellement la mémoire du noyau) avant de supprimer le reste, n'est-ce pas?