作者chk95 (真男人魂)
看板AndroidDev
標題[問題] JNI函式內是否可使用fread() ??
時間Mon Jan 2 21:46:14 2012
這幾天在寫一支讀取 arm 11 的sdcard內bin檔資料的程式
使用到android呼叫jni方式
因為想直接在lib.so內就把sdcard內的bin檔資料直接送給driver程式
因此便在jni函式內直接使用fread()
如以下
.
.
.
FILE *input;
unsigned char temp[50];
int bytes;
JNIEXPORT jint JNICALL Java_com_android_demo_Linuxc_start(JNIEnv *env,
jclass mc, jstring name){
input = fopen("/sdcard/xxx.bin", "rb");
bytes = fread(temp, sizeof(char), sizeof(temp), input);
return bytes;
}
.
.
.
請問這樣呼叫會有問題嗎??因為發現都是在執行fread()這個函式時
app就會自己跳出程式,請問是什麼原因呢??
可否幫忙小弟解答一下??感激不盡!!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.251.59.111
1F:推 gpc:如果call這個JNI的人UID=1000 不能存取記憶卡 01/03 10:06
2F:→ gpc:此為bionic的規定 01/03 10:06
3F:推 sdyy:就算是jni code 還是要加讀寫sdcard權限喔 01/04 21:04
4F:→ chk95:以解決囉,因為我傻傻的檔案名打錯了= = ,所以開啟失敗 01/04 23:01