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

[求助]linux下O_DIRECT标记问题

2016-6-1 16:37
6169
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;
}

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
f69K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3I4S2L8$3E0S2k6r3c8C8i4K6u0W2j5X3I4G2k6#2)9J5k6e0f1I4j5%4c8G2i4K6u0W2j5$3!0E0i4K6u0r3x3K6j5^5y4U0l9$3i4K6u0r3y4U0V1&6y4e0j5K6
这个可能是你要找的结果
2016-6-1 16:48
0
游客
登录 | 注册 方可回帖
返回