//写入
#include<stdio.h>
#include <sys/types.h>
#include <sys/shm.h>
#include <sys/ipc.h>
int main(int argc, const char *argv[])
{
key_t key =ftok("./",1);
if(key<0)
{
perror("ftok");
return -1;
}
printf("key=%#x\n",key);
int shqid=shmget(key,10,IPC_CREAT|0664);
if(shqid<0)
{
perror("shmget");
return -1;
}
printf("shqid= %d\n",shqid);
void* a = shmat(shqid,NULL,0);
while(1)
{
scanf("%d",(int*)a);
scanf("%s",(char*)((int*)a+1));
}
return 0;
}
//输出
#include<stdio.h>
#include <sys/types.h>
#include <sys/shm.h>
#include <sys/ipc.h>
int main(int argc, const char *argv[])
{
key_t key =ftok("./",1);
if(key<0)
{
perror("ftok");
return -1;
}
printf("key=%#x\n",key);
int shqid=shmget(key,10,IPC_CREAT|0664);
if(shqid<0)
{
perror("shmget");
return -1;
}
printf("shqid= %d\n",shqid);
void* a = shmat(shqid,NULL,0);
printf("%d %s\n",*(int*)a,(char*)((int*)a+1));
return 0;
}