当前位置: 首页>>代码示例>>C++>>正文


C++ buffer_get函数代码示例

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


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

示例1: main

int main(void)
{
  struct taia taia;
  char stamp[TAIA_TAI64N + 1];
  char ch;

  stamp[0] = '@';
  for (;;) {
    if (buffer_get(buffer0, &ch, 1) != 1) { done(); goto FINISH; }
    taia_now(&taia);
    taia_tai64n(stamp + 1, &taia);

    stamp[sizeof(stamp) - 1] = ' ';
    buffer_put(buffer1, stamp, sizeof(stamp));

    for (;;) {
      buffer_put(buffer1, &ch, 1);
      if (ch == '\n') break;
      if (buffer_get(buffer0, &ch, 1) != 1) { done(); goto FINISH; }
    }
  }

  FINISH:
  return 0;
}
开发者ID:io7m,项目名称:coreland-chrono,代码行数:25,代码来源:tai64n.c

示例2: parse_header_content_length

/**
 * Parses a Content-Length header value.
 */
int parse_header_content_length(struct parser *p) {
    char c, *buffer;
    int i, m, r;

    if (ready(p) < 3)
        return PARSING_WAIT;
    c = buffer_get(&(p->buffer), p->mark);

    for (m = 1; isdigit(c) || c == ' ' || c == '\t'; m++) {
        if (ready(p) < 3 + m)
            return PARSING_WAIT;
        c = buffer_get(&(p->buffer), p->mark + m);
    }

    buffer = buffer_copy(&(p->buffer), p->mark, m - 1);
    if (buffer == NULL) {
        p->error = E_MEMORY;
        return PARSING_ERROR;
    }
    advance_mark(p, m - 1);

    r = parse_constant(p, CRLF, 2);
    if (r != PARSING_DONE) {
        free(buffer);
        return r;
    }

    errno = 0;
    p->request.content_length = strtol(buffer, NULL, 10);
    free(buffer);
    return (errno == 0) ? PARSING_DONE : PARSING_ERROR;
}
开发者ID:ricardo-kagawa,项目名称:hello-server,代码行数:35,代码来源:parser.c

示例3: main

main()
{
  int pid;
  int wstat;
  char ch;

  sig_ignore(sig_pipe);

  pid = fork();
  if (pid == -1) strerr_die2sys(111,"mconnect-io: fatal: ","unable to fork: ");

  if (!pid) {
    buffer_init(&bin,myread,0,inbuf,sizeof inbuf);
    buffer_init(&bout,write,7,outbuf,sizeof outbuf);

    while (buffer_get(&bin,&ch,1) == 1) {
      if (ch == '\n') buffer_put(&bout,"\r",1);
      buffer_put(&bout,&ch,1);
    }
    _exit(0);
  }

  buffer_init(&bin,myread,6,inbuf,sizeof inbuf);
  buffer_init(&bout,write,1,outbuf,sizeof outbuf);

  while (buffer_get(&bin,&ch,1) == 1)
    buffer_put(&bout,&ch,1);

  kill(pid,sig_term);
  wait_pid(&wstat,pid);

  _exit(0);
}
开发者ID:KodeKreatif,项目名称:ucspi-tcp,代码行数:33,代码来源:mconnect-io.c

示例4: trace_free

static int
trace_free (void *buf)
{
  uintptr_t ptr = buffer_get(uintptr_t);
  uintptr_t caller = buffer_get(uintptr_t);
  unsigned long long time = buffer_get(unsigned long long);

  int res = memory_free(ptr, caller, time);
  assert_inner(!res, "memory_free");

  return 0;
}
开发者ID:stefanbeller,项目名称:graprof,代码行数:12,代码来源:trace.c

示例5: trace_enter

static int
trace_enter (void *buf)
{
  uintptr_t func = buffer_get(uintptr_t);
  uintptr_t caller = buffer_get(uintptr_t);
  unsigned long long time = buffer_get(unsigned long long);

  int res = function_enter(func, caller, time);
  assert_inner(!res, "function_enter");

  return 0;
}
开发者ID:stefanbeller,项目名称:graprof,代码行数:12,代码来源:trace.c

示例6: trace_malloc

static int
trace_malloc (void *buf)
{
  size_t size = buffer_get(size_t);
  uintptr_t caller = buffer_get(uintptr_t);
  uintptr_t result = buffer_get(uintptr_t);
  unsigned long long time = buffer_get(unsigned long long);

  int res = memory_malloc(size, caller, result, time);
  assert_inner(!res, "memory_malloc");

  return 0;
}
开发者ID:stefanbeller,项目名称:graprof,代码行数:13,代码来源:trace.c

示例7: CAN_start_transmission_internal

void CAN_start_transmission_internal(volatile can_stream_data_t* data) {
	int i=0;
	
	while ((buffer_bytes_available((buffer_t*)&data->byte_buffer)>0) && i<8) {
		data->can_msg.data.u8[i]=buffer_get((buffer_t*)&data->byte_buffer);
		i++;
	}
	if (i==0) { // nothing left to transmit
		data->transmission_active=false;
		return;
	}
	/*
	if (data->can_channel==0) {
		can_bus_init(data->can_channel, ((uint32_t)&mob_ram_ch0[0]), CANIF_CHANNEL_MODE_NORMAL, can_callback0);
	} else {
		can_bus_init(data->can_channel, ((uint32_t)&mob_ram_ch1[0]), CANIF_CHANNEL_MODE_NORMAL, can_callback1);
	}
	*/
	data->can_mob.handle=CAN_TX_MOB;
	data->can_mob.dlc=i;
	data->can_msg.id=data->id;
	data->can_msg.id_mask = data->id_mask;
	data->can_mob.req_type=CAN_DATA_FRAME;
	data->transmission_active=true;
	can_bus_tx(data->can_channel,
	       data->can_mob.handle,
	       data->can_mob.dlc,
	       data->can_mob.req_type,
	       data->can_mob.can_msg);
}
开发者ID:fschill,项目名称:MavBoot,代码行数:30,代码来源:can_bus.c

示例8: mkinvalid_secret

void mkinvalid_secret(PCPCTX *ptx, pcp_key_t *k, int type) {
  pcp_key_t *key = ucmalloc(sizeof(pcp_key_t));
  memcpy(key, k, sizeof(pcp_key_t));
  FILE *fd = NULL;

    fprintf(stderr, "fd test %d\n", type);

  switch(type) {
  case 0:
    key->version = 0;
    fd = F("testkey-wrong-version");
    break;
  case 1:
    key->serial = 0;
    fd = F("testkey-wrong-serial");
    break;
  case 2:
    key->ctime = 0;
    fd = F("testkey-invalid-ctime");
    break;
  }

  if(fd != NULL) {
    pcp_dumpkey(key);
    Buffer *b = pcp_export_secret(ptx, key, "xxx");
    fwrite(buffer_get(b), 1, buffer_size(b), fd);
    fclose(fd);
  }
  else {
    fprintf(stderr, "fd not opened for test %d\n", type);
  }

  free(key);
}
开发者ID:TLINDEN,项目名称:pcp,代码行数:34,代码来源:invalidkeys.c

示例9: mkinvalid_public

void mkinvalid_public(PCPCTX *ptx, pcp_key_t *k, int type) {
  pcp_key_t *key = ucmalloc(sizeof(pcp_key_t));
  memcpy(key, k, sizeof(pcp_key_t));
  FILE *fd = NULL;

  switch(type) {
  case 0:
    key->type = 0;
    fd = F("testpubkey-wrong-type");
    break;
  case 1:
    key->version = 0;
    fd = F("testpubkey-wrong-version");
    break;
  case 2:
    key->serial = 0;
    fd = F("testpubkey-wrong-serial");
    break;
  case 3:
    key->ctime = 0;
    fd = F("testpubkey-invalid-ctime");
    break;
  }

  if(fd != NULL) {
    Buffer *b = pcp_export_rfc_pub(ptx, key);
    fwrite(buffer_get(b), 1, buffer_size(b), fd);
    fclose(fd);
  }

  free(key);
}
开发者ID:TLINDEN,项目名称:pcp,代码行数:32,代码来源:invalidkeys.c

示例10: DEBUG

/* Find section header based on ignored section name */
static Elf64_Shdr *find_ignored_section_header(struct parsed_elf *pelf,
					       const char *ignore_section)
{
	int i;
	const char *shstrtab;

	/* No section needs to be ignored */
	if (ignore_section == NULL)
		return NULL;

	DEBUG("Section to be ignored: %s\n", ignore_section);

	/* Get pointer to string table */
	shstrtab = buffer_get(pelf->strtabs[pelf->ehdr.e_shstrndx]);

	for (i = 0; i < pelf->ehdr.e_shnum; i++) {
		Elf64_Shdr *shdr;
		const char *section_name;

		shdr = &pelf->shdr[i];
		section_name = &shstrtab[shdr->sh_name];

		/* If section name matches ignored string, return shdr */
		if (strcmp(section_name, ignore_section) == 0)
			return shdr;
	}

	/* No section matches ignore string */
	return NULL;
}
开发者ID:sinetek,项目名称:coreboot-peppy,代码行数:31,代码来源:cbfs-mkstage.c

示例11: consumer_operation

static void* consumer_operation()
{
	set_signal_mask();
	while(status_on)
	{	
	 	if(pthread_mutex_lock(&buffer_lock_mtx)!=0)
			print_log(WARNING,"\nthere is error in lock cons");
		
		while(is_buffer_empty())
		{	
			if(pthread_cond_wait(&buffer_not_empty_cond,&buffer_lock_mtx)!=0)
				print_log(WARNING,"\nthere is error in wait cons");
		}	

		int peer_sfd = buffer_get();

		if(peer_sfd < 0) 
		{
			print_log(WARNING,"\nRECIEVED FAILED ACCEPT SOCKET");
			pthread_mutex_unlock(&buffer_lock_mtx)!=0;
			continue;
		}

		if(pthread_cond_broadcast(&buffer_not_full_cond)!=0)
			print_log(WARNING,"\nthere is error in broadcast cons");
		if(pthread_mutex_unlock(&buffer_lock_mtx)!=0)
			print_log(WARNING,"\nthere is error in unlock cons");

		manage_single_request(peer_sfd);
		close(peer_sfd);
	}
	pthread_exit(pthread_self);
}
开发者ID:SylvanHuang,项目名称:Http-Server,代码行数:33,代码来源:server.c

示例12: doit

void doit()
{
  char ch;
  int match = 1;
  long linenum = 0;
  stralloc fifoline = { 0 };

  linenum = 0;

  /* try duming data in 23 seconds */
  alarm(dumpfreq);

  buffer_putsflush(buffer_2, ARGV0 "entering main loop\n");

  /* forever read from pipe line by line and handle it */
  while(1)
    {
      while(match) 
	{
	  if(flagdumpasap == 1) 
	    dumpcheck(flagdumpasap, flagchanged, flagchildrunning, flagsighup);

	  ++linenum;
	  if(buffer_get(&wr, &ch, 1) == 1)
	    {
	      if(getln(&wr, &fifoline, &match, '\n') == -1)
		continue;
	      buffer_put(buffer_2, &ch, 1);
	      buffer_putflush(buffer_2, fifoline.s, fifoline.len);
	      handle_line(&fifoline, ch);
	    }
	}
    }
}
开发者ID:mdornseif,项目名称:ddns,代码行数:34,代码来源:ddns-snapd.c

示例13: parse_header_value

/**
 * Parses a header value. Deprecated header line folding is not supported.
 */
int parse_header_value(struct parser *p) {
    char c;

    if (ready(p) < 3)
        return PARSING_WAIT;
    c = buffer_get(&(p->buffer), p->mark);

    while (isgraph(c) || c == ' ' || c == '\t') {
        advance_mark(p, 1);
        if (ready(p) < 3)
            return PARSING_WAIT;
        c = buffer_get(&(p->buffer), p->mark);
    }

    return parse_constant(p, CRLF, 2);
}
开发者ID:ricardo-kagawa,项目名称:hello-server,代码行数:19,代码来源:parser.c

示例14: packet_hmac_verify

/**
 * @internal
 *
 * @brief Verify the hmac of a packet
 *
 * @param  session      The session to use.
 * @param  buffer       The buffer to verify the hmac from.
 * @param  mac          The mac to compare with the hmac.
 *
 * @return              0 if hmac and mac are equal, < 0 if not or an error
 *                      occured.
 */
int packet_hmac_verify(SSH_SESSION *session, BUFFER *buffer,
    unsigned char *mac) {
  unsigned char hmacbuf[EVP_MAX_MD_SIZE] = {0};
  HMACCTX ctx;
  unsigned int len;
  u32 seq;

  ctx = hmac_init(session->current_crypto->decryptMAC, 20, HMAC_SHA1);
  if (ctx == NULL) {
    return -1;
  }

  seq = htonl(session->recv_seq);

  hmac_update(ctx, (unsigned char *) &seq, sizeof(u32));
  hmac_update(ctx, buffer_get(buffer), buffer_get_len(buffer));
  hmac_final(ctx, hmacbuf, &len);

#ifdef DEBUG_CRYPTO
  ssh_print_hexa("received mac",mac,len);
  ssh_print_hexa("Computed mac",hmacbuf,len);
  ssh_print_hexa("seq",(unsigned char *)&seq,sizeof(u32));
#endif
  if (memcmp(mac, hmacbuf, len) == 0) {
    return 0;
  }

  return -1;
}
开发者ID:BackupTheBerlios,项目名称:libssh-svn,代码行数:41,代码来源:crypt.c

示例15: next

static int next (unsigned char *c, void *p)
{
  register int r = buffer_get((buffer *)p, (char *)c, 1) ;
  if (r < 0) return 0 ;
  if (!r) *c = 0 ;
  return 1 ;
}
开发者ID:bitgaming,项目名称:execline,代码行数:7,代码来源:el_parse_from_buffer.c


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