LINUX ] 자체적으로 데이터를 write하는 장치의 데이터를 Read 하고 싶습니다.(open(O_DIRECT))
글쓴이: erin / 작성시간: 월, 2011/02/07 - 9:50오후
Linux 환경(Android Kernel 2.6) 으로 개발중에 급 질문이 생겼습니다.
WANT]
자체적으로 데이터가 write되는 장치를 이용하여
장치의 데이터를 read해오고 싶습니다.
TRY_1]
int *phfd = open(O_CREAT|O_RDWR|O_DIRECT);
read(*phfd, *buf, n_size);
했으나.. O_DIRECT 옵션이 2.6환경에는 적용이 안되는지 (다른글 보니 그렇더군요)
read가 되지 않습니다.
TRY_2]
int *phfd = open(O_CREAT|O_RDWR);
fsync(*phfd);
read(*phfd, *buf, n_size);
했으나.. fsync로도 반응이 없습니다.
read가 되지 않습니다.
어찌하면 데이터를 read해 올 수 있을까요??
Forums:
능력자님들의 방법 알려주세요~~
능력자님들의 방법 알려주세요~~
커널용 open 반환값이 포인터인가요?
커널용 open 반환값이 포인터인가요?
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
open에서 주소값을 반환해주는 값을 phfd의
open에서 주소값을 반환해주는 값을 phfd의 포인터에 저장했습니다.
해당 함수가 호출될때 phfd의 값이 포인터로 정의 되어 들어오거든요.
( 예를 들면 테스트 프로그램에서 ConnectDev(&fd);로 호출을 하면
해당 소스의 unsigned long ConnectDev(int *phfd){}로 들어옵니다.)
댓글 달기