[問題] Kernel space 檔案存取
最近希望在 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
11/18 12:42, 1F
→
11/18 12:42, , 2F
11/18 12:42, 2F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章