char device 관련 문제
글쓴이: pwy1575 / 작성시간: 화, 2017/03/28 - 11:28오전
안녕하세요
char 디바이스 장치 사용에 대해 질문드립니다.
환경 : linux kernel 2.6.22
1. char 디바이스를 open 함수를 이용하여 fd를 받아 write(시스템콜함수) 할 경우
2. echo 'aa' > /dev/char디바이스
위 두가지 방식으로 디바이스 장치로 write를 시도 했습니다.
1 번 방식은 입력한 문자 (ex.문자열 "aa") 가 정상적으로 입력되어 디바이스에 들어오나
2 번 방식을 이용한 경우 "aa" 이외의 데이터(쓰레기데이터)가 섞여 들어옵니다.(ex. aa lakfal[qpemm)
1.2 번 모두 char 디바이스 드라이버의 동일 write 시스템콜 함수를 호출하게 됩니다.
동일 디바이스에 동일 문자열을 밀어 넣는데 다르게 동작하는 원인이 무엇인지 알고 싶습니다.
감사합니다.
Forums:
한 가지 차이는 echo 'aa' 는 실제로는 'aa
한 가지 차이는 echo 'aa' 는 실제로는 'aa\n'을 출력한다는 겁니다. 그게 일반적으로 말씀하신 차이를 가져올 것 같지는 않지만 일단 저는 다른 짐작가는 차이는 없네요. echo -n 'aa' 와 결과를 비교해보시는 것이 어떨런지요? 만약에 이 경우에는 결과가 같다면 디바이스 드라이버 구현에서 '\n'의 유무때문에 차이가 발생할 수 있는 지 살펴보시는 것이 좋을 듯 합니다.
말씀해주신 echo 의 옵션 차이(\n 의 여부)에
말씀해주신 echo 의 옵션 차이(\n 의 여부)에 따라
디바이스 드라이버 상에서 처리 하는 과정이 달라지는 것 같습니다.
echo -n 으로 사용하면 정상 동작합니다.
감사합니다.
동일 댓글으로 삭제하겠습니다.
동일 댓글으로 삭제하겠습니다.
댓글 달기