int main()
{
int toto=300;//son adresse = .........
while(1)//on atend que le programme 1 change la valeur de toto (boucle infini).
{
printf("%d %p %d\n",toto,&toto,&toto);//pour savoir son adresse.
Sleep(100);
}
return 0;
}
Donc voila aprais cela la valeur de toto serais suposer changer mes ca ne marche pas meme ci je mes toujours la bonne adresse a chaque execution des programmes,donc coi faire?
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 10 juil. 2010 à 19:23
Salut,
a plante ou ca ne marche pas.
C'est tout à fait normal. Si ton processus essaye d'accéder à de la mémoire qui appartient à quelqu'un d'autre, la conséquence sera de te prendre immédiatement un SIGPIPE dans la tronche. C'est normal et essayer de contourner ça est un extrêmement mauvaise idée directement liée à divers échecs cuisants. Comme l'a fait remarquer à très juste titre vecchio56, il existe de la mémoire partagée pour pouvoir partager de la mémoire entre plusieurs processus (regarde donc les pages de man des fonctions ftok, shmget, shmat, shmdt, shmctl, semget, semop, semctl, etc). Tu trouveras également d'autres moyens de communication entre les processus, communément appelés IPC.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 10 juil. 2010 à 21:28
Si tu as besoin d'écrire dans la mémoire d'un processus que tu ne maitrises pas (d'après ce que j'ai compris c'est ce que tu veux faire), la mémoire partagée ne répond pas à ton problème.
Pour pouvoir lire/écrire dans la mémoire d'un autre processus, regarde les fonctions ReadProcessMemory et WriteProcessMemory
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 10 juil. 2010 à 11:57
Bonjour,
L'espace d'adressage est propre à chaque processus, donc ton premier programme ne peut pas modifier une variable de prog2.
Si tu veux partager des données entre deux processus, tu peux utiliser par exemple de la mémoire partagée.
malefitrix
Messages postés42Date d'inscriptionmercredi 24 février 2010StatutMembreDernière intervention27 juillet 2011 10 juil. 2010 à 17:56
je vais faire des recherche sur la memoire partager,mes sinon je voudrais plus faire comme cheat engine il change la valeur contenue dans l'adresse d'un X programme mes moi quand jessai ca plante ou ca ne marche pas.
Y a t'il donc pas un moyen pour modifier les adresses sans qu'il est de prob?