<Linux> Linux Driver文件读取

来源:互联网 发布:无限速下载软件 编辑:程序博客网 时间:2024/05/16 14:14
void driver_read_file(const char *filename){struct file *pfile;mm_segment_t old_fs;char read_buf[100] = {0};struct inode *inode;int ret;off_t fsize;int pkg_size = 64;int left;int read_size;pfile = filp_open(filename, O_RDONLY, 0);if (IS_ERR(pfile)) {pr_err("Open %s failed!\n", filename);return;}old_fs = get_fs();set_fs(KERNEL_DS);inode = pfile->f_dentry->d_inode;fsize = inode->i_size;pr_err("file size: %ld bytes\n", fsize);pr_err("file content: \n");left = fsize;while (left > 0) {if (left > pkg_size) {read_size = pkg_size;}else {read_size = left;}ret = pfile->f_op->read(pfile, read_buf, read_size, &pfile->f_pos);if (ret < 0) {pr_err("read data failed, ret: %d\n", ret);filp_close(pfile, NULL);set_fs(old_fs);return;}pr_err("%s\n", read_buf);left -= read_size;}filp_close(pfile, NULL);set_fs(old_fs);}

原创粉丝点击