标题:稀疏文件的trick: 凭空增加1T的“可用”空间 出处:Felix021 时间:Sun, 22 Aug 2010 21:58:26 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?1918 内容: 一个简单的程序: #include #include #include #include int main(int argc, char *argv[]) { int fd = open(argv[1], O_CREAT | O_WRONLY); if (fd < 0) { printf("err open"); return 1; } u_int64_t sz = lseek64(fd, (1ull << 40) - 1, SEEK_SET); if (sz < 0) { printf("err lseek64"); return 2; } int nWrite = write(fd, &fd, 1); printf("nWrite = %d\n", nWrite); close(fd); return 0; } 编译运行:引用 $ gcc -o hole hole.c -D_FILE_OFFSET_BITS=64 $ ./hole disk $ ls -lh disk -rwxr-S--- 1 felix021 felix021 1.0T 2010-08-20 14:36 disk 搞怪:引用 felix021@ubuntu-vbox:~/code$ mkdir mnt felix021@ubuntu-vbox:~/code$ sudo mkfs.vfat disk mkfs.vfat 3.0.7 (24 Dec 2009) felix021@ubuntu-vbox:~/code$ sudo mount -oloop disk mnt felix021@ubuntu-vbox:~/code$ df -lh Filesystem Size Used Avail Use% Mounted on /dev/sda3 5.2G 1.5G 3.5G 30% / ... /dev/sda1 2.3G 957M 1.3G 43% /home /dev/loop0 1.0T 16K 1.0T 1% /home/felix021/code/mnt Generated by Bo-blog 2.1.0