[완료] 모듈에서 일반적인 API들을 어떻게 해야 사용할 수있는지 궁금합니다 ..

binoopang의 이미지

안녕하세요 ~

커널 모듈 프로그래밍을 공부하고 있습니다.
커널 모듈작성시에 일반적인 C Api들을 사용하고 싶은데요
open 과 같은 거요 ..

근데 이걸 사용하면 에러가 .. 두둥!! 하고 뜨네요 ㅠ

error : implict declaration of function 'open'

유저 랜드 함수라서 안되는 건가요??

klara의 이미지

커널에 대핸 무지해서 유저랜드함수가 뭔진 모르겠는데요, 에러내용으로 봤을떄, 혹시 open함수가 선언되어있는 해더파일이 포함되어있지 않은 것은 아닌가요?

bushi의 이미지

libc 의 open() 은 커널에서 제공하는 system call 을 이용하도록 구현된 함수입니다.

커널은 libc 와는 어떤 관계도 없습니다.
include/linux/string.h 를 보시고, lib/ 도 보세요.

질문하신 open 은 검색부탁드립니다.
더 보태면 쓰레기 투기가 될 것 같습니다.

OTL

powerson의 이미지

bushi님이 말씀하신 것처럼 user library는 사용할 수 없습니다.
kernel에서 제공해주는 함수를 사용하셔야 하는데, 그에 대한 정보는
http://www.kernel-api.org/ 이곳에서 확인하시면 됩니다. open 등에 대해 검색 정보를 좀더 드리자면, filp_open 등을 검색해시기 바랍니다.

------------------------------------------------------
아직은 젊다. 모든 것을 할 수 있는 나이란 말이지.

------------------------------------------------------
아직은 젊다. 모든 것을 할 수 있는 나이란 말이지.