包含linux IPC对象的创建,共享内存的创建,地址映射,地址映射的销毁
#include<stdio.h>
#include <unistd.h>
#include<string.h>
#include<stdlib.h>
#include<fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include<signal.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#define N 32
int main()
{
char *addr;
int shmid;
key_t key;
key=ftok(".",'m');
if(key== EOF)
{
perror("ftok");
exit(-1);
}
shmid=shmget(key,1024,IPC_CREAT|0666); //ceate the shareMemery
if(shmid == EOF)
{
perror("shmid");
exit(-1);
}
addr=(char*)shmat(shmid,NULL,0); //mapping shareMemory
if(addr== (char*)-1)
{
perror("shmat");
exit(-1);
}
fgets(addr,N,stdin);
if( shmdt(addr) == EOF) //delete the mapping
{
perror("shmdt");
exit(-1);
}
return 0;
}