Я пытаюсь создать приложение на C / C ++, которое должно блокировать некоторые USB-устройства.
У меня есть похожая проблема, описанная здесь , но теперь мне нужно внедрить это решение в C ++. Мне просто нужно написать строку в /sys/bus/usb/drivers_probe
. Я пробовал что-то вроде:
ofstream fDriversProbe;
fDriversProbe.open("/sys/bus/usb/drivers_probe", ios::out | ios::binary | ios::app);
if(!fDriversProbe)
{
cout << "Could not open file drivers_probe.";
}
fDriversProbe.write("1-1:1.1", strlen("1-1:1.1"));
if(!fDriversProbe.good())
{
cout << "Could not write data to file\n";
}
, которые не приносят никаких ошибок или предупреждений, но также, кажется, не работают.
Затем я решил выполнить рабочую команду из кода.
system("sudo sh -c \"echo 1-1:1.1 > /sys/bus/usb/drivers_probe\"");
или
system("echo 1-1:1.1 | sudo tee /sys/bus/usb/drivers_probe");
без удачи. Когда я выполняю ту же команду (с тем же интерфейсом) вручную с терминала, все работает нормально, и USB-устройство начинает работать.