c言語の"汎用"という意味について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
koudaill

c言語の"汎用"という意味について

#1

投稿記事 by koudaill » 3年前

初めて投稿させていただくので、至らぬところがあったらすみません。
最近、TCPなどのネットワークプログラミングについて勉強しているのですが、
そのなかで例えば、struct sockaddrという汎用型のデータ構造がある、という記述を見ました

ここでいう"汎用"とは、どういうことなのでしょうか?一般に"汎用"とは、いろいろに応用が効く、
のような意味だと認識していますが、なぜわざわざ"汎用"と言うのでしょうか?
汎用ではないデータ構造が存在しているなら、それらを区別するために明記するためだったら
分かるのですが。

参考url:http://capm-network.com/?tag=C言語-ソケットプログラミング

アバター
tk-xleader
記事: 153
登録日時: 9年前
連絡を取る:

Re: c言語の"汎用"という意味について

#2

投稿記事 by tk-xleader » 3年前

ここでの「汎用」の意味は、おそらくソケットのプロトコルレベルでの汎用性のことではないでしょうか。例えばですが、TCPとUDPとではsockaddrの意味が異なるはずですが、いずれもsockaddrで表せるデータ構造になっている、ということだと思います。つまり、プロトコル間に共通のデータ構造という意味です。

[訂正]
TCP/IPとUDP/IPではいずれもsockaddr_inを使うので同じのようです。sockaddrの派生形としては次のようなものがあるみたいです。
sockaddr_in IPv4通信用。
sockaddr_in6 IPv6通信用。
sockaddr_un Unixドメイン通信用。
sockaddr_storage 長さ不明時用。
出典: http://www.coins.tsukuba.ac.jp/~syspro/ ... kaddr.html

koudaill

Re: c言語の"汎用"という意味について

#3

投稿記事 by koudaill » 3年前

御回答ありがとうございます。
確かに、struct sockaddr_inなどはstruct sockaddrにキャストするので、回答者様の通りだと分かりました。ありがとうございます。

返信

“C言語何でも質問掲示板” へ戻る