我有一个要测试的文件(“ / etc / network / interfaces之类的” interfaces_new”)。
测试涉及文件语法,如果我可以通过测试检测设置是否正确,那只会更好。

我搜索了一下,然后落在ifup命令上,该命令似乎可以执行我想要的所有操作。

问题是我不想在我的C代码中调用system,因此我尝试检索ifupdown的源。

我什至没有成功,许多结果向我表明大多数系统上都使用脚本ifup。在我的Debian 7.1.0上,它是EFL二进制文件。

我的问题是什么:
*它是C语言中可用的工具,可以用来解析文件/ etc / network / interfaces的语法吗?
*是否有一个列出所有有效选项的文档? ifup man什么也没给(或者我看起来很糟:/),其想法是制作自己的解析器。
*如何将ifup命令的源代码获取到Debian 7.1.0?

最佳答案

正如我最初评论的那样:

您应该阅读并了解有关parsing的更多信息。阅读interfaces(5)以了解/etc/network/interfaces的格式

ifup命令来自ifupdown package,因此请获取其源代码。

最后,您只需popen(3)以下命令

 ifup --verbose --no-act --force --all --interfaces=/tmp/interfaces_new


假设您的文件位于/tmp/interfaces_new中。

(警告,我没有测试我的建议,而是留给您)

关于c - 如何检查/etc/network/interfaces文件语法并在C代码中对其进行测试?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31201479/

10-11 16:43