android内核读取file文件
16lz
2021-01-26
内核读取file文件的方法:
char* file_read(const char * file_path) { struct file *file = NULL; //保存打开文件的文件指针变量 struct inode *inode = NULL; //为了获取文件大小用的inode结构变量 char *file_buf; //保存开辟的内存空间的地址的指针变量 loff_t fsize; //保存文件大小的变量 mm_segment_t old_fs; //保存内存边界的变量 static char error[] = "none"; file = filp_open(file_path,O_RDWR,0664);//打开文件 if (IS_ERR(file)) {return error; } inode = file->f_dentry->d_inode;//获取文件的大小 fsize = inode->i_size; old_fs = get_fs(); set_fs(KERNEL_DS); loff_t *pos = &(file->f_pos); file_buf = (char *)kmalloc(fsize+1,GFP_KERNEL); vfs_read(file, file_buf, fsize, pos); //读操作 filp_close(file, NULL); //关闭文件 set_fs(old_fs);//边界恢复 return file_buf;}
字符串转int的方法:
int string_to_int(const char *str){ int result = 0; int signal = 1; if(((*str>='0')&&(*str<='9'))||(*str=='-')||(*str=='+')){ if((*str=='-')||(*str=='+')){ if((*str=='-')){ signal = -1; str++; } } }else{ return 65; } while((*str>='0')&&(*str<='9')){ result = result*10 + (*str++ - '0'); } return signal*result;}
更多相关文章
- Android(安卓)-- 使用主题配置文件,去掉程序启动界面的短暂黑屏
- 自己的android keystore 提示密钥库文件不存在
- Android获取assets目录下的文件和图片
- 第71章、再识Intent-打开网页(从零开始学Android)
- Android(安卓)Studio将module打包成.jar包
- Android(安卓)mdpi hdpi xhdpi xxhdpi
- flutter APP 应用名称、启动页、图标配置
- 如何快速把安卓应用移植到BlackBerry 10上
- Android(安卓)第三方 Jar 的 Link 与问题:Unable to execute dex