이것은 커널에서 파일에 쓰는 코드입니다. (커널에서 직접 읽고 쓰는 것이 좋지는 않지만 단지 테스트에 불과합니다.)vfs_write는 커널 패닉을 야기합니다.
static void write_startup_file(char *startstring)
{
mm_segment_t oldfs;
struct file *f;
loff_t pos=0;
f = filp_open("/bin/startupcheck",O_WRONLY|O_CREAT, 0644);
oldfs = get_fs();
set_fs (KERNEL_DS);
if(f)
{
vfs_write(f,startstring, strlen(startstring), &pos);
set_fs(oldfs);
filp_close(f, NULL);
}
else
printk(KERN_CRIT "Unable to open startfile...\n");
}
와 나는 dbval
내가 커널을 컴파일하고 (필자는 VM웨어에 실행)를 실행할 때 read.But되는 값입니다
if(dbval==NULL) { write_startup_file("FAILED");}
같은 다른 기능 ourVeryOwnFunction()
에 문의하십시오. 내가받는 커널 패닉은 here
분명히 뭔가 잘못되었습니다. 도움이 필요하십니까? 감사.
'filp_open '이 실패하면'old_fs'는 어떻게 될까요? – MirkoBanchi