以下でws2tcpip.h
提供されているバージョンを使用していますgcc 3.4.4
cygwin 2.774
InetNtop
Microsoft の の実装である関数を調べていましたが、見つかっinet_ntop
た の 2 つのバージョンにws2tcpip.h
はその関数が含まれていません。arpa/inet.h
getを含めるinet_ntop
と、重複する定義であらゆる種類のひどいことが起こります。
gcc
/で提供されるバージョンcygwin
にこの機能がない理由はありますか? 定義を持つバージョンを Microsoft から取得する (合法的な?) 方法はありますか?
注: 正しい#define
s、#include
s、およびリンカー オプションがあることは 100% 確信しています。
WSA*
注:私がよく知っている古い機能の使用を提案しないでください。
編集:
今日さらに掘り下げたところ、ヘッダーの grep は次のように、ヘッダーにエントリが欠落しているに違いないという結論に達しました。
asdf@fdsa ~$ grep -i -B 4 -A 2 -R "inet_ntop" /usr/include/
/usr/include/arpa/inet.h-in_addr_t inet_netof (struct in_addr);
/usr/include/arpa/inet.h-in_addr_t inet_network (const char *);
/usr/include/arpa/inet.h-char *inet_ntoa (struct in_addr);
/usr/include/arpa/inet.h-int inet_pton (int, const char *, void *);
/usr/include/arpa/inet.h:const char *inet_ntop (int, const void *, char *, socklen_t);
/usr/include/arpa/inet.h-#endif
/usr/include/arpa/inet.h-
--
/usr/include/cygwin/version.h- 127: Export sigrelese.
/usr/include/cygwin/version.h- 128: Export pselect.
/usr/include/cygwin/version.h- 129: Export mkdtemp.
/usr/include/cygwin/version.h- 130: Export strtoimax, strtoumax, llabs, imaxabs, lldiv, imaxdiv.
/usr/include/cygwin/version.h: 131: Export inet_ntop, inet_pton.
/usr/include/cygwin/version.h- 132: Add GLOB_LIMIT flag to glob.
/usr/include/cygwin/version.h- 133: Export __getline, __getdelim.
asdf@fdsa ~$ grep -i -B 4 -A 2 -R "inetntop" /usr/include/
asdf@fdsa ~$
そして、これがライブラリ ファイルからの文字列です。
asdf@fdsa ~$ strings /usr/lib/w32api/libws2_32.a | grep -i 'inet_*ntop'
_inet_ntop@16
__imp__inet_ntop@16
_InetNtopW@16
__imp__InetNtopW@16
inet_ntop
_inet_ntop@16
__imp__inet_ntop@16
InetNtopW
_InetNtopW@16
__imp__InetNtopW@16
ヘッダーが間違っている理由/完全なものを入手できる場所を知っている人はいますか?