你想要的优质技术好文第一时间送达!

$ df -h
/dev/sda11 454M 280M 147M 66% /boot
$ dd if=/dev/urandom of=/boot/test.txt bs=50M count=1
$ df -h
/dev/sda11 454M 312M 115M 74% /boot
#include<stdio.h>
#include<unistd.h>
int main(void)
{
FILE *fp = NULL;
fp = fopen("/boot/test.txt", "rw+");
if(NULL == fp)
{
perror("open file failed");
return -1;
}
while(1)
{
//do nothing
sleep(1);
}
fclose(fp);
return 0;
}
$ gcc -o openFile openFile.c
$ ./openFile
$ rm /boot/test.txt
$ df -h
dev/sda11 454M 312M 115M 74% /boot
$ df -h
/dev/sda11 454M 280M 147M 66% /boot
一个文件什么情况下才会被删除?
struct inode {
struct hlist_node i_hash; /* hash链表的指针 */
struct list_head i_list; /* backing dev IO list */
struct list_head i_sb_list; /* 超级块的inode链表 */
struct list_head i_dentry; /* 引用inode的目录项对象链表头 */
unsigned long i_ino; /* 索引节点号 */
atomic_t i_count; /* 引用计数 */
unsigned int i_nlink; /* 硬链接数目 */
如何释放已经被删除文件占用的空间?
$ lsof |grep deleted
$ ls -al /proc/`pidof openFile`/fd
total 0
lrwx------ 1 root root 64 5月 4 09:27 0 -> /dev/pts/25
lrwx------ 1 root root 64 5月 4 09:27 1 -> /dev/pts/25
lrwx------ 1 root root 64 5月 4 09:27 2 -> /dev/pts/25
lrwx------ 1 root root 64 5月 4 09:27 3 -> /boot/test.txt (deleted)
总结

最近热文阅读:
1、
Thread.sleep(0) 到底有什么用?
2、
全面了解 Nginx 到底能做什么
3、从零开始写一个迷你版的Tomcat
4、超实用的18个Java8日期处理的实践!
5、微信支付的软件架构也太特么牛逼了吧...!
6、这12张手绘图,让我彻底搞懂了微服务架构!
7、别用Date了,Java8新特性之日期处理,现在学会也不迟!
8、
Java中当对象不再使用时,不赋值为null会导致什么后果 ?
9、
SQL 查询总是先执行SELECT语句吗?你们都错了!
10
、
【收藏了】10分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行

关注 java大数据修炼之道
每天学习java技术,你想学的Java知识这里都有!

微信扫描二维码,关注我的公众号

最近热文阅读:
1、
Thread.sleep(0) 到底有什么用?
2、
全面了解 Nginx 到底能做什么
3、从零开始写一个迷你版的Tomcat
4、超实用的18个Java8日期处理的实践!
5、微信支付的软件架构也太特么牛逼了吧...!
6、这12张手绘图,让我彻底搞懂了微服务架构!
7、别用Date了,Java8新特性之日期处理,现在学会也不迟!
8、
Java中当对象不再使用时,不赋值为null会导致什么后果 ?
9、
SQL 查询总是先执行SELECT语句吗?你们都错了!
10
、
【收藏了】10分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行
关注 java大数据修炼之道
每天学习java技术,你想学的Java知识这里都有!
微信扫描二维码,关注我的公众号
朕已阅
每一个“在看”,都是对我们最大的肯定
本文分享自微信公众号 - java大数据修炼之道(Java_Bigdata_Study)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/4606156/blog/4495793