在 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 尝试过 vim
、echo
、hexdump
,但每次我都得到 "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)
我正在开发应阻止某些 USB 设备的应用程序。
我找到了如何阻止的方法。问题是,正如 here 所写,我需要将一些字符串写入 /sys/bus/usb/drivers_probe
文件。提到的文件是 application/octet-stream
,我找不到读取或写入该文件的方法。
我已经用 sudo 或 root 尝试过 vim
、echo
、hexdump
,但每次我都得到 "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)