205 lines
6.3 KiB
Groff
205 lines
6.3 KiB
Groff
.\" Copyright (c) 1983, 1991, 1993
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed by the University of
|
|
.\" California, Berkeley and its contributors.
|
|
.\" 4. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" From: @(#)send.2 8.2 (Berkeley) 2/21/94
|
|
.\" %FreeBSD: src/lib/libc/sys/send.2,v 1.19 2001/11/05 00:44:38 dd Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.Dd February 15, 1995
|
|
.Dt SEND 2
|
|
.Os
|
|
.Sh ̾¾Î
|
|
.Nm send ,
|
|
.Nm sendto ,
|
|
.Nm sendmsg
|
|
.Nd ¥½¥±¥Ã¥È¤«¤é¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤¹¤ë
|
|
.Sh ¥é¥¤¥Ö¥é¥ê
|
|
.Lb libc
|
|
.Sh ½ñ¼°
|
|
.In sys/types.h
|
|
.In sys/socket.h
|
|
.Ft ssize_t
|
|
.Fn send "int s" "const void *msg" "size_t len" "int flags"
|
|
.Ft ssize_t
|
|
.Fn sendto "int s" "const void *msg" "size_t len" "int flags" "const struct sockaddr *to" "socklen_t tolen"
|
|
.Ft ssize_t
|
|
.Fn sendmsg "int s" "const struct msghdr *msg" "int flags"
|
|
.Sh ²òÀâ
|
|
.Fn send ,
|
|
.Fn sendto
|
|
¤ª¤è¤Ó
|
|
.Fn sendmsg
|
|
¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤òÊ̤Υ½¥±¥Ã¥È¤ËÁ÷¿®¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
|
|
.Fn send
|
|
¤Ï¡¢¥½¥±¥Ã¥È¤¬
|
|
.Em Àܳ¤µ¤ì¤¿
|
|
¾õÂ֤ˤ¢¤ë¤È¤¤Ë¤À¤±»ÈÍѤǤ¤ë¤Î¤ËÂФ·¡¢
|
|
.Fn sendto
|
|
¤È
|
|
.Fn sendmsg
|
|
¤Ï¤¤¤Ä¤Ç¤â»ÈÍѤǤ¤Þ¤¹¡£
|
|
.Pp
|
|
¥¿¡¼¥²¥Ã¥È¤Î¥¢¥É¥ì¥¹¤ò
|
|
.Fa to
|
|
¤ÇÍ¿¤¨¡¢
|
|
.Fa tolen
|
|
¤Ç¤½¤Î¥µ¥¤¥º¤ò»ØÄꤷ¤Þ¤¹¡£
|
|
¥á¥Ã¥»¡¼¥¸¤ÎŤµ¤Ï
|
|
.Fa len
|
|
¤Ç»ØÄꤷ¤Þ¤¹¡£
|
|
¥á¥Ã¥»¡¼¥¸¤¬Ä¹¤¹¤®¤Æ´ðÁؤȤʤë¥×¥í¥È¥³¥ë¤òÉÔ²Äʬ¤ËÄ̲á¤Ç¤¤Ê¤¤¾ì¹ç¡¢
|
|
¥¨¥é¡¼
|
|
.Er EMSGSIZE
|
|
¤òÊÖ¤·¡¢¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤·¤Þ¤»¤ó¡£
|
|
.Pp
|
|
.Fn send
|
|
¤Ç¤Ï¡¢ÇÛÁ÷¤Ç¤¤Ê¤¤¤³¤È¤Ï¤Þ¤Ã¤¿¤¯¼¨¤µ¤ì¤Þ¤»¤ó¡£
|
|
Ìá¤êÃÍ -1 ¤Ï¥í¡¼¥«¥ë¤Ç¸¡½Ð¤µ¤ì¤¿¥¨¥é¡¼¤ò¼¨¤·¤Þ¤¹¡£
|
|
.Pp
|
|
Á÷¿®¤¹¤ë¥á¥Ã¥»¡¼¥¸¤òÊÝ»ý¤¹¤ë¥¹¥Ú¡¼¥¹¤¬¥½¥±¥Ã¥È¤Ë̵¤¤¾ì¹ç
|
|
.Fn send
|
|
¤ÏÄ̾ï¥Ö¥í¥Ã¥¯¤·¤Þ¤¹¡£
|
|
¤¿¤À¤·¡¢¥½¥±¥Ã¥È¤¬Èó¥Ö¥í¥Ã¥¥ó¥°Æþ½ÐÎϥ⡼¥É¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤ÏÊ̤Ǥ¹¡£
|
|
.Xr select 2
|
|
¸Æ¤Ó½Ð¤·¤ò»ÈÍѤ·¤Æ¡¢¤µ¤é¤Ë¿¤¯¤Î¥Ç¡¼¥¿¤ò¤¤¤ÄÁ÷¿®¤Ç¤¤ë¤«È½Äê¤Ç¤¤Þ¤¹¡£
|
|
.Pp
|
|
.Fa flags
|
|
¥Ñ¥é¥á¡¼¥¿¤Ë¤Ï¼¡¤Ë¼¨¤µ¤ì¤ë¤â¤Î¤Î¤¦¤Á
|
|
1 ¤Ä¤Þ¤¿¤ÏÊ£¿ô¤ò´Þ¤á¤ë¤³¤È¤¬²Äǽ¤Ç¤¹:
|
|
.Bd -literal
|
|
#define MSG_OOB 0x1 /* ÂÓ°è³°¥Ç¡¼¥¿¤ò½èÍý¤¹¤ë */
|
|
#define MSG_PEEK 0x2 /* Ãå¿®¥á¥Ã¥»¡¼¥¸¤òÇÁ¤¯ */
|
|
#define MSG_DONTROUTE 0x4 /* ¥ë¡¼¥Æ¥£¥ó¥°¤ò¥Ð¥¤¥Ñ¥¹¤·¡¢
|
|
¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òľÀÜ»ÈÍѤ¹¤ë */
|
|
#define MSG_EOR 0x8 /* ¤³¤Î¥Ç¡¼¥¿¤Ç¥ì¥³¡¼¥É¤ò½ªÎ»¤¹¤ë */
|
|
#define MSG_EOF 0x100 /* ¤³¤Î¥Ç¡¼¥¿¤Ç¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤ò½ªÎ»¤¹¤ë */
|
|
.Ed
|
|
.Pp
|
|
¥Õ¥é¥°
|
|
.Dv MSG_OOB
|
|
¤Ï¡¢¤³¤Î³µÇ°¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥½¥±¥Ã¥È (¤¿¤È¤¨¤Ð¡¢
|
|
.Dv SOCK_STREAM )
|
|
¾å¤Î
|
|
.Dq ÂÓ°è³°
|
|
¥Ç¡¼¥¿¤òÁ÷¿®¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
|
|
´ðÁؤȤʤäƤ¤¤ë¥×¥í¥È¥³¥ë¤â
|
|
.Dq ÂÓ°è³°
|
|
¥Ç¡¼¥¿¤ò¥µ¥Ý¡¼¥È¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
|
|
.Dv MSG_EOR
|
|
¤Ï¡¢¤³¤Î³µÇ°¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥×¥í¥È¥³¥ëÍѤΥ쥳¡¼¥É¥Þ¡¼¥¯¤ò¼¨¤¹¤Î¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
|
|
.Dv MSG_EOF
|
|
¤Ï¡¢¥½¥±¥Ã¥È¤ÎÁ÷¿®Â¦¤Î¥·¥ã¥Ã¥È¥À¥¦¥ó¤òÍ׵ᤷ¡¢
|
|
»ØÄê¥Ç¡¼¥¿¤Î½ªÎ»»þ¤Ë¡¢Å¬Àڤʻؼ¨¤ÎÁ÷¿®¤òÍ׵ᤷ¤Þ¤¹¡£
|
|
¤³¤Î¥Õ¥é¥°¤Ï¡¢
|
|
.Dv PF_INET
|
|
¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¤Î
|
|
.Dv SOCK_STREAM
|
|
¥½¥±¥Ã¥È¤Ë¤Ä¤¤¤Æ¤À¤±¼ÂÁõ¤µ¤ì¡¢¥È¥é¥ó¥¶¥¯¥·¥ç¥ó
|
|
.Tn TCP (
|
|
.Xr ttcp 4
|
|
¤ò»²¾È) ¤ò¼ÂÁõ¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
|
|
.Dv MSG_DONTROUTE
|
|
¤ÏÄ̾¿ÇÃÇ¥×¥í¥°¥é¥à¤Þ¤¿¤Ï·ÐÏ©ÀßÄê¥×¥í¥°¥é¥à¤Ç»ÈÍѤµ¤ì¤Þ¤¹¡£
|
|
.Pp
|
|
.Fa msghdr
|
|
¹½Â¤ÂΤξܺ٤ˤĤ¤¤Æ¤Ï¡¢
|
|
.Xr recv 2
|
|
¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
|
|
.Sh Ìá¤êÃÍ
|
|
¤³¤Î¸Æ¤Ó½Ð¤·¤ÏÁ÷¿®¤µ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤·¡¢¥¨¥é¡¼¤¬µ¯¤¤¿¾ì¹ç¤Ï -1 ¤òÊÖ¤·¤Þ¤¹¡£
|
|
.Sh ¥¨¥é¡¼
|
|
.Fn send ,
|
|
.Fn sendto
|
|
¤ª¤è¤Ó
|
|
.Fn sendmsg
|
|
¤Ï¼¡¤Î¾ì¹ç¤Ë¼Â¹Ô¤Ë¼ºÇÔ¤·¤Þ¤¹:
|
|
.Bl -tag -width Er
|
|
.It Bq Er EBADF
|
|
̵¸ú¤Êµ½Ò»Ò¤¬»ØÄꤵ¤ì¤Þ¤·¤¿¡£
|
|
.It Bq Er EACCES
|
|
°¸À襢¥É¥ì¥¹¤Ï¥Ö¥í¡¼¥É¥¥ã¥¹¥È¥¢¥É¥ì¥¹¤Ç¤¢¤ê¡¢
|
|
.Dv SO_BROADCAST
|
|
¤¬¥½¥±¥Ã¥È¾å¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
|
|
.It Bq Er ENOTSOCK
|
|
°ú¿ô
|
|
.Fa s
|
|
¤¬¥½¥±¥Ã¥È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
|
|
.It Bq Er EFAULT
|
|
¥Ñ¥é¥á¡¼¥¿¤Ë¤Ä¤¤¤ÆÌµ¸ú¤Ê¥æ¡¼¥¶¶õ´Ö¥¢¥É¥ì¥¹¤¬»ØÄꤵ¤ì¤Þ¤·¤¿¡£
|
|
.It Bq Er EMSGSIZE
|
|
¥½¥±¥Ã¥È¤Ï¥á¥Ã¥»¡¼¥¸¤¬ÉÔ²Äʬ¤ËÁ÷¿®¤µ¤ì¤ë¤³¤È¤òÍ׵ᤷ¤Æ¤¤¤Þ¤¹¤¬¡¢
|
|
Á÷¿®¤µ¤ì¤ë¥á¥Ã¥»¡¼¥¸¤Î¥µ¥¤¥º¤Ç¤ÏÉÔ²Äǽ¤Ç¤¹¡£
|
|
.It Bq Er EAGAIN
|
|
¥½¥±¥Ã¥È¤ÏÈó¥Ö¥í¥Ã¥¥ó¥°¤È¥Þ¡¼¥¯¤µ¤ì¤Æ¤ª¤ê¡¢
|
|
Í׵ᤵ¤ì¤¿Áàºî¤Ï¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¤Ç¤·¤ç¤¦¡£
|
|
.It Bq Er ENOBUFS
|
|
¥·¥¹¥Æ¥à¤ÏÆâÉô¥Ð¥Ã¥Õ¥¡¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£
|
|
¥Ð¥Ã¥Õ¥¡¤¬ÍøÍѲÄǽ¤Ë¤Ê¤Ã¤¿¤È¤¤ËÁàºî¤¬À®¸ù¤¹¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£
|
|
.It Bq Er ENOBUFS
|
|
¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥ó¥¿¥Õ¥§¡¼¥¹ÍѤνÐÎÏ¥¥å¡¼¤¬ËþÇդǤ·¤¿¡£
|
|
¤³¤ì¤Ï°ìÈ̤ˡ¢¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬Á÷¿®¤òÄä»ß¤·¤¿¤â¤Î¤Î¡¢
|
|
¤½¤ì¤¬°ì»þŪ¤ÊíÕíԤˤè¤Ã¤Æµ¯¤³¤Ã¤¿¤³¤È¤ò¼¨¤·¤Þ¤¹¡£
|
|
.It Bq Er EHOSTUNREACH
|
|
¥ê¥â¡¼¥È¥Û¥¹¥È¤ËÅþã¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£
|
|
.It Bq Er ECONNREFUSED
|
|
¥½¥±¥Ã¥È¤¬¡¢ICMP °¸ÀèÉÔÅþã¥á¥Ã¥»¡¼¥¸¤ò¡¢
|
|
ºÇ¸å¤ËÁ÷¿®¤·¤¿¥á¥Ã¥»¡¼¥¸¤«¤é¼õ¿®¤·¤Þ¤·¤¿¡£
|
|
ŵ·¿Åª¤Ë¤Ï¡¢¼õ¿®¼Ô¤¬¥ê¥â¡¼¥È¥Ý¡¼¥È¤ÇÂÔµ¡¤·¤Æ¤¤¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£
|
|
.It Bq Er EHOSTDOWN
|
|
¥ê¥â¡¼¥È¥Û¥¹¥È¤¬¥À¥¦¥ó¤·¤Æ¤¤¤Þ¤·¤¿¡£
|
|
.It Bq Er ENETDOWN
|
|
¥ê¥â¡¼¥È¥Í¥Ã¥È¥ï¡¼¥¯¤¬¥À¥¦¥ó¤·¤Æ¤¤¤Þ¤·¤¿¡£
|
|
.El
|
|
.Sh ¥Ð¥°
|
|
.Fn sendmsg
|
|
¤Ï¥Ç¡¼¥¿¤¬Å¾Á÷¤µ¤ì¤Æ¤·¤Þ¤¦¤Þ¤Çɬ¤º¤·¤â¥Ö¥í¥Ã¥¯¤·¤Ê¤¤¤Î¤Ç¡¢
|
|
¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ëµ½Ò»Ò¤ò
|
|
.Dv AF_UNIX
|
|
¥É¥á¥¤¥ó¥½¥±¥Ã¥È (
|
|
.Xr recv 2
|
|
¤ò»²¾È) ·Ðͳ¤ÇÁ÷¿®¤·¡¢¤½¤ì¤«¤é¼ÂºÝ¤ËÁ÷¿®¤µ¤ì¤ëÁ°¤Ë
|
|
.Fn close
|
|
¤¹¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£
|
|
¤½¤Î·ë²Ì¡¢¼õ¿®Â¦¤ÏÊĤ¸¤¿¥Õ¥¡¥¤¥ëµ½Ò»Ò¤òÆÀ¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
|
|
¤³¤ì¤òËɻߤ¹¤ë³Îǧ¥á¥«¥Ë¥º¥à¤Î¼ÂÁõ¤Ï¡¢
|
|
¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
|
|
.Sh ´ØÏ¢¹àÌÜ
|
|
.Xr fcntl 2 ,
|
|
.Xr getsockopt 2 ,
|
|
.Xr recv 2 ,
|
|
.Xr select 2 ,
|
|
.Xr socket 2 ,
|
|
.Xr write 2
|
|
.Sh Îò»Ë
|
|
.Fn send
|
|
´Ø¿ô¸Æ¤Ó½Ð¤·¤Ï
|
|
.Bx 4.2
|
|
¤ÇÅо줷¤Þ¤·¤¿¡£
|