我正在着手进行一个编程项目,该项目需要确认可移动媒体(例如 USB 拇指驱动器)的设备身份,然后才能继续执行其他一些很酷的事情。
我的一些朋友建议我使用序列号,并且使用 udevadm 命令进行的初步测试表明这应该可以工作。我做了一些额外的检查,看来如果我能让软件与 libudev 一起工作,那么它应该(最少)在 ubuntu、slackware 和 gentoo 上编译,这将是一个非常好的好处。
所以我用 bing 找到了一个教程,并得到了 Signal 11 网站 (http://www.signal11.us/oss/udev/),这是一个写得很好的教程。它实际上似乎拥有我需要的一切。我下载代码。修复几个特定于平台的错误,然后编译。繁荣!Gcc 编译没有错误。到目前为止,一切都很好。
但是当我尝试运行它时,它引发了一些错误,我意识到我需要阅读更多的教程,以便我能够很好地理解 libudev 以修复错误并生成工作软件。问题是真的没有任何其他教程(我能找到),并且作为库文档的(唯一已知的?)站点的 kernel.org 站点在最近的服务器受损后关闭。
我考虑过只向 system() 发出 udevadm 指令,然后解析结果,但这是将软件组合在一起的一种非常糟糕的方式,我计划在完成编写后将其发布给社区。
那么如何最好地学习libudev?