/dev/input/js0
ジョイパッド( )からの入力を受け取り、それを処理して、偽のデバイスファイル(文字)に送信するCプログラムを作成したい。またはキーボードとしてラベル付けされたブロック(ああ、そしてはキーボードのデバイス ファイルですか? これが可能かどうか、可能であればその方法を知りたいです。
答え1
ls -al /dev
私のシステムのコマンドの抜粋をよく見てください。
brw-rw---- 1 root floppy 8, 0 Jun 7 19:55 sda
brw-rw---- 1 root floppy 8, 1 Jun 7 19:55 sda1
brw-rw---- 1 root floppy 8, 2 Jun 7 19:55 sda2
brw-rw---- 1 root floppy 8, 3 Jun 7 19:55 sda3
brw-rw---- 1 root floppy 8, 5 Jun 7 19:56 sda5
brw-rw---- 1 root floppy 8, 6 Jun 7 19:56 sda6
brw-rw---- 1 root floppy 8, 7 Jun 7 19:56 sda7
brw-rw---- 1 root floppy 8, 8 Jun 7 19:57 sda8
brw-rw---- 1 root floppy 8, 16 Jun 7 19:55 sdb
brw-rw---- 1 root floppy 8, 32 Jun 7 19:55 sdc
brw-rw---- 1 root floppy 8, 33 Jun 7 19:55 sdc1
brw-rw---- 1 root floppy 8, 34 Jun 11 10:39 sdc2
brw-rw---- 1 root floppy 8, 35 Jun 7 19:56 sdc3
グループ ID の後、日付の前の 2 つの数字は、デバイス ファイルのメジャー番号とマイナー番号です。これは基本的にデバイスの「種類」です。この場合、8 は SCSI (またはエミュレートされた SCSI) ディスク ドライブです。
http://lxr.linux.no/linux/Documentation/devices.txtメジャー番号とマイナー番号すべてのリストですが、それほど最新ではありません。最新バージョンのリストの公式の場所は不明です。
いずれにせよ、これらのファイルはmknod
コマンド ( mknod [OPTION]... NAME TYPE [MAJOR MINOR]
、一部のタイプはb
ブロック用、c
は文字用) を使用して作成されます。システム コールもありますmknod()
。既存のデバイスと同じメジャー/マイナーで別のファイルを作成した場合の影響は完全にはわかりません。
uinput
コメントに記述されているように、おそらくあなたが探しているものでしょう。ただし、PC ハードウェアには、/dev/psaux
システムが古い場合は PS/2 ポートに直接読み書きする があります。USB キーボードについてどこから始めればよいかさえわかりません...
偽のデバイス ファイルだけが必要で、そこに送信したデータがどうなるかは気にしない場合は、 が常に存在します/dev/zero
。また、その場合、シンボリック リンクが非常に簡単な解決策になる場合があります。