我有一个简短的 C 程序,它会写入一个文件,直到磁盘上没有更多空间:
#include <stdio.h>
int main(void) {
char c[] = "abcdefghij";
size_t rez;
FILE *f = fopen("filldisk.dat", "wb");
while (1) {
rez = fwrite(c, 1, sizeof(c), f);
if (!rez) break;
}
fclose(f);
return 0;
}
当我运行该程序(在 Linux 中)时,它会在文件达到 2GB 时停止。
由于 FILE 结构或其他原因,是否存在内部限制?
Thanks.
在 32 位系统上(即操作系统是 32 位),默认情况下,fopen 和 co 仅限于 32 位大小/偏移/等...您需要启用大文件支持,或使用 *64 位选项:
http://www.gnu.org/software/libc/manual/html_node/Opening-Streams.html#index-fopen64-931 http://www.gnu.org/software/libc/manual/html_node/Opening-Streams.html#index-fopen64-931
那么你的文件系统需要支持这一点,但是除了fat和其他原始文件系统之外,它们都支持创建> 2 GB的文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)