He estado jugando con la creación de sonidos usando funciones de onda matemáticas en C. El siguiente paso en mi proyecto está recibiendo la entrada del usuario desde un teclado controlador MIDI con el fin de modular las ondas a diferentes lanzamientos.C Linux dispositivo de programación - Lectura Directamente desde/dev
Mi primera idea era que esto sería relativamente simple y que Linux, siendo Linux, me permitiría leer el flujo de datos en bruto desde mi dispositivo como lo haría con cualquier otro archivo.
Sin embargo, la investigación abrumadoramente aconseja que escribo un controlador de dispositivo para el controlador MIDI. La idea general es que, aunque el archivo del dispositivo esté presente, el kernel no sabrá qué llamadas al sistema ejecutar cuando mi aplicación llame a funciones como read() y write().
A pesar de estas advertencias, hice un experimento. Conecté el controlador MIDI y recibí el archivo del dispositivo "/ dev/midi1". Apareció un flujo constante de caracteres nulos, y cuando presioné una tecla en el controlador MIDI, aparecieron varios bytes correspondientes a los fragmentos de mensajes esperados que debería emitir un dispositivo MIDI. MIDI Protocol Info
Así que mis preguntas son:
¿Por qué la corriente cat'ed se comportan de esta manera?
¿Esto significa que ya hay un controlador de dispositivo plug-and-play instalado en mi sistema?
¿Debo seguir adelante y escribir un controlador de dispositivo, o puedo salir con la lectura como un archivo?
Gracias de antemano por compartir su sabiduría en estas áreas.
en lugar de hacerlo, le recomendaría que lea() el dispositivo de un programa 'C'. Dice que está viendo datos "válidos", ¿por qué no está seguro? Por cierto, ya debe haber un controlador de dispositivo allí, de lo contrario no tendrías un archivo de dispositivo, ni habría una manera de acceder a él. – KevinDTimm