[問題] JNI函式內是否可使用fread() ??

看板AndroidDev作者 (真男人魂)時間14年前 (2012/01/02 21:46), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串1/1
這幾天在寫一支讀取 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

01/03 10:06, , 1F
如果call這個JNI的人UID=1000 不能存取記憶卡
01/03 10:06, 1F

01/03 10:06, , 2F
此為bionic的規定
01/03 10:06, 2F

01/04 21:04, , 3F
就算是jni code 還是要加讀寫sdcard權限喔
01/04 21:04, 3F

01/04 23:01, , 4F
以解決囉,因為我傻傻的檔案名打錯了= = ,所以開啟失敗
01/04 23:01, 4F
文章代碼(AID): #1F0RKgte (AndroidDev)