在 linux 上写入 "application/octet-stream" 文件

Writing to a "application/octet-stream" file on linux

我正在开发应阻止某些 USB 设备的应用程序。

我找到了如何阻止的方法。问题是,正如 here 所写,我需要将一些字符串写入 /sys/bus/usb/drivers_probe 文件。提到的文件是 application/octet-stream,我找不到读取或写入该文件的方法。

我已经用 sudo 或 root 尝试过 vimechohexdump,但每次我都得到 "Permission denied""No such device" 消息。我没有在 C/C++ 中尝试过,这是我的应用程序使用的,但我想它会带来相同的结果。

任何人都可以帮助我理解内核开发人员写入该文件的意义吗?

如果你得到"Permission denied",这意味着你没有使用root权限打开文件:

$ sudo echo 4-1 > /sys/bus/usb/drivers_probe
bash: /sys/bus/usb/drivers_probe: Permission denied

$ echo 4-1 | sudo tee /sys/bus/usb/drivers_probe > /dev/null
(no error)

如果得到"No such device",说明你写错了字符串:

$ echo 'foobar' | sudo tee /sys/bus/usb/drivers_probe > /dev/null
tee: /sys/bus/usb/drivers_probe: No such device

$ echo '3-1.3.1:1.3' | sudo tee /sys/bus/usb/drivers_probe > /dev/null
(no error)