- 论坛徽章:
- 0
|
实现原理:
du -s命令通过将指定文件系统中所有的目录、符号链接和文件使用的块数累加得到该文件系统使用的总块数;
df命令通过查看文件系统磁盘块分配图得出总块数与剩余块数。
du是用户级程序,不考虑Meta Data(系统为自身分配的一些磁盘块)
ps:应用程序打开的文件句柄没有关闭的话,会造成df命令显示的剩余磁盘空间少。而du则不会。
例子:- #include <unistd.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <fcntl.h>
-
- int main(int argc,char **argv)
- {
- if(open("tempfile",O_RDWR) < 0){
- fprintf(stderr,"open error");
- exit(-1);
- }
-
- if(unlink("tempfile") < 0){
- fprintf(stderr,"unlink error");
- exit(-1);
- }
-
- printf("file unlinked\n");
- sleep(15);
- printf("done\n");
- exit(0);
- }
复制代码 分別在程序sleep的時候執行 du 和df 命令。 |
|