Você geralmente faz o contrário: escreve uma regra udev
específica para um determinado fornecedor / produto que cria um link simbólico conhecido que você pode usar na sua "próxima função". Google para muitos tutoriais como tal regra parece.
Ou você escreve seu aplicativo de maneira que possa passar o caminho para o dispositivo como um argumento.
É possível percorrer o caminho do dispositivo em /sys/devices
para trás e verificar em cada etapa se esse é um dispositivo usb e tem um fornecedor / produto específico. Isso é o que, por exemplo udevadm info -a /dev/ttyUSB0
faz. Você precisa fazer dessa forma, porque não precisa ser um dispositivo USB, pode ser qualquer coisa.
Se você tiver para fazê-lo "codificando, não por comando", veja a fonte de udevadm
e copie o que ela fizer. Este será um esforço não trivial, e não pode ser muito simplificado, então eu realmente sugiro fazer isso de maneira diferente.