我编写了一个程序来生成大型 .SQL 文件,以便快速填充非常大的数据库。我用 PHP 编写了脚本。当我开始编码时,我使用的是fopen()和fwrite()。当文件变得太大时,程序会将控制权返回给 shell,并且文件将不完整。
不幸的是,我不确定“太大”到底有多大。我认为它可能在 4GB 左右。
为了解决这个问题,我将文件回显到标准输出。当我像这样调用程序时,我重定向了它:
[root@localhost]$ php generatesql.php > myfile.sql
这就像一个魅力。我的输出文件最终约为 10GB。
那么,我的问题是:fopen()和fwrite()是否受文件系统的限制,它们能够生成多大的文件?如果是这样; 这是PHP的限制吗?其他语言也会出现这种情况吗?