filp_open

/**
 * filp_open - open file and return file pointer
 *
 * @filename:    path to open
 * @flags:    open flags as per the open(2) second argument
 * @mode:    mode for the new file if O_CREAT is set, else ignored
 *
 * This is the helper to open a file from kernelspace if you really
 * have to.  But in generally you should not do this, so please move
 * along, nothing to see here..
 */
struct file *filp_open(const char *filename, int flags, umode_t mode)
{
    struct filename *name = getname_kernel(filename);
    struct file *file = ERR_CAST(name);
    
    if (!IS_ERR(name)) {
        file = file_open_name(name, flags, mode);
        putname(name);
    }
    return file;
}
EXPORT_SYMBOL(filp_open);

old_fs = get_fs();
set_fs(KERNEL_DS);  //addr_limit  buf的地址与用户空间不同
 file->f_op->write(file, (char *)buf, sizeof(buf), &file->f_pos);
 set_fs(old_fs);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值