hishidaの開発blog

EBシリーズ(EBPocket,EBWin,EBMac,EBStudio),KWIC Finder,xdoc2txt,読書尚友の開発者ブログ

EBPocket for Android 4GB超対応

EBPocket for android 1.13.0で、4GB超のEPWING対応がやっと実現した!
原因は、android-ndkでは off_t の定義が32bitであり、FILE構造体の中でもoff_tが使われているため、fopen/fread/fseeko系統の高水準入出力関数では4GBの壁を越えられないためだった。ヘッダーを調べると、64bitのloff_t とlseek64()が定義されており、こちらを使えば4GB超のファイルにアクセスできた。off_tのサイズは処理系依存だと思うが、iOSでは当初から64bitである。
ただし、現在のandroid は、exFATに対応していないため、SDカードに4GB超のファイルを転送することができない。Boookendsで配布されている日本語Wikipediaのフル版を利用するには、内蔵ストレージが8GB以上ある機種が必要となる。