proc fs에 entry생성하고 쓰고, 연속해서 읽으려고 하니 illegal seek이라는데..
글쓴이: sayhappy / 작성시간: 수, 2008/08/27 - 1:26오후
proc fs 밑에 entry를 하나 추가하려고 합니다.
모듈로 만들었습니다.
create_proc_entry()함수를 이용해서 엔트리를 생성하고
write_proc, read_proc 에 함수를 정의해 줬습니다.
단순히 배열에 값을 쓰고 읽어오는 형태입니다.
그런데 한번 쓰고 읽는 것은 잘 되는데,
어플리케이션에서 while 루프에서 연속해서 read를 하려고 하면
두번째 부터 에러가 나기 시작합니다.
lseek(xxx, 0, SEEK_SET) 해서 fp를 처음으로 옮기면 while 루프에서도 잘 되긴 합니다만
이게 해결책이 아닌 것 같아서 여쭤봅니다.
실행결과코드
-----------------------------------------------
read
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
read
error:xxxt: Success
read
error:xxx: Illegal seek
-----------------------------------------------
대체 뭐가 문제일까요;
Forums:
그게 해결 방법이
그게 해결 방법이 맞습니다.
read() 때 마다 자동으로 offset 이 0 으로 조정된다면,
접근하는 프로그램의 I/O 단위크기에 따라 오동작하게 될 뿐입니다.
OTL
댓글 달기