Я написал программу для создания больших файлов .SQL для быстрого заполнения очень больших баз данных. Я написал это на PHP. Когда я начал программировать, я использовал fopen() и fwrite(). Когда файлы становились слишком большими, программа возвращала управление оболочке, и файл становился неполным.
К сожалению, я точно не знаю, насколько большим является «слишком большой». Я думаю, что это могло быть около 4 ГБ.
Чтобы решить эту проблему, я отправил файл echo на стандартный вывод. Я перенаправил его, когда вызвал программу так:
[root@localhost]$ php generatesql.php > myfile.sql
Который работал как шарм. Мой выходной файл получился около 10 ГБ.
Тогда у меня возникает вопрос: ограничиваются ли fopen() и fwrite() файловой системой с точки зрения размера файла, который они могут создать? Если так; это ограничение PHP? Это происходит и в других языках?
ftell
илиfseek
)... - person ircmaxell   schedule 20.11.2010