如下面的例子:
其中,属性值还支持变量替换,如该例的属性:
log = $path/log
其值最终会被替换为./module_a/log
本文假设你已经安装好了OpenSSL,并且持有一份1.1.1的源码。
配置文件相关的头文件为conf.h、源文件实现在crypto/conf目录中。
这个结构定义了单个配置项的数据结构。主要字段含义:
section —— 表示一个配置段的名称。
name —— 表示在该配置段下的属性名称。
value —— 表示对应属性的值。
这个结构定义了配置抽象方法集合。主要字段含义:
name —— 配置方法名称。
create —— 根据配置抽象方法,创建一个配置项结构,返回其指针。
init —— 初使化配置。
destroy —— 释放所有配置。
destroy_data —— 仅释放所有配置项数据,不释放配置本身。
load_bio —— 以BIO的方式加载配置。
dump —— 打印配置项到BIO中。
is_number —— 判断指定字符是否数字。
to_int —— 将字符转换为数字。
load —— 从文件(派迹重新)加载所有配置。
这个结构定义了世激配置存储数据结构。主要字段含义:
meth —— 抽象方法集合。
meth_data —— 附加的内存数据,暂时还没有明确用途。
data —— 配置项哈希表。
在1.1.1中,大多数的数据结构已经不再向使用者开放,从封装的角度来看,这是更合理的。如果你在头文件中找不到结构定义,不妨去源码中搜一搜。
CONF *NCONF_new(CONF_METHOD *meth)
指定一个抽象方法集合,创建配置存储结构。
成功返回有效指针,失败返回NULL。
如果meth传入NULL,表示使用默认的抽象方法。
void NCONF_free(CONF *conf)
释放配置存储。
int NCONF_load(CONF *conf, const char *file, long *eline)
从指定文件加载配置,eline表示出错时输出的行号。
成功返回1,失败返回0。
int NCONF_load_bio(CONF *conf, BIO *bp, long *eline)
从BIO加载配置,eline表示出错搜羡袜时输出的行号。
成功返回1,失败返回0。
int NCONF_load_fp(CONF *conf, FILE *fp, long *eline)
NCONF_load_bio()的FILE版本。
char *NCONF_get_string(const CONF *conf, const char *group, const char *name)
从配置中,获取指定分组下的属性值。
成功返回C风格字符串,失败返回NULL。
若group传NULL,表示取全局属性。
int NCONF_get_number_e(const CONF *conf, const char *group, const char *name, long *result)
从配置中,获取指定分组下的数字属性值,数字值输出到result中。
成功返回1,失败返回0。
若group传NULL,表示取全局属性。
STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf, const char *section)
返回指定分组下的配置项堆栈集合。section不能为NULL。
成功返回有效堆栈指针,失败返回NULL。
下面这个例子演示了使用配置API进行基本的文件 *** 作。
test.cnf文件内容:
user = root
[module_a]
path = ./module_a
log = $path/log
filecount = 10
输出:
global user:[root]
module_a::path:[./module_a]
module_a::log:[./module_a/log]
ret:[1] module_a::filecount:[10]
下面这个例子演示了使用BIO读取配置文件,并且遍历指定的分组。
输出:
section:[module_a] name:[path] value:[./module_a]
section:[module_a] name:[log] value:[./module_a/log]
section:[module_a] name:[filecount] value:[10]
你玩的樱缺空是pc版的,在扮唤根目录下有一个文件名脊瞎字bio3.ini可以用记事本打开的,打开后在里面可以看见记录文件的路径,比如 [General] Save=G:\生化危机3 Movie=G:\生化危机3\zmovie 你把它修改成你的游戏的根目录再保存就可以了。Tomcat在我们日常开发B/S项目时常常进行使用,当然在Spring全家桶中我们现在也是使用的内置tomcat,但是很多人可能不会对于tomcat进行深入性研究,其实在我们的产品进行性能提升时,web中间件的优化也是占有很大一部分,而tomcat中采用不同的模式对应的使用场景下性能也是不一样的,因此本篇文章将对于这几个模式进行简单讲解,后如帆续我们会对于不同的模式进行配置方式讲解。
阻塞式I/O *** 作,这个模式使用的是Java I/O *** 作。该运行方式性能最低。
基于Java 缓存区提供非阻塞式I/O *** 作,相比BIO,该运行方式有更好的性能。当前tomcat7及以上版本默认采用该模式。
以JNI的形式调用Apache HTTP服务器的核心动态链接轿灶库来处理文件读取或网络传输 *** 作,有效提高静态文件的处理性能。该运行方式对于高并发场景性能最高(当然高并发还有其他优化点)。闭橡扮
注:APR配置方式可以参见 我的文章
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)