Se o aplicativo incorreto abrir apenas os nós de dispositivo na /dev
tree , você poderá colocar o nó do dispositivo em outro lugar, se isso funcionar com seu próprio programa.
O sistema de arquivos no qual o nó do dispositivo reside deve ter a opção de montagem dev
definida para ter tratamento especial dos arquivos do nó do dispositivo como tal.
(Disclaimer: Eu não testei isso, mas eu fiz coisas semelhantes antes ...)
Um exemplo seria montar um pequeno sistema de arquivos tmpfs
, por exemplo, /my-dev/
e criar o nó do dispositivo lá.
mkdir -p /my-dev
mount -t tmpfs -o dev,size=<size> tmpfs /my-dev
mknod /my-dev/spi <type> <maj> <min>
onde <size>
é o tamanho do tmpfs, <type>
é o tipo de nó do dispositivo e <maj> <min>
são os principais : números de dispositivos menores; veja as páginas de manual para mount
e mknod
respectivamente.
... E, em seguida, use fopen("/my-dev/spi")
no seu programa.
(E, claro, certifique-se de que udev
ou similar não crie um nó para o dispositivo.)