• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ buf_append函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中buf_append函数的典型用法代码示例。如果您正苦于以下问题:C++ buf_append函数的具体用法?C++ buf_append怎么用?C++ buf_append使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了buf_append函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: unicode_to_chars

static void
unicode_to_chars(ParseInfo pi, Buf buf, uint32_t code) {
    if (0x0000007F >= code) {
	buf_append(buf, (char)code);
    } else if (0x000007FF >= code) {
	buf_append(buf, 0xC0 | (code >> 6));
	buf_append(buf, 0x80 | (0x3F & code));
    } else if (0x0000FFFF >= code) {
开发者ID:mfittko,项目名称:oj,代码行数:8,代码来源:parse.c


示例2: telnet_putc

static int telnet_putc(char c, FILE *stream) {
	if (c == '\n') {
		char r = '\r';
		buf_append(&buf, &r, 1);
	}

	buf_append(&buf, &c, 1);

	return 0;
}
开发者ID:bootc,项目名称:PolyController,代码行数:10,代码来源:telnetd.c


示例3: js_print_keys

jserr_t js_print_keys(jsparser_t *p, size_t t, Buffer *b) {
  size_t v = js_tok(p, t)->first_child;
  jstok_t *tmp;
  if (js_tok(p, t)->type != JS_OBJECT) return JS_EBUG;
  while (v) {
    tmp = js_tok(p, v);
    buf_append(b, (p->js)->buf + tmp->start, tmp->end - tmp->start);
    if ((v = js_tok(p, v)->next_sibling)) buf_append(b, "\n", 1);
  }
  return 0;
}
开发者ID:micha,项目名称:json-table,代码行数:11,代码来源:js.c


示例4: append_dtls_ciphers

void append_dtls_ciphers(struct openconnect_info *vpninfo, struct oc_text_buf *buf)
{
#ifdef HAVE_DTLS12
#ifndef OPENSSL_NO_PSK
	buf_append(buf, "PSK-NEGOTIATE:");
#endif
	buf_append(buf, "OC-DTLS1_2-AES256-GCM:OC-DTLS1_2-AES128-GCM:");
#endif
	buf_append(buf, "DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:");
	buf_append(buf, "AES256-SHA:AES128-SHA:DES-CBC3-SHA:DES-CBC-SHA");
}
开发者ID:cernekee,项目名称:openconnect,代码行数:11,代码来源:openssl-dtls.c


示例5: safe_malloc

PRIVATE ObjectStoreItem *read_item(FILE *f) {
  ObjectStoreItem *item = safe_malloc(sizeof(ObjectStoreItem));
  BUFFER varname;
  char str[1024];	/* %%% Yuck, a fixed-size buffer. */
  int key;

  if (fscanf(f, "%s %d [", str, &key) < 2) {
    free(item);
    return NULL;
  }

  item->tag = safe_string_dup(str);
  item->key = key;
  item->object = NULL;
  item->db = NULL;
  item->fields = g_hash_table_new(g_str_hash, g_str_equal);

  varname = newbuf(128);

  while (!feof(f)) {
    int ch;

    /* Strip leading whitespace (there _should_ always be some). */
    do { ch = fgetc(f); } while (isspace(ch) && (ch != ']') && (ch != EOF));

    if (ch == ']' || ch == EOF) {
      /* That's it. We're done with this item. */
      /* Empty line signals no more fields. */
      break;
    }

    /* Read the field name */
    do {
      buf_append(varname, ch);
      ch = fgetc(f);
    } while (!isspace(ch));

    /* Skip the whitespace and equals-sign */
    do { ch = fgetc(f); } while (isspace(ch) || ch == '=');
    ungetc(ch, f);

    /* Now we have the complete variable name in varname, and we are about to read the
       first character of the variable value. */
    buf_append(varname, '\0');
    objectstore_item_set(item, varname->buf, read_item_field_value(f));
    varname->pos = 0;	/* reset varname for next round */

    /* Trailing whitespace, if any, is dealt with at the top of the loop. */
  }

  killbuf(varname);
  return item;
}
开发者ID:BackupTheBerlios,项目名称:galan,代码行数:53,代码来源:objectstore.c


示例6: pmdoc_Fn

/* ARGSUSED */
static int
pmdoc_Fn(MDOC_ARGS)
{
	struct mdoc_node *nn;
	const char	*cp;

	nn = n->child;

	if (NULL == nn || MDOC_TEXT != nn->type)
		return(0);

	/* .Fn "struct type *name" "char *arg" */

	cp = strrchr(nn->string, ' ');
	if (NULL == cp)
		cp = nn->string;

	/* Strip away pointer symbol. */

	while ('*' == *cp)
		cp++;

	/* Store the function name. */

	buf_append(buf, cp);
	hash_put(hash, buf, TYPE_Fn);

	/* Store the function type. */

	if (nn->string < cp) {
		buf->len = 0;
		buf_appendb(buf, nn->string, cp - nn->string);
		buf_appendb(buf, "", 1);
		hash_put(hash, buf, TYPE_Ft);
	}

	/* Store the arguments. */

	for (nn = nn->next; nn; nn = nn->next) {
		if (MDOC_TEXT != nn->type)
			continue;
		buf->len = 0;
		buf_append(buf, nn->string);
		hash_put(hash, buf, TYPE_Fa);
	}

	return(0);
}
开发者ID:Hooman3,项目名称:minix,代码行数:49,代码来源:mandocdb.c


示例7: command_report_error

void	command_report_error(buffer_t* out, const command_t* cmd, int error)
{
  int do_eol = 1;

  if (NULL == out || NULL == cmd)
    return;
  switch (error)
  {
  case ENONE:
    buf_append(out, "OK");
    break;
  case EIGNORE:
    do_eol = 0;
    break;
  case ENOCMD:
    buf_appendf(out, "ERR: No such command");
    break;
  case ENOSESSION:
    buf_appendf(out, "ERR: Session not found");
    break;
  case EUSAGE:
    command_usage(out, cmd);
    do_eol = 0;
    break;
  default:
    buf_appendf(out, "ERR: %s", strerror(error));
    break;
  }
  if (do_eol)
    buf_append_eol(out);
}
开发者ID:piotrm0,项目名称:first,代码行数:31,代码来源:command.c


示例8: collect_add

puint STDCALL collect_add( pcollect pclt, puint input, uint type )
{
//   uint value;

   pclt->count++;
   buf_appenduint( ( pbuf )pclt, type );
   if ( (( povmtype )PCMD( type ))->stsize == 2 )
   {
      pclt->flag |= 0x01;
      buf_append( ( pbuf )pclt, ( pubyte )input, sizeof( long64 ));
      return input + 2;
   }
   else
   {
/*      value = *input;

      switch ( type )
      {
         case TUbyte: value = *( pubyte )input; break;
         case TByte: value = *( pbyte )input; break;
         case TUshort: value = *( pushort )input; break;
         case TShort: value = *( pshort )input; break;
         default: value = *input; break;
      }*/
      buf_appenduint( ( pbuf )pclt, *input );
   }
   return  input + 1;
}
开发者ID:Refandler,项目名称:gentee,代码行数:28,代码来源:collection.c


示例9: striptags

char * striptags(const char *s, unsigned int l)
{
	struct template_buffer *buf = buf_init(l);
	unsigned char *ptr = (unsigned char *)s;
	unsigned char *end = ptr + l;
	unsigned char *tag;
	unsigned char prev;
	char esq[8];
	int esl;

	for (prev = ' '; ptr < end; ptr++)
	{
		if ((*ptr == '<') && ((ptr + 2) < end) &&
			((*(ptr + 1) == '/') || isalpha(*(ptr + 1))))
		{
			for (tag = ptr; tag < end; tag++)
			{
				if (*tag == '>')
				{
					if (!isspace(prev))
						buf_putchar(buf, ' ');

					ptr = tag;
					prev = ' ';
					break;
				}
			}
		}
		else if (isspace(*ptr))
		{
			if (!isspace(prev))
				buf_putchar(buf, *ptr);

			prev = *ptr;
		}
		else
		{
			switch(*ptr)
			{
				case '"':
				case '\'':
				case '<':
				case '>':
				case '&':
					esl = snprintf(esq, sizeof(esq), "&#%i;", *ptr);
					buf_append(buf, esq, esl);
					break;

				default:
					buf_putchar(buf, *ptr);
					break;
			}

			prev = *ptr;
		}
	}

	return buf_destroy(buf);
}
开发者ID:8devices,项目名称:carambola2-luci,代码行数:59,代码来源:template_utils.c


示例10: buf_append

/* Appends n characters in str to buf. */
struct Buf *buf_strnappend (struct Buf *buf, const char *str, int n)
{
	buf_append (buf, str, n + 1);

	/* "undo" the '\0' character that buf_append() already copied. */
	buf->nelts--;

	return buf;
}
开发者ID:stefanreinauer,项目名称:flex,代码行数:10,代码来源:buf.c


示例11: buf_append_unq

static void buf_append_unq(struct oc_text_buf *buf, const char *str)
{
	while (*str) {
		if (*str == '\"' || *str == '\\')
			buf_append(buf, "\\");
		buf_append_bytes(buf, str, 1);
		str++;
	}
}
开发者ID:atyndall,项目名称:openconnect,代码行数:9,代码来源:digest.c


示例12: v2_merge

int v2_merge(BUFFER *mid)
{
  char fname[PATHMAX], line[LINELEN];
  BUFFER *temp, *msg;
  FILE *l, *f;
  int i, numpackets;
  struct stat sb;
  long d;
  int n;
  int err = -1;

  temp = buf_new();
  msg = buf_new();
  pool_packetfile(fname, mid, 0);
  l = fopen(fname, "a+");
  if (l != NULL)
    lock(l);

  pool_packetfile(fname, mid, 1);
  f = fopen(fname, "rb");
  if (f == NULL)
    goto end;
  fscanf(f, "%32s %ld %d %d\n", line, &d, &i, &numpackets);
  fclose(f);

  /* do we have all packets? */
  for (i = 1; i <= numpackets; i++) {
    pool_packetfile(fname, mid, i);
    if (stat(fname, &sb) != 0)
      goto end;
  }
  errlog(LOG, "Reassembling multipart message.\n");
  for (i = 1; i <= numpackets; i++) {
    pool_packetfile(fname, mid, i);
    f = fopen(fname, "rb");
    if (f == NULL)
      goto end;
    fscanf(f, "%32s %ld %d %d\n", line, &d, &n, &n);
    buf_clear(temp);
    buf_read(temp, f);
    v2body_setlen(temp);
    buf_append(msg, temp->data + 4, temp->length - 4);
    fclose(f);
    unlink(fname);
  }
  err = v2body(msg);

end:
  if (l != NULL)
    fclose(l);
  pool_packetfile(fname, mid, 0);
  unlink(fname);
  buf_free(temp);
  buf_free(msg);
  return (err);
}
开发者ID:crooks,项目名称:mixmaster,代码行数:56,代码来源:rem2.c


示例13: shell_default_output

/*---------------------------------------------------------------------------*/
void
shell_default_output(const char *str1, int len1, const char *str2, int len2)
{
  if(len1 > 0 && str1[len1 - 1] == '\n') {
    --len1;
  }
  if(len2 > 0 && str2[len2 - 1] == '\n') {
    --len2;
  }

  /*  PRINTF("shell_default_output: %.*s %.*s\n", len1, str1, len2, str2);*/
  
#if TELNETD_CONF_GUI
  telnetd_gui_output(str1, len1, str2, len2);
#endif /* TELNETD_CONF_GUI */
  buf_append(&buf, str1, len1);
  buf_append(&buf, str2, len2);
  buf_append(&buf, "\r\n", 2);
}
开发者ID:EDAyele,项目名称:ptunes,代码行数:20,代码来源:telnetd.c


示例14: pmdoc_St

/* ARGSUSED */
static int
pmdoc_St(MDOC_ARGS)
{

	if (NULL == n->child || MDOC_TEXT != n->child->type)
		return(0);

	buf_append(buf, n->child->string);
	return(1);
}
开发者ID:Hooman3,项目名称:minix,代码行数:11,代码来源:mandocdb.c


示例15: sendopt

/*---------------------------------------------------------------------------*/
static void
sendopt(u8_t option, u8_t value)
{
  char line[4];
  line[0] = (char)TELNET_IAC;
  line[1] = option;
  line[2] = value;
  line[3] = 0;
  buf_append(&buf, line, 4);
}
开发者ID:EDAyele,项目名称:ptunes,代码行数:11,代码来源:telnetd.c


示例16: pcdata

/* Sanitize given string and strip all invalid XML bytes
 * Validate UTF-8 sequences
 * Escape XML control chars */
char * pcdata(const char *s, unsigned int l)
{
	struct template_buffer *buf = buf_init(l);
	unsigned char *ptr = (unsigned char *)s;
	unsigned int o, v;
	char esq[8];
	int esl;

	if (!buf)
		return NULL;

	for (o = 0; o < l; o++)
	{
		/* Invalid XML bytes */
		if (((*ptr >= 0x00) && (*ptr <= 0x08)) ||
		    ((*ptr >= 0x0B) && (*ptr <= 0x0C)) ||
		    ((*ptr >= 0x0E) && (*ptr <= 0x1F)) ||
		    (*ptr == 0x7F))
		{
			ptr++;
		}

		/* Escapes */
		else if ((*ptr == 0x26) ||
		         (*ptr == 0x27) ||
		         (*ptr == 0x22) ||
		         (*ptr == 0x3C) ||
		         (*ptr == 0x3E))
		{
			esl = snprintf(esq, sizeof(esq), "&#%i;", *ptr);

			if (!buf_append(buf, esq, esl))
				break;

			ptr++;
		}

		/* ascii char */
		else if (*ptr <= 0x7F)
		{
			buf_putchar(buf, (char)*ptr++);
		}

		/* multi byte sequence */
		else
		{
			if (!(v = _validate_utf8(&ptr, l - o, buf)))
				break;

			o += (v - 1);
		}
	}

	return buf_destroy(buf);
}
开发者ID:8devices,项目名称:carambola2-luci,代码行数:58,代码来源:template_utils.c


示例17: main

int main()
{
        int conn, len;
        const char *head = "HEAD /img/baidu_sylogo1.gif HTTP/1.1\r\nhost:www.baidu.com\r\nconnection:close\r\n\r\n";
        const char *get = "GET /img/baidu_sylogo1.gif HTTP/1.1\nhost:www.baidu.com\nconnection:keepalive\n\n";
        char buf_recv[256], get_buf[1024];
        struct buf_s *buf=buf_mmap(16*1024, "buf.data");

        conn = sk_connect("www.baidu.com", 80);
        if (conn == -1) {
                perror("connect err..");
                return 1;
        }
        
//        sk_nonblock(conn);
        send(conn, get, strlen(get), 0);
        if (buf == NULL) {
                perror("buf_mmap err");
                return 1;
        }
        printf("file:%s, len:%u\n", buf->buf_file, (unsigned)buf->buf_len);

        while (1) {
                len = recv(conn, buf_recv, sizeof(buf_recv), 0);
                if (len == -1) {
                        perror("recv err...\n");
                        break;
                }
                if (len == 0) {
                        printf("connection close.\n");
                        break; 
                }
                printf("recv len:%d\n", len);
                if (buf_append(buf, (u_char*)buf_recv, len) == -1) {
                        perror("buf_append err.");
                }
        }

				
        //hexdump(buf->buf_pos, buf->buf_len);
        printf("len:%d\n", (int)buf->buf_len);
        buf_pull(buf, (u_char*)get_buf, 1024);
        printf("len:%d\n", (int)buf->buf_len);
        //hexdump((u_char*)get_buf, 1024);
        //hexdump(buf->buf_start, buf->buf_len+1024);

//        printf("buf:%s\n", buf->buf_pos);
        errno = EPIPE;        
        printf("close:%d\n", close(conn)); 
        printf("errno:%d\n", errno);
        
        buf_free(buf);

        return 0;
}
开发者ID:ttxie,项目名称:comm,代码行数:55,代码来源:http.c


示例18: luastr_escape

void luastr_escape(struct template_buffer *out, const char *s, unsigned int l,
				   int escape_xml)
{
	int esl;
	char esq[8];
	char *ptr;

	for (ptr = (char *)s; ptr < (s + l); ptr++)
	{
		switch (*ptr)
		{
		case '\\':
			buf_append(out, "\\\\", 2);
			break;

		case '"':
			if (escape_xml)
				buf_append(out, "&#34;", 5);
			else
				buf_append(out, "\\\"", 2);
			break;

		case '\n':
			buf_append(out, "\\n", 2);
			break;

		case '\'':
		case '&':
		case '<':
		case '>':
			if (escape_xml)
			{
				esl = snprintf(esq, sizeof(esq), "&#%i;", *ptr);
				buf_append(out, esq, esl);
				break;
			}

		default:
			buf_putchar(out, *ptr);
		}
	}
}
开发者ID:8devices,项目名称:carambola2-luci,代码行数:42,代码来源:template_utils.c


示例19: sendopt

/*---------------------------------------------------------------------------*/
static void
sendopt(uint8_t option, uint8_t value)
{
  char line[4];
  line[0] = (char)TELNET_IAC;
  line[1] = option;
  line[2] = value;
  line[3] = 0;
  petsciiconv_topetscii(line, 4);
  buf_append(&buf, line, 4);
}
开发者ID:Abdellazizhammami,项目名称:contiki,代码行数:12,代码来源:telnetd.c


示例20: buf_append_read

ssize_t buf_append_read(Buffer *b, FILE *in) {
  char tmp[BUFSIZ];
  ssize_t bytes_r = 0;
  int fd = fileno(in);

  if ((bytes_r = read(fd, tmp, sizeof(tmp))) > 0)
    buf_append(b, (const char*) tmp, bytes_r);

  if (bytes_r < 0) die_err("can't read input");

  return bytes_r;
}
开发者ID:micha,项目名称:json-table,代码行数:12,代码来源:buffer.c



注:本文中的buf_append函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ buf_free函数代码示例发布时间:2022-05-30
下一篇:
C++ buf2str函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap