亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sendmsg.c

?? glibc 庫, 不僅可以學習使用庫函數,還可以學習函數的具體實現,是提高功力的好資料
?? C
字號:
/* Copyright (C) 2001,2002,2004 Free Software Foundation, Inc.   This file is part of the GNU C Library.   The GNU C Library is free software; you can redistribute it and/or   modify it under the terms of the GNU Lesser General Public License as   published by the Free Software Foundation; either version 2.1 of the   License, or (at your option) any later version.   The GNU C Library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Lesser General Public License for more details.   You should have received a copy of the GNU Lesser General Public   License along with the GNU C Library; see the file COPYING.LIB.  If not,   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,   Boston, MA 02111-1307, USA.  */#include <errno.h>#include <string.h>#include <sys/socket.h>#include <sys/un.h>#include <hurd.h>#include <hurd/fd.h>#include <hurd/ifsock.h>#include <hurd/socket.h>/* Send a message described MESSAGE on socket FD.   Returns the number of bytes sent, or -1 for errors.  */ssize_t__libc_sendmsg (int fd, const struct msghdr *message, int flags){  error_t err = 0;  struct sockaddr_un *addr = message->msg_name;  socklen_t addr_len = message->msg_namelen;  addr_port_t aport = MACH_PORT_NULL;  union  {    char *ptr;    vm_address_t addr;  } data = { .ptr = NULL };  char data_buf[2048];  mach_msg_type_number_t len;  mach_msg_type_number_t amount;  int dealloc = 0;  int i;  /* Find the total number of bytes to be written.  */  len = 0;  for (i = 0; i < message->msg_iovlen; i++)    {      if (message->msg_iov[i].iov_len > 0)	{	  /* As an optimization, if we only have a single non-empty             iovec, we set DATA and LEN from it.  */	  if (len == 0)	    data.ptr = message->msg_iov[i].iov_base;	  else	    data.ptr = NULL;	  len += message->msg_iov[i].iov_len;	}    }  if (data.ptr == NULL)    {      size_t to_copy;      char *buf;      /* Allocate a temporary buffer to hold the data.  For small         amounts of data, we allocate a buffer on the stack.  Larger         amounts of data are stored in a page-aligned buffer.  The         limit of 2048 bytes is inspired by the MiG stubs.  */      if (len > 2048)	{	  err = __vm_allocate (__mach_task_self (), &data.addr, len, 1);	  if (err)	    {	      __set_errno (err);	      return -1;	    }	  dealloc = 1;	}      else	data.ptr = data_buf;      /* Copy the data into DATA.  */      to_copy = len;      buf = data.ptr;      for (i = 0; i < len; i++)	{#define	min(a, b)	((a) > (b) ? (b) : (a))	  size_t copy = min (message->msg_iov[i].iov_len, to_copy);	  buf = __mempcpy (buf, message->msg_iov[i].iov_base, copy);	  to_copy -= copy;	  if (to_copy == 0)	    break;	}    }  if (addr)    {      if (addr->sun_family == AF_LOCAL)	{	  /* For the local domain, we must look up the name as a file	     and talk to it with the ifsock protocol.  */	  file_t file = __file_name_lookup (addr->sun_path, 0, 0);	  if (file == MACH_PORT_NULL)	    return -1;	  err = __ifsock_getsockaddr (file, &aport);	  __mach_port_deallocate (__mach_task_self (), file);	  if (err == MIG_BAD_ID || err == EOPNOTSUPP)	    /* The file did not grok the ifsock protocol.  */	    err = ENOTSOCK;	  if (err)	    return __hurd_fail (err);	}      else	err = EIEIO;    }  err = HURD_DPORT_USE (fd,			({			  if (err)			    err = __socket_create_address (port,							   addr->sun_family,							   (char *) addr,							   addr_len,							   &aport);			  if (! err)			    {			      /* Send the data.  */			      err = __socket_send (port, aport,						   flags, data.ptr, len,						   NULL,						   MACH_MSG_TYPE_COPY_SEND, 0,						   message->msg_control,						   message->msg_controllen,						   &amount);			      __mach_port_deallocate (__mach_task_self (),						      aport);			    }			  err;			}));  if (dealloc)    __vm_deallocate (__mach_task_self (), data.addr, len);  return err ? __hurd_dfail (fd, err) : amount;}weak_alias (__libc_sendmsg, sendmsg)weak_alias (__libc_sendmsg, __sendmsg)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费视频caoporn| 午夜精品福利在线| 久久久久久**毛片大全| 日韩欧美久久久| 日韩女优毛片在线| 国产午夜亚洲精品羞羞网站| 国产精品毛片大码女人| 中文字幕高清不卡| 综合久久久久综合| 一区二区成人在线| 午夜精品123| 狠狠狠色丁香婷婷综合激情| 六月婷婷色综合| 成人自拍视频在线观看| 一本大道久久a久久精二百| 欧美午夜视频网站| 亚洲精品在线免费播放| 中文字幕一区二区三区视频| 一区二区高清在线| 韩国精品久久久| 97精品电影院| 91精品国产91久久久久久最新毛片| 日韩免费福利电影在线观看| 国产精品国产a级| 亚洲不卡一区二区三区| 国产精品996| 在线视频观看一区| 国产日产欧美一区| 亚洲图片一区二区| 成人免费电影视频| 在线观看91av| 综合分类小说区另类春色亚洲小说欧美| 亚洲综合激情网| 国产精品自拍三区| 欧美日韩一区二区不卡| 精品成a人在线观看| 亚洲精品欧美二区三区中文字幕| 久久激情五月激情| 欧洲一区在线电影| 欧美国产禁国产网站cc| 美女在线视频一区| 色呦呦国产精品| 久久美女艺术照精彩视频福利播放 | 亚洲成人激情av| 国产福利一区二区三区视频在线| 色妹子一区二区| 亚洲精品在线观看网站| 天堂久久一区二区三区| 色综合天天综合网国产成人综合天 | 国产精品欧美一级免费| 日本成人在线网站| 99re热视频精品| 久久久久久久综合狠狠综合| 亚洲电影一区二区| 91麻豆蜜桃一区二区三区| 精品久久五月天| 美腿丝袜一区二区三区| 欧美蜜桃一区二区三区| 亚洲男同1069视频| 成人aa视频在线观看| 久久精品夜夜夜夜久久| 久久99久久久久| 欧美一区二区免费视频| 视频在线在亚洲| 欧美日韩精品欧美日韩精品一综合| 国产精品视频第一区| 国产成人午夜片在线观看高清观看| 欧美电影影音先锋| 免费看日韩精品| 欧美一区二区三区在线视频| 午夜久久电影网| 91精品国产乱码久久蜜臀| 首页综合国产亚洲丝袜| 欧美一区二区黄| 国产在线精品不卡| 国产日韩亚洲欧美综合| 国产成人av一区二区三区在线| 精品福利一区二区三区| 国产一区二区久久| 国产午夜精品久久久久久免费视 | 国产精品国产精品国产专区不片| 国产成人av一区二区| 国产精品色呦呦| 91视频在线看| 亚洲综合在线视频| 欧美高清视频www夜色资源网| 亚洲福利电影网| 欧美videossexotv100| 国产成人精品一区二区三区四区| 中文字幕欧美三区| 色综合久久久久久久久久久| 亚洲国产毛片aaaaa无费看| 678五月天丁香亚洲综合网| 久国产精品韩国三级视频| 久久综合色天天久久综合图片| 韩国v欧美v日本v亚洲v| 国产精品国产精品国产专区不片| 91传媒视频在线播放| 久久国产欧美日韩精品| 中文字幕中文乱码欧美一区二区| 欧美日韩一级黄| 激情小说欧美图片| 亚洲黄色片在线观看| 日韩美女视频一区二区在线观看| 国产电影一区在线| 午夜不卡av免费| 久久色在线视频| 欧美亚洲动漫制服丝袜| 国产精品影视在线| 亚洲一区二区三区在线| 国产午夜亚洲精品午夜鲁丝片| 91精品1区2区| 高清beeg欧美| 青青草97国产精品免费观看 | 欧美日韩精品高清| 国产精品一区久久久久| 亚洲国产精品久久人人爱| 国产区在线观看成人精品| 欧美电影一区二区三区| 97久久超碰国产精品| 国产成人精品一区二| 久久精品国内一区二区三区| 亚洲免费三区一区二区| 国产亚洲综合在线| 91精品国产综合久久精品| 色综合久久中文字幕综合网 | 亚洲v日本v欧美v久久精品| 中文字幕不卡的av| 精品日韩一区二区| 欧美色男人天堂| 91小视频免费观看| 国产91精品一区二区麻豆亚洲| 欧美aaaaa成人免费观看视频| 有码一区二区三区| 国产精品福利一区二区三区| 精品成人在线观看| 精品国产一区二区国模嫣然| 欧美肥胖老妇做爰| 欧美色图在线观看| 欧美图区在线视频| 欧美性一二三区| 欧美日韩在线播放一区| 色综合久久久久综合99| 99riav一区二区三区| www.欧美日韩国产在线| k8久久久一区二区三区 | 日韩一区二区三区av| 91麻豆精品国产91久久久使用方法| 色欧美日韩亚洲| 欧美日韩一区在线观看| 欧美日韩精品电影| 欧美一区二区精品久久911| 欧美一区二区三区公司| 欧美一级免费大片| 日韩美女一区二区三区四区| www成人在线观看| 国产欧美日韩视频一区二区| 中文成人综合网| 亚洲视频1区2区| 午夜精品福利一区二区蜜股av| 石原莉奈一区二区三区在线观看| 五月天欧美精品| 精品在线一区二区三区| 国产成人夜色高潮福利影视| 99久久99久久精品国产片果冻| 色狠狠综合天天综合综合| 欧美日本一道本在线视频| 日韩免费一区二区| 国产丝袜欧美中文另类| 亚洲男同性视频| 男女性色大片免费观看一区二区| 黄页视频在线91| 色天天综合色天天久久| 777a∨成人精品桃花网| 国产视频视频一区| 一区二区三区日韩在线观看| 久久精品久久综合| 91看片淫黄大片一级| 91精品国产日韩91久久久久久| 久久久国产精品不卡| 亚洲猫色日本管| 日韩va亚洲va欧美va久久| 成人久久久精品乱码一区二区三区| 在线观看成人免费视频| 欧美成人vr18sexvr| 一区二区三区资源| 国产中文字幕精品| 欧美视频中文字幕| 国产喂奶挤奶一区二区三区| 亚洲电影中文字幕在线观看| 国产精品一卡二卡| 欧美精品久久天天躁| 国产精品久久午夜| 麻豆成人综合网| 在线观看日韩av先锋影音电影院| 久久一区二区视频| 亚洲高清免费在线| 91麻豆国产香蕉久久精品| 欧美tickling挠脚心丨vk| 一区二区三区欧美亚洲|