【发布时间】:2011-03-07 17:41:05
【问题描述】:
shmget.c:
#include<sys/types.h>
#include<string.h>
#include<sys/ipc.h>
#include<sys/shm.h>
#include<stdio.h>
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);
}
shmget2.c:
#include<sys/types.h>
#include<string.h>
#include<sys/ipc.h>
#include<sys/shm.h>
#include<stdio.h>
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 helloworldtamil@ubuntu:~/myc$ cc shmget2.c
tamil@ubuntu:~/myc$ ./a.out
IPC SHARED MEMORY
SENDER ADDRESS
**THE ADDRESSS IS **0xb7706000****
MESSAGE STORED IN **0xb7706000** IS helloworldtamil@ubuntu:~/myc$
这一切都很好。但是地址不一样。这是为什么呢?
【问题讨论】:
-
转化为严肃:在所有问题中,您一直在大声喊叫,而不仅仅是这个问题。如果你有愤怒管理问题,你可能想尽快解决这个问题。你在互联网上的声音越大,就会有越多的人忽略你。
-
也许我不应该编辑问题来缓和大喊大叫的声音,cmets 这样就很好了。 :)
-
@clintp:如果你愿意,可以回滚 :)
-
@clintp: 别担心我会再次补偿!!!!
-
@BoltClock:非常抱歉。我从来没有心甘情愿地这样做。可能我的英语可能不太好。我问事情的方式不好。但这不是我的性格。如果是这样,我一定会改变自己。
标签: unix shared-memory