微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 iov_iter 结构体中打印数据

如何解决如何在 iov_iter 结构体中打印数据

我注意到写文件的关键函数xx_write_iter,比如

static ssize_t ovl_write_iter(struct kiocb *iocb,struct iov_iter *iter)

我想知道结构 iov_iter 中有什么。我的内核版本是 5.4.43,iov_iter 的定义是

struct iov_iter {
    int type;
    size_t iov_offset;
    size_t count;
    union {
        const struct iovec *iov;
        const struct kvec *kvec;
        const struct bio_vec *bvec;
        struct pipe_inode_info *pipe;
    };
    union {
        unsigned long nr_segs;
        struct {
            int idx;
            int start_idx;
        };
    };

我想用 iov_iter 读取 printk 结构中的数据。这是我的尝试

printk("Data is: %c",*((char*)iter->iov->iov_base));

但是会导致crash,那么如何打印里面的信息呢?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。