커널에서 파일 억세스하기
글쓴이: young93 / 작성시간: 토, 2003/03/15 - 2:09오후
안녕하세요.
드라이버 모듈에서 파일을 억세스하려고 하는데
잘 안되네요.
여기저기 찾아 보니까
filp_open, generic_file_open 을 쓰면될것 같은데,
filp_open으로 파일을 열면
-14번 에러(EFAULT:Bad Address)가 발생합니다.
그래서 sys_open을 써보았는데, 마찬가지이고요.
물론 함수 파라미터는 맞는걸 확인했습니다.
모듈에서 파일 억세스를 하는데 어떤 제한 사항이 있나요?
조언 부탁드립니다.
Forums:
[quote]filp_open, generic_file_open 을 쓰면
System call 서비스 이므로 Parameter 가 user 영역에 있어야 합니다.
그래서 위와 같은 에러가 발생합니다...
get_ds(), set_ds() 커널 함수를 이용하면 위 문제를 해결할 수 있습니다.
Linux Device Driver 책에 관련 내용 있을 것입니다.
from saibi
[quote="new5244"]get_ds(), set_ds()
한참 찾아도 못 찾았는데, 이곳에 글을 올린 다음에
다른 곳에서 찾았습니다.
자문자답이 될뻔했네요.
예를들면 이렇게 하면 된답니다.
전에 비슷한 코드를 본적이 있는데 뭐하는 건지는
모르고 그냥 넘어 갔습니다.
이제야 확실히 알겠군요.
답변주셔서 감사합니다.
아래를 참조하세요...
http//www.fenrus.demon.nl/kernel.html
댓글 달기