c/c++语言开发共享在ac程序中打印相同的物理地址

有没有办法在这些程序中打印相同的物理地址(使用共享内存概念)而不是打印不同的逻辑地址?

我打印相同物理地址的原因:…

/ *这是可选的,因为我提供了许多不属于核心的信息* /

在我的实验室中,我有两个程序:一个通过共享内存概念将字符串存储在物理内存中,另一个通过访问共享内存来打印相同的字符串。

计划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); } 

计划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); } 

输出:

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

这些程序在这里打印2个不同的逻辑地址。 但是(为了满足大学教授)是否有办法打印相同的物理地址? 请帮忙..

      以上就是c/c++开发分享在ac程序中打印相同的物理地址相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/522224.html

      (0)
      上一篇 2020年12月9日
      下一篇 2020年12月9日

      精彩推荐