C 将big.pdf/.jpg文件上载到jffs2文件系统时,fwrite()失败

C 将big.pdf/.jpg文件上载到jffs2文件系统时,fwrite()失败,c,jffs2,C,Jffs2,将big.pdf/.jpg文件上载到jffs2文件系统时,fwrite()失败 我的设备有1024KB的空间,我正在上传500KB的.pdf文件。我的程序将上传数据流化为字节,并写入jffs2文件系统。指定给fwrite()的长度与从fwrite()返回的长度不同(即写入的字节数)。它将错误号设置为-11,表示“空间不足”JFFS2是一个压缩文件系统,因此在您看来1024 Kb的区域实际上很可能是一个512 Kb的区域,设备认为它至少可以压缩2:1,这是一个典型值 但由于PDF和JPEG都是压缩

将big.pdf/.jpg文件上载到jffs2文件系统时,
fwrite()
失败

我的设备有1024KB的空间,我正在上传500KB的.pdf文件。我的程序将上传数据流化为字节,并写入jffs2文件系统。指定给
fwrite()
的长度与从
fwrite()
返回的长度不同(即写入的字节数)。它将错误号设置为-11,表示“空间不足”

JFFS2是一个压缩文件系统,因此在您看来1024 Kb的区域实际上很可能是一个512 Kb的区域,设备认为它至少可以压缩2:1,这是一个典型值

但由于PDF和JPEG都是压缩格式,它们不能再次压缩;尝试这样做实际上往往会扩大它们。这就是JFFS2写入失败的时候

要检查(如果您没有设备的规格报告真实的物理空间),您可以尝试使用
pdftk
工具获取未压缩的PDF。您可能会看到一个1024K的未压缩PDF,或者更大的,将毫无问题地上传。。。但是没有比490-500KB的压缩PDF更大的了,因为物理空间根本不存在