filp_open都返回成功了,为什么找不到文件?

yangkunhenry 2011-03-24 03:23:30
想在驱动加载init的时候,在文本中写入数据,但发现函数执行之后并没有在相应的system目录中找到icinfo.dat文件
是不是这个时候文件系统还没加载完啊?但是各个函数都返回值都是正确的啊。奇怪!


static char ICINFO[] = "flast: ACE12E\n";
static void WriteICINFO()
{

struct file *pf=NULL;
mm_segment_t old_fs;
pf=filp_open("/system/icinfo.data",O_RDWR|O_APPEND|O_CREAT,0644);
printk("Persie:WriteICINFO..\n");
old_fs=get_fs();
set_fs(KERNEL_DS);
if(pf!=NULL)
{
int res=0;
char buf[20];
memset(buf,0,sizeof(buf)/sizeof(buf[0]));
res=pf->f_op->write(pf,(char*)ICINFO,sizeof(ICINFO)/sizeof(ICINFO[0]),&pf->f_pos);
set_fs(old_fs);
printk("Persie:res=%d\n",res);//这里也打印出正常的长度
}
else
printk("pf==NULL!\n");
if(pf!=NULL);
filp_close(pf,NULL);
}
...全文
901 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
狂镀余光 2012-11-30
  • 打赏
  • 举报
回复
楼主解决这个问题了没,遇到同样的问题了,求解!!!
yangkunhenry 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jaylondon 的回复:]
楼主找到原因了么? 分享下
[/Quote]
我换了一种方法,是在/proc中创建虚拟文件。
不过现在好像我觉得是我这边权限有问题,我再试试这种方法看看……
boat 2011-03-31
  • 打赏
  • 举报
回复
楼主找到原因了么? 分享下
Wenxy1 2011-03-31
  • 打赏
  • 举报
回复
Linux启动完成后,在shell里看下:
#ls -l /system/icinfo.data
yangkunhenry 2011-03-31
  • 打赏
  • 举报
回复
谁来回个帖,要结贴了,分都没法给

4,437

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧