Stampa dello stesso indirizzo fisico nel programma ac

C’è un modo per stampare lo stesso indirizzo fisico in questi programmi (usando il concetto di memoria condivisa) piuttosto che stampare indirizzi logici diversi?

Il motivo per cui stampo lo stesso indirizzo fisico: …

/ * È facoltativo leggere questo dato che ho fornito molte informazioni che non sono al centro * /

Nel mio laboratorio, ho due programmi: uno per memorizzare una stringa in una memoria fisica tramite il concetto di memoria condivisa e uno per stampare la stessa stringa accedendo alla memoria condivisa.

Programma 1:

#include #include #include #include #include main() { key_t key; int shmid; char* addr1; key = ftok("/home/tamil/myc/pws.c",'T'); shmid = shmget(key,128*1024,IPC_CREAT|SHM_R|SHM_W); addr1 = shmat(shmid,0,0); printf("\nIPC SHARED MEMORY"); printf("\n SENDER ADDRESS"); printf("\nTHE ADDRESS IS %p",addr1); printf("\nENTER THE MESSAGE:"); scanf("%s",addr1); printf("\nMESSAGE STORED IN %p IS %s",addr1,addr1); } 

Programma 2:

 #include #include #include #include #include main() { int shmid; char* addr1; key_t key; key = ftok("/home/tamil/myc/pws.c",'T'); shmid = shmget(key,128*1024,SHM_R|SHM_W); addr1 = shmat(shmid,0,0); printf("\nIPC SHARED MEMORY"); printf("\n SENDER ADDRESS"); printf("\nTHE ADDRESSS IS %p",addr1); printf("\nMESSAGE STORED IN %p IS %s",addr1,addr1); } 

Produzione:

 [email protected]:~/myc$ cc shmget.c [email protected]:~/myc$ ./a.out IPC SHARED MEMORY SENDER ADDRESS THE ADDRESS IS 0xb786c000 ENTER THE MESSAGE:helloworld MESSAGE STORED IN 0xb786c000 IS helloworld [email protected]:~/myc$ cc shmget2.c [email protected]:~/myc$ ./a.out IPC SHARED MEMORY SENDER ADDRESS THE ADDRESSS IS 0xb7706000 MESSAGE STORED IN 0xb7706000 IS helloworld [email protected]:~/myc$ 

Qui questi programmi stanno stampando il 2 indirizzo logico differente. Ma (per soddisfare il professore universitario) c’è un modo per stampare lo stesso indirizzo fisico? Per favore aiuto..

  • Molto probabilmente i tuoi programmi stanno già facendo esattamente quello che ti ha chiesto il tuo professore.
  • Non stai assolutamente capendo il concetto di indirizzi fisici e virtuali. Su qualsiasi sistema operativo che utilizza memoria virtuale, un’applicazione regolare (al contrario del sistema operativo stesso) non può conoscere alcun indirizzo fisico.