임베디드/Linux BSP

디바이스 파일

O_oz 2024. 3. 6. 09:24
반응형

디바이스 파일에 간단한 파일 처리 함수를 사용하여 하드웨어를 제어

 

디바이스 파일은 /dev 디렉토리에서 관리

디바이스 파일들

 

디바이스 파일 생성

sudo mknod /dev/디바이스파일명 파일형태(c, b) 주번호 부번호

해당 디바이스 파일은 문자 디바이스 드라이버(c)에 주 번호 10, 부 번호 235인 디바이스 파일이다

응용 프로그램이 디바이스 파일을 open() 함수로 열면 커널은 해당 디바이스 파일에서 주 번호를 얻어 이 번호가 처리하는 디바이스 드라이버를 찾음

응용 프로그램과 디바이스 드라이버가 연결되면 부 번호가 처리하고자 하는 실질적인 디바이스를 찾음

 

 

디바이스 파일 삭제

sudo rm -r /dev/디바이스파일명

 

 

파일 입출력  함수

스트림 파일 입출력 함수 : 중간 처리용 버퍼가 존재하고 해당 버퍼는 FILE 구조체를 통해 관리됨 / 파일에 데이터를 읽거나 쓰는 경우 파일에 직접 전달되지 않고 버퍼를 통해 사전 처리됨

입출력 처리가 효율적이지만 디바이스 파일에 사용하기엔 적합하지 않

저수준 파일 입출력 함수 : 디바이스 파일을 다룰 때 사용 / 쓰기 함수를 이용하면 파일에 데이터가 즉시 기록

 

저수준 파일 입출력 함수 기능
open() 파일이나 장치를 염
close() 열린 파일을 닫음
read() 파일에서 데이터를 읽어옴
write() 파일에 데이터를 씀
lseek() 파일의 쓰기나 읽기 위치를 변경함
ioctl() read(), write()로 다루지 않는 특수한 제어를 함
fsync() 파일에 쓴 데이터와 실제 하드웨어의 동기를 맞

 

반응형

'임베디드 > Linux BSP' 카테고리의 다른 글

리눅스에서 한글 글자가 깨질 때  (0) 2024.03.11
디바이스 드라이버 제어 방식  (0) 2024.03.07
디바이스 드라이버  (1) 2024.03.05
NFS 파일 공유 시스템  (1) 2024.02.06
크로스 컴파일러  (0) 2024.02.05