文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>mmap()

mmap()

时间:2010-07-28  来源:Codeplayer

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <string.h>
typedef struct
{
    char name[4];
    int age;
}person;

int main (){
    pid_t pid;
    int i;
    person *p_map;
    char temp;
    p_map = (person*)mmap(NULL,sizeof(person)*10,PROT_READ|PROT_WRITE,MAP_SHARED|MAP_ANONYMOUS,-1,0);
    pid = fork();

    if(pid<0)
    {
        perror("fork failed!\n");
        return 0;
    }else if(pid == 0)
    {
        sleep(2);
        for(i = 0;i < 5;i++)
            printf("子进程读取:第%d个人的年龄是:%d\n",i+1,(*(p_map+i)).age);
        (*(p_map)).age = 110;
        munmap(p_map,sizeof(person)*10);
        return 0;
    }else
    {
        temp = 'a';
        for(i = 0; i<5; i++)
        {
            temp += 1;
            memcpy((*(p_map+i)).name, &temp, 2);
            (*(p_map+i)).age = 30 +i;
        }
        sleep(5);
        printf("父进程读取:五个人的年龄和是:%d\n",(*p_map).age);
        printf("解除内存映射....\n");
        munmap(p_map,sizeof(person)*10);
        printf("解除内存映射成功\n");        
    }
}
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载