使用 udev sysname 测试设备
Test for device using udev sysname
我正在 Ubuntu 中编写我的第一个 C 程序,它涉及检测笔记本电脑上的交流适配器或电池何时看到事件(通过 udev_monitor
)。到目前为止,当电源情况发生变化时,我可以使用类似 while
代码段的方式登录到控制台:
while (1) {
dev = udev_monitor_receive_device(mon);
if (dev) {
printf("\n[INFO] Got Device\n");
printf(" [INFO] Device Name: %s\n", udev_device_get_sysname(dev));
...
太棒了!当我插入或拔出笔记本电脑时,我会将其记录到控制台。但是,我没能理解的是如何使用这些相同的函数进行有条件的测试。
例如,这绝不是真的:
if (udev_device_get_sysname(dev) == "ADP1") { ... }
我不确定如何正确测试它。显然,当使用 printf()
和 %s
时,它打印为字符串(字符数组?)。
编辑:从调用的函数记录到控制台的值是适配器的 ADP1
和电池的 BAT0
- 这与它们在 /sys/class/ 目录中的条目相关.
我正在 Ubuntu 中编写我的第一个 C 程序,它涉及检测笔记本电脑上的交流适配器或电池何时看到事件(通过 udev_monitor
)。到目前为止,当电源情况发生变化时,我可以使用类似 while
代码段的方式登录到控制台:
while (1) {
dev = udev_monitor_receive_device(mon);
if (dev) {
printf("\n[INFO] Got Device\n");
printf(" [INFO] Device Name: %s\n", udev_device_get_sysname(dev));
...
太棒了!当我插入或拔出笔记本电脑时,我会将其记录到控制台。但是,我没能理解的是如何使用这些相同的函数进行有条件的测试。
例如,这绝不是真的:
if (udev_device_get_sysname(dev) == "ADP1") { ... }
我不确定如何正确测试它。显然,当使用 printf()
和 %s
时,它打印为字符串(字符数组?)。
编辑:从调用的函数记录到控制台的值是适配器的 ADP1
和电池的 BAT0
- 这与它们在 /sys/class/ 目录中的条目相关.