글
■ 디바이스 파일 생성 - mknod()
: 쉘에서 '# mknod ' 명령을 사용하여 디바이스 파일을 만들 수 있지만,
응용 프로그램 내에서 디바이스 파일을 만들어야 할 경우에 사용 된다.
■ 매개변수 전달
int mknod(const char *pathname, mode_t mode, dev_t dev);
- const char *pathname : 작성할 디바이스 파일 명
- mode_t mode : 접근 허가(perm) 및 디바이스 타입. (OR 연산으로 설정)
- dev_t dev : 디바이스 주번호 / 부번호 (시프트 연산으로 같이 입력)
■ 디바이스 타입
- S_IFCHR : 문자 디바이스
- S_IFBLK : 블럭 디바이스
■ 접근 허가
- S_IRWXU : 사용자 읽기, 쓰기 가능
- S_IRWXG : 그룹 읽기, 쓰기 가능
■ ex ) 'dev/test' 디바이스 파일을 주번호 241, 부번호 1을 가진 문자 디바이스로 생성 할 경우
- mknod("dev/test", S_IFCHR|S_IRWXU|S_IRWXG, (241<<8)|1);
=> 32비트 중 하위 16비트가 주번호, 부번호를 설정하는 영역인데
16비트중 상위 8비트가 주번호 영역이라 주번호를 8비트만큼 시프트 시키는 것이다.
- 쉘에서 다음과 같은 명령은 위와 동일한 처리를 한다.
=> #mknod /dev/test c 241 1
'L inux > Device Driver' 카테고리의 다른 글
문자 디바이스 (0) | 2011.09.28 |
---|---|
디바이스 드라이버의 이해 (2) | 2011.09.28 |
인터페이스 정보 얻기 (0) | 2011.04.14 |
ioperm() - 포트의 입출력 허가권 설정 / inb, outb (0) | 2011.04.12 |
ioctl() - 디바이스 io 제어 (4) | 2011.04.01 |
RECENT COMMENT