안드로이드 개발 질문/답변
(글 수 45,052)
현재 flash memory의 Buffer를 사용하지 않고 read/write 하기위하여 JNI를 이용하여 코딩중에 있습니다.
Linux 계열에서는 O_DIRECT 플래그를 이용하여 버퍼를 사용하지 않고 File IO를 처리할 수 있다는 생각으로
코드를 작성하였습니다.
fd = open("/sdcard/disk_perf_test.tmp", O_RDONLY|O_SYNC);
if(read(fd,temp,1024) != 1024){
return -1;
}
위와 같은 경우는 정상적으로 파일을 읽어오는데
fd = open("/sdcard/disk_perf_test.tmp", O_RDONLY|O_DIRECT);
if(read(fd,temp,1024) != 1024){
return -1;
}
위와 같은경우는 -1을 리턴 해버리네요...
NDK에서는 O_DIRECT 플래그가 사용이 불가한 것인가요?
불가능할 경우 혹시 버퍼를 사용하지 않는 방법이 있는지 궁금합니다.
미리 답변 해주시는 분들께 감사의 말씀드리고..
이틀동안 골머리를 썩고 있네요... 잘 부탁드립니다.




저도 똑같은 상황입니다..ㅡ.,ㅜ
혹시, 해결하셨나요??
write는 되는데 read가 안되는게 정말 말이 안되는 상황..;;;