- 论坛徽章:
- 0
|
本帖最后由 wokao112358 于 2013-11-28 12:23 编辑
filp=filp_open(filename,O_RDONLY,0);
inode=filp->f_dentry->d_inode;
magic=inode->i_sb->s_magic;
printk("<1>file system magic:%li \n",magic);
printk("<1>super blocksize:%li \n",inode->i_sb->s_blocksize);//----->here is 4096
printk("<1>inode %li \n",inode->i_ino); //----->here is 4904
fsize=inode->i_size;
printk("<1>file size:%i \n",(int)fsize); //---->here is 4336 bytes
buf=(char *) kmalloc(fsize+1,GFP_ATOMIC);
fs=get_fs();
set_fs(KERNEL_DS);
filp->f_op->read(filp,buf,fsize,&(filp->f_pos));
set_fs(fs);
buf[fsize]='\0';
printk("<1>The File Content is:\n");
printk("<1>%s",buf); //---->only 1013 bytes printed
上述代码是在内核中编写,我希望是一次性把文件(4336字节)内容读取出来,但是实际打印的情况是只有文件的前1013个字节,
大神们,请问是操作系统有限制么?如果有限制的话,能告诉我是设置在什么地方么?
我上网没找到关于限制的信息,先谢谢各位了! |
|