内核获取文件大小

来源:互联网 发布:大数据营销就业前景 编辑:程序博客网 时间:2024/06/18 18:26

函数:

 int vfs_stat(const char __user *, struct kstat *);

struct kstat 结构体如下:

struct kstat {u64 ino;dev_t dev;umode_t mode;unsigned intnlink;kuid_t uid;kgid_t gid;dev_trdev;loff_t size;struct timespec  atime;struct timespecmtime;struct timespecctime;unsigned longblksize;unsigned long longblocks;};




用法如下:

#include <linux/init.h>#include<linux/kernel.h>#include <linux/module.h>#include <linux/fs.h>#include <linux/uaccess.h>#include <linux/slab.h>static int __init hello_init (void){        mm_segment_t fs;        struct kstat *stat;        fs= get_fs();        set_fs(KERNEL_DS);        stat =(struct kstat *) kmalloc(sizeof(struct kstat),GFP_KERNEL);        vfs_stat("/home/zyj/work/fileops2/123",stat);        printk(KERN_ALERT "%d\n",stat->size);        set_fs(fs);        return 0;}static void __exit  hello_exit (void) {        printk(KERN_ALERT "exit\n");}MODULE_LICENSE("GPL");module_init(hello_init);module_exit(hello_exit);

0 0
原创粉丝点击