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

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

?? buffer.c

?? 使用select實現的UNIX/Linux環境下的TCP聊天程序
?? C
字號:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include "buffer.h"buffer_t *buffer_create(unsigned long size, unsigned long maxsize){  buffer_t *buf;  if (size == 0 && maxsize == 0)  {    return NULL;  }  if (maxsize < size)  {    maxsize = size;  }  if ((buf = (buffer_t *) malloc(sizeof(buffer_t))) == NULL)  {    fprintf(stderr, "allocate memory failed: %s\n", strerror(errno));    return NULL;  }  buf->size = size;  buf->maxsize = maxsize;  buf->length = 0;  if ((buf->p = (char *) malloc(buf->size)) == NULL)  {    fprintf(stderr, "allocate memory failed: %s\n", strerror(errno));    free(buf);    return NULL;  }  return buf;}void buffer_destroy(buffer_t * buf){  if (buf)  {    if (buf->p)    {      free(buf->p);      buf->p = NULL;    }    free(buf);    buf = NULL;  }}int buffer_append_data(buffer_t * buf, char *data, unsigned long length){  if (!buf || !buf->p)    return -1;  if (buf->size - buf->length > length)  {    //void *memcpy(void *dest, const void *src, size_t n);    memcpy(buf->p + buf->length, data, length);    buf->length += length;    return 0;  }  else  {    int n;    if ((n = buffer_resize(buf, buf->length + length)) >= buf->length + length)    {      memcpy(buf->p + buf->length, data, length);      buf->length += length;      return 0;    }    else    {      if (n == -1)      {	fprintf(stderr, "Object %p is bad.\n", buf);      }      else if (n == -2)      {	fprintf(stderr, "Expected newsize of object %p is short than original size.\n", buf);      }      else      {	fprintf(stderr, "Object %p is left untouched.\n", buf);      }      return -1;    }  }  return 0;}char *buffer_fetch_data(buffer_t * buf, unsigned long length, unsigned long *rlength){  char *p;  if ((p = malloc(length)) == NULL)  {    return NULL;  }  //*rlength = buf->length > length ? length : buf->length;  if (buf->length > length)  {    *rlength = length;  }  else  {    *rlength = buf->length;  }  // void *memcpy(void *dest, const void *src, size_t n);  memcpy(p, buf->p, *rlength);  if (buf->length - *rlength > 0)  {    // void *memmove(void *dest, const void *src, size_t n);    memmove(buf->p, buf->p + *rlength, buf->length - *rlength);    buf->length = buf->length - *rlength;  }  else  {    buf->length = 0;  }  return p;}int buffer_remove_data(buffer_t * buf, unsigned long length){  if (length < buf->length)  {    memmove(buf->p, buf->p + length, buf->length - length);    buf->length = buf->length - length;  }  else  {    buf->length = 0;  }  return 0;}int buffer_resize(buffer_t * buf, int newsize){  unsigned long size;  char *p;  if (!buf || !buf->p)  {    return -1;  }  if (buf->size > newsize)  {    return -2;  }  size = newsize;  if (buf->maxsize < size)  {    size = buf->maxsize;  }  // void *realloc(void *ptr, size_t size);  if ((p = realloc(buf->p, size)) == NULL)  {    /*     * realloc() returns a pointer to the newly allocated memory, which is suitably aligned  for any kind of     * variable and may be different from ptr, or NULL if the request fails. If size was equal to 0, either     * NULL or a pointer suitable to be passed to free() is returned.      * If realloc() fails the original block is left untouched - it is not freed or moved.     */    return buf->size;  }  else  {    buf->p = p;    buf->size = size;    return size;  }  return 0;}unsigned long buffer_get_length(buffer_t * buf){  return buf->length;}unsigned long buffer_get_size(buffer_t * buf){  return buf->size;}unsigned long buffer_get_maxsize(buffer_t * buf){  return buf->maxsize;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久三| 欧美年轻男男videosbes| 免费成人av在线播放| 一区二区三区成人| 中文字幕一区二区三区不卡| 亚洲国产精华液网站w| 久久久久一区二区三区四区| 精品国产网站在线观看| 精品国产免费一区二区三区香蕉| 欧美一区二区三区视频免费 | 日本不卡123| 男女激情视频一区| 精品一区二区久久| 成人一级黄色片| 91视视频在线直接观看在线看网页在线看 | 久久国产精品99久久人人澡| 日本午夜一区二区| 精品一区二区免费看| 国产91精品久久久久久久网曝门 | 波多野结衣一区二区三区| 99久久99久久精品免费看蜜桃| aaa国产一区| 在线精品视频免费播放| 欧美日韩国产影片| 欧美精品一区二区三区蜜桃| 亚洲国产精品精华液2区45| 一色桃子久久精品亚洲| 偷窥国产亚洲免费视频| 精品综合免费视频观看| 波多野结衣中文字幕一区二区三区| 色婷婷久久一区二区三区麻豆| 欧美精品九九99久久| 久久久不卡网国产精品二区 | 色欧美乱欧美15图片| 91麻豆精品国产自产在线| 久久蜜桃一区二区| 亚洲五码中文字幕| 国产成人激情av| 欧美午夜在线一二页| 久久久久久久综合狠狠综合| 亚洲影院在线观看| 国产精品一二三在| 欧美猛男gaygay网站| 国产精品乱人伦中文| 日本成人超碰在线观看| 色综合久久久久综合体桃花网| 欧美xingq一区二区| 亚洲在线视频一区| 国产成人福利片| 日韩午夜精品视频| 亚洲精品久久久久久国产精华液 | 欧美日本在线看| 欧美国产日韩亚洲一区| 日韩国产一二三区| 在线精品视频小说1| 中文字幕欧美国产| 韩国三级中文字幕hd久久精品| 欧美影院一区二区三区| 国产精品高潮久久久久无| 蜜桃一区二区三区四区| 精品婷婷伊人一区三区三| 中文字幕在线播放不卡一区| 国产在线乱码一区二区三区| 欧美男同性恋视频网站| 亚洲最新视频在线播放| 成人av小说网| 国产精品免费丝袜| 国产999精品久久| 国产亚洲综合性久久久影院| 男男成人高潮片免费网站| 欧美日韩国产一级片| 午夜精品一区二区三区三上悠亚| 91网站在线播放| 国产精品久久国产精麻豆99网站| 国模娜娜一区二区三区| 日韩免费一区二区三区在线播放| 视频在线观看一区| 欧美日韩一区在线| 视频一区二区三区在线| 91精品国产品国语在线不卡| 日韩电影一区二区三区四区| 在线91免费看| 麻豆极品一区二区三区| 日韩美女一区二区三区四区| 蜜桃视频在线观看一区二区| 精品国产三级a在线观看| 久久99国产精品麻豆| 2019国产精品| 成人精品视频一区二区三区尤物| 国产精品色噜噜| 91猫先生在线| 天堂蜜桃一区二区三区| 精品乱人伦一区二区三区| 久久99这里只有精品| 国产日韩欧美一区二区三区乱码 | 丰满亚洲少妇av| 亚洲视频电影在线| 欧美综合亚洲图片综合区| 国产毛片精品一区| 91福利资源站| 日韩精品一级二级 | 久久蜜桃香蕉精品一区二区三区| 国产精品资源在线观看| 国产精品视频免费看| 欧美性猛交xxxxxx富婆| 久久99国产精品久久99 | 亚洲三级在线播放| 欧美日韩国产美| 国产一区二区毛片| 亚洲黄色免费网站| 精品国产一区二区三区不卡 | 久久精品国产亚洲高清剧情介绍 | 国产精品视频一区二区三区不卡| 91久久免费观看| 国产主播一区二区| 亚洲黄色小说网站| 国产亚洲欧美激情| 欧美日韩电影在线| 成人av网址在线观看| 日本欧美一区二区三区| 亚洲欧洲精品一区二区精品久久久 | 一本一本久久a久久精品综合麻豆| 亚洲国产乱码最新视频| 日本一区二区久久| 欧美电影免费观看高清完整版在线 | 日韩美女视频19| 日韩精品一区二区三区蜜臀 | 久久这里只有精品视频网| 日本二三区不卡| 风流少妇一区二区| 国产精品99久久久久久久vr| 日日夜夜精品视频天天综合网| 最新欧美精品一区二区三区| 久久伊人中文字幕| 日韩欧美国产综合在线一区二区三区| 91网站最新网址| a在线欧美一区| 国产69精品久久99不卡| 免费高清在线视频一区·| 亚洲国产日韩精品| 亚洲伦理在线免费看| 国产精品超碰97尤物18| 国产日韩欧美制服另类| 2019国产精品| 欧美不卡一区二区三区四区| 欧美日韩一区视频| 欧美性大战久久| 在线视频欧美精品| 欧美三级资源在线| 欧美亚洲动漫精品| 欧美色网一区二区| 欧美日韩国产经典色站一区二区三区| 97se狠狠狠综合亚洲狠狠| 99视频精品全部免费在线| 国产不卡在线一区| av不卡在线观看| 色狠狠av一区二区三区| 欧美中文字幕一二三区视频| 色中色一区二区| 欧美熟乱第一页| 欧美精品日韩一本| 日韩欧美国产精品一区| 精品国产凹凸成av人网站| 久久久久免费观看| 亚洲欧洲三级电影| 一区二区三区精品久久久| 亚洲愉拍自拍另类高清精品| 三级精品在线观看| 国产尤物一区二区在线| 成人午夜私人影院| 色婷婷综合久久久中文一区二区| 在线免费观看视频一区| 欧美一二区视频| 亚洲欧美日韩一区| 亚洲成人av在线电影| 看电视剧不卡顿的网站| 国产不卡在线播放| 在线视频中文字幕一区二区| 欧美一区二区三区四区在线观看| 久久综合九色综合97_久久久| 国产精品国产三级国产专播品爱网| 又紧又大又爽精品一区二区| 日韩成人午夜电影| 成人精品gif动图一区| 欧美在线一二三| 日韩三级精品电影久久久| 欧美激情一区二区三区不卡| 亚洲影院久久精品| 丁香网亚洲国际| 欧美日韩高清一区二区三区| 日韩精品在线看片z| 亚洲精品日韩一| 国产在线精品一区二区三区不卡| 91麻豆精东视频| 久久精品免视看| 奇米一区二区三区| 91久久精品网| 国产偷国产偷亚洲高清人白洁| 天堂精品中文字幕在线| eeuss鲁片一区二区三区在线看 |