【文件系统】Linux下文件大小和占磁盘空间大小

本文介绍了一种在Linux环境下生成大文件的方法,通过特定C语言代码实现,并解释了文件大小与实际磁盘占用的区别。适用于测试文件系统性能或进行内存压力测试。

1.大文件生成

生成size很大的文件的代码:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
int main(int argc,char** argv)
{

    if(argc < 0)
    {
      printf("please input filename.\n");
      exit(1);
    }
    int fd = open(argv[1],O_WRONLY|O_CREAT|O_TRUNC,0600);
    if(fd < 0)
    {
         perror("opne()");
         exit(1);
    }
    lseek(fd,5LL*1024LL*1024LL*1024-1LL,SEEK_SET);//没有判返回值,将就以下
    write(fd,"1",5LL*1024LL*1024*1024LL-1LL);
    close(fd);
    exit(0);
}

2.查看测试文件的参数

 

 3.为什么?

傻瓜,当然是因为没有真正开始写东西,没有用到磁盘中的block,可以再进行测试.
代码中只是写了1.


在此,您需要知道:
在Linux的世界中,经典unix的fs以及后来的在此基础上演变的各种文件系统中,文件size的大小和占用磁盘大小仅仅在很少情况下是相同的:
当您的文件size特别小的时候,可能文件大小没有占用磁盘的空间大,
当您的文件size特别大但是又有很多地方没有真正写入内容的时候,您的文件仅仅占用了相对很小的磁盘空间.
偶然的情况,两者是相同大小的.

 

4.centos7查看文件系统

这里我的测试系统是centos7,用的xfs的文件系统.

5. cenots6.10查看文件系统及测试结果

 

 

 

 

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值