您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ xmemcpy函数代码示例

51自学网 2021-06-03 10:21:53
  C++
这篇教程C++ xmemcpy函数代码示例写得很实用,希望能帮到您。

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

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

示例1: storeSwapMetaPack

char *storeSwapMetaPack(tlv * tlv_list, int *length){    int buflen = 0;    tlv *t;    int j = 0;    char *buf;    assert(length != NULL);    buflen++;			/* STORE_META_OK */    buflen += sizeof(int);	/* size of header to follow */    for (t = tlv_list; t; t = t->next)	buflen += sizeof(char) + sizeof(int) + t->length;    buf = xmalloc(buflen);    buf[j++] = (char) STORE_META_OK;    xmemcpy(&buf[j], &buflen, sizeof(int));    j += sizeof(int);    for (t = tlv_list; t; t = t->next) {	buf[j++] = (char) t->type;	xmemcpy(&buf[j], &t->length, sizeof(int));	j += sizeof(int);	xmemcpy(&buf[j], t->value, t->length);	j += t->length;    }    assert((int) j == buflen);    *length = buflen;    return buf;}
开发者ID:dannywu,项目名称:Squid-2.7-diff,代码行数:27,


示例2: netdbBinaryExchange

voidnetdbBinaryExchange(StoreEntry * s){    http_reply *reply = s->mem_obj->reply;#if USE_ICMP    netdbEntry *n;    int i;    int j;    int rec_sz;    char *buf;    struct in_addr addr;    storeBuffer(s);    httpReplyReset(reply);    httpReplySetHeaders(reply, HTTP_OK, "OK", NULL, -1, squid_curtime, -1);    httpReplySwapOut(reply, s);    rec_sz = 0;    rec_sz += 1 + sizeof(addr.s_addr);    rec_sz += 1 + sizeof(int);    rec_sz += 1 + sizeof(int);    buf = memAllocate(MEM_4K_BUF);    i = 0;    hash_first(addr_table);    while ((n = (netdbEntry *) hash_next(addr_table))) {        if (0.0 == n->rtt)            continue;        if (n->rtt > 60000)	/* RTT > 1 MIN probably bogus */            continue;        if (!safe_inet_addr(n->network, &addr))            continue;        buf[i++] = (char) NETDB_EX_NETWORK;        xmemcpy(&buf[i], &addr.s_addr, sizeof(addr.s_addr));        i += sizeof(addr.s_addr);        buf[i++] = (char) NETDB_EX_RTT;        j = htonl((int) (n->rtt * 1000));        xmemcpy(&buf[i], &j, sizeof(int));        i += sizeof(int);        buf[i++] = (char) NETDB_EX_HOPS;        j = htonl((int) (n->hops * 1000));        xmemcpy(&buf[i], &j, sizeof(int));        i += sizeof(int);        if (i + rec_sz > 4096) {            storeAppend(s, buf, i);            i = 0;        }    }    if (i > 0) {        storeAppend(s, buf, i);        i = 0;    }    assert(0 == i);    storeBufferFlush(s);    memFree(buf, MEM_4K_BUF);#else    httpReplyReset(reply);    httpReplySetHeaders(reply, HTTP_BAD_REQUEST, "Bad Request", NULL, -1, -1, -1);    httpReplySwapOut(reply, s);    storeAppendPrintf(s, "NETDB support not compiled into this Squid cache./n");#endif    storeComplete(s);}
开发者ID:linfengfeiye,项目名称:squid2,代码行数:60,


示例3: snmp_var_clone

struct variable_list *snmp_var_clone(struct variable_list *Src){    struct variable_list *Dest;#ifdef DEBUG_VARS    printf("VARS: Cloning./n");#endif    Dest = (struct variable_list *) xmalloc(sizeof(struct variable_list));    if (Dest == NULL) {	snmp_set_api_error(SNMPERR_OS_ERR);	return (NULL);    }#ifdef DEBUG_VARS    printf("VARS: Copying entire variable list.  (Size %d)/n",	sizeof(struct variable_list));#endif    xmemcpy((char *) Dest, (char *) Src, sizeof(struct variable_list));    if (Src->name != NULL) {	Dest->name = (oid *) xmalloc(Src->name_length * sizeof(oid));	if (Dest->name == NULL) {	    snmp_set_api_error(SNMPERR_OS_ERR);	    xfree(Dest);	    return (NULL);	}#ifdef DEBUG_VARS	printf("VARS: Copying name OID. (Size %d)/n", Src->name_length);#endif	xmemcpy((char *) Dest->name, (char *) Src->name,	    Src->name_length * sizeof(oid));    }    /* CISCO Catalyst 2900 returns NULL strings as data of length 0. */    if ((Src->val.string != NULL) &&	(Src->val_len)) {	Dest->val.string = (u_char *) xmalloc(Src->val_len);	if (Dest->val.string == NULL) {	    snmp_set_api_error(SNMPERR_OS_ERR);	    xfree(Dest->name);	    xfree(Dest);	    return (NULL);	}#ifdef DEBUG_VARS	printf("VARS: Copying value (Size %d)/n", Src->val_len);#endif	xmemcpy((char *) Dest->val.string, (char *) Src->val.string, Src->val_len);    }#ifdef DEBUG_VARS    printf("VARS: Cloned %x./n", (unsigned int) Dest);#endif#ifdef DEBUG_VARS_MALLOC    printf("VARS: Cloned  (%x)/n", (unsigned int) Dest);    printf("VARS: Name is (%x)/n", (unsigned int) Dest->name);#endif    return (Dest);}
开发者ID:OPSF,项目名称:uClinux,代码行数:59,


示例4: ReadThreeBackup

/*和ReadThreeBackupClock类似,但是当有备份块的数据出错的时候,要记录错误*/void ReadThreeBackup(uint ReadAdd1, uint ReadAdd2, uint ReadAdd3, uchar len, uint BackupErrAdd, uint BackupALLErrAdd, uchar *pOut){	uchar bkBlockFlg = BK_1ST;	uchar tmp, i;	uchar bkbuf[3*len];	uint eeAddr[3] = {ReadAdd1, ReadAdd2, ReadAdd3,};		for(i=0; i<3; i++)	{		BackupErrAdd += 2*i;		Read512(bkbuf+len*i, eeAddr[i], len);		tmp = Check_CS(bkbuf+len*i, len);		if(TRUE == tmp)		{			bkBlockFlg |= (0x01<<i);		}		else		{			bkBlockFlg &= ~(0x01<<i);			E2PINC(BackupErrAdd, 2);		}	}		if(0x00 == bkBlockFlg)	{		E2PINC(BackupALLErrAdd, 2);		ThreeBferro = 0xAA;	}			switch(bkBlockFlg)	{		case 0x00:			Eeprom_err |= 0x04;			xmemcpy(bkbuf, pOut, len);			break;				case 0x01:		//第一备份正确		case 0x03:		//第一、二备份正确		case 0x05:		//第一、三备份正确		case 0x07:		//三备份都正确			xmemcpy(bkbuf, pOut len);			break;					case 0x02:		//第二备份正确		case 0x06:		//第二、三备份正确			xmemcpy(bkbuf+len, pOut, len);			break;				case 0x04:		//第三备份正确			xmemcpy(bkbuf+len*2, pOut, len);			break;				default:			break;	}}
开发者ID:azengzz,项目名称:azengzztoys,代码行数:59,


示例5: ReadThreeBackupClock

/*对于时钟备份数据,和能量备份数据的处理不同点:有多于一块的备份正确,则读最靠左的那个块写三备份的策略和能量三备份不同(? how and why)*/void ReadThreeBackupClock(uint ReadAdd1, uint ReadAdd2, uint ReadAdd3, uchar len, uchar *pOut){	uchar bkBlockFlg = BK_1ST;	uchar i, tmp;	uchar bkbuf[3*len];	uint eeAddr[3] = {ReadAdd1, ReadAdd2, ReadAdd3};		if(0 == len)	{		return;	}	ThreeBferro = 0x55;		//区别在于不用指出下一次写的时候要将数据写到哪个备份	for(i=0; i<3; i++)	{		Read512(bkbuf+len*i, eeAddr[i], len);		tmp = Check_CS(bkbuf+len*i, len);		if(TRUE == tmp)		{			bkBlockFlg |= (0x01<<i);		}		else		{			bkBlockFlg &= ~(0x01<<i);		}	}		switch(bkBlockFlg)	{		case 0x00:		case 0x01:		//第一备份正确		case 0x03:		//第一、二备份正确		case 0x05:		//第一、三备份正确		case 0x07:		//三备份都正确			xmemcpy(bkbuf, pOut len);			break;				case 0x02:		//第二备份正确		case 0x06:		//第二、三备份正确			xmemcpy(bkbuf+len, pOut, len);			break;					case 0x04:		//第三备份正确			xmemcpy(bkbuf+len*2, pOut, len);			break;				default:			break;	}}
开发者ID:azengzz,项目名称:azengzztoys,代码行数:55,


示例6: ringbuf_push_back

int ringbuf_push_back(struct ringbuf *buf, const void *src, size_t n){    if (buf->capacity < n)        return -1;    size_t n1 = min(buf->capacity - buf->write_pos, n);    xmemcpy(buf->data + buf->write_pos, src, n1);    if (n > n1)        xmemcpy(buf->data, (uint8_t *) src + n1, n - n1);    buf->bytes_filled = min(buf->bytes_filled + n, buf->capacity);    buf->write_pos = (buf->write_pos + n) % buf->capacity;    return 0;}
开发者ID:harnold,项目名称:astroids,代码行数:16,


示例7: process_request

static intprocess_request(cachemgr_request * req){    const struct hostent *hp;    static struct sockaddr_in S;    int s;    int l;    static char buf[2 * 1024];    if (req == NULL) {	auth_html(CACHEMGR_HOSTNAME, CACHE_HTTP_PORT, "");	return 1;    }    if (req->hostname == NULL) {	req->hostname = xstrdup(CACHEMGR_HOSTNAME);    }    if (req->port == 0) {	req->port = CACHE_HTTP_PORT;    }    if (req->action == NULL) {	req->action = xstrdup("");    }    if (!strcmp(req->action, "authenticate")) {	auth_html(req->hostname, req->port, req->user_name);	return 0;    }    if ((s = socket(PF_INET, SOCK_STREAM, 0)) < 0) {	snprintf(buf, 1024, "socket: %s/n", xstrerror());	error_html(buf);	return 1;    }    memset(&S, '/0', sizeof(struct sockaddr_in));    S.sin_family = AF_INET;    if ((hp = gethostbyname(req->hostname)) != NULL) {	assert(hp->h_length <= sizeof(S.sin_addr.s_addr));	xmemcpy(&S.sin_addr.s_addr, hp->h_addr, hp->h_length);    } else if (safe_inet_addr(req->hostname, &S.sin_addr))	(void) 0;    else {	snprintf(buf, 1024, "Unknown host: %s/n", req->hostname);	error_html(buf);	return 1;    }    S.sin_port = htons(req->port);    if (connect(s, (struct sockaddr *) &S, sizeof(struct sockaddr_in)) < 0) {	snprintf(buf, 1024, "connect: %s/n", xstrerror());	error_html(buf);	return 1;    }    l = snprintf(buf, sizeof(buf),	"GET cache_object://%s/%s HTTP/1.0/r/n"	"Accept: */*/r/n"	"%s"			/* Authentication info or nothing */	"/r/n",	req->hostname,	req->action,	make_auth_header(req));    write(s, buf, l);    debug(1) fprintf(stderr, "wrote request: '%s'/n", buf);    return read_reply(s, req);}
开发者ID:miettal,项目名称:armadillo420_standard,代码行数:60,


示例8: logfile_mod_udp_writeline

static voidlogfile_mod_udp_writeline(Logfile * lf, const char *buf, size_t len){    l_udp_t *ll = (l_udp_t *) lf->data;    if (0 == ll->bufsz) {        /* buffering disabled */        logfile_mod_udp_write(lf, buf, len);        return;    }    if (ll->offset > 0 && ll->offset + len + 4 > ll->bufsz)        logfile_mod_udp_flush(lf);    if (len > ll->bufsz) {        /* too big to fit in buffer */        logfile_mod_udp_write(lf, buf, len);        return;    }    /* buffer it */    xmemcpy(ll->buf + ll->offset, buf, len);    ll->offset += len;    assert(ll->offset >= 0);    assert((size_t) ll->offset <= ll->bufsz);}
开发者ID:ronnel25,项目名称:pfsense-cacheboy,代码行数:27,


示例9: icpCreateMessage

void *icpCreateMessage(    icp_opcode opcode,    int flags,    const char *url,    int reqnum,    int pad){    char *buf = NULL;    icp_common_t *headerp = NULL;    char *urloffset = NULL;    int buf_len;    buf_len = sizeof(icp_common_t) + strlen(url) + 1;    if (opcode == ICP_QUERY)	buf_len += sizeof(u_num32);    buf = xcalloc(buf_len, 1);    headerp = (icp_common_t *) (void *) buf;    headerp->opcode = (char) opcode;    headerp->version = ICP_VERSION_CURRENT;    headerp->length = (u_short) htons(buf_len);    headerp->reqnum = htonl(reqnum);    headerp->flags = htonl(flags);    headerp->pad = htonl(pad);    headerp->shostid = theOutICPAddr.s_addr;    urloffset = buf + sizeof(icp_common_t);    if (opcode == ICP_QUERY)	urloffset += sizeof(u_num32);    xmemcpy(urloffset, url, strlen(url));    return buf;}
开发者ID:miettal,项目名称:armadillo420_standard,代码行数:30,


示例10: idnsAddNameserver

static voididnsAddNameserver(const char *buf){    struct in_addr A;    if (!safe_inet_addr(buf, &A)) {	debug(78, 0) ("WARNING: rejecting '%s' as a name server, because it is not a numeric IP address/n", buf);	return;    }    if (nns == nns_alloc) {	int oldalloc = nns_alloc;	ns *oldptr = nameservers;	if (nns_alloc == 0)	    nns_alloc = 2;	else	    nns_alloc <<= 1;	nameservers = xcalloc(nns_alloc, sizeof(*nameservers));	if (oldptr && oldalloc)	    xmemcpy(nameservers, oldptr, oldalloc * sizeof(*nameservers));	if (oldptr)	    safe_free(oldptr);    }    assert(nns < nns_alloc);    nameservers[nns].S.sin_family = AF_INET;    nameservers[nns].S.sin_port = htons(DOMAIN_PORT);    nameservers[nns].S.sin_addr.s_addr = A.s_addr;    debug(78, 3) ("idnsAddNameserver: Added nameserver #%d: %s/n",	nns, inet_ntoa(nameservers[nns].S.sin_addr));    nns++;}
开发者ID:UTSASRG,项目名称:DoubleTake,代码行数:29,


示例11: nmb_get_right_coord

/* * EFFECTS: *	return the first coord which < k */int nmb_get_right_coord(struct nmb *nmb, struct msg *right, struct pma_coord *coord){	int slot_idx = nmb->pma->used - 1;	/* is uesd not used - 1 */	int array_idx = nmb->pma->slots[slot_idx]->used;	coord->slot_idx = slot_idx;	coord->array_idx = array_idx;	if (right) {		void *retval;		struct nmb_entry *entry = xcalloc(1, NMB_ENTRY_SIZE + right->size);		entry->keylen = right->size;		xmemcpy((char*)entry + NMB_ENTRY_SIZE, right->data, right->size);		pma_find_plus(nmb->pma,		              entry,		              _nmb_entry_key_compare,		              nmb,		              &retval,		              coord);		xfree(entry);	}	return 1;}
开发者ID:BohuTANG,项目名称:nessDB,代码行数:29,


示例12: lookup

static voidlookup(const char *buf){    const struct hostent *result = NULL;    int reverse = 0;    int ttl = 0;    int retry = 0;    int i;    struct in_addr addr;    if (0 == strcmp(buf, "$shutdown"))	exit(0);    if (0 == strcmp(buf, "$hello")) {	printf("$alive/n");	return;    }    /* check if it's already an IP address in text form. */    for (;;) {	if (safe_inet_addr(buf, &addr)) {	    reverse = 1;	    result = gethostbyaddr((char *) &addr.s_addr, 4, AF_INET);	} else {	    result = gethostbyname(buf);	}	if (NULL != result)	    break;	if (h_errno != TRY_AGAIN)	    break;	if (++retry == 3)	    break;	sleep(1);    }    if (NULL == result) {	if (h_errno == TRY_AGAIN) {	    printf("$fail Name Server for domain '%s' is unavailable./n", buf);	} else {	    printf("$fail DNS Domain '%s' is invalid: %s./n",		buf, my_h_msgs(h_errno));	}	return;    }#if LIBRESOLV_DNS_TTL_HACK    /* DNS TTL handling - [email
C++ xmemdup函数代码示例
C++ xmallocarray函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。