DNS修改即时生效

#include 
#include 
#include 
#include 

int res_init(void);

res_init: 读取配置文件(一般是/etc/resolv.conf)并修改环境变量(LOCALDOMAIN)。 在调用其他地址解析函数前通常要先调用res_init。如果执行成功, 函数返回0; 否则返回-1.

如修改了配置文件(/etc/resolv.conf)中的dns配置,重新调用res_init函数,立即生效,不需要重启服务设备。

对于环境变量的说明,以下摘至维基百科

在所有 Unix 和 类Unix系统中, 每个进程都有其各自的环境变量设置。 缺省情况下, 当一个进程被创建时, 除了创建过程中的明确更改外,它继承了其父进程的绝大部分环境设置。 在API层级上, 使用fork和exec函数进行变量设置。或利用bashshell文件, 使用特殊的命令调用来改变环境变量:通过env 间接替代或者使用ENVIRONMENT_VARIABLE=VALUE 标识. 所有的Unix操作系统 以及DOS 和Microsoft Windows 都是用环境变量,但是它们使用不同的环境变量名称。我们可以通过运行程序来访问环境变量的值。

可见调用res_init只会使当前进程更新dns生效,这一点需要注意。

你可能感兴趣的:(网络)