[問題] filp_open 沒有產生正確的權限

看板LinuxDev作者 (′‧ω‧‵)時間7年前發表 (2017/12/06 02:57), 7年前編輯推噓0(006)
留言6則, 3人參與, 7年前最新討論串1/1
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

12/06 11:04, 7年前 , 1F
不是應該把 mode 傳給 filp_open 的第三個參數嗎
12/06 11:04, 1F

12/06 11:16, 7年前 , 2F
fp = filp_open(path, flag, 0);
12/06 11:16, 2F

12/06 11:16, 7年前 , 3F
↑ 黑人問號
12/06 11:16, 3F

12/06 12:23, 7年前 , 4F
......抱歉我寫錯了 XDDD
12/06 12:23, 4F

12/06 12:24, 7年前 , 5F
來測試一下正確傳入是否能 work QQ
12/06 12:24, 5F

12/06 12:29, 7年前 , 6F
_(:3 」∠ )_ 他現在可以生成 -rw------- 了 感謝
12/06 12:29, 6F
文章代碼(AID): #1Q9roS48 (LinuxDev)
文章代碼(AID): #1Q9roS48 (LinuxDev)