posixのIssue 7が削除されたため、コンピュータの正式なホスト名を取得gethostbyname
できなくなりました。代わりにgethostbyname("my_hostname")
試してみましたが、次のような結果が表示されます。getnameinfo
/etc/hosts
127.0.0.1 localhost
127.0.0.1 my_hostname.fqdn my_hostname
私は戻ってきますlocalhost
(これは言います)。しかし、(少なくともmuslとglibcでは)gethostbyname("my_hostname")
返されます。my_hostname.fqdn
問題7のユースケースに合理的な選択肢がありますか?それともこのユースケースに運がありませんか?
ベストアンサー1
Solarisのマニュアルページから:
DESCRIPTION
These functions are used to obtain entries describing hosts.
An entry can come from any of the sources for hosts speci-
fied in the /etc/nsswitch.conf file. See nsswitch.conf(4).
These functions have been superseded by
getipnodebyname(3SOCKET), getipnodebyaddr(3SOCKET), and
getaddrinfo(3SOCKET), which provide greater portability to
applications when multithreading is performed or technolo-
gies such as IPv6 are used. For example, the functions
described in the following cannot be used with applications
targeted to work with IPv6.
ご覧のとおり、この機能はgetaddrinfo()
POSIX規格にもあり、サポートされています。