• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ config_lookup函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: getBoolConf

bool_t getBoolConf(param_t param)
{
	config_setting_t *setting = NULL;

	switch (param) {
		case ALLOW_TEXTMESSAGE:
			setting = config_lookup(&configuration, "allow_textmessage");
			if (!setting)
				return true;
			else
				return config_setting_get_bool(setting);
			break;
		case ENABLE_BAN:
			setting = config_lookup(&configuration, "enable_ban");
			if (!setting)
				return false;
			else
				return config_setting_get_bool(setting);
			break;
		case SYNC_BANFILE:
			setting = config_lookup(&configuration, "sync_banfile");
			if (!setting)
				return false;
			else
				return config_setting_get_bool(setting);
			break;
		default:
			doAssert(false);
	}
}
开发者ID:Hello71,项目名称:umurmur,代码行数:30,代码来源:conf.c


示例2: dvfs_read_from_config

int dvfs_read_from_config(void * vp, struct config_t * cfg, char * buffer, 
                          char * prefix) {
  config_setting_t *setting;
  struct dvfs_information * info = vp;
  int was_set = 0;
  info->freq_before = 0;
  info->freq_after = 0;
  sprintf(buffer, "%s.%s_freq_before", prefix, DVFS_CONFIG_STRING);
  setting = config_lookup(cfg, buffer);
  if (setting) {
    info->freq_before = config_setting_get_int(setting);
#ifdef VERBOSE
    fprintf(stderr,"%s = %" PRId32 "\n",buffer,info->freq_before);
#endif
    was_set = 1;
  }
  sprintf(buffer, "%s.%s_freq_after", prefix, DVFS_CONFIG_STRING);
  setting = config_lookup(cfg, buffer);
  if (setting) {
    info->freq_after = config_setting_get_int(setting);
#ifdef VERBOSE
    fprintf(stderr,"%s = %" PRId32 "\n",buffer,info->freq_after);
#endif
    was_set = 1;
  }
  return was_set;
}
开发者ID:rschoene,项目名称:libadapt,代码行数:27,代码来源:dvfs.c


示例3: configureTuner

void configureTuner(config_t *propConfig) {
    config_setting_t *blockSetting = config_lookup(propConfig, "tuner.block");
    config_setting_t *gridSetting = config_lookup(propConfig, "tuner.grid");

    if (blockSetting != NULL && gridSetting != NULL) {
        int length = config_setting_length(blockSetting); // Only need the length of one metric
        performanceMetricCount = length;
        performanceMetric.blockDimList = malloc(sizeof(CudaDim) * length);
        performanceMetric.gridDimList = malloc(sizeof(CudaDim) * length);
        int i;
        for (i = 0; i < length; ++i) {
            int x, y, z;
            config_setting_t *block = config_setting_get_elem(blockSetting, i);
            config_setting_t *grid = config_setting_get_elem(gridSetting, i);

            config_setting_lookup_int(block, "x", &x);
            config_setting_lookup_int(block, "y", &y);
            config_setting_lookup_int(block, "z", &z);
            performanceMetric.blockDimList[i].x = (uint32_t) x;
            performanceMetric.blockDimList[i].y = (uint32_t) y;
            performanceMetric.blockDimList[i].z = (uint32_t) z;

            config_setting_lookup_int(grid, "x", &x);
            config_setting_lookup_int(grid, "y", &y);
            config_setting_lookup_int(grid, "z", &z);
            performanceMetric.gridDimList[i].x = (uint32_t) x;
            performanceMetric.gridDimList[i].y = (uint32_t) y;
            performanceMetric.gridDimList[i].z = (uint32_t) z;
        }
    }
}
开发者ID:psawmora,项目名称:couldhopper-gpu,代码行数:31,代码来源:smpp_codec.c


示例4: qdb_config

static int qdb_config() {
	config_t cfg;
	config_setting_t *cfg_qdb;
	config_setting_t *cfg_interfaces;
	int status = 0;

	config_init(&cfg);
	if (config_read_file(&cfg,CONFPATH) == CONFIG_FALSE)
		goto err;

	cfg_qdb = config_lookup(&cfg,"qdb");
	if (cfg_qdb == NULL) goto err;
	cfg_interfaces = config_lookup(&cfg,"qdb/interfaces");
	if (cfg_interfaces == NULL) goto err;

	goto done;
err:
	printerr(config_error_text(&cfg));
	status = -1;

done:
	config_destroy(&cfg);

	return status;
}
开发者ID:Rabbitlancer,项目名称:qdb,代码行数:25,代码来源:startup.c


示例5: writeCfgCond

int writeCfgCond(void) {
	config_t cfg;
	config_setting_t *tminTemp = 0;
	config_setting_t *tmaxTemp = 0;
	config_setting_t *tminHum = 0;
	config_setting_t *tmaxHum = 0;
	config_setting_t *twebOR = 0;

	config_init(&cfg);

	if (!config_read_file(&cfg, config_cond_path))
	{
		printf("\n%s:%d - %s", config_error_file(&cfg), config_error_line(&cfg), config_error_text(&cfg));
		config_destroy(&cfg);
		return -1;
	}

	/* lookup variables in config file */
	tminTemp = config_lookup(&cfg, "minTemp");
	tmaxTemp = config_lookup(&cfg, "maxTemp");
	tminHum = config_lookup(&cfg, "minHum");
	tmaxHum = config_lookup(&cfg, "maxHum");
	twebOR = config_lookup(&cfg, "webOR");

	/* get variables from config file then print the variables that changed */
	if (config_setting_get_int(tminTemp) != minTemp) {
		printf("\nminTemp: %i -> ", config_setting_get_int(tminTemp));
		config_setting_set_int(tminTemp, minTemp);
		printf("%i", config_setting_get_int(tminTemp));
	}
	if (config_setting_get_int(tmaxTemp) != maxTemp) {
		printf("\nmaxTemp: %i -> ", config_setting_get_int(tmaxTemp));
		config_setting_set_int(tmaxTemp, maxTemp);
		printf("%i", config_setting_get_int(tmaxTemp));
	}
	if (config_setting_get_int(tminHum) != minHum) {
		printf("\nminHum: %i -> ", config_setting_get_int(tminHum));
		config_setting_set_int(tminHum, minHum);
		printf("%i", config_setting_get_int(tminHum));
	}
	if (config_setting_get_int(tmaxHum) != maxHum) {
		printf("\nmaxHum: %i -> ", config_setting_get_int(tmaxHum));
		config_setting_set_int(tmaxHum, maxHum);
		printf("%i", config_setting_get_int(tmaxHum));
	}
	if (config_setting_get_int(twebOR) != webOR) {
		printf("\nwebOR: %i -> ", config_setting_get_int(twebOR));
		config_setting_set_int(twebOR, webOR);
		printf("%i", config_setting_get_int(twebOR));
	}

	/* write the modified config file */
	config_write_file(&cfg, config_cond_path);
	config_destroy(&cfg);
	return 0;
}
开发者ID:az0ne,项目名称:Automated-Mushroom-Cultivator,代码行数:56,代码来源:mycodo.c


示例6: snprintf

static config_setting_t *find_node_libconfig(config_t *cfg,
					const char *field, struct swupdate_cfg *swcfg)
{
	config_setting_t *setting;
	struct hw_type *hardware;

	char node[1024];

	if (!field)
		return NULL;

	hardware = &swcfg->hw;

	if (strlen(swcfg->running_mode) && strlen(swcfg->software_set)) {
		/* Try with both software set and board name */
		if (strlen(hardware->boardname)) {
			snprintf(node, sizeof(node), "%s.%s.%s.%s.%s",
				NODEROOT,
				hardware->boardname,
				swcfg->software_set,
				swcfg->running_mode,
				field);
			setting = config_lookup(cfg, node);
			if (setting)
				return setting;
		}
		/* still here, try with software set and mode */
		snprintf(node, sizeof(node), "%s.%s.%s.%s",
			NODEROOT,
			swcfg->software_set,
			swcfg->running_mode,
			field);
		setting = config_lookup(cfg, node);
		if (setting)
			return setting;

	}

	/* Try with board name */
	if (strlen(hardware->boardname)) {
		snprintf(node, sizeof(node), "%s.%s.%s",
			NODEROOT,
			hardware->boardname,
			field);
		setting = config_lookup(cfg, node);
		if (setting)
			return setting;
	}
	/* Fall back without board entry */
	snprintf(node, sizeof(node), "%s.%s",
		NODEROOT,
		field);
	return config_lookup(cfg, node);
}
开发者ID:kartben,项目名称:swupdate,代码行数:54,代码来源:parser.c


示例7: main

int main(int argc, char **argv) {
	
	char SRVR[1000];
	char *p=SRVR;
	config_t config;
	config_init(&config);
	if ( config_read_file(&config, "/etc/snowflake.conf") == CONFIG_TRUE ) {
		printf("PARt 1\n");
		const config_setting_t *setting = config_lookup(&config, "server");
		
		if( setting != NULL) {
			p = config_setting_get_string(setting);
			printf("opened file\n");	
			printf("SERVER ADDRESS = %s\n",p);
		}
		else {
			printf("ERROR\n");
		}
	}
	else {
		fprintf(stderr, "%s:%d - %s\n", config_error_file(&config),
            config_error_line(&config), config_error_text(&config));
    config_destroy(&config);
    return(1);
	}
	
	
}
开发者ID:SwitchCase,项目名称:SnowFlake,代码行数:28,代码来源:smaller.c


示例8: mst_read_globals

int mst_read_globals(config_t *pconfig)
{
    int rv = -1;
    config_setting_t *globals;
    int intval = 0;

    // Load default globals value
    g_mst_conf.mpool_size = 80; // 80 MB
    g_mst_conf.mbuf_size = 16; // 16 MB
    g_mst_conf.nw_streams = 10; // 10 outstreams

    globals = config_lookup(pconfig, "globals");

    if (!globals) {
        fprintf(stderr, "No globals sections was found. Proceeding with defaults.\n");
        return CONFIG_TRUE;
    }

    rv = config_setting_lookup_int(globals, "mpool", &intval);
    if (CONFIG_TRUE == rv) {
        g_mst_conf.mpool_size = intval; 
    }
    rv = config_setting_lookup_int(globals, "mbuf", &intval);
    if (CONFIG_TRUE == rv) {
        g_mst_conf.mbuf_size = intval; 
    }
    rv = config_setting_lookup_int(globals, "nw_streams", &intval);
    if (CONFIG_TRUE == rv) {
        g_mst_conf.nw_streams = intval; 
    }

    return CONFIG_TRUE;
}
开发者ID:hi2arun,项目名称:mstunnel,代码行数:33,代码来源:mst_config.c


示例9: upd8_config_parse

// TODO: audit exit routes to "unset"/"unalloc" values.
int upd8_config_parse(upd8_config_t *config, const char *config_file) {
  // TODO: check that config is not null.
  config_t *cfg = malloc(sizeof(config_t));

  config_init(cfg);

  if (!config_read_file(cfg, config_file)) {
    fprintf(stderr, "%s:%d - %s\n", config_error_file(cfg),
            config_error_line(cfg), config_error_text(cfg));
    config_destroy(cfg);
    return EXIT_FAILURE;
  }

  config->cfg = cfg;

  config_setting_t *settings;
  settings = config_lookup(cfg, settings_path);

  if (settings == NULL) {
    fprintf(stderr, "Unable to find %s in %s\n", settings_path, config_file);
    config_destroy(cfg);
    return EXIT_FAILURE;
  }

  config->num_sources = config_setting_length(settings);
  config->sources = malloc(config->num_sources * sizeof(upd8_source_t));
  for (int i = 0; i < config->num_sources; ++i) {
    config_setting_t *individual_config = config_setting_get_elem(settings, i);
    upd8_source_parse(&(config->sources[i]), individual_config);
  }
  return 0;
}
开发者ID:shalecraig,项目名称:updatemgr,代码行数:33,代码来源:config.c


示例10: config_lookup

const char *config_get_string_elem(config_t *config, char *setting, int element, const char *initial)
{
	const char *value;
	config_setting_t *config_setting = config_lookup(config,setting);

	PRINT_SETTING;
	if (config_setting == NULL)
	{
		PRINT_NOT_FOUND;
		value = initial;
	}
	else
	{
		if ((value = config_setting_get_string_elem(config_setting,element)) == NULL)
		{
			PRINT_NOT_FOUND;
			value = initial;
		}
	}

	PRINT_VALUE_STR;

	return value;

}
开发者ID:TheKeyboardist,项目名称:interface,代码行数:25,代码来源:cfg.c


示例11: main

int main()
{
  /* Initialize the configuration */
  config_init(&cfg);

  /* Load the file */
  printf("loading [sample.cfg]..");
  if (!config_read_file(&cfg, "sample.cfg"))
    printf("failed\n");
  else
  {
    printf("ok\n");
    
    /* Display the "values" array */
    printf("display \"values\"..");
    config_setting_t *array = config_lookup(&cfg, "values");
    if (!array)
      printf("failed\n");
    else
    {
      long value1,value2;
      value1 = config_setting_get_int_elem(array, 0);
      value2 = config_setting_get_int_elem(array, 1);
      printf("[%lu %lu]..ok\n", value1, value2);

      printf("Done!\n");
    }

  }

  /* Free the configuration */
  config_destroy(&cfg);

  return 0;
}
开发者ID:aveek0218,项目名称:ImpalaPythia,代码行数:35,代码来源:sample2.c


示例12: UTF8_Encode

config_setting_t *cfgLookup(const config_t *config, const TCHAR *path)
{
	char uPath[MAX_PATH];

	UTF8_Encode(path, uPath, MAX_PATH);
	return config_lookup(config, uPath);
}
开发者ID:dhirallin,项目名称:PlayMailer,代码行数:7,代码来源:libconfig_helper.c


示例13: processRequest

static int processRequest(char *request) {
    int count = 0;
    int responseTotal = 0;
    
    config_setting_t *responseConfig = NULL;
    config_setting_t *responseCurrent = NULL;
    const char *responseValue = NULL;
    const char *requestName = NULL;
    const char *requestValue = NULL;
    long volume;
    
    pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
    pthread_mutex_lock(&lockConfig);
    
    responseConfig = config_lookup(&config, "response");
    responseTotal = config_setting_length(responseConfig);
    
    for(count = 0; count < responseTotal; count++) {
        responseCurrent = config_setting_get_elem(responseConfig, count);
        if((responseValue = config_setting_get_string_elem(responseCurrent, 1)) != NULL &&
        strcmp(responseValue, request) == 0) {
            responseValue = config_setting_get_string_elem(responseCurrent, 2);
            if(config_setting_get_bool_elem(responseCurrent, 0) == 1) { // formulating default response
            
                pthread_mutex_unlock(&lockConfig);
                pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
                
                common_data.interface->reply(responseValue, strlen(responseValue));
            }
            else { // attempt to formulate custom response
                requestName = config_setting_name(responseCurrent);
                
                pthread_mutex_unlock(&lockConfig);
                pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
                
                if(strcmp(requestName, "volume") == 0) {
                    if(getMixer(&volume) == EXIT_FAILURE) {
                        return EXIT_FAILURE;
                    }
                    replyVolumeCommand(&volume);
                }
                else {
                    statusInfo.retrieve(requestName, &requestValue);
                    if(requestValue != NULL)
                        replyDeviceCommand((char *)requestName, (char *)requestValue);
                    else // custom response not possible, reverting to default value
                        replyDeviceCommand((char *)requestName, (char *)responseValue);
                }
            }
            syslog(LOG_DEBUG, "Successfully processed request: %s", request);
            return EXIT_SUCCESS; // command is matched, returning
        }
        else {
            pthread_mutex_unlock(&lockConfig);
            pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
        }
    }
    syslog(LOG_DEBUG, "Could not identify request: %s", request);
    return EXIT_SUCCESS;
}
开发者ID:therealmuffin,项目名称:synchronator,代码行数:60,代码来源:processAscii.c


示例14: thread_manager_mod_init

void thread_manager_mod_init(na_module_t *module, void *userdata)
{
	char				**k_setting;
	config_setting_t	*k;
	char				tmpbuffer[256];

	assert( module != NULL );
	if ( module->object_new )
		module->data = (*module->object_new)(userdata);
	if ( module->data == NULL )
	{
		l_errorf("failed to initialize static module %s", module->name);
		return;
	}

	/* search and inject configuration
	 * noya.modules.<modulename>.<key> = <value>
	 */
	k_setting = module->settings;
	if ( k_setting )
	{
		while ( *k_setting != NULL )
		{
			snprintf(tmpbuffer, sizeof(tmpbuffer), "noya.modules.%s.%s",
				module->name, *k_setting);
			k = config_lookup(&g_config, tmpbuffer);
			if ( k != NULL )
				(*module->object_config)(module->data, *k_setting, k);
			k_setting++;
		}
	}

	if ( module->object_prepare )
		(*module->object_prepare)(module->data, NULL);
}
开发者ID:tito,项目名称:noya,代码行数:35,代码来源:context_noya.c


示例15: configure_cgi_handlers

void configure_cgi_handlers(spade_server* server, config_t* configuration) {
    config_setting_t* handler_settings = config_lookup(configuration,
            "cgi.handlers");
    int cgi_handler_count = config_setting_length(handler_settings);

    for (int n = 0; n < cgi_handler_count; n++) {
        config_setting_t* handler_setting = config_setting_get_elem(
                handler_settings, n);
        const char* handler = NULL;
        config_setting_lookup_string(handler_setting, "handler", &handler);

        const char* url = NULL;
        config_setting_lookup_string(handler_setting, "url", &url);

        if(!register_cgi_handler(server, url, handler)) {
            log4c_category_log(log4c_category_get("spade"), LOG4C_PRIORITY_INFO,
                    "Registered CGI handler '%s' for URL prefix '%s'",
                    handler, url);
        }
    }
    if (server->cgi_handler_count == 0) {
        log4c_category_log(log4c_category_get("spade"), LOG4C_PRIORITY_INFO,
                "No CGI handlers registered");
    } else {
        log4c_category_log(log4c_category_get("spade"), LOG4C_PRIORITY_INFO,
                "Registered a total of %d CGI handlers",
                server->cgi_handler_count);
    }
}
开发者ID:peplin,项目名称:spade,代码行数:29,代码来源:config.c


示例16: configure_clay_handlers

void configure_clay_handlers(spade_server* server, config_t* configuration) {
    config_setting_t* handler_settings = config_lookup(configuration,
            "clay.handlers");
    if (!handler_settings) {
        log4c_category_log(log4c_category_get("spade"), LOG4C_PRIORITY_INFO,
                "No Clay handlers registered");
        return;
    }
    int clay_handler_count = config_setting_length(handler_settings);

    for (int n = 0; n < clay_handler_count; n++) {
        config_setting_t* handler_setting = config_setting_get_elem(
                handler_settings, n);
        const char* endpoint = NULL;
        config_setting_lookup_string(handler_setting, "endpoint", &endpoint);

        const char* url = NULL;
        config_setting_lookup_string(handler_setting, "url", &url);

        if(!register_clay_handler(server, url, endpoint)) {
            log4c_category_log(log4c_category_get("spade"), LOG4C_PRIORITY_INFO,
                    "Registered Clay handler for URL prefix '%s' at endpoint %s",
                    url, endpoint);
        }
    }
    if (server->clay_handler_count == 0) {
        log4c_category_log(log4c_category_get("spade"), LOG4C_PRIORITY_INFO,
                "No Clay handlers registered");
    } else {
        log4c_category_log(log4c_category_get("spade"), LOG4C_PRIORITY_INFO,
                "Registered a total of %d Clay handlers",
                server->clay_handler_count);
    }
}
开发者ID:peplin,项目名称:spade,代码行数:34,代码来源:config.c


示例17: print_layouts

void print_layouts(int num_frame)
{
	
	config_setting_t *category_list, *category, *layout_list, *layout;
	config_t layout_config;
	int layout_length, i;
	const char* ascii_image;

	config_init(&layout_config);
	config_read_file(&layout_config, "./layout.cfg");
	
	category_list = config_lookup(&layout_config, "application.layout_group");
	category = config_setting_get_elem(category_list, num_frame - MIN_NUM_FRAME);
	
	layout_list = config_setting_get_member(category, "layout");
	layout_length = config_setting_length(layout_list);
	for(i = 0; i < layout_length; i++)
	{
		layout = config_setting_get_elem(layout_list, i);
		config_setting_lookup_string(layout, "image", &ascii_image);
		printf(" %c)\n", 'a' + i);
		printf("%s\n", ascii_image);
	}
	
	config_destroy(&layout_config);
}
开发者ID:ChiaraCaiazza,项目名称:collageMaker,代码行数:26,代码来源:layout.c


示例18: privio_reader

int privio_reader(config_t *cfg, const char **args){
  int in_file, n;
  void *buf;
  config_setting_t *read_block_size;
  long long block_size;

  privio_debug(cfg, DBG_INFO, "Reading from %s\n", args[0]);
  in_file = open(args[0], O_RDONLY);

  if (in_file == -1){
    privio_debug(cfg, DBG_VERBOSE, "Error opening file %s: %s\n", args[0], strerror(errno));
    return errno;
  }

  privio_debug(cfg, DBG_DEBUG3, "Opened %s as descriptor %d\n", args[0], in_file);

  read_block_size = config_lookup(cfg, "privio.io.reader_block_size");
  block_size = config_setting_get_int(read_block_size);

  buf = (void*)malloc(block_size);

  /* read from stdin, write to fp */
  while ((n = read(in_file, buf, block_size)) > 0){
    write(fileno(stdout), buf, n);
  }

  if (n == -1)
    privio_debug(cfg, DBG_VERBOSE, "Error reading file %s: %s\n", args[0], strerror(errno));

  privio_debug(cfg, DBG_INFO, "Closing %s\n", args[0]);

  close(in_file);
  
  return 0;
}
开发者ID:brlindblom,项目名称:privio,代码行数:35,代码来源:reader.c


示例19: read_dokan_config

/*! \brief read dokan config from local config */
static int read_dokan_config(config_t * config)
{
	config_setting_t * dokan_setting = config_lookup(config, "dokan");
	if (dokan_setting == NULL)
	{
		message(LOG_INFO, FACILITY_CONFIG, "No dokan section was found in local config.\n");
		return CONFIG_TRUE;
	}

	int rv;
	const char * volume_name;
	/* dokan::volume_name */
	rv = config_setting_lookup_string(dokan_setting, "volume_name", &volume_name);
	if (rv == CONFIG_TRUE)
	{
		xmkstring(&(zfs_config.dokan.volume_name), volume_name);
	}

	const char * file_system_name;
	/* dokan::filesystem_name */
	rv = config_setting_lookup_string(dokan_setting, "file_system_name", &file_system_name);
	if (rv == CONFIG_TRUE)
	{
		xmkstring(&(zfs_config.dokan.file_system_name), file_system_name);
	}

	return CONFIG_TRUE;
}
开发者ID:snua12,项目名称:zlomekfs,代码行数:29,代码来源:local_config.c


示例20: load_mods

static int
load_mods(config_t *config, config_setting_t *setting)
{
    int err;
    unsigned int mod_count;
    int i;
    const char* mod_name;
    const char* mod_so;
    const char* mod_ident;
    config_setting_t *mod_setting;
    err = 0;

    fprintf(stderr, "load mods from config\n");
    setting = config_lookup(config, "mods");
    if (setting != NULL) {
        mod_count = config_setting_length(setting);
        for (i = 0; i < mod_count; ++i) {
            mod_setting = config_setting_get_elem(setting, i);
            if (mod_setting) {
                if (!config_setting_lookup_string(mod_setting,
                                                  "name",
                                                  &mod_name) ||
                        !config_setting_lookup_string(mod_setting,
                                                      "so",
                                                      &mod_so)) {
                    continue;
                }
                if (!config_setting_lookup_string(mod_setting,
                                                  "ident",
                                                  &mod_ident)) {
                    mod_ident = NULL;
                }
                fprintf(stderr, "load module %s - %s - [%s]\n",
                        mod_name, mod_so, mod_ident);
                module_t *mod = module_open(mod_name,
                                            mod_ident,
                                            mod_so,
                                            RTLD_NOW);
                if (!mod) {
                    err = 1;
                    break;
                }
                if (module_map_insert(&g_config.module_root, mod) == NULL) {
                    err = 1;
                    module_close(mod);
                    break;
                }
                if (module_call_init_func(mod, &g_config)) {
                    fprintf(stderr, "ERROR %s returned not 0\n", mod->name);
                    err = 1;
                    module_close(mod);
                    break;
                }
            }
        }
    }

    return err;
}
开发者ID:MarkusPfundstein,项目名称:Network-HTTP-Server,代码行数:59,代码来源:main.c



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ config_lookup_int函数代码示例发布时间:2022-05-30
下一篇:
C++ config_load函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap