JM プロジェクトは、主に Linux 関連のマニュアルページの日本語ページを翻訳・公開しています。
... nst struct sockaddr * addr , socklen_t addrlen , char * host , socklen_t hostlen , char * serv , socklen_t servlen , int flags ); glibc 向けの機能検査マクロの要 ... のアドレスファミリーに対する参照情報は 一切ハードコードされていないことに着目してほしい。 struct sockaddr *addr; /* input */ socklen_t addrlen; /* input */ char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV]; if (getnameinfo(addr, addrlen, hbuf, sizeof(hbuf), sbuf, s ... ; 以下ではソケットアドレスに 逆向きのアドレスマッピングが存在するかをチェックしている。 struct sockaddr *addr; /* input */ socklen_t addrlen; /* input */ char hbuf[NI_MAXHOST]; if (getnameinfo(addr, addrlen, hbuf, sizeof(hbuf), NULL, 0, NI_NAMEREQD)) pr ... ... etsockopt(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 ); 説明 getsock ... イルが 必要であり、移植性が必要なアプリケーションではこのファイルを インクルードするのが賢明であろう。 For background on the socklen_t type, see accept (2). バグ ソケットのオプションのいくつかはシステムのより低い層で 処理されるべきである。 関連項目 ioctl ... ... etsockopt(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 ); 説明 getsock ... イルが 必要であり、移植性が必要なアプリケーションではこのファイルを インクルードするのが賢明であろう。 For background on the socklen_t type, see accept (2). バグ ソケットのオプションのいくつかはシステムのより低い層で 処理されるべきである。 関連項目 ioctl ... ... ockaddr * addr , socklen_t * addrlen ); #define _GNU_SOURCE /* feature_test_macros (7) 参照 */ #include < sys/socket.h > int accept4(int sockfd , s ... truct sockaddr * addr , socklen_t * addrlen , int flags ); 説明 accept () システムコールは、接続指向のソケット型 ( SOCK_STREAM , SOCK_SEQPACKET ) で用いら ... いソケットをクローズすることによってなされる。 現在のところ、 Linux 上でこれらのセマンティクスを持つのは DECnet だけである。 socklen_t 型 In the original BSD sockets implementation (and on other older systems) the third argument of accept () was declared ... ... ockaddr * addr , socklen_t * addrlen ); #define _GNU_SOURCE /* feature_test_macros (7) 参照 */ #include < sys/socket.h > int accept4(int sockfd , s ... truct sockaddr * addr , socklen_t * addrlen , int flags ); 説明 accept () システムコールは、接続指向のソケット型 ( SOCK_STREAM , SOCK_SEQPACKET ) で用いら ... いソケットをクローズすることによってなされる。 現在のところ、 Linux 上でこれらのセマンティクスを持つのは DECnet だけである。 socklen_t 型 In the original BSD sockets implementation (and on other older systems) the third argument of accept () was declared ... ... い。 準拠 POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD ( getsockname () は 4.2BSD で初めて実装された) 注意 For background on the socklen_t type, see accept (2). 関連項目 bind (2), socket (2), getifaddrs (3), ip (7), socket (7), unix (7) この文書について この ... ... size_t len , int flags ); ssize_t recvfrom(int sockfd , void * buf , size_t len , int flags , struct sockaddr * src_addr , socklen_t * addrlen ); ssize_t recvmsg(int sockfd , struct msghdr * msg , int flags ); 説明 recv (), recvfrom (), recvmsg () コール ... rting address */ size_t iov_len; /* Number of bytes to transfer */ }; struct msghdr { void *msg_name; /* 追加のアドレス */ socklen_t msg_namelen; /* アドレスのサイズ */ struct iovec *msg_iov; /* scatter/gather 配列 */ size_t msg_iovlen; /* msg_iov の要素 ... が入っている。 メッセージの形式は以下の通り: struct cmsghdr { size_t cmsg_len; /* Data byte count, including header (type is socklen_t in POSIX) */ int cmsg_level; /* Originating protocol */ int cmsg_type; /* Protocol-specific type */ /* followed by unsig ... ... size_t len , int flags ); ssize_t recvfrom(int sockfd , void * buf , size_t len , int flags , struct sockaddr * src_addr , socklen_t * addrlen ); ssize_t recvmsg(int sockfd , struct msghdr * msg , int flags ); 説明 recv (), recvfrom (), recvmsg () コール ... rting address */ size_t iov_len; /* Number of bytes to transfer */ }; struct msghdr { void *msg_name; /* 追加のアドレス */ socklen_t msg_namelen; /* アドレスのサイズ */ struct iovec *msg_iov; /* scatter/gather 配列 */ size_t msg_iovlen; /* msg_iov の要素 ... が入っている。 メッセージの形式は以下の通り: struct cmsghdr { size_t cmsg_len; /* Data byte count, including header (type is socklen_t in POSIX) */ int cmsg_level; /* Originating protocol */ int cmsg_type; /* Protocol-specific type */ /* followed by unsig ... ... size_t len , int flags ); ssize_t recvfrom(int sockfd , void * buf , size_t len , int flags , struct sockaddr * src_addr , socklen_t * addrlen ); ssize_t recvmsg(int sockfd , struct msghdr * msg , int flags ); 説明 recv (), recvfrom (), recvmsg () コール ... rting address */ size_t iov_len; /* Number of bytes to transfer */ }; struct msghdr { void *msg_name; /* 追加のアドレス */ socklen_t msg_namelen; /* アドレスのサイズ */ struct iovec *msg_iov; /* scatter/gather 配列 */ size_t msg_iovlen; /* msg_iov の要素 ... が入っている。 メッセージの形式は以下の通り: struct cmsghdr { size_t cmsg_len; /* Data byte count, including header (type is socklen_t in POSIX) */ int cmsg_level; /* Originating protocol */ int cmsg_type; /* Protocol-specific type */ /* followed by unsig ... ... ddr , socklen_t addrlen ); 説明 socket (2) でソケットが作成されたとき、そのソケットは名前空間 (アドレスファミリー) に 存在するが、アドレ ... イルが 必要であり、移植性が必要なアプリケーションではこのファイルを インクルードするのが賢明であろう。 For background on the socklen_t type, see accept (2). バグ 透過的プロキシ (transparent proxy) オプションについて記述していない。 例 インターネットドメイ ... ); exit(EXIT_FAILURE); } while (0) int main(int argc, char *argv[]) { int sfd, cfd; struct sockaddr_un my_addr, peer_addr; socklen_t peer_addr_size; sfd = socket(AF_UNIX, SOCK_STREAM, 0); if (sfd == -1) handle_error("socket"); memset(&my_addr, 0, sizeof ... 日本語の文書やマニュアルを配布している個人/プロジェクトへのリンクです。