feimenguser 发表于 2008-12-30 14:39

内核中如何删除文件?

在内核中利用打开的OCREAT参数可以创建一个临时文件,但怎么样才能够删除他,请高手指教。

scutan 发表于 2008-12-30 20:03

为什么不在应用层做这种事情呢?系统调用已经将整个操作封装得很好了啊。

Godbach 发表于 2008-12-30 20:03

回复 #2 scutan 的帖子

呵呵,平时也见有在内核open文件的情况

emmoblin 发表于 2008-12-30 23:49

在内核里想干什么就干什么。
没有做不到的,这个系统都是你的。

dreamice 发表于 2008-12-31 10:16

原帖由 feimenguser 于 2008-12-30 14:39 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
在内核中利用打开的OCREAT参数可以创建一个临时文件,但怎么样才能够删除他,请高手指教。

没有深入细节研究这点,我建议你跟一下从用户空间到内核空间怎么删除文件的,在内核,直接调用内核空间的函数就ok了

scutan 发表于 2008-12-31 11:04

回复 #5 dreamice 的帖子

嗯。我也看了一下,那个函数好像没有被EXPORT。
然后我就使用以前那个方法调用了sys_unlink,发现没有作用。

xpl 发表于 2008-12-31 11:11

原帖由 scutan 于 2008-12-31 11:04 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
嗯。我也看了一下,那个函数好像没有被EXPORT。
然后我就使用以前那个方法调用了sys_unlink,发现没有作用。

为何没有作用?
原因?现象是什么?

内核中删文件,也就是unlink这些东西,无它

feimenguser 发表于 2009-01-01 14:28

我做的测试和scutan的一样,sys_unlink确实不起作用,vfs_unlink也没作用,不知道用户应用里面Unlink究竟多做了什么操作?

samon_fu 发表于 2009-01-01 20:53

回复 #8 feimenguser 的帖子

linux下核外的删除文件操作,到最后差不多都是落实到sys_unlink里来实现的了。

在核内做的话,找到对应的export出来的系统调用,应该用sys_unlink就可以的。

feimenguser 发表于 2009-01-03 16:03

使用sys_unlink,编译也没有错误出现,执行后临时文件还是没有被删除,仍在,所以说没起到作用,可能是我不会用,高手指点一下了
页: [1] 2
查看完整版本: 内核中如何删除文件?