Sem saber o seu dispositivo exato, acho que há uma boa razão para o kernel proibir o acesso simultâneo a ele. Para permitir o acesso quase simultâneo a ambos os programas, você poderia introduzir um terceiro programa que fica entre seus programas e o dispositivo. Este programa poderia abrir /dev/gpio
e poderia aceitar comandos de seus programas reais através de um soquete de domínio UNIX ( socket(2)
) ou pipe nomeado ( mkfifo(3)
).