write.c
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <sys/shm.h>
#include <sys/sem.h>
int main(void)
{
key_t key;
char *shm_p = NULL;
// 获取key的值
key = ftok(".", 10);
printf("key:%#x\n", key);
//根据申请到的key值去申请共享内存的ID号
int shmid = shmget(key, 1024, IPC_CREAT|0666);
if(shmid == -1)
{
printf("shmget fail\n");
exit(0);
}
//根据ID号 将共享内存映射至本进程虚拟内存空间的某个区域
shm_p = (char *)shmat(shmid, NULL, 0);
if(shm_p == (void *)-1)
{
printf("shmat fail\n");
exit(0);
}
//初始化信号量
key = ftok(".",20);
//获取信号量ID 空间+数据 &