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

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

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

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

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

示例1: nc_alloc

/* Create a new slowlog entry. * Incrementing the ref count of all the objects retained is up to * this function. */static slowlog_entry *slowlog_create_entry(struct msg *r, long long duration) {    slowlog_entry *se = nc_alloc(sizeof(*se));    uint32_t j, keys_count, keys_count_input;    se->cmdtype = r->type;    keys_count_input = keys_count = r->keys==NULL?0:array_n(r->keys);    if (keys_count_input > SLOWLOG_ENTRY_MAX_KEYS) keys_count_input = SLOWLOG_ENTRY_MAX_KEYS;    se->keys_count = (int)keys_count;    if (keys_count_input > 0) {        se->keys = array_create(keys_count_input, sizeof(struct string));        for (j = 0; j < keys_count_input; j ++) {            struct keypos *kp = array_get(r->keys, j);            struct string *key = array_push(se->keys);            uint32_t key_len = (uint32_t)(kp->end-kp->start);            string_init(key);            if (key_len > SLOWLOG_ENTRY_MAX_STRING) {                int len;                uint8_t buf[SLOWLOG_ENTRY_MAX_STRING+50];                memcpy(buf,kp->start,SLOWLOG_ENTRY_MAX_STRING);                len = nc_scnprintf(buf+SLOWLOG_ENTRY_MAX_STRING,                    50,"... (%lu more bytes)",                    key_len-SLOWLOG_ENTRY_MAX_STRING);                            if (len > 0) {                    string_copy(key,buf,SLOWLOG_ENTRY_MAX_STRING+(uint32_t)len);                } else {                    string_copy(key,kp->start,SLOWLOG_ENTRY_MAX_STRING);                }            } else {                string_copy(key,kp->start,key_len);            }        }    }else {        se->keys = NULL;    }        se->time = time(NULL);    se->duration = duration;    STAILQ_NEXT(se, next) = NULL;        return se;}
开发者ID:7758285,项目名称:twemproxies,代码行数:47,


示例2: aic_cmd_appup

/* * input : aname(STR) [asn(STR) masn(STR) email(STR) state(INT)] * return: NORMAL REP_ERR_ALREADYREGIST * reply : NULL */static NEOERR* aic_cmd_appup(struct queue_entry *q, struct cache *cd, mdb_conn *db){    char *aname;    int aid, pid = 0, tune = -1;    STRING str;    string_init(&str);    NEOERR *err;        REQ_GET_PARAM_STR(q->hdfrcv, "aname", aname);    REQ_FETCH_PARAM_INT(q->hdfrcv, "tune", tune);    if (tune != -1) {        if (hdf_get_int_value(q->hdfrcv, "tuneop", 0)) {            /* set tune bit */            string_appendf(&str, " tune=tune | %d ", tune);        } else {            /* unset tune bit */            string_appendf(&str, " tune=tune & %d ", ~tune);        }    }    aid = hash_string(aname);    err = aic_cmd_appinfo(q, cd, db);    if (err != STATUS_OK) return nerr_pass(err);    if (!hdf_get_obj(q->hdfsnd, "state"))        return nerr_raise(REP_ERR_NREGIST, "%s %d hasn't regist", aname, aid);    pid = hdf_get_int_value(q->hdfsnd, "pid", 0);    err = mcs_build_upcol(q->hdfrcv,                          hdf_get_obj(g_cfg, CONFIG_PATH".UpdateCol.appinfo"), &str);    if (err != STATUS_OK) return nerr_pass(err);        MDB_EXEC(db, NULL, "UPDATE appinfo SET %s WHERE aid=%d;", NULL, str.buf, aid);    /* TODO memory leak, if exec() failure */    string_clear(&str);        cache_delf(cd, PREFIX_APPINFO"%d", aid);    if (pid > 0) {        cache_delf(cd, PREFIX_APPOUSER"%d_0", pid);    }    return STATUS_OK;}
开发者ID:kingiol,项目名称:cmoon,代码行数:48,


示例3: p_neo_error

PyObject * p_neo_error (NEOERR *err){  STRING str;  string_init (&str);  if (nerr_match(err, NERR_PARSE))  {    nerr_error_string (err, &str);    PyErr_SetString (NeoParseError, str.buf);  }  else  {    nerr_error_traceback (err, &str);    PyErr_SetString (NeoError, str.buf);  }  string_clear (&str);  nerr_ignore(&err);  return NULL;}
开发者ID:HermannDppes,项目名称:clearsilver,代码行数:19,


示例4: aux_cmd_memoryadd

static NEOERR* aux_cmd_memoryadd(struct aux_entry *e, QueueEntry *q){	STRING str; string_init(&str);	NEOERR *err;        mdb_conn *db = e->db;    err = mdb_build_incol(q->hdfrcv,                          hdf_get_obj(g_cfg, CONFIG_PATH".InsertCol.memory"), &str);	if (err != STATUS_OK) return nerr_pass(err);        MDB_EXEC(db, NULL, "INSERT INTO memory %s", NULL, str.buf);    string_clear(&str);    m_memory_maxid++;    return STATUS_OK;}
开发者ID:kingiol,项目名称:cmoon,代码行数:19,


示例5: pos_data_mod

NEOERR* pos_data_mod(CGI *cgi, HASH *dbh, HASH *evth, session_t *ses){	STRING str; string_init(&str);    mdb_conn *db = hash_lookup(dbh, "city");	NEOERR *err;    if (!cgi || !cgi->hdf || !db) return nerr_raise(NERR_ASSERT, "paramter null");    int id = hdf_get_int_value(cgi->hdf, PRE_QUERY".id", 0);        err = mdb_build_upcol(hdf_get_obj(cgi->hdf, PRE_QUERY),                          hdf_get_obj(g_cfg, "Db.UpdateCol.city"), &str);	if (err != STATUS_OK) return nerr_pass(err);    MDB_EXEC(db, NULL, "UPDATE city SET %s WHERE id=%d;", NULL, str.buf, id);        return STATUS_OK;}
开发者ID:kingiol,项目名称:cmoon,代码行数:19,


示例6: string_init

NEOERR *ne_net_read_line(NSOCK *sock, char **buf){  NEOERR *err;  STRING str;  UINT8 *nl;  int l;    string_init(&str);  while (1)  {    if (sock->il - sock->ib > 0)    {      nl = memchr(sock->ibuf + sock->ib, '/n', sock->il - sock->ib);      if (nl == NULL)      {	l = sock->il - sock->ib;	err = string_appendn(&str, (char *)(sock->ibuf + sock->ib), l);	sock->ib += l;	if (err) break;      }      else      {	l = nl - (sock->ibuf + sock->ib);	err = string_appendn(&str, (char *)(sock->ibuf + sock->ib), l);	sock->ib += l;	if (err) break;	*buf = str.buf;	return STATUS_OK;      }    }    else    {      err = ne_net_fill(sock);      if (err) break;      if (sock->il == 0) return STATUS_OK;    }  }  string_clear(&str);  return nerr_pass(err);}
开发者ID:0omega,项目名称:platform_external_clearsilver,代码行数:42,


示例7: p_html_ws_strip

static PyObject * p_html_ws_strip (PyObject *self, PyObject *args){  char *s;  NEOERR *err;  PyObject *rv;  int len;  int lvl;  STRING html;  if (!PyArg_ParseTuple(args, "s#i:htmlStrip(str, level)", &s, &len, &lvl))    return NULL;  string_init (&html);  err = string_appendn (&html, s, len);  if (err) return p_neo_error (err);  cgi_html_ws_strip (&html, lvl);  rv = Py_BuildValue ("s", html.buf);  string_clear (&html);  return rv;}
开发者ID:HermannDppes,项目名称:clearsilver,代码行数:20,


示例8: aux_cmd_mailadd

static NEOERR* aux_cmd_mailadd(struct queue_entry *q, struct cache *cd, mdb_conn *db){    STRING str; string_init(&str);    char sum[LEN_MD5], *content;    NEOERR *err;    REQ_GET_PARAM_STR(q->hdfrcv, "content", content);    mutil_md5_str(content, sum);    hdf_set_value(q->hdfrcv, "checksum", sum);    err = mcs_build_incol(q->hdfrcv,                          hdf_get_obj(g_cfg, CONFIG_PATH".InsertCol.email"),                          &str);    if (err != STATUS_OK) return nerr_pass(err);    MDB_EXEC(db, NULL, "INSERT INTO email %s", NULL, str.buf);    string_clear(&str);    return STATUS_OK;}
开发者ID:kingiol,项目名称:cmoon,代码行数:20,


示例9: BINDING_FUNCTION

static BINDING_FUNCTION(binding_toggle_input){    if (input_size == 1) {        input_size = MULTILINE_INPUT_SIZE;        ncurses_input_update(line_index);    } else {        string_t s = string_init((""));        char *p, *tmp;        int i;        for (i = 0; lines[i]; i++) {            char *tmp;            string_append(s, (tmp = wcs_to_normal(lines[i])));            free_utf(tmp);            if (lines[i + 1])                string_append(s, ("/r/n"));        }        tmp = string_free(s, 0);        add_to_history();        input_size = 1;        ncurses_input_update(0);        for (p=tmp; *p && isspace(*p); p++);        if (*p || config_send_white_lines)            command_exec(window_current->target, window_current->session, tmp, 0);        if (!tmp[0] || tmp[0] == '/' || !window_current->target)            ncurses_typing_mod		= 1;        else {            ncurses_typing_win		= NULL;            window_current->out_active	= 1;        }        curs_set(1);        xfree(tmp);    }}
开发者ID:dmilith,项目名称:ekg2-bsd,代码行数:41,


示例10: aic_cmd_appuserup

static NEOERR* aic_cmd_appuserup(struct queue_entry *q, struct cache *cd, mdb_conn *db){    STRING str; string_init(&str);    int uid, aid;    NEOERR *err;    REQ_GET_PARAM_INT(q->hdfrcv, "uid", uid);    REQ_GET_PARAM_INT(q->hdfrcv, "aid", aid);    err = mcs_build_upcol(q->hdfrcv,                          hdf_get_obj(g_cfg, CONFIG_PATH".UpdateCol.userinfo"), &str);    if (err != STATUS_OK) return nerr_pass(err);    MDB_EXEC(db, NULL, "UPDATE userinfo SET %s WHERE uid=%d AND aid=%d;",             NULL, str.buf, uid, aid);    string_clear(&str);    cache_delf(cd, PREFIX_USERLIST"%d", aid);        return STATUS_OK;}
开发者ID:kingiol,项目名称:cmoon,代码行数:21,


示例11: Java_org_clearsilver_HDF__1dump

JNIEXPORT jstring JNICALL Java_org_clearsilver_HDF__1dump(    JNIEnv *env, jclass objClass,    jint hdf_obj_ptr) {  HDF *hdf = (HDF *)hdf_obj_ptr;  NEOERR *err;  STRING str;  jstring retval;  string_init(&str);  err = hdf_dump_str(hdf, NULL, 0, &str);  if (err != STATUS_OK) {    // Throw an exception    jNeoErr(env, err);    retval = NULL;  } else {    retval =  (*env)->NewStringUTF(env,str.buf);  }  string_clear(&str);  return retval;}
开发者ID:bigclean,项目名称:moc,代码行数:21,


示例12: add_java_home_to_path

void add_java_home_to_path(void){	const char *java_home = get_java_home();	struct string *new_path = string_init(32), *buffer;	const char *env;	if (!java_home)		return;	buffer = string_initf("%s/bin", java_home);	if (dir_exists(buffer->buffer))		string_append_path_list(new_path, buffer->buffer);	string_setf(buffer, "%s/jre/bin", java_home);	if (dir_exists(buffer->buffer))		string_append_path_list(new_path, buffer->buffer);	env = getenv("PATH");	string_append_path_list(new_path, env ? env : get_ij_dir());	setenv_or_exit("PATH", new_path->buffer, 1);	string_release(buffer);	string_release(new_path);}
开发者ID:benwbooth,项目名称:imagej-launcher,代码行数:21,


示例13: icq_offline_message_end

static int icq_offline_message_end(session_t *s, unsigned char *buf, int len, private_data_t **info) {	/*	 * SNAC(15,03)/0042 SRV_END_OF_OFFLINE_MSGS End-of-offline messages reply	 *	 * This is the last SNAC in server response to CLI_OFFLINE_MSGS_REQ SNAC(15,02)/003C.	 * It doesn't contain message - it is only end_of_sequence marker.	 */	debug_function("icq_offline_message_end()/n");	/* SNAC(15,02)/003E CLI_DELETE_OFFLINE_MSGS_REQ Delete offline messages request	 *	 * Client sends this SNAC when wants to delete offline messages from	 * server. But first you should request them from server using	 * SNAC(15,02)/003C. If you doesn't delete messages server will send them	 * again after client request.	 */	string_t pkt = string_init(NULL);	icq_makemetasnac(s, pkt, CLI_DELETE_OFFLINE_MSGS_REQ, 0, NULL, NULL);	icq_send_pkt(s, pkt);	return 0;}
开发者ID:dmilith,项目名称:ekg2-bsd,代码行数:22,


示例14: main

int main(){	string *s = string_init();	string *o;	string *subs;	string *q = string_init_cstring("quit");		string_read_line(s);		while(string_cmp(s, q))	{		string_print(s);				string_reset(s);		string_read_line(s);	}	string_append(s, q);	o = string_cat(s, q);	string_print(s);	string_print(o);	string_append_cstring(o, "hello");	string_append_char(o, 'J');	string_print(o);	subs = string_substring(o, 5, 6);	printf("--/n");	printf("%c/n", string_get(s, 5));	printf("%d/n", string_index(o, 'o'));	string_print(subs);	printf("--/n");	o = string_free(o);	s = string_free(s);	q = string_free(q);	subs = string_free(subs);	return 0;}
开发者ID:supremearyal,项目名称:util,代码行数:39,


示例15: hdf_read_file_internal

static NEOERR* hdf_read_file_internal (HDF *hdf, const char *path,                                       int include_handle){  NEOERR *err;  int lineno = 0;  char fpath[PATH_BUF_SIZE];  char *ibuf = NULL;  const char *ptr = NULL;  HDF *top = hdf->top;  STRING line;  string_init(&line);  if (path == NULL)    return nerr_raise(NERR_ASSERT, "Can't read NULL file");  if (top->fileload)  {    err = top->fileload(top->fileload_ctx, hdf, path, &ibuf);  }  else  {    if (path[0] != '/')    {      err = hdf_search_path (hdf, path, fpath, PATH_BUF_SIZE);      if (err != STATUS_OK) return nerr_pass(err);      path = fpath;    }    err = ne_load_file (path, &ibuf);  }  if (err) return nerr_pass(err);  ptr = ibuf;  err = _hdf_read_string(hdf, &ptr, &line, path, &lineno, include_handle);  free(ibuf);  string_clear(&line);  return nerr_pass(err);}
开发者ID:bigclean,项目名称:moc,代码行数:39,


示例16: hdf_read_file

NEOERR* hdf_read_file (HDF *hdf, const char *path){  NEOERR *err;  int lineno = 0;  char fpath[_POSIX_PATH_MAX];  char *ibuf = NULL;  const char *ptr = NULL;  HDF *top = hdf->top;  STRING line;  string_init(&line);  if (path == NULL)     return nerr_raise(NERR_ASSERT, "Can't read NULL file");  if (top->fileload)  {    err = top->fileload(top->fileload_ctx, hdf, path, &ibuf);  }  else  {    if (path[0] != '/')    {      err = hdf_search_path (hdf, path, fpath);      if (err != STATUS_OK) return nerr_pass(err);      path = fpath;    }    err = ne_load_file (path, &ibuf);  }  if (err) return nerr_pass(err);  ptr = ibuf;  err = _hdf_read_string(hdf, &ptr, &line, path, &lineno, INCLUDE_FILE);  free(ibuf);  string_clear(&line);  return nerr_pass(err);}
开发者ID:yavdr,项目名称:yavdr,代码行数:38,


示例17: do_cache_get

void do_cache_get(void) {  struct string key;  string_init(&key);  read_into_string(&key);  struct cache_entry *entry = cache_lookup(&key);  if (entry == NULL) {    write(STDOUT_FILENO, &kNotFound, sizeof(kNotFound));    return;  }  write(STDOUT_FILENO, &kFound, sizeof(kFound));  write_string(entry->value);  --entry->lifetime;  if (entry->lifetime <= 0) {    // The cache entry is now expired.    fprintf(stderr, "Destroying key/n");    string_destroy(entry->key);    fprintf(stderr, "Destroying value/n");    string_destroy(entry->value);  }}
开发者ID:Holyshatots,项目名称:Code-Everyday,代码行数:23,


示例18: aux_cmd_impadd

static NEOERR* aux_cmd_impadd(struct queue_entry *q, struct cache *cd, mdb_conn *db){    STRING str; string_init(&str);    NEOERR *err;    char *aname;    int aid;    REQ_GET_PARAM_STR(q->hdfrcv, "aname", aname);    aid = hash_string(aname);    hdf_set_int_value(q->hdfrcv, "aid", aid);    err = mcs_build_incol(q->hdfrcv,                          hdf_get_obj(g_cfg, CONFIG_PATH".InsertCol.improve"),                          &str);    if (err != STATUS_OK) return nerr_pass(err);    MDB_EXEC(db, NULL, "INSERT INTO improve %s", NULL, str.buf);    string_clear(&str);    cache_delf(cd, PREFIX_IMP"%d_0", aid);        return STATUS_OK;}
开发者ID:kingiol,项目名称:cmoon,代码行数:23,


示例19: aux_cmd_memorymod

static NEOERR* aux_cmd_memorymod(struct aux_entry *e, QueueEntry *q){	STRING str; string_init(&str);    int id;	NEOERR *err;    mdb_conn *db = e->db;    struct cache *cd = e->cd;    REQ_GET_PARAM_INT(q->hdfrcv, "id", id);        err = mdb_build_upcol(q->hdfrcv,                          hdf_get_obj(g_cfg, CONFIG_PATH".UpdateCol.memory"), &str);	if (err != STATUS_OK) return nerr_pass(err);    MDB_EXEC(db, NULL, "UPDATE memory SET %s WHERE id=%d;", NULL, str.buf, id);    string_clear(&str);    cache_delf(cd, PREFIX_MEMORY"%d", id);    return STATUS_OK;}
开发者ID:kingiol,项目名称:cmoon,代码行数:23,


示例20: jNeoErr

// Throws a runtime exception back to the Java VM appropriate for the type of// error and frees the NEOERR that is passed in.// TODO: throw more specific exceptions for errors like NERR_IO and NERR_NOMEMint jNeoErr(JNIEnv *env, NEOERR *err) {  STRING str;  string_init(&str);  if (nerr_match(err, NERR_PARSE)) {    nerr_error_string(err, &str);    throwRuntimeException(env, str.buf);  } else if (nerr_match(err, NERR_IO)) {    nerr_error_string(err, &str);    throwIOException(env, str.buf);  } else if (nerr_match(err, NERR_NOMEM)) {    nerr_error_string(err, &str);    throwOutOfMemoryError(env, str.buf);  } else {    nerr_error_traceback(err, &str);    throwRuntimeException(env, str.buf);  }  nerr_ignore(&err);  // free err, otherwise it would leak  string_clear(&str);  return 0;}
开发者ID:bigclean,项目名称:moc,代码行数:26,


示例21: ltpl_render

NEOERR* ltpl_render(CGI *cgi, HASH *tplh, session_t *ses){    STRING str; string_init(&str);    CSPARSE *cs;    HDF *dhdf;    NEOERR *err;    char *render = NULL;    render = ses->render;    cs = (CSPARSE*)hash_lookup(tplh, render);    dhdf = (HDF*)hash_lookupf(tplh, "%s_hdf", render);    if (!cs) return nerr_raise(LERR_MISS_TPL, "render %s not found", render);    if (dhdf) hdf_copy(cgi->hdf, NULL, dhdf);        ltpl_prepare_rend(cgi->hdf, hdf_get_value(cgi->hdf,                                              PRE_RESERVE"."PRE_CFG_LAYOUT,                                              "layout.html"));        if (ses->tm_cache_browser > 0) {        hdf_set_valuef(cgi->hdf, "cgiout.other.cache=Cache-Control: max-age=%lu",                       ses->tm_cache_browser);    }    cs->hdf = cgi->hdf;    err = cs_render(cs, &str, mcs_strcb);    if (err != STATUS_OK) return nerr_pass(err);    err = cgi_output(cgi, &str);    if (err != STATUS_OK) return nerr_pass(err);    cs->hdf = NULL;    string_clear(&str);    return STATUS_OK;}
开发者ID:adderly,项目名称:cmoon,代码行数:37,


示例22: ltpl_render2file

/* * we don't pass tplh parameter to it, * because walker don't have it. so, tplh stored in the g_datah */NEOERR* ltpl_render2file(CGI *cgi, char *render, char *fname){    STRING str; string_init(&str);    HASH *tplh;    CSPARSE *cs;    HDF *dhdf;    NEOERR *err;    MCS_NOT_NULLC(cgi->hdf, render, fname);        tplh = hash_lookup(g_datah, "runtime_templates");    MCS_NOT_NULLA(tplh);    cs = hash_lookup(tplh, render);    MCS_NOT_NULLA(cs);    dhdf = hash_lookupf(tplh, "%s_hdf", render);    if (dhdf) hdf_copy(cgi->hdf, NULL, dhdf);    ltpl_prepare_rend(cgi->hdf, hdf_get_value(cgi->hdf,                                              PRE_RESERVE"."PRE_CFG_LAYOUT,                                              "layout.html"));    cs->hdf = cgi->hdf;    err = cs_render(cs, &str, mcs_strcb);    if (err != STATUS_OK) return nerr_pass(err);    err = mfile_makesure_dir(fname);    if (err != STATUS_OK) return nerr_pass(err);        err = mcs_str2file(str, fname);    if (err != STATUS_OK) return nerr_pass(err);    string_clear(&str);    return STATUS_OK;}
开发者ID:adderly,项目名称:cmoon,代码行数:41,


示例23: stats_metric_init

static voidstats_metric_init(struct stats_metric *stm){    switch (stm->type) {    case STATS_COUNTER:        stm->value.counter = 0LL;        break;    case STATS_GAUGE:        stm->value.counter = 0LL;        break;    case STATS_TIMESTAMP:        stm->value.timestamp = 0LL;        break;    case STATS_STRING:        string_init(&stm->value.str);        break;    default:        NOT_REACHED();    }}
开发者ID:logikal,项目名称:dynomite,代码行数:24,


示例24: parse_header

void parse_header(http_connect_t * con) { 	request *in;	buffer *header;	pool_t *p;	char * start, *end;	p = (pool_t *)con->p;	in = con->in;	header = in->header;	start = (char *)(header->ptr);	end = (char *)header->ptr + (header->used - 1);	if(strncasecmp(start,"put", 3) == 0) {		in->http_method = _PUT;		start += 3;	}if(strncasecmp(start,"get", 3) == 0) {		in->http_method = _GET;		start += 3;	}	else if(strncasecmp(start, "post", 4) == 0) {		in->http_method = _POST;		start += 4;	}	start = skip_space(start, end);	in->uri = string_init(p);	in->uri->ptr = start;	start = find_line(start, end);	in->uri->len = start - in->uri->ptr;	start++;	in->content_length = atoi(start);	//test_print_header(in);	return ;}
开发者ID:zhangqishou,项目名称:devSync,代码行数:36,


示例25: lerr_opfinish_json

void lerr_opfinish_json(NEOERR *err, HDF *hdf){    if (err == STATUS_OK) {        hdf_set_value(hdf, PRE_SUCCESS, "1");        return;    }        hdf_remove_tree(hdf, PRE_SUCCESS);        NEOERR *neede = mcs_err_valid(err);    /* set PRE_ERRXXX with the most recently err */    hdf_set_int_value(hdf, PRE_ERRCODE, neede->error);    if (!hdf_get_obj(hdf, PRE_ERRMSG)) {        hdf_set_valuef(hdf, "%s=%s:%d %s",                       PRE_ERRMSG, neede->file, neede->lineno, neede->desc);    }    STRING str; string_init(&str);    nerr_error_traceback(err, &str);    mtc_err("%s", str.buf);    hdf_set_value(hdf, PRE_ERRTRACE, str.buf);    nerr_ignore(&err);    string_clear(&str);}
开发者ID:adderly,项目名称:cmoon,代码行数:24,


示例26: _avl_tree_insert_unique_array

/** * Inserts an array of unique element into a avl tree. */void _avl_tree_insert_unique_array(_avl_tree_t* pt_avl_tree, const void* cpv_array, size_t t_count){    size_t i = 0;    assert(pt_avl_tree != NULL);    assert(_avl_tree_is_inited(pt_avl_tree));    assert(cpv_array != NULL);    /*     * Copy the elements from src array to dest avl tree.     * The array of c builtin and user define or cstl builtin are different,     * the elements of c builtin array are element itself, but the elements of      * c string, user define or cstl are pointer of element.     */    if (strncmp(_GET_AVL_TREE_TYPE_BASENAME(pt_avl_tree), _C_STRING_TYPE, _TYPE_NAME_SIZE) == 0) {        /*         * We need built a string_t for c string element.         */        string_t* pstr_elem = create_string();        assert(pstr_elem != NULL);        string_init(pstr_elem);        for (i = 0; i < t_count; ++i) {            string_assign_cstr(pstr_elem, *((const char**)cpv_array + i));            _avl_tree_insert_unique(pt_avl_tree, pstr_elem);        }        string_destroy(pstr_elem);    } else if (_GET_AVL_TREE_TYPE_STYLE(pt_avl_tree) == _TYPE_C_BUILTIN) {        for (i = 0; i < t_count; ++i) {            _avl_tree_insert_unique(pt_avl_tree, (unsigned char*)cpv_array + i * _GET_AVL_TREE_TYPE_SIZE(pt_avl_tree));        }    } else {        for (i = 0; i < t_count; ++i) {            _avl_tree_insert_unique(pt_avl_tree, *((void**)cpv_array + i));        }    }}
开发者ID:ChenHui109,项目名称:libcstl,代码行数:39,


示例27: string_init

static char *fstring_reverse(fstring_t *fstr) {	const char *str;	const fstr_attr_t *attr;	string_t asc;	int i;	if (!fstr)		return NULL;	attr = fstr->attr;	str = fstr->str;	if (!attr || !str)		return NULL;	asc = string_init(NULL);	for (i = 0; str[i]; i++) {#define prev	attr[i-1]#define cur	attr[i]		int reset = 0;		if (i) {			if (!(cur & FSTR_BOLD) && (prev & FSTR_BOLD))		reset = 1;			if (!(cur & FSTR_BLINK) && (prev & FSTR_BLINK))		reset = 1;			if (!(cur & FSTR_UNDERLINE) && (prev & FSTR_UNDERLINE))	reset = 1;			if (!(cur & FSTR_REVERSE) && (prev & FSTR_REVERSE))	reset = 1;			if ((cur & FSTR_NORMAL) && !(prev & FSTR_NORMAL))	reset = 1;	/* colors disappear */			if (reset)				string_append(asc, "%n");		} else			reset = 1;	/* attr */		if ((cur & FSTR_BLINK) &&	(reset || !(prev & FSTR_BLINK)))	string_append(asc, "%i");//		if ((cur & FSTR_UNDERLINE) &&	(reset || !(prev & FSTR_UNDERLINE)))	string_append(asc, "%");//		if ((cur & FSTR_REVERSE) &&	(reset || !(prev & FSTR_REVERSE)))	string_append(asc, "%");		if (!(cur & FSTR_NORMAL)) {		/* background color XXX */#define BGCOLOR(x)	-1			if (0 && ((reset || BGCOLOR(cur) != BGCOLOR(prev)))) {				string_append_c(asc, '%');				switch (BGCOLOR(cur)) {					case (0): string_append_c(asc, 'l'); break;					case (1): string_append_c(asc, 's'); break;					case (2): string_append_c(asc, 'h'); break;					case (3): string_append_c(asc, 'z'); break;					case (4): string_append_c(asc, 'e'); break;					case (5): string_append_c(asc, 'q'); break;					case (6): string_append_c(asc, 'd'); break;					case (7): string_append_c(asc, 'x'); break;				}			}#undef BGCOLOR		/* foreground color */#define FGCOLOR(x)	((!(x & FSTR_NORMAL)) ? (x & FSTR_FOREMASK) : -1)			if (((reset || FGCOLOR(cur) != FGCOLOR(prev)) || (i && (prev & FSTR_BOLD) != (cur & FSTR_BOLD)))) {				string_append_c(asc, '%');				switch ((cur & FSTR_FOREMASK)) {					case (0): string_append_c(asc, (cur & FSTR_BOLD) ? 'K' : 'k'); break;					case (1): string_append_c(asc, (cur & FSTR_BOLD) ? 'R' : 'r'); break;					case (2): string_append_c(asc, (cur & FSTR_BOLD) ? 'G' : 'g'); break;					case (3): string_append_c(asc, (cur & FSTR_BOLD) ? 'Y' : 'y'); break;					case (4): string_append_c(asc, (cur & FSTR_BOLD) ? 'B' : 'b'); break;					case (5): string_append_c(asc, (cur & FSTR_BOLD) ? 'M' : 'm'); break; /* | fioletowy	 | %m/%p  | %M/%P | %q	| */					case (6): string_append_c(asc, (cur & FSTR_BOLD) ? 'C' : 'c'); break;					case (7): string_append_c(asc, (cur & FSTR_BOLD) ? 'W' : 'w'); break;				}			}#undef FGCOLOR		} else {	/* no color */			if ((cur & FSTR_BOLD) && (reset || !(prev & FSTR_BOLD)))				string_append(asc, "%T");		}	/* str */		if (str[i] == '%' || str[i] == '//')			string_append_c(asc, '//');		string_append_c(asc, str[i]);	}/* reset, and return. */	string_append(asc, "%n");	return string_free(asc, 0);#undef prev#undef cur}
开发者ID:hiciu,项目名称:ekg2,代码行数:91,


示例28: crypto_aes_decrypt

boolcrypto_aes_decrypt(struct string *ciphertext, struct string *aes_key, struct string *aes_iv, struct string *decrypted){    bool retval = false;    EVP_CIPHER_CTX ctx;    int decryptspace;    int decryptdone;    EVP_CIPHER_CTX_init(&ctx);    if (!EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL,        (unsigned char *)string_get(aes_key),        (unsigned char *)string_get(aes_iv))) {        log_err("crypto_aes_decrypt: init failed/n");        ERR_print_errors_fp(stderr);        goto bail_out;    }    EVP_CIPHER_CTX_set_padding(&ctx, 1);        if (string_length(aes_key) != EVP_CIPHER_CTX_key_length(&ctx)) {        log_err("crypto_aes_decrypt: invalid key size (%" PRIuPTR " vs expected %d)/n",                string_length(aes_key), EVP_CIPHER_CTX_key_length(&ctx));        goto bail_out;    }    if (string_length(aes_iv) != EVP_CIPHER_CTX_iv_length(&ctx)) {        log_err("crypto_aes_decrypt: invalid iv size (%" PRIuPTR " vs expected %d)/n",                string_length(aes_iv), EVP_CIPHER_CTX_iv_length(&ctx));        goto bail_out;    }    decryptspace = string_length(ciphertext) + EVP_MAX_BLOCK_LENGTH;    string_free(decrypted); /* free previous buffer */    string_init(decrypted, decryptspace, 1024);    if (string_size(decrypted) < decryptspace) {        log_err("crypto_aes_decrypt: decrypt buffer malloc error/n");        goto bail_out;    }        if (EVP_DecryptUpdate(&ctx, (unsigned char*)string_get(decrypted),            &decryptdone, (unsigned char*)string_get(ciphertext),            string_length(ciphertext))) {        /* TODO: need cleaner way: */        decrypted->_u._s.length = decryptdone;    } else {        log_err("crypto_aes_decrypt: decrypt failed/n");        ERR_print_errors_fp(stderr);        goto bail_out;    }        if (EVP_DecryptFinal_ex(&ctx,            (unsigned char*)string_get(decrypted)+string_length(decrypted),            &decryptdone)) {        /* TODO: need cleaner way: */        decrypted->_u._s.length += decryptdone;    } else {        log_err("crypto_aes_decrypt: decrypt final failed/n");        ERR_print_errors_fp(stderr);        goto bail_out;    }    retval = true;bail_out:    EVP_CIPHER_CTX_cleanup(&ctx);    return retval;}
开发者ID:MrMarvin,项目名称:chaosvpn,代码行数:66,


示例29: string_set

/****************************************************************************set a string value, allocing the space for the string, and deallocating any existing space****************************************************************************/BOOL string_set(char **dest,const char *src){  string_free(dest);  return(string_init(dest,src));}
开发者ID:BackupTheBerlios,项目名称:mcvox,代码行数:10,


示例30: string_init

#define CC_eu   0x6575#define CC_fr   0x6672#define CC_hk   0x686b#define CC_tw   0x7477#define CC_io   0x696f#define CC_it   0x6974#define CC_mo   0x6d6f/* 以网络序(大端)定义Generic Code */#define GC_com  0x636f6d00#define GC_net  0x6e657400#define GC_org  0x6f726700#define GC_gov  0x676f7600#define GC_edu  0x65647500#define GC_biz  0x62697a00string_t host_wildcard = string_init("*");/* * 检查host的label,将顶级域名和可能存在的一级generic域名合并成一个label * 输入的label至少有2项,即label_count >= 2. */static inline int cache_host_parse_deep(string_t label[], int label_count){    int i, ret = -1;    uint16_t country_code = 0;    uint32_t generic_code = 0;    char *p_cc, *p_gc;    int need_check = 0, need_merge = 0;    /*     * 首先,处理顶级域名,label[0],     * XXX: 只有当顶级域名是国家域名时,才可能需要合并label[0]和label[1]。
开发者ID:ytinirt,项目名称:hot_cache_backend,代码行数:31,



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


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