저는 현재 리눅스 장치 드라이버를 배우고 있습니다. 나는 단지 메모리 버퍼 인 예제 드라이버로 시작했다.연산자가 내 문자 장치에서 작동하지 않는 이유는 무엇입니까?
내 코드는 github에 있습니다. 이 잘되어 가고
# echo "Hello World" > /dev/mad
# cat /dev/mad
Hello World
하지만 난 뭔가를 추가 리디렉션 연산자를 사용하는 경우 (>>), 동작은 내가 기대했던 사람이되지 않습니다 :
나는이 작업을 수행하여 내 드라이버를 테스트합니다.
# echo foo > /dev/mad
# echo bar >> /dev/mad
# cat /dev/mad
bar
나는이 오히려 예상 :
foo
bar
나는 llseek
콜백을 구현하고 read
및 write
콜백에서 offp
돌봐했지만 여전히 작동하지 않습니다.
열려있는 모드를 모두 지원하고 여러 번 쓰기가 제대로 이루어 지도록 드라이버를 작성 했습니까? –
당신 말이 맞아요. 나는'open' 콜백에서 플래그'O_APPEND'의 지원을 잊어 버렸습니다. 자, 모두 잘 작동합니다! 감사합니다. – jml