0

大きな.pdf/.jpgファイルをjffs2ファイルシステムにアップロードすると、fwrite()失敗します。

私のデバイスには1024KBのスペースがあり、500KBの.pdfファイルをアップロードしています。私のプログラムはアップロードをバイトにストリーミングし、jffs2ファイルシステムに書き込みます。に与えられた長さは、から返された長さ(つまり、書き込まれたバイト数)fwrite()と同じではありません。fwrite()エラー番号を-11に設定します。これは、「スペースが不足しています」と表示されます。

4

1 に答える 1

2

JFFS2は圧縮ファイルシステムであるため、1024 Kbとして表示されるのは、実際にはデバイスが少なくとも2:1に圧縮できると考える512 Kbの領域である可能性が高く、これは一般的な値です。

ただし、PDFとJPEGはどちらも圧縮形式であるため、再度圧縮することはできません。そうしようとすると、実際にはそれらが拡張されることがよくあります。そして、それはJFFS2書き込みが失敗するときです。

確認するには(実際の物理スペースを報告しているデバイスの仕様がない場合)、pdftkツールを使用して非圧縮のPDFを取得してみてください。1024K、またはそれ以上の非圧縮PDFが問題なくアップロードされることがわかるでしょう...しかし、物理的なスペースがないため、おそらく490〜500Kbの圧縮PDFよりも大きくなることはありません。

于 2013-02-27T09:50:26.923 に答える