这篇教程C++ xmemcpy函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中xmemcpy函数的典型用法代码示例。如果您正苦于以下问题:C++ xmemcpy函数的具体用法?C++ xmemcpy怎么用?C++ xmemcpy使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了xmemcpy函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: storeSwapMetaPackchar *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: netdbBinaryExchangevoidnetdbBinaryExchange(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_clonestruct 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_backint 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_requeststatic 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_writelinestatic 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: icpCreateMessagevoid *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: idnsAddNameserverstatic 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: lookupstatic 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函数代码示例
|