안녕하세요.
Freebsd를 사용하는 user입니다. 다름이 아니라, 커널내에서 파일을 open, write 등을 사용하고 싶은데.. 어떻게 해야 할지 잘 모르겠네요.
커널에서 디스크에 접근하는 블럭번호들을 파일로 저장하고 싶은데.. 파일을 열고 쓰고 하는 작업이 어떻게 이루어 지는지 궁금합니다. 그냥 open, write 로는 해결이 안되는거 같아서요~
http://linuxkernel.net/linux/faq/index.php?cmd=read§ion=kernelprog-advanced2&num=1
이걸 읽어보셔요 간단하게 코드의 예제가 나와있고 결론적으로 말하자면
리눅스 커널에서는 open write 함수가 없으므로 어쩔 수 없이 시스템 콜을 써야하는데 시스템 콜을 쓰면 당연히 커널에서 데이터(포인터)의 위치를 검사하므로 에러가 나게 됩니다.
그러므로 set_fs라는 함수를 통해 커널의 메모리 어드레스 한계를 조정해주는것이 그 요지입니다.
구글링해보니 다음과 같은 글이 잘 나와있네요..http://www.linuxjournal.com/node/8110/print
C++, 그리고 C++.... 죽어도 C++
헉 쓰고보니 프비 -_-;; 죄송..
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
[url]http://linuxkernel.net/linux/faq/in
http://linuxkernel.net/linux/faq/index.php?cmd=read§ion=kernelprog-advanced2&num=1
이걸 읽어보셔요 간단하게 코드의 예제가 나와있고
결론적으로 말하자면
리눅스 커널에서는 open write 함수가 없으므로 어쩔 수 없이
시스템 콜을 써야하는데 시스템 콜을 쓰면 당연히 커널에서 데이터(포인터)의
위치를 검사하므로 에러가 나게 됩니다.
그러므로 set_fs라는 함수를 통해 커널의 메모리 어드레스 한계를 조정해주는것이 그 요지입니다.
구글링해보니 다음과 같은 글이 잘 나와있네요..
http://www.linuxjournal.com/node/8110/print
C++, 그리고 C++....
죽어도 C++
헉 쓰고보니 프비 -_-;; 죄송..
헉 쓰고보니 프비 -_-;; 죄송..
C++, 그리고 C++....
죽어도 C++
댓글 달기