【发布时间】:2021-10-10 01:52:30
【问题描述】:
我的测试系统中有几个 USB 转 422 适配器。我已经使用 FTProg 为每个适配器指定了一个特定的名称:Sensor1、Sensor2 等。它们都将在开机时插入。我不想将每个适配器硬编码到特定的 ttyUSBx。我希望驱动程序弄清楚它需要使用哪个 tty。我正在为 linux 系统开发 C 语言。我的第一个想法是在我的启动代码中使用类似的东西。
system("dmesg | find_usb.py");
python 脚本会找到设备,因为每个设备都有唯一的产品描述。然后使用 USB 树将每个设备与其 ttyUSBx 相关联。然后,该脚本将创建 /tmp/USBDevs,它只是一个简单的 device:tty 配对,便于 C 代码搜索。
有人告诉我...不要使用系统...使用 posix_spawn()。但是我在将 dmesg 的输出通过管道传输到我的 python 脚本时遇到了问题。这不起作用
char *my_args[] = {"dmesg", "|", "find_usb.py", NULL};
pid_t pid;
int status;
status = posix_spawn(&pid, "/bin/dmesg", NULL, NULL, my_args, NULL);
if(status == 0){
if(waitpid(pid, &status, 0) != -1);{
printf("posix_spawn exited: %i", status);
}
我一直试图弄清楚如何使用 posix_spawn_file_actions() 来做到这一点,但我不允许在工作中达到“鲍尔默曲线”的峰值。
提前致谢
【问题讨论】:
标签: c linux posix embedded-linux