1. ホーム
  2. c

[解決済み] struct hostentとは何の略ですか?

2022-02-07 18:18:46

質問

hostentへのポインタは、gethostbyname()が返す構造体である。

正確な関数シグネチャ: struct hostent* gethostbyname(const char*)

そして、このhostentの最後の'ent'の部分が何を意味しているのか、さっぱりわかりません。

わからないことを暗記しようとすると、とても忘れてしまうので、よろしくお願いします。

解き方を教えてください。

簡単な GitHubで検索 を指しています。 basedefs/netdb.h (ネットワークデータベース操作のための定義)

<netdb.h> ヘッダを定義しなければならない。 hostent 構造体は、少なくとも以下のメンバを含む。

char   *h_name       Official name of the host. 
char  **h_aliases    A pointer to an array of pointers to 
                     alternative host names, terminated by a 
                     null pointer. 
int     h_addrtype   Address type. 
int     h_length     The length, in bytes, of the address. 
char  **h_addr_list  A pointer to an array of pointers to network 
                     addresses (in network byte order) for the host, 
                     terminated by a null pointer. 

そこから の公式ドキュメントです。 gethostbyaddr() が含まれます。

エントリー は、ホスト構造で返されるものとする。

gethostbyaddr() 関数は エントリ を持つホストのアドレスファミリ型のアドレスを含む。 addr .
len が指すアドレスの長さが含まれます。 addr .
gethostbyaddr() 関数はリエントラントである必要はありません。リエントラントである必要がない関数は、スレッドセーフである必要はありません。

エントリは、ホスト構造体で返されるものとする。

これらの関数が正常に終了した場合、そのポインタは hostent 構造体である場合、要求された エントリ が見つかった場合は NULL ポインタを、データベースの末尾に到達した場合や要求された エントリ が見つからなかった。

というわけで、これにて終了です。 ent に対して entry . 実体ではありません。