非常に大きなデータベースをすばやく埋めるための大きな.SQLファイルを生成するプログラムを作成しました。私はPHPでそれをスクリプト化しました。私がコーディングを始めたとき、私はfopen()とfwrite()を使っていました。ファイルが大きすぎると、プログラムはシェルに制御を返し、ファイルは不完全になります。fopen()はファイルシステムによって制限されていますか?
残念ながら、私は正確にどのくらいの大きさが「大きすぎますか」とは確信していません。私はそれが約4GBだったかもしれないと思う。
この問題を解決するには、ファイルechoをstdoutにしました。私はこのようにプログラムを呼び出したときにリダイレクトしました。
[[email protected]]$ php generatesql.php > myfile.sql
これは魅力的でした。私の出力ファイルは約10GBになりました。
私の質問、そして、次のとおりです。のfopen()とfwriteの()は、彼らが生成することができるどのように大規模なファイルの面で、ファイルシステムによって制限されていますか?もしそうなら、これはPHPの制限ですか?これは他の言語でも起こりますか?
あなたは32ビットのオペレーティングシステムにしているからだ、とあなたはoverfloだそうな...いくつかのコードを表示しますあなたが 'ftell'または' fseek'のどちらかを呼び出さない限り、ちょうど投機です...) – ircmaxell
私はオフィスから家に帰るとすぐにいくつかのコードを表示します。 – KeatsKelleher
@ircmaxell:fseek()は実行の最後に呼び出されました。 – KeatsKelleher