看板 LinuxDev 關於我們 聯絡資訊
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://www.ptt.cc/bbs/LinuxDev/M.1512529052.A.108.html ※ 編輯: uorol (118.163.79.73), 12/06/2017 10:58:53
dododavid006: 不是應該把 mode 傳給 filp_open 的第三個參數嗎 12/06 11:04
galic: fp = filp_open(path, flag, 0); 12/06 11:16
galic: ↑ 黑人問號 12/06 11:16
uorol: ......抱歉我寫錯了 XDDD 12/06 12:23
uorol: 來測試一下正確傳入是否能 work QQ 12/06 12:24
uorol: _(:3 」∠ )_ 他現在可以生成 -rw------- 了 感謝 12/06 12:29