#include <sys/types.h> /* 「注意」参照 */ #include <sys/socket.h> int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
ソケットオプションを操作する際には、オプションの層 (level) と オプションの名前を指定しなければならない。 ソケット API 層でオプションを操作する為には、 level を SOL_SOCKET に指定する。 他の全ての層でオプションを操作する為には、与えられたオプションの 制御主体となるプロトコルのプロトコル番号を指定する。例えば、 オプションが TCP プロトコルで解釈されるべきことを指示するには、 level に TCP のプロトコル番号を指定しなければならない。 getprotoent(3) を参照すること。
optval と optlen 引数は setsockopt() のオプションの値にアクセスするために用いられる。 getsockopt() では要求したオプションの値を返すためのバッファーを指定する。 getsockopt() では optlen は値と結果両用の引数で、最初に optval の指しているバッファーのサイズを与え、実際に返される値のサイズに 書き換えられる。もしオプション値を与えず、返されもしない場合には optval は NULL でも良い。
optname および指定されたオプションは解釈されずに、適切なプロトコルモジュールに 渡されて解釈される。インクルードファイル <sys/socket.h> には後述のソケット層のオプションの定義が含まれている。 他のプロトコル層では名前や形式は異なる。 マニュアルのセクション 4 の適切なエントリーを参照すること。
ほとんどのソケット層のオプションは optval に int 引数を利用する。 setsockopt() で、二値(boolean)オプションを有効(enable)にするにはゼロ以外を指定し、 無効(disable)にするにはゼロを指定する。
利用可能なソケットオプションの説明に関しては、 socket(7) と適切なプロトコルの man ページを参照のこと。
Netfilter allows the programmer to define custom socket options with associated handlers; for such options, the return value on success is the value returned by the handler.
For background on the socklen_t type, see accept(2).
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]