当前位置: 技术问答>linux和unix
linux下删除文件原理
来源: 互联网 发布时间:2016-01-21
本文导语: 我正在编写一个类EXT2文件系统的删除文件的函数. 1.首先可以通过文件名找到要删除文件的INODE号. 2.之后也可以释放节点. 3.之后,如何删除文件? 请各位大侠指教.谢谢! | 研究一下内核源码吧,...
我正在编写一个类EXT2文件系统的删除文件的函数.
1.首先可以通过文件名找到要删除文件的INODE号.
2.之后也可以释放节点.
3.之后,如何删除文件?
请各位大侠指教.谢谢!
1.首先可以通过文件名找到要删除文件的INODE号.
2.之后也可以释放节点.
3.之后,如何删除文件?
请各位大侠指教.谢谢!
|
研究一下内核源码吧,现成的代码。你可以看看源码里的fs/ext2的代码,关于unlink的内容。
大致是
1、找到相关的物理块,删除之。这个比较复杂,参考dir.c
2、修改inode时间(注意,删除文件并不意味着一定被删除,也许还有link)
3、修改inode引用计数
大致是
1、找到相关的物理块,删除之。这个比较复杂,参考dir.c
2、修改inode时间(注意,删除文件并不意味着一定被删除,也许还有link)
3、修改inode引用计数
|
对阿,单单只是删除索引节点是不够的,节点只是一个文件描述符,需要删除文件里面的内容,应该读取文件大小字节数,使用lseek(fd,off_set,base);应该可以改变文件指针位置,接着根据文件大小删除文件磁盘数据,应该还有相应的某些链接??初来咋到,望不吝赐教!