匿名映射
匿名映射:为了避免打开一个文件
文件在进程通信过程中没有什么作用
#include<stdio.h>
#include<unistd.h>
#include<sys/stat.h>
#include<sys/mman.h>
#include<fcntl.h>
#include<sys/wait.h>
int main()
{
int *mem=mmap(NULL,4,PORT_READ|PROT_WRITE,MAP_SHARED|MAP_ANON,-1,0);
if(men==MAP_FAILED)
{
perror("mmap err");
return -1;
}
pid_t pid=fork();
if(pid==0)
{
*mem=101;
printf("child,*mem=%d\n",*mem);
sleep(3);
printf("child,*mem=%d\n",*mem);
}
else if(pid>0)
{
sleep(1);
printf("parent,*mem=%d,"*mem);
*mem=1001;
printf("parent,*mem=%d",*mem);
wait(NULL);//回收子进程
}
munmap(mem,4);
return 0;
}
输出结果
匿名映射只有通过血缘关系的进程才会通信,不适用于无血缘关系的