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

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

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

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

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

示例1: place

void place( int /* item index */ pos,            UT_array /*of int */*hashv,            UT_array /*of int */*xv,            UT_array /*of int */*yv) {  int x=0, y=0, e, p;  if (pos == 0) goto done; // place first one at origin  /*prefer to attach this hexagon to predecessor edge based on    this one's hashcode%6, but if that's occupied, increment    through successive edges looking for an open neighbor. If    none are found, look backward from predecessor to origin    hexagon, scanning their edges in the same way, until an     open neighbor is found. it is certain to find an open one. */  unsigned my_hash = *(unsigned*)utarray_eltptr(hashv,pos);  for (p = pos-1; p >= 0; p--) { // hunt through predecessor chain    for(e=0; e < 6; e++) {       // hunt through predecessor edges      unsigned bond_edge = (my_hash + e) % EDGES;      fprintf(stderr," +trying %d/%d/n",p,bond_edge);      if (available(p,bond_edge,xv,yv,&x,&y)) goto done;      fprintf(stderr," -taken, edge scanning/n");    }  }  assert(0); // not reached. it's a math thing. done:  utarray_push_back(xv, &x);  utarray_push_back(yv, &y);}
开发者ID:hotfics,项目名称:misc,代码行数:28,


示例2: pop

static void pop(QUEUE *stack, Cmdline *cmdline, int *idx){  Token token = stack_pop(stack);  Token *parent = stack_head(stack);  Token *p;  if (parent->var.v_type == VAR_LIST) {    if (token.symb)      return cmdline_push_var(cmdline, &token);    utarray_push_back(parent->var.vval.v_list->items, &token);    parent->end = token.end;  }  else if ((p = stack_prevprev(stack))->var.v_type == VAR_PAIR) {    Token key = stack_pop(stack);    p->var.vval.v_pair->key = key;    p->var.vval.v_pair->value = token;    p->end = token.end;    token = stack_pop(stack);    if (key.symb)      return cmdline_push_var(cmdline, &token);    Token *pt = stack_head(stack);    utarray_push_back(pt->var.vval.v_list->items, &token);  }  (*idx)++;}
开发者ID:jollywho,项目名称:nav,代码行数:29,


示例3: update_timer

void update_timer(char *key, double value){    DPRINTF("update_timer ( %s, %f )/n", key, value);    statsd_timer_t *t;    DPRINTF("HASH_FIND_STR '%s'/n", key);    HASH_FIND_STR( timers, key, t );    DPRINTF("after HASH_FIND_STR '%s'/n", key);    if (t)    {        DPRINTF("Updating old timer entry/n");        utarray_push_back(t->values, &value);        t->count++;    }    else    {        DPRINTF("Adding new timer entry/n");        t = malloc(sizeof(statsd_timer_t));        strcpy(t->key, key);        t->count = 0;        utarray_new(t->values, &timers_icd);        utarray_push_back(t->values, &value);        t->count++;        HASH_ADD_STR( timers, key, t );    }}
开发者ID:togga,项目名称:statsd-c,代码行数:27,


示例4: parse_config

int parse_config(char *config_file) {  char line[100];  FILE *file;  int rc=-1;  int type,t;  char *sp,*nl,*def;  if ( (file = fopen(config_file,"r")) == NULL) {    fprintf(stderr,"can't open %s: %s/n", config_file, strerror(errno));    goto done;  }  while (fgets(line,sizeof(line),file) != NULL) {    sp = strchr(line,' '); if (!sp) continue;    nl = strchr(line,'/n'); if (nl) *nl='/0';    for(t=0; t<adim(supported_types_str); t++) {      if(!strncmp(supported_types_str[t],line,sp-line)) break;    }    if (t >= adim(supported_types_str)){      fprintf(stderr,"unknown type %s/n",line);       goto done;    }    char *id = sp+1;    sp = strchr(id,' ');    if (sp) *sp = '/0';    def = sp ? sp+1 : NULL;    utarray_push_back(output_types,&t);    utarray_push_back(output_keys,&id);    utarray_push_back(output_defaults,&def);  }  rc = 0; done:  if (file) fclose(file);  return rc;}
开发者ID:JHUAPL,项目名称:kvspool,代码行数:33,


示例5: MergeRules

void MergeRules(FcitxXkbRules* rules, FcitxXkbRules* rulesextra){    utarray_concat(rules->modelInfos, rulesextra->modelInfos);    utarray_concat(rules->optionGroupInfos, rulesextra->optionGroupInfos);    FcitxXkbLayoutInfo* layoutInfo;    UT_array toAdd;    utarray_init(&toAdd, fcitx_ptr_icd);    for (layoutInfo = (FcitxXkbLayoutInfo*) utarray_front(rulesextra->layoutInfos);         layoutInfo != NULL;         layoutInfo = (FcitxXkbLayoutInfo*) utarray_next(rulesextra->layoutInfos, layoutInfo))    {        FcitxXkbLayoutInfo* l = FindByName(rules, layoutInfo->name);        if (l) {            utarray_concat(l->languages, layoutInfo->languages);            utarray_concat(l->variantInfos, layoutInfo->variantInfos);        }        else            utarray_push_back(&toAdd, &layoutInfo);    }    unsigned int i;    for(i = 0;i < utarray_len(&toAdd);i++) {        FcitxXkbLayoutInfo* p = *(FcitxXkbLayoutInfo**)utarray_eltptr(&toAdd, i);        utarray_push_back(rules->layoutInfos, p);    }    utarray_done(&toAdd);    FcitxXkbRulesFree(rulesextra);}
开发者ID:farseerfc,项目名称:fcitx,代码行数:30,


示例6: MPIR_T_cat_add_cvar

/* Add a cvar to an existing or new category * IN: cat_name, name of the category * IN: cvar_index, index of the cvar as defined by MPI_T_cvar_handle_alloc() * If cat_name is NULL or a empty string, nothing happpens. */int MPIR_T_cat_add_cvar(const char *cat_name, int cvar_index){    int mpi_errno = MPI_SUCCESS;    name2index_hash_t *hash_entry;    cat_table_entry_t *cat;    /* NULL or empty string are allowed */    if (cat_name == NULL || *cat_name == '/0')        goto fn_exit;    HASH_FIND_STR(cat_hash, cat_name, hash_entry);    if (hash_entry != NULL) {        /* Found it, i.e., category already exists */        int cat_idx = hash_entry->idx;        cat = (cat_table_entry_t *)utarray_eltptr(cat_table, cat_idx);        /* FIXME: Is it worth checking duplicated vars? Probably not */        utarray_push_back(cat->cvar_indices, &cvar_index);    } else {        /* Not found, so create a new category */        cat = MPIR_T_cat_create(cat_name);        utarray_push_back(cat->cvar_indices, &cvar_index);        /* Notify categories have been changed */        cat_stamp++;    }fn_exit:    return mpi_errno;fn_fail:    goto fn_exit;}
开发者ID:zhanglt,项目名称:mpich,代码行数:37,


示例7: update_timer

void update_timer( char *key, double value ) {  syslog(LOG_DEBUG, "update_timer ( %s, %f )/n", key, value);  statsd_timer_t *t;  syslog(LOG_DEBUG, "HASH_FIND_STR '%s'/n", key);  HASH_FIND_STR( timers, key, t );  syslog(LOG_DEBUG, "after HASH_FIND_STR '%s'/n", key);  if (t) {    syslog(LOG_DEBUG, "Updating old timer entry");    wait_for_timers_lock();    utarray_push_back(t->values, &value);    t->count++;    remove_timers_lock();  } else {    syslog(LOG_DEBUG, "Adding new timer entry");    t = malloc(sizeof(statsd_timer_t));    strcpy(t->key, key);    t->count = 0;    utarray_new(t->values, &timers_icd);    utarray_push_back(t->values, &value);    t->count++;    wait_for_timers_lock();    HASH_ADD_STR( timers, key, t );    remove_timers_lock();  }}
开发者ID:ak2consulting,项目名称:statsd-c-buildpackage,代码行数:27,


示例8: main

int main() {  UT_array *nums;  long l, *p;  UT_icd long_icd = {sizeof(long), NULL, NULL, NULL };  utarray_new(nums, &long_icd);  l=1; utarray_push_back(nums, &l);  l=2; utarray_push_back(nums, &l);  p=NULL;  while( (p=(long*)utarray_next(nums,p)) != NULL ) printf("%ld/n", *p);  utarray_free(nums);  return 0;}
开发者ID:acorbe,项目名称:uthash,代码行数:15,


示例9: link_blocks

/* Connect basic blocks with a directed edge.  */static edgelink_blocks (struct control_flow_graph *cfg, basic_block src, basic_block dest){  edge new_edge = (edge) malloc (sizeof (struct edge_def));  memset (new_edge, 0, sizeof (struct edge_def));  new_edge->src = src;  new_edge->dest = dest;  /* Add an edge to the source basic block.  */  utarray_push_back (src->succs, &new_edge);  /* Add an edge to the destination basic block.  */  utarray_push_back (dest->preds, &new_edge);  /* Add an edge to a list with all edges for CFG of current function.  */  utarray_push_back (cfg->edge_list, &new_edge);  return new_edge;}
开发者ID:zayac,项目名称:eq,代码行数:16,


示例10: MPIDI_SHM_copy_tree

/* This function copies the tree present in shared_region into the my_tree data structure for rank. * Doesn't perform any direct allocation, but utarray_new is called to allocate space for children * in my_tree. * */void MPIDI_SHM_copy_tree(int *shared_region, int num_ranks, int rank,                         MPIR_Treealgo_tree_t * my_tree, int *topotree_fail){    int c;    int *parent_ptr = shared_region;    int *child_ctr = &shared_region[num_ranks];    int *children = &shared_region[num_ranks + num_ranks + 1];    int parent = parent_ptr[rank];    int num_children = child_ctr[rank + 1] - child_ctr[rank];    int *my_children = &children[child_ctr[rank]];    my_tree->parent = parent;    my_tree->num_children = 0;    my_tree->rank = rank;    my_tree->nranks = num_ranks;    utarray_new(my_tree->children, &ut_int_icd, MPL_MEM_COLL);    utarray_reserve(my_tree->children, num_children, MPL_MEM_COLL);    char str[1024], tmp[128];    sprintf(str, "----**Rank %d, Parent, %d, Child(%d)[", rank, parent, num_children);    for (c = 0; c < num_children; ++c) {        utarray_push_back(my_tree->children, &my_children[c], MPL_MEM_COLL);        if (my_children[c] == 0) {            *topotree_fail = 1;        }        sprintf(tmp, "%d, ", my_children[c]);        strcat(str, tmp);        my_tree->num_children++;    }    if (MPIDI_SHM_TOPOTREE_DEBUG)        fprintf(stderr, "%s]/n", str);}
开发者ID:jeffhammond,项目名称:mpich,代码行数:35,


示例11: Yap_new_udi_clause

/* called from cdmgr.c * * for each assert of a udipredicate * to pass info to user structure */intYap_new_udi_clause(PredEntry *p, yamop *cl, Term t){	int i;	UdiPArg parg;	UdiInfo info;	YAP_Int index;	/* try to find our structure */	HASH_FIND_UdiInfo(UdiControlBlocks,p,info);	if (!info)		return FALSE;	/* insert into clauselist */	utarray_push_back(info->clauselist, &cl);	for (i = 0; i < utarray_len(info->args) ; i++) {		parg = (UdiPArg) utarray_eltptr(info->args,i);		index = (YAP_Int) utarray_len(info->clauselist);		parg->idxstr = parg->control->insert(parg->idxstr, t,											 parg->arg,											 (void *) index);	}	return TRUE;}
开发者ID:jfmc,项目名称:yap-6.3,代码行数:30,


示例12: zcfg_load_uint16_array

/** * Load uint16 array. * @param[in] option Configuration option. * @param[in,out] array Resulting array. * @return <0 - error. 0 - success. >0 - not found. */static int zcfg_load_uint16_array(const config_setting_t *option, UT_array *array){    utarray_init(array, &ut_uint16_icd);    if (!option) {        return 1;    }    if (CONFIG_TYPE_ARRAY != option->type) {        return -1;    }    int count = config_setting_length(option);    for (int i = 0; i < count; i++) {        int item = config_setting_get_int_elem(option, i);        if ((item < 0) || (item > UINT16_MAX)) {            ZLOG(LOG_ERR, "config:%s:%s: invalid port: %d", option->parent->name, option->name, item);            utarray_done(array);            return -1;        }        uint16_t port = (uint16_t) item;        utarray_push_back(array, &port);    }    if (utarray_len(array)) {        utarray_sort(array, uint16_cmp);    }    return 0;}
开发者ID:intersvyaz,项目名称:zerod,代码行数:39,


示例13: fxaddon_load_numbered_entries

static voidfxaddon_load_numbered_entries(UT_array *ret, FcitxDesktopGroup *grp,                              const char *prefix, boolean stop_at_empty){    utarray_init(ret, fcitx_ptr_icd);    size_t prefix_len = strlen(prefix);    char *buff = malloc(prefix_len + FCITX_INT_LEN + 1);    memcpy(buff, prefix, prefix_len);    char *num_start = buff + prefix_len;    int i;    FcitxDesktopEntry *tmp_ety;    for (i = 0;;i++) {        sprintf(num_start, "%d", i);        tmp_ety = fcitx_desktop_group_find_entry(grp, buff);        if (!tmp_ety)            break;        if (!(tmp_ety->value && *tmp_ety->value)) {            if (stop_at_empty) {                break;            } else {                continue;            }        }        utarray_push_back(ret, &tmp_ety->value);    }    free(buff);}
开发者ID:farseerfc,项目名称:fcitx,代码行数:27,


示例14: ParsePlacement

void ParsePlacement(UT_array* sps, char* placment){    UT_array* array = SplitString(placment, ';');    char** str;    utarray_clear(sps);    for(str = (char**) utarray_front(array);        str != NULL;        str = (char**) utarray_next(array, str))    {        char* s = *str;        char* p = strchr(s, ':');        if (p == NULL)            continue;        if ((strchr(s, ':') - s) > MAX_STATUS_NAME)            continue;                int len = p - s;        SkinPlacement sp;        strncpy(sp.name, s, len);        sp.name[len] = '/0';        int ret = sscanf(p+1, "%d,%d", &sp.x, &sp.y);        if (ret != 2)            continue;        utarray_push_back(sps, &sp);    }        utarray_free(array);}
开发者ID:wengxt,项目名称:fcitx-skin-viewer,代码行数:28,


示例15: postorderRecursive

void postorderRecursive(struct TreeNode* node, UT_array* v) {    if (node != NULL) {        postorderRecursive(node->left, v);        postorderRecursive(node->right, v);        utarray_push_back(v, &node->val);    }}
开发者ID:ichenq,项目名称:leetcode,代码行数:7,


示例16: find_file_act

static TSK_WALK_RET_ENUMfind_file_act(TSK_FS_FILE * fs_file, const char *a_path, void *ptr){    char* filename= NULL;    int path_len = 0;    MBA_FFIND_DATA *data = (MBA_FFIND_DATA *) ptr;    /* We found it! */    if (fs_file->name->meta_addr == data->inode) {        data->found = 1;        path_len = strlen(a_path)+strlen(fs_file->name->name)+3;        filename = (char*)malloc(path_len);        if(filename==NULL)        {            printf("Can not allocate memory!/n");            return TSK_WALK_CONT;        }        snprintf(filename, path_len-1, "/%s%s", a_path, fs_file->name->name);        utarray_push_back(data->filenames, &filename);        if (!(data->flags & TSK_FS_FFIND_ALL)) {            return TSK_WALK_STOP;        }    }    return TSK_WALK_CONT;}
开发者ID:Bletchley13,项目名称:MBA,代码行数:27,


示例17: main

int main(int argc, char *argv[]) {  char *prog = argv[0];  int opt, rc=-1;  hex_t h;  utarray_new(cfg.hexv, &hex_icd);  while ( (opt = getopt(argc, argv, "v+i:o:h")) != -1) {    switch (opt) {      case 'v': cfg.verbose++; break;      case 'i': cfg.infile = strdup(optarg); break;      case 'o': cfg.outfile = strdup(optarg); break;      case 'h': default: usage(prog); break;    }  }  if (!cfg.outfile || !cfg.infile) usage(prog);  /* read input file */  tpl_node *tn = tpl_map("A(sii)", &h.id, &h.x, &h.y);  if (tpl_load(tn, TPL_FILE, cfg.infile)) goto done;  while(tpl_unpack(tn,1) > 0) utarray_push_back(cfg.hexv, &h);  tpl_free(tn);  find_bounds();  draw_image();  rc = 0; done:  utarray_free(cfg.hexv);  return rc;}
开发者ID:lyuxiao,项目名称:misc,代码行数:33,


示例18: hook_add_intl

void hook_add_intl(int id, Plugin *host, Plugin *caller, hook_cb fn, int ev){  log_msg("HOOK", "ADD_INTL");  EventHandler *evh = get_event(ev);  Hook hook = { id, HK_INTL, NULL, caller, host, NULL, .data.fn = fn };  utarray_push_back(evh->hooks, &hook);}static void hook_rm_container(UT_array *ary, Plugin *host, Plugin *caller){  for (int i = 0; i < utarray_len(ary); i++) {    Hook *it = (Hook*)utarray_eltptr(ary, i);    if (it->host == host && it->caller == caller) {      log_err("HOOK", "RM_INTL");      utarray_erase(ary, i, 1);    }  }}void hook_rm_intl(Plugin *host, Plugin *caller, hook_cb fn, int ev){  log_msg("HOOK", "RM_INTL");  EventHandler *evh = get_event(ev);  if (!evh)    return;  hook_rm_container(evh->hooks, host, caller);}
开发者ID:jollywho,项目名称:nav,代码行数:28,


示例19: FcitxUIRegisterStatus

FCITX_EXPORT_APIvoid FcitxUIRegisterStatus(    struct _FcitxInstance* instance,    void* arg,    const char* name,    const char* shortDesc,    const char* longDesc,    void (*toggleStatus)(void *arg),    boolean(*getStatus)(void *arg)){    FcitxUIStatus status;    memset(&status, 0 , sizeof(FcitxUIStatus));    status.name = strdup(name);    status.shortDescription = strdup(shortDesc);    status.longDescription = strdup(longDesc);    status.getCurrentStatus = getStatus;    status.toggleStatus = toggleStatus;    status.arg = arg;        status.visible = true;    UT_array* uistats = &instance->uistats;    utarray_push_back(uistats, &status);}
开发者ID:pkg-ime,项目名称:fcitx,代码行数:33,


示例20: FcitxUIRegisterComplexStatus

FCITX_EXPORT_APIvoid FcitxUIRegisterComplexStatus(    struct _FcitxInstance* instance,    void* arg,    const char* name,    const char* shortDesc,    const char* longDesc,    void (*toggleStatus)(void *arg),    const char*(*getIconName)(void *arg)){    FcitxUIComplexStatus compstatus;    memset(&compstatus, 0 , sizeof(FcitxUIComplexStatus));    compstatus.name = strdup(name);    compstatus.shortDescription = strdup(shortDesc);    compstatus.longDescription = strdup(longDesc);    compstatus.getIconName = getIconName;    compstatus.toggleStatus = toggleStatus;    compstatus.arg = arg;    compstatus.visible = true;    UT_array* uicompstats = &instance->uicompstats;    utarray_push_back(uicompstats, &compstatus);    if (UI_FUNC_IS_VALID(RegisterComplexStatus))        instance->ui->ui->RegisterComplexStatus(instance->ui->addonInstance, (FcitxUIComplexStatus*) utarray_back(uicompstats));    if (UI_FUNC_IS_VALID_FALLBACK(RegisterComplexStatus))        instance->uifallback->ui->RegisterComplexStatus(instance->uifallback->addonInstance, (FcitxUIComplexStatus*) utarray_back(uicompstats));}
开发者ID:hiroshiyui,项目名称:fcitx,代码行数:30,


示例21: memfrs_scan_virmem

UT_array* memfrs_scan_virmem( CPUState *cpu, uint64_t start_addr, uint64_t end_addr, const char* pattern, int length ) {    uint64_t i;    if(start_addr >= end_addr) {        printf("end_addr is not less than start_addr/n");        return NULL;    }    uint8_t* buf = (uint8_t*)malloc(length);    UT_array *match_addr;    memset(buf, 0, length);    if(buf == NULL) {        printf("Cannot allocate memory for do_show_memory_taint_map()/n");        return NULL;    }    utarray_new( match_addr, &adr_icd);    printf("Scan for pattern %s/n", pattern);    for(i = start_addr; i < end_addr-length+1; i++)    {        cpu_memory_rw_debug(cpu, i, buf, length, 0);        if(memcmp(buf, pattern, length)==0)        {            printf("pattern found %lx/n", i);            utarray_push_back(match_addr, &i);        }    }    return match_addr;}
开发者ID:misterlihao,项目名称:MBA,代码行数:33,


示例22: p_udi_args_init

/* * Here we initialize the arguments indexing */YAP_Intp_udi_args_init(Term spec, int arity, UdiInfo blk){	int i;	Term arg;	Atom idxtype;	UdiControlBlock *cb;	struct udi_p_args p_arg;	for (i = 1; i <= arity; i++) {		arg = ArgOfTerm(i,spec);		if (IsAtomTerm(arg)) {			idxtype = AtomOfTerm(arg);			if (idxtype == AtomMinus) //skip this argument				continue;			p_arg.control = NULL;			cb = NULL;			while ((cb = (UdiControlBlock *) utarray_next(indexing_structures, cb))) {				if (idxtype == (*cb)->decl){					p_arg.arg = i;					p_arg.control = *cb;					p_arg.idxstr = (*cb)->init(spec, i, arity);					utarray_push_back(blk->args, &p_arg);				}			}			if (p_arg.control == NULL){ /* not "-" and not found */				fprintf(stderr, "Invalid Spec (%s)/n", AtomName(idxtype));				return FALSE;			}		}	}	return TRUE;}
开发者ID:jfmc,项目名称:yap-6.3,代码行数:36,


示例23: main

int main() {  UT_array *a;  int i, *p;  utarray_new(a, &ut_int_icd);  for(i=0;i<10;i++) utarray_push_back(a,&i);  for(p=(int*)utarray_front(a); p; p=(int*)utarray_next(a,p)) printf("%d ",*p);  printf("/n");  utarray_sort(a,reverse);  while ( (p=(int*)utarray_next(a,p))) printf("%d ", *p);  printf("/n");  utarray_erase(a,3,3);  while ( (p=(int*)utarray_next(a,p))) printf("%d ", *p);  printf("/n");  utarray_erase(a,1,2);  while ( (p=(int*)utarray_next(a,p))) printf("%d ", *p);  printf("/n");  utarray_erase(a,0,1);  while ( (p=(int*)utarray_next(a,p))) printf("%d ", *p);  printf("/n");  utarray_erase(a,3,1);  while ( (p=(int*)utarray_next(a,p))) printf("%d ", *p);  printf("/n");  utarray_resize(a,5);  while ( (p=(int*)utarray_next(a,p))) printf("%d ", *p);  printf("/n");  utarray_resize(a,3);  while ( (p=(int*)utarray_next(a,p))) printf("%d ", *p);  printf("/n");  utarray_erase(a,0,3);  while ( (p=(int*)utarray_next(a,p))) printf("%d ", *p);  printf("/n");  utarray_free(a);  return 0;}
开发者ID:bitfixer,项目名称:bitfixer,代码行数:34,


示例24: memfrs_scan_phymem

/*******************************************************************UT_array* memfrs_scan_phymem( uint64_t start_addr, uint64_t end_addr, const char* pattern )Scan for specific pattern in the VM's physical memoryINPUT:    uint64_t start_addr,  The start address          uint64_t end_addr,    the end address          const char* pattern   pattern to search, support only ascii stringOUTPUT:   UT_array*,            An UT_array that contains the address of found pattern*******************************************************************/UT_array* memfrs_scan_phymem( uint64_t start_addr, uint64_t end_addr, const char* pattern , int length ) {    uint64_t i;    UT_array *match_addr;    if(start_addr >= end_addr) {        printf("end_addr is not less than start_addr/n");        return NULL;    }    uint8_t* buf = (uint8_t*)malloc(length);    if(buf == NULL) {        printf("Cannot allocate memory for memfrs_scan_phymem()/n");        return NULL;    }    utarray_new( match_addr, &adr_icd);    printf("Scan for pattern %s/n", pattern);    for(i = start_addr; i < end_addr-length+1; i++)    {        cpu_physical_memory_read(i, buf, length);        if(memcmp(buf, pattern, length)==0)        {            printf("pattern found %lx/n", i);            utarray_push_back(match_addr, &i);        }    }    return match_addr;}
开发者ID:misterlihao,项目名称:MBA,代码行数:39,


示例25: LoadAutoEng

void LoadAutoEng(FcitxAutoEngState* autoEngState){    FILE    *fp;    char    *buf = NULL;    size_t   length = 0;    LoadAutoEngConfig(&autoEngState->config);    fp = FcitxXDGGetFileWithPrefix("data", "AutoEng.dat", "r", NULL);    if (!fp)        return;    utarray_new(autoEngState->autoEng, &autoeng_icd);    AUTO_ENG autoeng;    while (getline(&buf, &length, fp) != -1) {        char* line = fcitx_utils_trim(buf);        if (strlen(line) > MAX_AUTO_TO_ENG)            FcitxLog(WARNING, _("Too long item for AutoEng"));        strncpy(autoeng.str, line, MAX_AUTO_TO_ENG);        free(line);        autoeng.str[MAX_AUTO_TO_ENG] = '/0';        utarray_push_back(autoEngState->autoEng, &autoeng);    }    free(buf);    fclose(fp);}
开发者ID:areslp,项目名称:fcitx,代码行数:28,


示例26: process_file

/*-----------------------------------------------------------------------------*   process a file*----------------------------------------------------------------------------*/static void process_file( char *filename ){	char *line;    strip( filename );    switch ( filename[0] )    {    case '-':		/* Illegal source file name */        error_illegal_src_filename( filename );        break;    case '/0':		/* no file */        break;	case '@':		/* file list */		filename++;						/* point to after '@' */		strip( filename );		/* loop on file to read each line and recurse */		src_push();		{			if (src_open(filename, NULL))			{				while ((line = src_getline()) != NULL)					process_file(line);			}		}		src_pop();		break;    default:		utarray_push_back(opts.files, &filename);    }}
开发者ID:bitfixer,项目名称:bitfixer,代码行数:38,


示例27: XimPendingCall

void XimPendingCall(FcitxXimFrontend* xim, XimCallType type, XPointer ptr){    XimQueue item;    item.type = type;    item.ptr = ptr;    utarray_push_back(xim->queue, &item);}
开发者ID:adaptee,项目名称:fcitx,代码行数:7,


示例28: accept_client

/* accept a new client connection to the listening socket */int accept_client() {  int fd, fl;  struct sockaddr_in in;  socklen_t sz = sizeof(in);  fd = accept(cfg.fd,(struct sockaddr*)&in, &sz);  if (fd == -1) {    if (errno == EWOULDBLOCK || errno == EAGAIN) goto done;    fprintf(stderr,"accept: %s/n", strerror(errno)); goto done;  }  if (cfg.verbose && (sizeof(in)==sz)) {    fprintf(stderr,"connection fd %d from %s:%d/n", fd,    inet_ntoa(in.sin_addr), (int)ntohs(in.sin_port));  }  /* request signal whenever input from client is available */  fl = fcntl(fd, F_GETFL);  fl |= O_ASYNC|O_NONBLOCK;        /* want a signal on fd ready */  fcntl(fd, F_SETFL, fl);  fcntl(fd, F_SETSIG, SIGIO);  fcntl(fd, F_SETOWN, cfg.pid);    /* send it to our pid */ done:  if (fd != -1) utarray_push_back(cfg.fds,&fd);  return fd;}
开发者ID:Low-power,项目名称:NetworkExamples,代码行数:28,


示例29: utarray_push_back

/*-----------------------------------------------------------------------------*   String pool for the current statement*----------------------------------------------------------------------------*/static char *token_strings_add(ParseCtx *ctx, char *str){	if (!str)		/* NULL string */		return NULL;	utarray_push_back(ctx->token_strings, &str);	return *((char **)utarray_back(ctx->token_strings));}
开发者ID:bitfixer,项目名称:bitfixer,代码行数:11,


示例30: lines_add

static int lines_add(UT_array *lines, const line_t *line){    int i;    i = lines_find(lines, line);    if (i) return i;    utarray_push_back(lines, line);    return lines_find(lines, line);}
开发者ID:guillaumechereau,项目名称:goxel,代码行数:8,



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


C++ utf16_to_utf8函数代码示例
C++ utarray_next函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。