POSIX 2018で私のFQDNを照会する方法

POSIX 2018で私のFQDNを照会する方法

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規格にもあり、サポートされています。

おすすめ記事