解析KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777", SYMLINK+="gray"
时间: 2023-11-06 10:05:19 浏览: 43
解析KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777", SYMLINK ="gray" 意味着当系统检测到一个设备的内核名称为"ttyUSB*",且它的idVendor为"1a86",idProduct为"7523"时,将会应用以下规则:将该设备的访问权限设置为0777,并创建一个名为"gray"的符号链接。
相关问题
KERNEL=="ttyUSB*" , ATTRS{idVendor}=="10c4",ATTRS{idProduct}=="ea60",MODE:="0777" ,SYMLINK+="ttyRplidar",MODE:="0777"是什么意思
这是一个udev规则,用于在Linux系统中配置USB设备的权限和符号链接。具体解释如下:
KERNEL=="ttyUSB*":匹配设备名称以ttyUSB开头的USB串口设备。
ATTRS{idVendor}=="10c4":匹配设备的idVendor属性为10c4,即设备的供应商ID。
ATTRS{idProduct}=="ea60":匹配设备的idProduct属性为ea60,即设备的产品ID。
MODE:="0777":设置设备的权限为0777,即所有用户都具有读写执行权限。
SYMLINK+="ttyRplidar":创建一个名为ttyRplidar的符号链接,指向匹配的USB设备。
MODE:="0777":再次设置符号链接的权限为0777。
这个规则的作用是将满足条件的USB串口设备的权限设置为0777,并创建一个名为ttyRplidar的符号链接,以便更方便地访问该设备。
FILE *ls = popen("ls /dev/ttyUSB* --color=never", "r");如何理解这段代码
这段代码使用了`popen`函数来执行一个命令,并将命令的输出作为一个文件流返回。
具体来说,`popen`函数的第一个参数是一个命令字符串,这里是"ls /dev/ttyUSB* --color=never",表示执行`ls`命令来列出所有以"/dev/ttyUSB"开头的设备文件,并禁用颜色显示。
第二个参数是一个模式字符串,这里是"r",表示以只读方式打开管道。该参数指定了要执行的命令的输入流。
`popen`函数执行成功后,会返回一个指向`FILE`结构的指针,即所谓的文件流。这个文件流可以像普通文件一样进行读取操作。
在这段代码中,`FILE *ls`是一个指向文件流的指针,它用于后续对管道输出的读取操作。
通过执行`fscanf(ls, "%s", name);`语句,可以读取管道输出中的字符串,并将其存储在名为`name`的字符数组中。
最后,您可以通过返回`name`或者将其转换为`std::string`类型来获取串口设备的名称。