ちょいとsocketを使おうとした。
悩んだのは、socket()の第1引数が、AF_INETなのかPF_INETなのか、だ。
AF_INET派が多かったものの、「値は同じだけど、socket()はPF_INET、bind()やconnect()などはAF_INETがよいだろう」という意見も強く見られた。
PF_は「Platform Family」で、AF_は「Address Family」だから、プロトコルファミリーを指定するsocket()はPF_INETが意味として正しい、というわけだ。
後者の方がそれっぽいので納得したのだが、JM Projectも一応見てみた。
Man page of SOCKET
あれ・・・AF_になってる。
更新日は2015年2月1日だから、比較的新しい。
Xubuntu 14.04の「man socket」も見てみたが、やはりAF_だ。
こちらはBSD(manのミラーサイト?)で、2009年1月5日。
Manpage for socket - man.cx manual pages
こちらは、PF_だ。
FreeBSDも同じだ。というか、これも2009年1月5日だから、同じ内容なのか。
socket
私の中では、Solaris、Linux、BSD、みたいな区分けになっているので、Solarisで検索。
こちらは、Oracleのページだ。2002年6月10日。
https://docs.oracle.com/cd/E19253-01/816-5170/socket-3xnet/index.html
AF_になっている。
ということで、私はsocket()の引数をこうしよう。
- Linux、Cygwin、SolarisのときはAF_
- BSD、FreeBSDのときはPF_
みんな、人に流されず自分で決めるんだ!
(といいつつ、私も人が書いた内容を検索して決めたんだけどね。)
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。