IOCTL 관련하여 질문드립니다.
리눅스를 시작한지 얼마되지 않는 공부중인 사람 입니다 꾸벅...
리눅스커널 2.6.39.3 에서 아주 간단한 문자 디바이스를 작성하였습니다
#define DEV_NAME "/dev/test_device"
#define MY_IOCTL_NUMBER 't'
#define MY_IOCTL_READ _IOR(MY_IOCTL_NUMBER, 0, int)
//--- application
int main(int argc, char **argv)
{
int dev;
int data = 100;
dev = open(DEV_NAME, O_RDWR);
if(dev < 0) return -1;
ioctl(dev, MY_IOCTL_READ, &data); //값을 읽어오기 위해서 호출
...
}
위와 같이 어플을 진행했는데 _IOC_TYPE에걸려서 리턴되어 버립니다
int virtual_device_ioctl(struct inode *inode , struct file *flip, unsigned int cmd, unsigned long arg)
{
int err = 0, size;
if(_IOC_TYPE( cmd ) != MY_IOCTL_NUMBER)
{
return -EINVAL;
}
....
문제점을 모르겠습니다 어흑..
몇일째 삽질중입니다 소스는 첨부파일에 올려 드리오니 부디 검토 부탁 드립니다 꾸벅.
첨부 | 파일 크기 |
---|---|
![]() | 1.65 KB |
line 38에서 걸리는 것 아닌가요?
line 38에서 걸리는 것 아닌가요?
========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux
임베디드 리눅스 관련 프리렌서 지향
댓글 달기