2011-02-17 110 views
2

我希望能够从我的C/C++程序为Linux上的DNS名称服务器添加IP地址。我在一个只读/etc/resolv.conf的嵌入式平台上。这意味着我不能简单地将一个“nameserver xxx.xxx.xxx.xxx”行添加到文件中,而没有一点诡计。有没有干净的方法从代码做到这一点?以编程方式在Linux上设置DNS名称服务器

我可以尝试将/etc/resolv.conf中的符号链接到tmpfs中的文件,但这看起来很骇人听起来像是我应该能够在不写入文件的情况下执行的操作。

+0

在嵌入式平台或瘦客户端上,符号链接到/ tmp是可以的。 – 2011-02-17 20:26:50

+0

有点很难说不知道你的嵌入式平台的功能。但在嵌入式土地恕我直言,有时乞丐不能选择。 – Terrance 2011-02-17 20:27:49

回答

1

查看您的libc中的nsaddr_listresolv.conf

This question说:

虽然没有记录,设置所使用的解析器的常见的方式是更新_res.nsaddr_list

在uClibc 0.9.31中,有一个comment on line 533resolv.c描述了这是如何工作的。