[問題] Kernel space 檔案存取

看板LinuxDev作者 (妳哪位ㄚ)時間14年前 (2011/11/09 00:56), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
最近希望在 kernel space 對檔案進行讀寫 但是遇到了一些問題 1. 我只能在當下目錄寫檔案(config), 如果設定如 "/system/config", 那麼在開機時就會卡在某個地方, 連 log 都看不到, 請問有哪個地方沒注意到的嗎? 2. 目前可以正常讀寫, 但是只要重新開機之後, 檔案會重建, 請問可以在關機之後還存在嗎? char result[Buff_Lenght]; f = filp_open("config", O_CREAT | O_RDONLY | O_TRUNC, 0600); f->f_op->read(f, result, Buff_Size, &f->f_pos); 開機會利用上述方式先去讀一次(僅列重要步驟), 並檢查 result 字串長度, 如果是零(表示檔案新建)就會利用下列方式將預設值寫入檔案 mm_segment_t oldfs; struct file *f = NULL; oldfs = get_fs(); set_fs(KERNEL_DS); f = filp_open("config", O_CREAT | O_WRONLY | O_TRUNC, 0600); char result[Buff_Lenght]; memset(result, 0, Buff_Size); sprintf(result, "%d", threshold); f->f_op->write(f, result, strlen(result) * sizeof(char), &f->f_pos); set_fs(oldfs); filp_close(f, NULL); set_fs(oldfs); 按照想法, 下次開機應該不會寫入預設值, 但 log 依舊出現預設值. (沒關機前, 中間數次的 read/write 都是正確的) 希望大家可以指教 Android 2.3.5 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.71.244.147

11/18 12:42, , 1F
我也有再kernelspace寫檔, 沒問題...
11/18 12:42, 1F

11/18 12:42, , 2F
我是透過sysfs寫到/data下的目錄, 沒有你說的當掉問題
11/18 12:42, 2F
文章代碼(AID): #1EkLzMel (LinuxDev)
文章代碼(AID): #1EkLzMel (LinuxDev)