open ()으로 열어서 리턴되는 fd(File descriptor) 값을 이용하여서
#include <sys/ioctl.h>
int ioctl(int fd, int request, argp);
ioctl (I/O Control)을 통해서 장치 제어를 한다.
ioctl 의 경우 (int fd, int request, argp) 로 들어오게 된다.
fd는 open으로 인해 반환된 fd(file descriptor)
request : 드라이버에서 취해야 할 명령을 보낸다.
성공일시 0 값 실패시 -1 반환
-1을 얻었을시에 error 값을 참조하면 문제 확인 가능(EFAULT argp는 접근할수 없는 메모리 영역)
ENOTTY : fd는 문자 디바이스 파일과 연관되어있지 않다.
EINVAL : 디바이스파일에 연동된 드라이버가 request 또는 argp처리 불가능
//
int fd ; // file descriptor
int ret;
int level = 2;
mousehw_t mhw;
fd = open=("/dev/장치명",O_RDWR);
if(fd==-1) // -1 이면 에러
{
std::cout<<"Open Error -> Error Number : - > " ;
checking();
std::cout<<""<<std::endl;
}
std::cout<<"Current File Descriptor :: ->>>> <<fd <<std::endl;
ret = ioctl(fd,MOUSE_SETLEVEL,&level);
'GNU > FreeBSD' 카테고리의 다른 글
COMMAND - top (0) | 2016.07.04 |
---|---|
Unix Errno 표기 (0) | 2016.07.04 |
Mouse_Control - 2 일차 (0) | 2016.06.30 |
Mouse_Control - 1 일차 (0) | 2016.06.29 |
Free BSD 유용한 명령어 (0) | 2016.06.14 |