我正在开发一个Linux设备驱动程序,我必须使用sysfs接口将一串字符传递给它。 sysfs属性是否可以接受字符串形式的数据(类似echo "somedata" > sysfs_interface
)?
我已经在上面实现了它,它似乎工作正常,但我想确定这是有效的(在内核社区可接受)。
答案 0 :(得分:7)
sysfs属性是否可以接受字符串形式的数据...
是。
实际上,这是sysfs在您使用echo
时接受的内容。当您使用echo 0
时,输出是两个字节,0x30(数字零的ASCII码)和0x0A(换行符)。
例如,GPIO LED接口使用关键字来报告和选择触发器。
# cat /sys/class/leds/d8/trigger
none nand-disk mmc0 timer [heartbeat] gpio
(括号中的关键字表示当前选择,即心跳计时器。)
# echo none > /sys/class/leds/d8/trigger
# cat /sys/class/leds/d8/trigger
[none] nand-disk mmc0 timer heartbeat gpio
...(类似于
echo "somedata" > sysfs_interface
)
您甚至不需要使用引号
请参阅上面将LED触发器设置为none
的示例。
ADDENDUM
这些是自定义界面......
不,这是在主线。
...但是子系统提供的那个呢?
权威答案来自Linux Documentation/filesystems/sysfs.txt:
Attributes should be ASCII text files, preferably with only one value
per file.