11.1 修改图 11-3 中的程序,为每个返回的地址调用 gethostbyaddr,然后显示它返回的 h_name, 首先指定一个只有单个 IP 地址的主机名运行本程序,然后指定一个有多个 IP 地址的主机名运行本程序,将会发生什么?
➜ progs git:(master) ✗ ./a.out qq.com
111.161.64.48 -> h_name = dns48.online.tj.cn
111.161.64.40 -> h_name = dns40.online.tj.cn
⚠️ 据推测,在 linux 上,gethostbyname 返回了静态的内存空间,因此连续两次调用 gethostbyname,第二次结果会覆盖上一次的。但是 gethostbyname 和 gethostbyaddr 使用的是两个独立的静态内存空间。因此调用 gethostbyname 后再调用 gethostbyaddr 不会覆盖上一次的。而在 Mac 上,gethostbyname 和 gethostbyname 的实现似乎不会出现覆盖现象。
- 使用可重入版本的
gethostbyaddr_r
和gethostbyname_r
- Practise_02_server.c
- Practise_02_client.c
- 这题没有做出来,进程间的同步不好搞,似乎走入了死胡同。