作者uorol (′‧ω‧‵)
看板LinuxDev
标题[问题] filp_open 没有产生正确的权限
时间Wed Dec 6 10:57:26 2017
Dear all
我尝试在 kernel 中开启一个档案来做 dump,
其中在 filp_open 这个函数有点疑惑
// Open & Create file
static struct file *dump_fp = NULL;
struct file *OpenFile(char *path, int flag, int mode){
struct file *fp;
InitKernelEnv();
fp = filp_open(path, flag, 0);
printk(KERN_ERR "filp_open at %p\n", fp);
DinitKernelEnv();
if (IS_ERR(fp)) {
long err = PTR_ERR(fp);
printk(KERN_ERR "Occurs error: %ld\n", err);
return NULL;
}
return fp;
}
我传入的参数如下:
dump_fp = OpenFile(MY_FILE, (O_RDWR | O_CREAT), 0666);
不过生成的 MY_FILE 权限却是 ---------- (我预期应该要是 -rw-rw-rw-)
变成还要去手动 chmod 变成 666 才能正确使用
不知道版上的大神有没有遇过这种问题...
我的 Kernel 版本是 4.1.15
All suggestions are welcome, thank you QQ
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.163.79.73
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1512529052.A.108.html
※ 编辑: uorol (118.163.79.73), 12/06/2017 10:58:53
1F:→ dododavid006: 不是应该把 mode 传给 filp_open 的第三个参数吗 12/06 11:04
2F:→ galic: fp = filp_open(path, flag, 0); 12/06 11:16
3F:→ galic: ↑ 黑人问号 12/06 11:16
4F:→ uorol: ......抱歉我写错了 XDDD 12/06 12:23
5F:→ uorol: 来测试一下正确传入是否能 work QQ 12/06 12:24
6F:→ uorol: _(:3 」∠ )_ 他现在可以生成 -rw------- 了 感谢 12/06 12:29