求助:linux内核态获取文件大小为什么一直是 7
写了个驱动的小程序,测试获取文件大小,
通过filp_open打开文件,读inode->i_size得到的文件大小为什么一直是 7
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/syscalls.h>
#include <asm/unistd.h>
#include <asm/uaccess.h>
static int __init test_init(void)
{
mm_segment_t old_fs;
char *FileName = "/etc/test";
struct file *pstFile = NULL;
struct inode *inode = NULL;
int iSize = 0;
pstFile = filp_open(FileName, O_RDWR, 0);
old_fs = get_fs();
set_fs(KERNEL_DS);
inode = pstFile->f_dentry->d_inode;
iSize = inode->i_size;
printk("file(%s) size=%d\n", FileName, iSize);
filp_close(pstFile, 0);
return 0;
}
static void __exit test_exit(void)
{
}
module_init(test_init)
module_exit(test_exit)
MODULE_LICENSE("GPL");