send

Autres langues

Langue: ja

Version: 2004-07-01 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

̾Á°

send, sendto, sendmsg - ¥½¥±¥Ã¥È¤Ø¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë

½ñ¼°


#include <sys/types.h>

#include <sys/socket.h>



ssize_t send(int s, const void *buf, size_t len, int flags);


ssize_t sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);
ssize_t sendmsg(int s, const struct msghdr *msg, int flags);

ÀâÌÀ

¥·¥¹¥Æ¥à¥³¡¼¥ë send(), sendto(), sendmsg() ¤Ï¡¢¤â¤¦°ìÊý¤Î¥½¥±¥Ã¥È¤Ø¥á¥Ã¥»¡¼¥¸¤òžÁ÷¤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤ë¡£

send() ¤Ï¡¢¥½¥±¥Ã¥È¤¬ Àܳ¤µ¤ì¤¿ (connected) ¾õÂ֤ˤ¢¤ë¾ì¹ç¤Ë¤Î¤ß»ÈÍѤǤ­¤ë (¤Ä¤Þ¤ê¡¢¤É¤ÎÁê¼ê¤ËÁ÷¿®¤¹¤ë¤«¤Ï´ûÃΤǤ¢¤ë)¡£ send() ¤È write(2) ¤Î°ã¤¤¤Ï¡¢°ú¤­¿ô¤Ë flags ¤¬¤¢¤ë¤«¤É¤¦¤«¤À¤±¤Ç¤¢¤ë¡£ °ú¤­¿ô flags ¤¬ 0 ¤Î¾ì¹ç¡¢ send() ¤Ï write(2) ¤ÈÅù²Á¤Ç¤¢¤ë¡£ ¤Þ¤¿¡¢ send(s,buf,len,flags) ¤Ï sendto(s,buf,len,flags,NULL,0) ¤ÈÅù²Á¤Ç¤¢¤ë¡£

°ú¤­¿ô s ¤Ï¡¢¥Ç¡¼¥¿¤òÁ÷¿®¤¹¤ë¥Ñ¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤¢¤ë¡£

sendto() ¤Ï¡¢Àܳ·¿ (connection-mode) ¤Î¥½¥±¥Ã¥È (SOCK_STREAM, SOCK_SEQPACKET) ¤Ç »ÈÍѤµ¤ì¤¿¾ì¹ç¡¢°ú¤­¿ô to ¤È tolen ¤Ï̵»ë¤µ¤ì¤ë (³Æ¡¹¤Î°ú¤­¿ô¤¬ NULL ¤È 0 ¤Ç¤Ê¤¤¾ì¹ç¤Ï EISCONN ¥¨¥é¡¼¤âÊÖ¤µ¤ì¤ë)¡£ ¤Þ¤¿¡¢¥½¥±¥Ã¥È¤¬¼ÂºÝ¤Ë¤ÏÀܳ¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿»þ¤Ë¤Ï ENOTCONN ¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¡£ Àܳ·¿¤Î¥½¥±¥Ã¥È°Ê³°¤Ç»ÈÍѤµ¤ì¤¿¾ì¹ç¤Ï¡¢ÀܳÀè¤Î¥¢¥É¥ì¥¹¤Ï to ¤ÇÍ¿¤¨¤é¤ì¡¢¤½¤Î¥µ¥¤¥º¤Ï tolen ¤Ç»ØÄꤵ¤ì¤ë¡£ sendmsg() ¤Ç¤Ï¡¢ÀܳÀè¤Î¥¢¥É¥ì¥¹¤Ï msg.msg_name ¤ÇÍ¿¤¨¤é¤ì¡¢¤½¤Î¥µ¥¤¥º¤Ï msg.msg_namelen ¤Ç»ØÄꤵ¤ì¤ë¡£

send() ¤È sendto() ¤Ç¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤Ï buf ¤Ë³ÊǼ¤µ¤ì¤Æ¤ª¤ê¡¢¤½¤ÎŤµ¤Ï len ¤Ç¤¢¤ë¤È²ò¼á¤µ¤ì¤ë¡£ sendmsg() ¤Ç¤Ï¡¢¥á¥Ã¥»¡¼¥¸¤Ï ÇÛÎó msg.msg_iov ¤Î³ÆÍ×ÁǤ¬»Ø¤¹°ÌÃ֤˳ÊǼ¤µ¤ì¤Æ¤¤¤ë¡£ sendmsg() ¤Ç¤Ï¡¢Êä½õ¥Ç¡¼¥¿ (À©¸æ¾ðÊó¤È¤â¸Æ¤Ð¤ì¤ë) ¤òÁ÷¿®¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£

¥á¥Ã¥»¡¼¥¸Ä¹¤¬Ä¹²á¤®¤ë¤¿¤á¤Ë¡¢¤½¤Î¥½¥±¥Ã¥È¤¬»ÈÍѤ¹¤ë¥×¥í¥È¥³¥ë¤Ç¤Ï¡¢ ¥á¥Ã¥»¡¼¥¸¤ò¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤¿¤Þ¤Þ¤Î·Á¤ÇÁ÷¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ EMSGSIZE ¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¡¢¤½¤Î¥á¥Ã¥»¡¼¥¸¤ÏžÁ÷¤µ¤ì¤Ê¤¤¡£

send() ¤Ç¤Ï¡¢ÇÛÁ÷¤Î¼ºÇÔ¤ÎÄÌÃΤÏÌÀ¼¨Åª¤Ë¹Ô¤ï¤ì¤ë¡£ ¥í¡¼¥«¥ë¦¤Ç¥¨¥é¡¼¤¬¸¡½Ð¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ÊÖ¤êÃÍ -1 ¤È¤·¤ÆÄÌÃΤµ¤ì¤ë¡£

¥á¥Ã¥»¡¼¥¸¤¬¥½¥±¥Ã¥È¤ÎÁ÷¿®¥Ð¥Ã¥Õ¥¡¤ËÆþ¤ì¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¾ì¹ç¡¢ send() ¤ÏÄ̾ï¤ÏÄä»ß (block) ¤¹¤ë (¥½¥±¥Ã¥È¤¬ÈóÄä»ß (non-blocking) I/O ¥â¡¼¥É ¤Ç¤Ê¤¤¾ì¹ç)¡£ÈóÄä»ß¥â¡¼¥É¤Î¾ì¹ç¤Ë¤Ï EAGAIN ¤òÊÖ¤¹¡£¤¤¤Ä¥Ç¡¼¥¿¤ò¤µ¤é¤ËÁ÷¿®¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¤«¤òÃΤ뤿¤á¤Ë¡¢ select(2) ¥³¡¼¥ë¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

flags ¥Ñ¥é¥á¡¼¥¿¤Ï¡¢°Ê²¼¤Î¥Õ¥é¥°¤Î (0 ¸Ä°Ê¾å¤Î) ¥Ó¥Ã¥Èñ°Ì¤ÎÏÀÍýϤò ¤È¤Ã¤¿¤â¤Î¤ò»ØÄꤹ¤ë¡£

MSG_CONFIRM (Linux 2.3 °Ê¹ß¤Î¤ß)
žÁ÷½èÍý¤Ë¿ÊŸ¤¬¤¢¤Ã¤¿¡¢¤Ä¤Þ¤êÁê¼ê¦¤«¤éÀ®¸ù¤Î±þÅú¤ò¼õ¤±¤¿¤³¤È¤ò¥ê¥ó¥¯ÁØ¤Ë ÃΤ餻¤ë¡£¥ê¥ó¥¯Áؤ¬¤³¤ÎÄÌÃΤò¼õ¤±¼è¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢Ä̾ï¤É¤ª¤ê (¥æ¥Ë¥­¥ã¥¹¥È ARP ¤ò»È¤¦¤Ê¤É¤ÎÊýË¡¤Ç) ¶á˵ (neighbour) ¤ÎºÆ¸¡º÷¤ò¹Ô¤¦¡£ SOCK_DGRAM ¤È SOCK_RAW ¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Î¤ßÍ­¸ú¤Ç¡¢¸½ºß¤Î¤È¤³¤í IPv4 ¤È IPv6 ¤Î¤ß¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£ ¾Ü¤·¤¯¤Ï arp(7) »²¾È¤Î¤³¤È¡£
MSG_DONTROUTE
¥Ñ¥±¥Ã¥È¤òÁ÷¤ê½Ð¤¹¤Î¤Ë¥²¡¼¥È¥¦¥§¥¤¤ò»ÈÍѤ»¤º¡¢ ľÀÜÀܳ¤µ¤ì¤Æ¤¤¤ë¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Î¥Û¥¹¥È¤À¤±¤ËÁ÷¤ë¡£ Ä̾¤³¤Î¥Õ¥é¥°¤Ï¿ÇÃÇ (diagnostic) ¤ä¥ë¡¼¥Æ¥£¥ó¥°¡¦¥×¥í¥°¥é¥à¤Ë ¤è¤Ã¤Æ¤Î¤ß»ÈÍѤµ¤ì¤ë¡£¤³¤Î¥Õ¥é¥°¤Ï¡¢·ÐÏ©À©¸æ¤¬¹Ô¤ï¤ì¤ë¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¡¼ ¤ËÂФ·¤Æ¤Î¤ßÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¥Ñ¥±¥Ã¥È¥½¥±¥Ã¥È¤Ë¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
MSG_DONTWAIT
ÈóÄä»ß (non-blocking) Áàºî¤òÍ­¸ú¤Ë¤¹¤ë¡£Áàºî¤¬Ää»ß¤µ¤ì¤ë¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï EAGAIN ¤òÊÖ¤¹¤è¤¦¤Ë¤¹¤ë (fcntl(2) ¤Î F_SETFL ¤Ç O_NONBLOCK ¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤âÍ­¸ú¤Ë¤Ç¤­¤ë)¡£
MSG_EOR
¥ì¥³¡¼¥É¤Î½ªÎ»¤ò»Ø¼¨¤¹¤ë (SOCK_SEQPACKET ¤Î¤è¤¦¤Ë¤³¤Î³µÇ°¤ËÂбþ¤·¤Æ¤¤¤ë¥½¥±¥Ã¥È¼ïÊ̤ΤȤ­¤ËÍ­¸ú)¡£
MSG_MORE (Linux 2.4.4 °Ê¹ß)
¸Æ¤Ó½Ð¤·¸µ¤Ë¤µ¤é¤ËÁ÷¤ë¥Ç¡¼¥¿¤¬¤¢¤ë¤³¤È¤ò¼¨¤¹¡£ ¤³¤Î¥Õ¥é¥°¤Ï TCP ¥½¥±¥Ã¥È¤È¤È¤â¤Ë»ÈÍѤµ¤ì¡¢ TCP_CORK ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ÈƱ¤¸¸ú²Ì¤¬ÆÀ¤é¤ì¤ë (tcp(7) ¤ò»²¾È)¡£ TCP_CORK ¤È¤Î°ã¤¤¤Ï¡¢¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤È¸Æ¤Ó½Ð¤·Ã±°Ì¤Ç ¤³¤Îµ¡Ç½¤òÍ­¸ú¤Ë¤Ç¤­¤ëÅÀ¤Ç¤¢¤ë¡£ Linux 2.6 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥Õ¥é¥°¤Ï UDP ¥½¥±¥Ã¥È¤Ç¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤ª¤ê¡¢ ¤³¤Î¥Õ¥é¥°ÉÕ¤­¤ÇÁ÷¿®¤µ¤ì¤¿Á´¤Æ¤Î¥Ç¡¼¥¿¤ò°ì¤Ä¤Î¥Ç¡¼¥¿¥°¥é¥à¤Ë¤Þ¤È¤á¤Æ Á÷¿®¤¹¤ë¤³¤È¤ò¡¢¥«¡¼¥Í¥ë¤ËÃΤ餻¤ë¡£¤Þ¤È¤á¤é¤ì¤¿¥Ç¡¼¥¿¥°¥é¥à¤Ï¡¢ ¤³¤Î¥Õ¥é¥°¤ò»ØÄꤻ¤º¤Ë¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¼Â¹Ô¤µ¤ì¤¿ºÝ¤Ë½é¤á¤ÆÁ÷¿®¤µ¤ì¤ë (udp(7) ¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó UDP_CORK ¤â»²¾È)¡£
MSG_NOSIGNAL
¥¹¥È¥ê¡¼¥à»Ø¸þ¤Î¥½¥±¥Ã¥È¤ÇÁê¼ê¦¤¬Àܳ¤òÀÚÃǤ·¤¿»þ¤Ë¡¢¥¨¥é¡¼¤È¤·¤Æ SIGPIPE ¤òÁ÷¿®¤·¤Ê¤¤¤è¤¦¤ËÍ׵᤹¤ë¡£¤³¤Î¾ì¹ç¤Ç¤â EPIPE ¤ÏÊÖ¤µ¤ì¤ë¡£
MSG_OOB
ÂÓ°è³° (out-of-band) ¥Ç¡¼¥¿¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥½¥±¥Ã¥È (Î㤨¤Ð SOCK_STREAM) ¤Ç ÂÓ°è³° ¥Ç¡¼¥¿¤òÁ÷¤ë¡£²¼°Ì¥×¥í¥È¥³¥ë¤â ÂÓ°è³° ¥Ç¡¼¥¿¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£

msghdr ¹½Â¤ÂΤÎÆâÍƤϰʲ¼¤ÎÄ̤ꡣ ³Æ¥Õ¥£¡¼¥ë¥É¤ÎÀµ³Î¤Êµ­½Ò¤Ë¤Ä¤¤¤Æ¤Ï recv(2) ¤È°Ê²¼¤ÎÀâÌÀ¤ò»²¾È¤¹¤ë¤³¤È¡£




struct msghdr {

    void         *msg_name;       /* ÄɲäΥ¢¥É¥ì¥¹ */

    socklen_t     msg_namelen;    /* ¥¢¥É¥ì¥¹¤Î¥µ¥¤¥º */

    struct iovec *msg_iov;        /* scatter/gather ÇÛÎó */

    size_t        msg_iovlen;     /* msg_iov ¤ÎÍ×ÁÇ¿ô */

    void         *msg_control;    /* Êä½õ¥Ç¡¼¥¿(¸å½Ò) */

    socklen_t     msg_controllen; /* Êä½õ¥Ç¡¼¥¿¥Ð¥Ã¥Õ¥¡Ä¹ */

    int           msg_flags;      /* ¼õ¿®¥á¥Ã¥»¡¼¥¸¤Î¥Õ¥é¥° */

};

msg_control ¤È msg_controllen ¥á¥ó¥Ð¡¼¤ò»ÈÍѤ·¤ÆÀ©¸æ¾ðÊó¤òÁ÷¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¥«¡¼¥Í¥ë¤¬½èÍý¤Ç¤­¤ëÀ©¸æ¥Ð¥Ã¥Õ¥¡¤Î¥½¥±¥Ã¥È¤¢¤¿¤ê¤ÎºÇÂçĹ¤Ï¡¢ sysctl ¥Ñ¥é¥á¡¼¥¿¤Î net.core.optmem_max ¤ÎÃͤËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë¡£ socket(7) ¤ò»²¾È¡£

ÊÖ¤êÃÍ

À®¸ù¤·¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÁ÷¿®¤µ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£ ¥¨¥é¡¼¤Î¾ì¹ç¡¢ -1 ¤òÊÖ¤·¡¢ errno ¤òŬÀÚ¤ËÀßÄê¤Ë¤¹¤ë¡£

¥¨¥é¡¼

¤³¤ì¤é¤Ï¥½¥±¥Ã¥ÈÁؤÇȯÀ¸¤¹¤ë°ìÈÌŪ¤Ê¥¨¥é¡¼¤Ç¤¢¤ë¡£¤³¤ì°Ê³°¤Ë¡¢²¼ÁؤΠ¥×¥í¥È¥³¥ë¡¦¥â¥¸¥å¡¼¥ë¤ÇÀ¸À®¤µ¤ì¤¿¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£ ¤³¤ì¤é¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤½¤ì¤¾¤ì¤Î¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤¹¤ë¤³¤È¡£
EACCES
(Unix ¥É¥á¥¤¥ó¥½¥±¥Ã¥È¤Ï¥Ñ¥¹Ì¾¤Ç¼±Ê̤µ¤ì¤ë¡£) ¥½¥±¥Ã¥È¡¦¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ßµö²Ä¤¬¤Ê¤«¤Ã¤¿¤«¡¢¥Ñ¥¹Ì¾¤Ø Åþ㤹¤ë¤Þ¤Ç¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ë¸¡º÷µö²Ä¤¬¤Ê¤«¤Ã¤¿¡£ (path_resolution(7) ¤â»²¾È¤Î¤³¤È)
EAGAIN ¤Þ¤¿¤Ï EWOULDBLOCK
¥½¥±¥Ã¥È¤¬ÈóÄä»ß¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢ Í׵ᤵ¤ì¤¿Áàºî¤¬Ää»ß¤·¤¿¡£
EBADF
̵¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬»ØÄꤵ¤ì¤¿¡£
ECONNRESET
Àܳ¤¬ÀܳÁê¼ê¤Ë¤è¤ê¥ê¥»¥Ã¥È¤µ¤ì¤¿¡£
EDESTADDRREQ
¥½¥±¥Ã¥È¤¬Àܳ·¿ (connection-mode) ¤Ç¤Ï¤Ê¤¯¡¢ ¤«¤ÄÁ÷¿®Àè¤Î¥¢¥É¥ì¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£
EFAULT
¥æ¡¼¥¶¡¼¶õ´Ö¤È¤·¤ÆÉÔÀµ¤Ê¥¢¥É¥ì¥¹¤¬¥Ñ¥é¥á¡¼¥¿¡¼¤È¤·¤Æ»ØÄꤵ¤ì¤¿¡£
EINTR
¥Ç¡¼¥¿¤¬Á÷¿®¤µ¤ì¤ëÁ°¤Ë¡¢¥·¥°¥Ê¥ë¤¬È¯À¸¤·¤¿¡£
EINVAL
ÉÔÀµ¤Ê°ú¤­¿ô¤¬ÅϤµ¤ì¤¿¡£
EISCONN
Àܳ·¿¥½¥±¥Ã¥È¤ÎÀܳ¤¬¤¹¤Ç¤Ë³ÎΩ¤·¤Æ¤¤¤¿¤¬¡¢¼õ¿®¼Ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¡£ (¸½ºß¤Î¤È¤³¤í¡¢¤³¤Î¾õ¶·¤Ç¤Ï¡¢¤³¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤«¡¢ ¼õ¿®¼Ô¤Î»ØÄ̵꤬»ë¤µ¤ì¤ë¤«¡¢¤Î¤¤¤º¤ì¤«¤È¤Ê¤ë)
EMSGSIZE
¤½¤Î¥½¥±¥Ã¥È¼ïÊÌ ¤Ç¤Ï¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤¿¤Þ¤Þ¤Î·Á¤Ç¥á¥Ã¥»¡¼¥¸¤òÁ÷¿®¤¹¤ëɬÍפ¬¤¢¤ë¤¬¡¢ ¥á¥Ã¥»¡¼¥¸¤¬Â礭²á¤®¤ë¤¿¤áÁ÷¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£
ENOBUFS
¥Í¥Ã¥È¥ï¡¼¥¯¡¦¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î½ÐÎÏ¥­¥å¡¼¤¬°ìÇդǤ¢¤ë¡£ °ìÈÌŪ¤Ë¤Ï¡¢°ì»þŪ¤ÊíÕíÔ (congestion) ¤Î¤¿¤á¤Ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ Á÷¿®¤ò»ß¤á¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ (Ä̾Linux ¤Ç¤Ï¤³¤Î¤è¤¦¤Ê¤³¤È¤Ïµ¯¤³¤é¤Ê¤¤¡£¥Ç¥Ð¥¤¥¹¤Î¥­¥å¡¼¤¬ ¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤¿¾ì¹ç¤Ë¤Ï¥Ñ¥±¥Ã¥È¤ÏÌۤäƼΤƤé¤ì¤ë)
ENOMEM
¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£
ENOTCONN
¥½¥±¥Ã¥È¤¬Àܳ¤µ¤ì¤Æ¤ª¤é¤º¡¢ÀܳÀè¤â»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡£
ENOTSOCK
°ú¤­¿ô s ¤¬¥½¥±¥Ã¥È¤Ç¤Ê¤¤¡£
EOPNOTSUPP
°ú¤­¿ô flags ¤Î¤¤¤¯¤Ä¤«¤Î¥Ó¥Ã¥È¤¬¡¢¤½¤Î¥½¥±¥Ã¥È¼ïÊ̤ǤÏÉÔŬÀڤʤâ¤Î¤Ç¤¢¤ë¡£
EPIPE
Àܳ»Ø¸þ¤Î¥½¥±¥Ã¥È¤Ç¥í¡¼¥«¥ë¦¤¬ÊĤ¸¤é¤ì¤Æ¤¤¤ë¡£ ¤³¤Î¾ì¹ç¡¢ MSG_NOSIGNAL ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¥×¥í¥»¥¹¤Ë¤Ï SIGPIPE ¤âƱ»þ¤ËÁ÷¤é¤ì¤ë¡£

½àµò

4.4BSD, SVr4, POSIX.1-2001. (¤³¤ì¤é¤Î´Ø¿ô¥³¡¼¥ë¤Ï 4.2BSD ¤ÇºÇ½é¤ËÅо줷¤¿)¡£

POSIX.1-2001 ¤Ë¤Ï¡¢ MSG_OOB ¤È MSG_EOR ¥Õ¥é¥°¤À¤±¤¬µ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£ MSG_CONFIRM ¥Õ¥é¥°¤Ï Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ë¡£

Ãí°Õ

¾åµ­¤Î¥×¥í¥È¥¿¥¤¥×¤Ï Single Unix Specification ¤Ë½¾¤Ã¤Æ¤¤¤ë¡£ glibc2 ¤âƱÍͤǤ¢¤ë¡£ flags °ú¤­¿ô¤Ï 4.x BSD ¤Ç¤Ï int ¤Ç¤¢¤ê¡¢libc4 ¤È libc5 ¤Ç¤Ï unsigned int ¤Ç¤¢¤ë¡£ len °ú¤­¿ô¤Ï 4.x BSD ¤È libc4 ¤Ç¤Ï int ¤Ç¤¢¤ê¡¢libc5 ¤Ç¤Ï `size_t' ¤Ç¤¢¤ë¡£ tolen °ú¤­¿ô¤Ï 4.x BSD ¤È libc4 ¤È libc5 ¤Ç¤Ï `int' ¤Ç¤¢¤ë¡£ accept(2) ¤â»²¾È¤¹¤ë¤³¤È¡£

POSIX.1-2001 ¤Ç¤Ï¡¢¹½Â¤ÂÎ msghdr ¤Î¥Õ¥£¡¼¥ë¥É msg_controllen ¤Ï socklen_t ·¿¤Ç¤¢¤ë¤Ù¤­¤À¤È¤µ¤ì¤Æ¤¤¤ë¤¬¡¢ ¸½ºß¤Î glibc (glibc 2.4) ¤Ç¤Ï size_t ·¿¤Ç¤¢¤ë¡£

¥Ð¥°

Linux ¤Ï ENOTCONN ¤òÊÖ¤¹¾õ¶·¤Ç EPIPE ¤òÊÖ¤¹¤³¤È¤¬¤¢¤ë¡£

Îã

sendto() ¤ÎÍøÍÑÎ㤬 getaddrinfo(3) ¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£

´ØÏ¢¹àÌÜ

fcntl(2), getsockopt(2), recv(2), select(2), sendfile(2), shutdown(2), socket(2), write(2), cmsg(3), ip(7), socket(7), tcp(7), udp(7)