我有一个要测试的文件(“ / 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/