Linux最大文件存储数量

1.最大文件存储数量和文件系统格式有关

centos7默认是xfs,

centos6默认是ext4

centos5默认是ext3

  • ext3 文件数最大支持31998个,文件系统容量最大16TB,单个文件最大2TB
  • ext4 文件数最大无限制,文件系统容量最大1EB(1EB=1024PB,1PB=1024TB)),单个文件最大16TB
  • XFS 是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间。对特大文件及小尺寸文件的支持都表现出众。支持特大数量的目录。最大可支持的文件大小为263(2的63次方)= 9 x 1018 (10的18次方)= 9 exabytes,最大文件系统尺寸为18 exabytes。


2.具体还和系统inode(索引节点)数量有关,即使磁盘有剩余空间,这个 inode 满了也无法写入文件,查看inode数量:


[root@mail ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/vda3 2289280 695457 1593823 31% /
tmpfs 240294 1 240293 1% /dev/shm
/dev/vda1 51200 45 51155 1% /boot

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想要在 Linux C 中保存结构化数据,可以考虑将数据存储在一个二进制文件中。为了方便操作,你可以按照固定大小的块来存储数据,每个块中存储一个结构体。为了在文件中保存固定数量的结构体数据,你需要知道每个结构体的大小和数据的总量。 以下是一个简单的实现,可以按照固定大小的块来存储结构体: ```c #include <stdio.h> #include <stdlib.h> typedef struct { int id; char name[20]; double score; } Student; #define BLOCK_SIZE 100 int main() { FILE *fp; char filename[100]; Student block[BLOCK_SIZE]; Student s; int num_blocks, num_students, i, j; printf("Enter filename: "); scanf("%s", filename); fp = fopen(filename, "wb"); if (fp == NULL) { printf("File cannot be opened.\n"); return 0; } printf("Enter number of students: "); scanf("%d", &num_students); num_blocks = num_students / BLOCK_SIZE; for (i = 0; i < num_blocks; i++) { for (j = 0; j < BLOCK_SIZE; j++) { s.id = i * BLOCK_SIZE + j + 1; sprintf(s.name, "Student%d", s.id); s.score = 100.0 - s.id * 0.5; block[j] = s; } fwrite(block, sizeof(Student), BLOCK_SIZE, fp); } int remaining = num_students % BLOCK_SIZE; if (remaining > 0) { for (j = 0; j < remaining; j++) { s.id = num_blocks * BLOCK_SIZE + j + 1; sprintf(s.name, "Student%d", s.id); s.score = 100.0 - s.id * 0.5; block[j] = s; } fwrite(block, sizeof(Student), remaining, fp); } fclose(fp); return 0; } ``` 这个程序会提示用户输入文件名和数据的总量,然后按照固定大小的块来存储数据。在这个例子中,我们假设每个结构体的大小是固定的,并且按照顺序对每个结构体进行编号和命名。你可以根据实际情况来修改这个程序,并且根据需要添加读取数据的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值