当前位置: 技术问答>linux和unix
filp_open都返回成功了,为什么找不到文件?
来源: 互联网 发布时间:2017-03-24
本文导语: 想在驱动加载init的时候,在文本中写入数据,但发现函数执行之后并没有在相应的system目录中找到icinfo.dat文件 是不是这个时候文件系统还没加载完啊?但是各个函数都返回值都是正确的啊。奇怪! static char ICINFO[...
想在驱动加载init的时候,在文本中写入数据,但发现函数执行之后并没有在相应的system目录中找到icinfo.dat文件
是不是这个时候文件系统还没加载完啊?但是各个函数都返回值都是正确的啊。奇怪!
是不是这个时候文件系统还没加载完啊?但是各个函数都返回值都是正确的啊。奇怪!
static char ICINFO[] = "flast: ACE12En";
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=%dn",res);//这里也打印出正常的长度
}
else
printk("pf==NULL!n");
if(pf!=NULL);
filp_close(pf,NULL);
}
|
Linux启动完成后,在shell里看下:
#ls -l /system/icinfo.data
#ls -l /system/icinfo.data
|
楼主找到原因了么? 分享下
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。