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

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

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

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

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

示例1: crearJob

job* crearJob(char* argv[]){	job* nuevo = (job*)malloc(sizeof(job));	nuevo->id = 0;	nuevo->socketFd = 0;	if( access( argv[2], F_OK ) == -1 ) {	  finalizarJob(FALLO_INGRESO);	}	if( access( argv[3], F_OK ) == -1 ) {		finalizarJob(FALLO_INGRESO);	}	nuevo->rutaTransformador.cadena = string_duplicate(argv[2]);	nuevo->rutaTransformador.longitud = string_length(nuevo->rutaTransformador.cadena);	nuevo->rutaReductor.cadena = string_duplicate(argv[3]);	nuevo->rutaReductor.longitud = string_length(nuevo->rutaReductor.cadena);	nuevo->rutaDatos.cadena= string_duplicate(argv[4]);	nuevo->rutaDatos.longitud = string_length(nuevo->rutaDatos.cadena);	nuevo->rutaResultado.cadena = string_duplicate(argv[5]);	nuevo->rutaResultado.longitud = string_length(nuevo->rutaResultado.cadena);	estadisticas = crearEstadisticasProceso();	return nuevo;}
开发者ID:droidezombie,项目名称:ganancias,代码行数:29,


示例2: copy_defaults

/* ---------------------------------------------------------------------- */voidcopy_defaults (struct defaults *dest_ptr, struct defaults *src_ptr)/* ---------------------------------------------------------------------- */{  int i;  dest_ptr->count_iso = src_ptr->count_iso;  dest_ptr->density = src_ptr->density;  dest_ptr->iso =    (struct iso *) PHRQ_malloc (sizeof (struct iso) * src_ptr->count_iso);  if (dest_ptr->iso == NULL)  {    malloc_error ();  }  else  {    for (i = 0; i < src_ptr->count_iso; i++)    {      dest_ptr->iso[i] = src_ptr->iso[i];      dest_ptr->iso[i].name = string_duplicate (src_ptr->iso[i].name);    }  }  dest_ptr->pe = src_ptr->pe;  dest_ptr->ph = src_ptr->ph;  dest_ptr->redox = string_duplicate (src_ptr->redox);  dest_ptr->temp = src_ptr->temp;  dest_ptr->units = string_duplicate (src_ptr->units);  dest_ptr->water = src_ptr->water;}
开发者ID:AkaBlood,项目名称:ogs5,代码行数:30,


示例3: cargarArchivoDeConfiguracionDeCPU

tipoConfigCPU* cargarArchivoDeConfiguracionDeCPU(char* rutaDelArchivoDeConfiguracionDelCPU){	t_config* archivoCfg = config_create(rutaDelArchivoDeConfiguracionDelCPU);	tipoConfigCPU* cfg = crearConfigCPU();	validarErrorYAbortar(config_has_property(archivoCfg,IP_PLANIFICADOR)			&& config_has_property(archivoCfg,PUERTO_PLANIFICADOR)			&& config_has_property(archivoCfg,IP_MEMORIA)			&& config_has_property(archivoCfg,PUERTO_MEMORIA)			&& config_has_property(archivoCfg,CANTIDAD_HILOS)			&& config_has_property(archivoCfg,RETARDO),			"Las claves del archivo de configuracion no coinciden con las que requiere el CPU");	cfg->ipPlanificador = string_duplicate(config_get_string_value(archivoCfg,IP_PLANIFICADOR));	cfg->puertoPlanificador = config_get_int_value(archivoCfg,PUERTO_PLANIFICADOR);	cfg->ipMemoria = string_duplicate(config_get_string_value(archivoCfg,IP_MEMORIA));	cfg->puertoMemoria = config_get_int_value(archivoCfg,PUERTO_MEMORIA);	cfg->cantidadDeHilos = config_get_int_value(archivoCfg,CANTIDAD_HILOS);	cfg->retardo = config_get_int_value(archivoCfg,RETARDO);	config_destroy(archivoCfg);	return cfg;}
开发者ID:alexiscaspell,项目名称:La-caida-de-Barca,代码行数:25,


示例4: test_string_trim_right

static void test_string_trim_right() {	char *string;	string = string_duplicate("Hola");	string_trim_right(&string);	CU_ASSERT_STRING_EQUAL(string, "Hola");	free(string);	string = string_duplicate("Hola    ");	string_trim_right(&string);	CU_ASSERT_STRING_EQUAL(string, "Hola");	free(string);}
开发者ID:nnico15m,项目名称:so-commons-library,代码行数:13,


示例5: _config_set_key_value

/*! * Callback for the foreach statement. * * /param element Current element in the hash table. * /param data Configuration object. * /return Always true. */static bool _config_set_key_value (struct hashtable_t *element, void *data){     struct config_t *conf = (struct config_t *) data;     char *sql = NULL;     char *key = NULL;     char *val = NULL;     int type  = TYPE_NULL;     /* retrieve key/value pair */     key = allocate (element->size);     memcpy (key, element->key, element->size);     type = element->val.type;     switch (type)     {          case TYPE_INT:               val = string_duplicate ("%d", element->val.data.i);               break;          case TYPE_DOUBLE:               val = string_duplicate ("%lf", (double) element->val.data.f);               break;          case TYPE_BOOLEAN:               val = string_duplicate ("%s", element->val.data.b ? "true" : "false");               break;          case TYPE_STRING:               val = string_duplicate ("%s", element->val.data.s);               break;          default:               break;     }     /* create SQL statement */     sql = string_duplicate (CONFIG_SQL_UPDATE, key, val, type);     deallocate (key);     deallocate (val);     sqlite3_exec (conf->db, sql, NULL, NULL, NULL); /* if this fail, what can we do ? */     deallocate (sql);     return true;}
开发者ID:carriercomm,项目名称:fwallsh,代码行数:58,


示例6: test_string_equals_ignore_case

static void test_string_equals_ignore_case() {	char *string = string_duplicate("Hello WorLd");	CU_ASSERT_TRUE(string_equals_ignore_case(string, "hello world"));	free(string);}
开发者ID:nnico15m,项目名称:so-commons-library,代码行数:7,


示例7: conf_add_group

char *conf_add_group(struct conf *cf, struct command *cmd, void *conf){    rstatus_t status;    uint8_t *p;    struct array *a;    struct string *field, *value;    p = conf;    a = (struct array *)(p + cmd->offset);    field = array_push(a);    if (field == NULL) {        return CONF_ERROR;    }    string_init(field);    value = array_top(&cf->arg);    status = string_duplicate(field, value);    if (status != NC_OK) {        return CONF_ERROR;    }    return CONF_OK;}
开发者ID:baosxie,项目名称:twemproxy-163,代码行数:27,


示例8: ggs_match_off

/** * @brief ggs_match_off * * Parse a "match off" from a GGS input text. * * @param match GGS match off. * @param text GGS input text. * @return 'true' if the text is a valid match end. */static bool ggs_match_off(GGSMatchOff *match, Text *text){	const char *line = text->line[0];	char word[WORD_SIZE];	line = parse_word(line, word, WORD_SIZE);	if (strcmp("/os:", word) != 0) return false;	line = parse_word(line, word, WORD_SIZE);	if (strcmp("-", word) != 0) return false;	line = parse_word(line, word, WORD_SIZE);	if (strcmp("match", word) != 0) return false;	line = parse_word(line, word, WORD_SIZE);	match->id = string_duplicate(word);	line = parse_word(line, word, WORD_SIZE);	if (!ggs_player_set(&(match->player[0]), line, word)) return false;	line = parse_skip_word(line);	line = parse_word(line, word, WORD_SIZE);	if (!ggs_player_set(&(match->player[1]), line, word)) return false;	return true;}
开发者ID:markkings,项目名称:reversi,代码行数:35,


示例9: leerPagina

tipoRespuesta* leerPagina(t_list* listaDeHuecosUtilizados,int pidProceso,int dirLogicaDePagina,int tamanioDePagina,char* particion, t_log* logger, int retardoDeLectura){	tipoRespuesta* respuestaASolicitudDeLectura;	char* contenidoDePagina;	char* textoALogear = string_new();	//buscarPIDEnListaDeHuecos	tipoHuecoUtilizado* huecoDelProceso = buscarHuecoUtilizadoPorPID(listaDeHuecosUtilizados,pidProceso);	//traducirDireccionLogicaEnFisica	int direccionFisicaEnParticion = traducirDireccionLogicaAFisica(huecoDelProceso,dirLogicaDePagina);		//direccionFisicaEnParticion es la posicion donde comienza la pagina en el archivo de particion	//buscarEnContenidoEnParticion	contenidoDePagina = string_duplicate(leerBloqueMapeado(particion,direccionFisicaEnParticion,tamanioDePagina));	//retornarContenidoDePagina	respuestaASolicitudDeLectura = crearTipoRespuesta(PERFECTO,contenidoDePagina);	sleep(retardoDeLectura);	string_append_with_format(&textoALogear,"Lectura realizada  |  PID: %d  |  Byte inicial: %d  | Tamanio: %d  |  Contenido: %s",pidProceso,dirLogicaDePagina*tamanioDePagina,string_length(contenidoDePagina),contenidoDePagina);	logearSeguimiento(textoALogear,logger);	free(textoALogear);	free(contenidoDePagina);	return respuestaASolicitudDeLectura;}
开发者ID:alexiscaspell,项目名称:La-caida-de-Barca,代码行数:30,


示例10: socket_ip

char* socket_ip(char* direccionCompleta){	char * dir = string_duplicate(direccionCompleta);	string_append(&dir,"basura"); // Le agrego al final cualquier cosa, cuestion de que si me mandan "127.0.0.1:", pueda dividirlo correctamente	char * resultado = ( string_split(dir, ":") )[0]; //Divido en el ":", en un array de char* y digo que me de la primera parte.	free(dir);	return resultado;}
开发者ID:JuliColombo,项目名称:tp-2014-1c-commiteando-por-un-suenio,代码行数:7,


示例11: cargarArchivoDeConfiguracionDeSWAP

tipoConfigSWAP* cargarArchivoDeConfiguracionDeSWAP(char* rutaDelArchivoDeConfiguracion){	t_config* archivoCfg = config_create(rutaDelArchivoDeConfiguracion);	tipoConfigSWAP* cfg = crearConfigSWAP();	validarErrorYAbortar(config_has_property(archivoCfg,PUERTO_ESCUCHA)			&& config_has_property(archivoCfg,NOMBRE_SWAP)			&& config_has_property(archivoCfg,CANTIDAD_PAGINAS)			&& config_has_property(archivoCfg,TAMANIO_PAGINA)			&& config_has_property(archivoCfg,RETARDO_COMPACTACION),			"Las claves del archivo de configuracion no coinciden con las que requiere el SWAP");	cfg->puertoDeEscucha = config_get_int_value(archivoCfg,PUERTO_ESCUCHA);	cfg->nombreDeSWAP = string_duplicate(config_get_string_value(archivoCfg,NOMBRE_SWAP));	cfg->cantidadDePaginas = config_get_int_value(archivoCfg,CANTIDAD_PAGINAS);	cfg->retardoDeCompactacion = config_get_int_value(archivoCfg,RETARDO_COMPACTACION);	cfg->tamanioDePagina = config_get_int_value(archivoCfg,TAMANIO_PAGINA);	config_destroy(archivoCfg);	return cfg;}
开发者ID:alexiscaspell,项目名称:La-caida-de-Barca,代码行数:25,


示例12: inicializar_panel

void inicializar_panel(t_tipo_proceso tipo_proceso, char* path){	char* tipo_proceso_str;	if (tipo_proceso == KERNEL)		tipo_proceso_str = "kernel";	else if (tipo_proceso == CPU)		tipo_proceso_str = "cpu";	else		tipo_proceso_str = "?";	proceso_tipo = tipo_proceso;	char* logFile = string_duplicate(path);	string_append(&logFile, tipo_proceso_str);	string_append(&logFile, ".log");	remove(logFile);	logger = log_create(logFile, tipo_proceso_str, true, LOG_LEVEL_INFO);	log_info(logger, "Inicializando panel para %s, en /"%s/"", tipo_proceso_str, logFile);	free(logFile);	kernel_cpus_conectadas = list_create();	kernel_consolas_conectadas = list_create();}
开发者ID:mllanos,项目名称:tp-2014-2c-enjags-not-just-a-group-rafaga,代码行数:26,


示例13: label_init

void                    label_init(t_label *label, t_token *label_token){  assert(label_token->type == TOKEN_TYPE_LABEL_DEF);  label->name = string_duplicate(label_token->string_value);  label->instr = NULL;  label->position = label_token->position;}
开发者ID:motet-a,项目名称:corewar,代码行数:7,


示例14: conf_set_hashtag

char *conf_set_hashtag(struct conf *cf, struct command *cmd, void *conf){    rstatus_t status;    uint8_t *p;    struct string *field, *value;    p = conf;    field = (struct string *)(p + cmd->offset);    if (field->data != CONF_UNSET_PTR) {        return "is a duplicate";    }    value = array_top(&cf->arg);    if (value->len != 2) {        return "is not a valid hash tag string with two characters";    }    status = string_duplicate(field, value);    if (status != NC_OK) {        return CONF_ERROR;    }    return CONF_OK;}
开发者ID:ML-Works,项目名称:twemproxy,代码行数:27,


示例15: stats_pool_copy_init

rstatus_tstats_pool_copy_init(struct stats_pool *stp, struct server_pool *sp, struct hash_table **sit){    rstatus_t status;    uint32_t nserver;    string_init(&stp->name);    string_duplicate(&stp->name, &sp->name);    array_null(&stp->metric);    array_null(&stp->server);    status = array_init(&stp->metric, STATS_POOL_NFIELD, sizeof(struct stats_metric));    if (status != NC_OK) {        return status;    }    nserver = array_n(&sp->server) == 0 ? array_n(&stp->server):array_n(&sp->server);    status = array_init(&stp->server, nserver, sizeof(struct stats_server));    if (status != NC_OK) {        return status;    }    (*sit) = assoc_create_table(sp->key_hash, array_n(&sp->server));    if ((*sit) == NULL)    {        return NC_ERROR;    }    return NC_OK;}
开发者ID:YongMan,项目名称:r3proxy,代码行数:29,


示例16: ggs_match_on

/** * @brief ggs_match_on * * Parse a "match on" from a GGS input text. * * @param match GGS match on. * @param text GGS input text. * @return 'true' if the text is a valid match start. */static bool ggs_match_on(GGSMatchOn *match, Text *text){	const char *line = text->line[0];	char word[WORD_SIZE];	line = parse_word(line, word, WORD_SIZE);	if (strcmp("/os:", word) != 0) return false;	line = parse_word(line, word, WORD_SIZE);	if (strcmp("+", word) != 0) return false;	line = parse_word(line, word, WORD_SIZE);	if (strcmp("match", word) != 0) return false;	line = parse_word(line, word, WORD_SIZE);	match->id = string_duplicate(word);	line = parse_word(line, word, WORD_SIZE);	if (!ggs_player_set(&(match->player[0]), line, word))return false;	line = parse_skip_word(line);	line = parse_word(line, word, WORD_SIZE);	if (!ggs_player_set(&(match->player[1]), line, word)) return false;	line = parse_skip_word(line);	line = parse_word(line, word, WORD_SIZE);	ggs_match_type_set(match->match_type, word);	line = parse_word(line, word, WORD_SIZE);	match->match_type->is_rated = (strcmp(word, "R") == 0) ? 1 : 0;	return true;}
开发者ID:markkings,项目名称:reversi,代码行数:43,


示例17: malloc

t_fileContent *getFileContent(char *archivoTemporal) {	/*obtengo la ruta del archivo	char *rutaArchivo = malloc(256);	sprintf(rutaArchivo, "%s%s", directorioTemporal, archivoTemporal);	*/	char *rutaTemporal = string_duplicate("/tmp");	string_append(&rutaTemporal,archivoTemporal);	//abrir el archivo	int archivo = open(rutaTemporal,O_RDONLY);	if (archivo == -1) {		log_info(log_nodo, "FALLO AL ABRIR ARCHIVO EN GETFILECONTENT");	}	//perror("");	//leer todo el archivo	struct stat infoArchivo;	stat(rutaTemporal, &infoArchivo);	char *contenido = malloc(infoArchivo.st_size);	read(archivo, contenido, infoArchivo.st_size);	close(archivo);	t_fileContent *fileContent = malloc(sizeof(t_fileContent));	fileContent->contenido = contenido;	fileContent->size = infoArchivo.st_size;	return fileContent;}
开发者ID:fchungaragmail,项目名称:operativos2014,代码行数:29,


示例18: log_create

t_log* log_create(char* file, char *program_name, bool is_active_console, t_log_level detail) {	t_log* logger = malloc(sizeof(t_log));	if (logger == NULL) {		perror("Cannot create logger");		return NULL;	}	FILE *file_opened = NULL;	if (file != NULL) {		file_opened = txt_open_for_append(file);		if (file_opened == NULL) {			perror("Cannot create/open log file");			free(logger);			return NULL;		}	}	logger->file = file_opened;	logger->is_active_console = is_active_console;	logger->detail = detail;	logger->pid = process_getpid();	logger->program_name = string_duplicate(program_name);	return logger;}
开发者ID:EmilianoCaggiano,项目名称:tp-operativos-Better-call-pointer,代码行数:27,


示例19: socket_puerto

int socket_puerto(char* direccionCompleta){	char * dir = string_duplicate("basura");	string_append(&dir,direccionCompleta); // Le agrego al principio cualquier cosa, cuestion de que si me mandan ":2532", pueda dividirlo correctamente	int resultado = atoi(( string_split(dir, ":") )[1]);	//Divido en el ":", en un array de char* y digo que me de la segunda parte en forma de int.	free(dir);	return resultado;}
开发者ID:JuliColombo,项目名称:tp-2014-1c-commiteando-por-un-suenio,代码行数:7,


示例20: test_string_to_upper

static void test_string_to_upper() {	char *string = string_duplicate("Hello World");	string_to_upper(string);	CU_ASSERT_STRING_EQUAL(string, "HELLO WORLD");	free(string);}
开发者ID:nnico15m,项目名称:so-commons-library,代码行数:8,


示例21: test_string_to_lower

static void test_string_to_lower() {	char *string = string_duplicate("Hello World");	string_to_lower(string);	CU_ASSERT_STRING_EQUAL(string, "hello world");	free(string);}
开发者ID:nnico15m,项目名称:so-commons-library,代码行数:8,


示例22: data

String &String::operator^=(CStrRef v) {  const char *s1 = data();  const char *s2 = v.data();  int len1 = size();  int len2 = v.size();  char *copy = NULL;  if (len2 < len1) {    copy = string_duplicate(s2, len2);    for (int i = 0; i < len2; i++) copy[i] ^= s1[i];    SmartPtr<StringData>::operator=(NEW(StringData)(copy, len2, AttachString));  } else {    copy = string_duplicate(s1, len1);    for (int i = 0; i < len1; i++) copy[i] ^= s2[i];    SmartPtr<StringData>::operator=(NEW(StringData)(copy, len1, AttachString));  }  return *this;}
开发者ID:yigithub,项目名称:hiphop-php,代码行数:17,


示例23: conf_pool_init

static rstatus_tconf_pool_init(struct conf_pool *cp, struct string *name){    rstatus_t status;    string_init(&cp->name);    string_init(&cp->listen.pname);    string_init(&cp->listen.name);    cp->listen.port = 0;    memset(&cp->listen.info, 0, sizeof(cp->listen.info));    cp->listen.valid = 0;    cp->hash = CONF_UNSET_HASH;    string_init(&cp->hash_tag);    cp->distribution = CONF_UNSET_DIST;    cp->timeout = CONF_UNSET_NUM;    cp->backlog = CONF_UNSET_NUM;    cp->client_connections = CONF_UNSET_NUM;    cp->tcpkeepalive = CONF_UNSET_NUM;    string_init(&cp->redis_auth);    cp->redis_db = CONF_UNSET_NUM;    cp->server_connections = CONF_UNSET_NUM;    array_null(&cp->groups);    cp->sentinel_heartbeat = CONF_UNSET_NUM;    array_null(&cp->sentinels);    cp->valid = 0;    status = string_duplicate(&cp->name, name);    if (status != NC_OK) {        return status;    }    status = array_init(&cp->groups, CONF_DEFAULT_GROUPS,                        sizeof(struct string));    if (status != NC_OK) {        string_deinit(&cp->name);        return status;    }    status = array_init(&cp->sentinels, CONF_DEFAULT_SENTINELS,                        sizeof(struct conf_server));    if (status != NC_OK) {        array_deinit(&cp->groups);        string_deinit(&cp->name);        return status;    }    log_debug(LOG_VVERB, "init conf pool %p, '%.*s'", cp, name->len, name->data);    return NC_OK;}
开发者ID:baosxie,项目名称:twemproxy-163,代码行数:58,


示例24: agregarHeader

void agregarHeader(char** mensaje){	char* head=string_new();	char* numero=header(string_length(*mensaje));	string_append(&head,numero);	string_append(&head,*mensaje);	*mensaje=string_duplicate(head);	free(numero);	free (head);}
开发者ID:JARombola,项目名称:TP-Operativos,代码行数:9,


示例25: completarBloque

char* completarBloque(char* bloqueACompletar, int tamanioDeBloque){	int cantACompletar = tamanioDeBloque - string_length(bloqueACompletar);	char* aux = string_duplicate(bloqueACompletar);	string_append(&aux,string_repeat(CARACTER_VACIO,cantACompletar));	return aux;}
开发者ID:alexiscaspell,项目名称:La-caida-de-Barca,代码行数:9,


示例26: string_touch

// Make sure that this StringData* is safe to modify. It may leave the pointer// untouched. It may create a new StringData, modify the pointer, and decref// the old data.void string_touch(StringData** data){    ca_assert((*data)->refCount > 0);    if ((*data)->refCount == 1)        return;    StringData* dup = string_duplicate(*data);    decref(*data);    *data = dup;}
开发者ID:arn-e,项目名称:circa,代码行数:13,


示例27: ejecuta_reduce

void ejecuta_reduce(t_job* job, t_reduce* reduce) {	char* stream = string_duplicate(reduce->arch_tmp.nodo.ip);	string_append(&stream, "|");	string_append(&stream, reduce->arch_tmp.nodo.nombre);	string_append(&stream, "|");	string_append(&stream, string_duplicate(reduce->arch_tmp.nombre));	t_msg* message = string_message(EJECUTAR_REDUCE, stream, 3, reduce->arch_tmp.nodo.puerto, reduce->id, job->id);	reduce->estado = EN_EJECUCION;	enviar_mensaje(job->socket, message);	void _genera_mensaje(t_temp* temp) {		stream = string_duplicate(temp->nodo.ip);		string_append(&stream, "|");		string_append(&stream, temp->nodo.nombre);		string_append(&stream, "|");		string_append(&stream, string_duplicate(temp->nombre));		t_msg* message = string_message(ARCHIVOS_NODO_REDUCE, stream, 1, temp->nodo.puerto);		enviar_mensaje(job->socket, message);	}
开发者ID:marvelek,项目名称:so-2015c1-tp-reduce-map-fast,代码行数:19,


示例28: conf_pool_init

static rstatus_tconf_pool_init(struct conf_pool *cp, struct string *name){    rstatus_t status;    string_init(&cp->name);    string_init(&cp->listen.pname);    string_init(&cp->listen.name);    string_init(&cp->redis_auth);    cp->listen.port = 0;    memset(&cp->listen.info, 0, sizeof(cp->listen.info));    cp->listen.valid = 0;    cp->hash = CONF_UNSET_HASH;    string_init(&cp->hash_tag);    cp->distribution = CONF_UNSET_DIST;    cp->timeout = CONF_UNSET_NUM;    cp->backlog = CONF_UNSET_NUM;    cp->client_connections = CONF_UNSET_NUM;    cp->redis = CONF_UNSET_NUM;    cp->tcpkeepalive = CONF_UNSET_NUM;    cp->redis_db = CONF_UNSET_NUM;    cp->proto = CONF_UNSET_PROTO;    cp->preconnect = CONF_UNSET_NUM;    cp->auto_eject_hosts = CONF_UNSET_NUM;    cp->server_connections = CONF_UNSET_NUM;    cp->server_retry_timeout = CONF_UNSET_NUM;    cp->server_failure_limit = CONF_UNSET_NUM;    array_null(&cp->server);    cp->valid = 0;    status = string_duplicate(&cp->name, name);    if (status != NC_OK) {        return status;    }    status = array_init(&cp->server, CONF_DEFAULT_SERVERS,                        sizeof(struct conf_server));    if (status != NC_OK) {        string_deinit(&cp->name);        return status;    }    log_debug(LOG_VVERB, "init conf pool %p, '%.*s'", cp, name->len, name->data);    return NC_OK;}
开发者ID:bigbes,项目名称:twemproxy,代码行数:55,


示例29: orquestador

void* orquestador(void* plat) {    t_plataforma* plataforma = (t_plataforma*) plat;    t_orquestador* self = orquestador_create(PUERTO_ORQUESTADOR, plataforma);    t_socket_client* acceptClosure(t_socket_server* server) {        t_socket_client* client = sockets_accept(server);        t_mensaje* mensaje = mensaje_recibir(client);        if (mensaje == NULL) {            sockets_destroyClient(client);            pthread_mutex_lock(&plataforma->logger_mutex);            log_warning(plataforma->logger,                        "%s:%d -> Orquestador - Error al recibir datos en el accept",                        sockets_getIp(client->socket),                        sockets_getPort(client->socket));            pthread_mutex_unlock(&plataforma->logger_mutex);            return NULL;        }        int tipo_mensaje = mensaje->type;        mensaje_destroy(mensaje);        switch (tipo_mensaje) {        case M_HANDSHAKE_PERSONAJE:            responder_handshake(client, plataforma->logger,                                &plataforma->logger_mutex, "Orquestador");            orquestador_guardar_personaje(self, client, plataforma);            break;        case M_HANDSHAKE_NIVEL:            responder_handshake(client, plataforma->logger,                                &plataforma->logger_mutex, "Orquestador");            if (!procesar_handshake_nivel(self, client, plataforma)) {                orquestador_send_error_message("Error al procesar el handshake",                                               client);                return NULL;            }            break;        default:            pthread_mutex_lock(&plataforma->logger_mutex);            char* error_msg = string_from_format(                                  "Tipo del mensaje recibido no válido tipo: %d",                                  tipo_mensaje);            log_warning(plataforma->logger, error_msg);            mensaje_create_and_send(M_ERROR, string_duplicate(error_msg),                                    strlen(error_msg) + 1, client);            free(error_msg);            pthread_mutex_unlock(&plataforma->logger_mutex);            orquestador_send_error_message("Request desconocido", client);            return NULL ;        }        return client;    }
开发者ID:reyiyo,项目名称:super-mario-proc,代码行数:55,


示例30: replanificarMapFallado

void replanificarMapFallado(t_job* job, t_map* map){	int idNodoNuevo = *(map->idNodoOpcion2);	int idBloqueNuevo = *(map->idBloqueOpcion2);	bool by_idNodo(t_nodo* n) {		return (*(n->id) == idNodoNuevo);	}	t_nodo* nodo = list_find(nodosList, (void*)by_idNodo);	//guardo valores anteriores	int idNodoViejo = *(map->idNodo);	int idBloqueViejo = *(map->idBloque);	//actualizo el map	*(map->idNodo) = idNodoNuevo;	*(map->idBloque) = idBloqueNuevo;	list_add(job->maps, map);	char* mensajeAJob = string_new();	string_append(&mensajeAJob, MAP);	string_append(&mensajeAJob, "*");	char* resultFileName = string_new();	string_append(&resultFileName, TEMPLATE);	string_append(&mensajeAJob, nodo->ip);	string_append(&mensajeAJob, ",");	string_append(&mensajeAJob, nodo->puerto);	string_append(&mensajeAJob, ",");	string_append(&mensajeAJob, string_itoa(idNodoNuevo));	string_append(&mensajeAJob, ",");	string_append(&mensajeAJob, string_itoa(idBloqueNuevo));	string_append(&mensajeAJob, ",");	string_append(&mensajeAJob, string_duplicate(resultFileName));	string_append(&mensajeAJob, string_itoa(idNodoNuevo));	string_append(&mensajeAJob, string_itoa(idBloqueNuevo));	if(strlen(mensajeAJob) > 999){		char* nuevoheader = string_new();		string_append(&nuevoheader, SOY_MARTA); //1 digito		string_append(&nuevoheader, string_itoa(strlen(mensajeAJob)));//4 digitos		enviar(*(job->socket), "9999", 4); //falso header		enviar(*(job->socket), nuevoheader, 5); //header de 5	}else{		sendHeader(SOY_MARTA, strlen(mensajeAJob), *(job->socket));	}	enviar(*(job->socket), mensajeAJob, strlen(mensajeAJob));	printf("Replanificacion nodo %d, bloque %d enviada a job./nNuevo map en nodo %d, bloque %d/n", idNodoViejo, idBloqueViejo, idNodoNuevo, idBloqueNuevo);}
开发者ID:JnsCas,项目名称:TP-1C-2015-SO,代码行数:54,



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


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