当前位置: 技术问答>linux和unix
关于简单的虚拟磁盘问题(在线等)
来源: 互联网 发布时间:2015-09-13
本文导语: 这是偶的课程实习,我实现了在内存里划分空间的程序,可老师说如果用文件的话,可以给高些分数,所以请教大家,在内核中打开或者创建一个与我设定的虚拟盘大小相同的文件应该怎么办,最好说的详细点,谢谢...
这是偶的课程实习,我实现了在内存里划分空间的程序,可老师说如果用文件的话,可以给高些分数,所以请教大家,在内核中打开或者创建一个与我设定的虚拟盘大小相同的文件应该怎么办,最好说的详细点,谢谢
|
参考:
open ()
{ g_oldfs = get_fs();
set_fs(KERNEL_DS);
g_filp = filp_open(DEBUG_FILE, O_WRONLY|O_APPEND|O_CREAT,0600);
if (IS_ERR(g_filp))
{
printk("Error: Can't open sdr file(%s)!n",DEBUG_FILE );
return 0;
}
if (!g_filp->f_op)
{
printk("Error: sdr file operation method error!n");
return 0;
}
return 1;
}
close()
{
if(g_filp != NULL)
filp_close(g_filp, NULL);
g_filp = NULL;
set_fs(g_oldfs);
}
open ()
{ g_oldfs = get_fs();
set_fs(KERNEL_DS);
g_filp = filp_open(DEBUG_FILE, O_WRONLY|O_APPEND|O_CREAT,0600);
if (IS_ERR(g_filp))
{
printk("Error: Can't open sdr file(%s)!n",DEBUG_FILE );
return 0;
}
if (!g_filp->f_op)
{
printk("Error: sdr file operation method error!n");
return 0;
}
return 1;
}
close()
{
if(g_filp != NULL)
filp_close(g_filp, NULL);
g_filp = NULL;
set_fs(g_oldfs);
}
|
不会吧?在文件里面实现虚拟的文件系统?这个没有什么实际意义吧?我想你的老师是不是叫你把内存文件系统里面的内容在系统关闭的时候写入文件,以后再写回去?
至少FreeBSD里面可以这么干的……
至少FreeBSD里面可以这么干的……
|
是没什么意义,是个作业嘛。在内核中打开或者创建一个我指定大小的文件应该怎么办,这是我想问的事情。。。。。。。。
指定大小的文件,不就是分一个内存空间么?
指定大小的文件,不就是分一个内存空间么?