Cómo ejecutar el programa C ++ cada vez que se inserta una unidad flash USB
9
Tengo un programa C ++ que accede a pen drives / flash drives USB. Funciona para la unidad flash insertada actualmente. Un programa normal de C ++ no se ejecuta hasta que lo ejecutamos. Pero quería que el programa se ejecute automáticamente cada vez que se inserta una unidad flash. ¿Cómo puedo hacer eso?
Si desea que su programa distinga los discos, por lo que ejecuta diferentes operaciones, use (puede pasar su número de serie o cualquier atributo que desee):
+150: Gran respuesta: (AFAIK mejor de lo aceptado) Hace una regla general para cualquier dispositivo USB. En la respuesta aceptada, el USB está restringido a un VID y un PID.
Helio
5
Puede usar udevpara ejecutar un comando albitrario. Para que funcione, cree una regla en /etc/udev/rules.d/:
No estoy de acuerdo El programa C ++ es un "comando" después de todo. El usuario solicita una solución para activar ese comando. (Dijo: "Pero quería que el programa se ejecute automáticamente cada vez que se inserte una unidad flash. ¿Cómo podría hacer eso?")
Frantique
Para esta salida [ ideone.com/uOReNj ] de lsusb, ¿cuáles serán los valores de XXXXy YYYY?
vinayawsm
Si su pendrive es el Kingston que: XXXX = 0951, y AAAA = 162f.
Frantique
Para permitir que mi código se active para cada pen drive diferente, ¿debo actualizar siempre el archivo "my-usb-device.rules"?
vinayawsm
Debe crear una regla para cada dispositivo. O mejor refactorice su código de C ++ para que se ejecute como daemon y observe los desencadenantes de udev.
Puede usar
udev
para ejecutar un comando albitrario. Para que funcione, cree una regla en/etc/udev/rules.d/
:Y entra:
NOTA: Los valores
XXXX
yYYYY
se tomarán de lalsusb
salida.fuente
XXXX
yYYYY
?