现象:
1. 在内核正常读文件,没有问题。
2. 通过ADB把这个文件更新了。
3. 再读这个文件时,没有更新,还是和第一步读的一样!
程序如下:
static unsigned char cmd_buf_op[COMMAND_BUF_SIZE];
static char* pcmd_buf;
load_file(char * FileName)
{
static struct inode inode = NULL;
static struct file *fp;
static mm_segment_t fs;
static loff_t pos;
int iSize, cmd_num,i;
pcmd_buf = (char)cmd_buf_op;
fs=get_fs();
set_fs(KERNEL_DS);
fp = filp_open( FileName, O_RDONLY, 0644);
if(IS_ERR(fp)){
printk("create file error\n");
return -1;
}
inode = fp->f_dentry->d_inode;
iSize = inode->i_size;
printk("file(%s) size=%d\n", FileName, iSize);
vfs_read(fp,(char*)cmd_buf_op,iSize,&pos);
printk("pos =%x\n", pos );
filp_close(fp, 0);
set_fs(fs);
pcmd_buf[iSize] = 0;
printk("cmd_buf %s: %s\n", __func__, (char*)cmd_buf_op );
return 0;
}