首页
社区
课程
招聘
[求助]linux下O_DIRECT标记问题
发表于: 2016-6-1 16:37 6059

[求助]linux下O_DIRECT标记问题

2016-6-1 16:37
6059
linux下读写文件如果加上O_DIRECT标记的话会返回错误(bad address),但是去掉的话就没问题,有人遇到过吗
static int __init init(void)
{
        struct file *fp = NULL;
        int i = 100;
        loff_t pos = 0;
       
        char *buf = NULL;
       
        size_t rwsize = PAGE_SIZE;
       
        struct page *pages = NULL;
       
        fp = filp_open("/share/file", O_RDWR | O_DIRECT, 0);
        if(fp == NULL){
                printk("filp_open error\n");
                return 0;
        }
       
//        buf = kmalloc(rwsize, GFP_ATOMIC);

        pages = alloc_page(GFP_ATOMIC);
        if(!pages){
                return 0;
        }
        buf = kmap_atomic(pages);
       
        memset((char *)buf, 'A', rwsize);
       
        printk("hintsoft:begin  %p %d\n",(void *)buf, (int)PAGE_SIZE);
        while(i--){
                ssize_t size = kernel_write(fp, buf, rwsize, pos);
                printk("hintsoft:writesize = %d\n",(int)size);
               
                vfs_llseek(fp, 0, SEEK_SET);
        }

        filp_close(fp,NULL);
        //kfree(buf);
        kunmap_atomic(buf);
        return 0;
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
http://laokaddk.blog.51cto.com/368606/699563
这个可能是你要找的结果
2016-6-1 16:48
0
游客
登录 | 注册 方可回帖
返回
//