GETSOCKOPT(2) | Linux Programmer's Manual | GETSOCKOPT(2) |
名前
getsockopt, setsockopt -ソケットのオプションの設定と取得を行なう書式
#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 );
説明
getsockopt() と setsockopt() は、ファイルディスクリプタ socket で参照されるソケットに関連するオプションの操作を行う。オプションは複数のプロトコル層(level)に存在するかもしれないが、これらは常に最上位のソケット層へと設定される。利用可能なソケットオプションの説明に関しては、 socket(7) と適切なプロトコルの man ページを参照のこと。
返り値
成功した場合にはゼロが返される。エラー時には-1 が返され、 errno が適切に設定される。エラー
- EBADF
- 引き数 sockfd は有効なディスクリプターでない。
- EFAULT
- optval で指定されたアドレスがプロセスのアドレス空間の有効な部分ではない。 getsockopt() の場合、 optlen がプロセスのアドレス空間の有効な部分でない場合にもこのエラーが返される。
- EINVAL
- setsockopt() で option が不正である。 optval に無効な値が指定された場合にも、このエラーが発生する可能性がある (例えば、 ip(7) に説明がある IP_ADD_MEMBERSHIP オプションなど)。
- ENOPROTOOPT
- 指定された層(level)にはこのオプションは存在しない。
- ENOTSOCK
- 引き数 sockfd がソケットではなくファイルである。
準拠
SVr4, 4.4BSD (これらのシステム・コールは 4.2BSD で最初に現れた), POSIX.1-2001.注意
POSIX.1-2001 では <sys/types.h> のインクルードは必須とされておらず、 Linux ではこのヘッダファイルは必要ではない。しかし、歴史的には、いくつかの実装 (BSD 系) でこのヘッダファイルが必要であり、移植性が必要なアプリケーションではこのファイルをインクルードするのが賢明であろう。バグ
ソケットのオプションのいくつかはシステムのより低い層で処理されるべきである。関連項目
ioctl(2), socket(2), getprotoent(3), protocols(5), socket(7), tcp(7), unix(7)この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2008-12-03 | Linux |