getsockopt - システムコールの説明 - Linux コマンド集 一覧表
- 名前
- 書式
- 説明
- 返り値
- エラー
- 準拠
- 注意
- バグ
- 関連項目
名前
getsockopt, setsockopt - ソケットのオプションの設定と取得を行なう
書式
#include <sys/types.h>
#include <sys/socket.h>
int getsockopt(int
s
, int
level
, int
optname
,
void *
optval
, socklen_t *
optlen
);
int setsockopt(int
s
, int
level
, int
optname
,
const void *
optval
, socklen_t
optlen
);
説明
getsockopt
()と
setsockopt
()はソケットに関連する
options
を操作する。オプションは複数のプロトコル層(level)に存在するかもしれないが、
これらは常に最上位の
socket
層へと設定される。
ソケット・オプションを操作する際には、オプションの層(level)とオプションの
名前を指定しなければならない。ソケット層でオプションを操作する為には、
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 ページを参照のこと。
返り値
成功した場合にはゼロを返す。エラー時には -1 が返され、
errno
が適切に設定される。
エラー
-
EBADF
-
引き数
s
が有効なディスクリプタでない。
-
EFAULT
-
optval
で指定されたアドレスがプロセスのアドレス空間の有効な部分ではない。
getsockopt
()の場合、
optlen
がプロセスのアドレス空間の有効な部分でない場合にもこのエラーが返される。
-
EINVAL
-
setsockopt
()で
option
が不正である。
-
ENOPROTOOPT
-
指定された層(level)にはこのオプションは存在しない。
-
ENOTSOCK
-
引き数
s
はファイルであり、ソケットでない。
準拠
SVr4, 4.4BSD (これらのシステム・コールは 4.2BSD で最初に現れた),
POSIX.1-2001.
注意
getsockopt
と
setsockopt
の
optlen
引き数は実際は
int [*]
である (そして 4.x BSD と libc4 と libc5 はそうなっている)。
POSIX では紆余曲折を経て現在の
socklen_t
になっており、
glibc でも
socklen_t
を使っている。
accept
(2) も参照のこと。
バグ
ソケットのオプションのいくつかはシステムのより低い層で
処理されるべきである。
関連項目
- Linux Tips 関連記事
- Linux Tips(目次)
- Linux ディストリビューション一覧
- rpm のファイル名にあるi386とかi686とは
- 自分のマシンの情報を調べる
- cron の設定
- ssh の root ログインを禁止する
- ssh を、ユーザ、IPでアクセス制限
- 鍵交換方式によるssh接続
- 鍵交換方式によるssh接続( windowsから )
- 複数ファイル内の文字列を置換して上書き保存する
- あるグループをイニシャルグループとするユーザー一覧出力
- 複数ファイルのファイル名を一括変換する
- 連番ファイルをコマンド一発で作成する
- 中身がランダムなファイルを任意のサイズで作成する
- Linux ユーザーアカウントをロック・アンロックする