打印
[嵌入式linux]

linux 驱动mmap指针偏移问题

[复制链接]
380|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nawei87|  楼主 | 2016-9-19 10:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问大家,驱动中使用使用mmap遇到这种情况:
应用层中调用:

        for(i = 0; i<3; i++){
            mapBuf = mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd, off);
            if(i==0)strcpy(mapBuf, "Driver Test####00####");//向映射段写数据
            else if(i==1)strcpy(mapBuf, "Driver Test####11####");//向映射段写数据
            else if(i==2)strcpy(mapBuf, "Driver Test####22####");//向映射段写数据
            off += 4096;
        }
        
        mapBuf = mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
        memset(buffer, 0, 4096);
        strcpy(buffer, mapBuf);
        printf("buffer = %s\n", buffer);

最后buffer打印出来是buffer=Driver Test####22####
是不是在驱动中指针偏移的位置到了4096*3的位置了,


那么如何重新将指针偏移到0呢?

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

12

帖子

0

粉丝