前回のLinuxデバイスドライバ開発 デバイスからの続き。
前回作成した空実装に、struct fileを利用してオープンデバイス毎にデータを管理する実装を追加する。
動作確認のサンプルコード
実行確認
$ sudo insmod skel_drv.ko $ ls -l /dev | grep skel crw-rw-rw- 1 root root 246, 0 4月 15 10:04 skel_drv0 $ ./test fd0 - fd1 - fd0 - TEST fd1 - ABC fd0 - TEST $ sudo rmmod skel_drv $ dmesg | tail -n15 : [840878.286390] skel_init [840878.286393] skel_drv: char driver major number is 246 [840897.801551] skel_open [840897.801574] skel_open [840897.801622] skel_read [840897.801885] skel_read [840897.801901] skel_write [840897.801905] skel_write [840897.801909] skel_read [840897.801918] skel_read [840897.801926] skel_read [840897.801937] skel_release [840897.801946] skel_release [840907.857138] skel_exit