libconfig写配置文件
config用法
config用法摘要:1.配置文件概述2.配置文件的使用方法3.配置文件的应用场景4.配置文件的优缺点5.配置文件的实践案例正文:config用法在众多编程语言和软件开发中都有着广泛的应用,它允许开发者对程序的运行环境进行自定义。
在这里,我们将详细介绍config的使用方法、应用场景、优缺点以及实践案例。
一、配置文件概述配置文件,又称为配置参数文件,是一种用于控制程序运行的文件。
它通常包含了程序所需的运行时环境信息、设置参数以及数据。
通过使用配置文件,开发者可以轻松地在不修改程序代码的情况下更改程序的行为。
二、配置文件的使用方法在实际开发中,配置文件的使用方法因编程语言和应用场景而异。
但一般来说,配置文件的使用步骤如下:1.创建配置文件:根据项目需求,创建一个或多个配置文件。
常见的文件格式有INI、JSON、XML等。
2.编写配置内容:在配置文件中,编写相应的键值对,以表示程序运行所需的环境变量、参数设置等。
3.读取配置文件:在程序中,使用相应的库或函数读取配置文件内容。
例如,在Python中,可以使用`configparser`库读取INI格式的配置文件。
4.解析配置内容:程序需要对配置文件中的内容进行解析,将键值对映射到相应的变量或对象。
5.使用配置内容:在程序运行过程中,根据需要使用解析后的配置变量或对象。
三、配置文件的应用场景配置文件的应用场景包括但不限于以下几种:1.环境变量设置:如数据库连接参数、服务器地址、端口号等。
2.程序参数设置:如日志级别、输出格式、缓存大小等。
3.业务配置:如权限设置、功能开关、计费策略等。
4.数据配置:如数据源地址、数据格式、数据范围等。
四、配置文件的优缺点优点:1.灵活性:通过修改配置文件,可以轻松地更改程序的运行环境,而无需修改程序代码。
2.模块化:将配置与程序代码分离,有助于代码的可维护性和可读性。
3.易于扩展:配置文件可以方便地添加、修改或删除配置项,以满足不同需求。
Platform Builder之配置文件
Platform Builder之配置文件(名词解释)2007-12-08 23:20名词解--我每次都打不出这个释字,因为我记错了它的写法,语文就是差了----------------------------------从阿冰的blog转来,但没太多时间细看完,就挂在这里,有时间再看一、源码配置文件:源码配置文件用于编译源码时使用。
这里的源码是指Windows CE公开的源码,如驱动程序、系统应用程序等。
PB在编译平台时将这些公开的源码即时编译并将编译链接后的文件复制到平台工程子目录里。
记得前面讲过PB 在开始编译时调用cebuild.bat批处理文件,cebuild.bat执行的一个步骤是针对_DEPTREES 变量指定的所有目录执行 build.exe和sysgen.bat。
build.exe在编译源码文件时会寻找当前目录下存放的源码配置文件,根据配置文件的信息来编译和链接,产生EXE、DLL、LIB文件。
CE的源码文件所在的目录中都包含了相应的配置文件,这些配置文件只对当前目录或者子目录的源码有效,具体分为三种:DIRS文件:文件内容和解释如下:DIRS:指定哪个子目录的源码要被编译DIRS_CE:只有为CE编写的源码才被编译OPTIONAL_DIRS:指定可选的目录(很少使用这个选项),可以只编译指定目录而不是全部编译。
SOURCES文件:通过宏定义来指定编译和链接涉及到的文件,文件内容和解释如下:TARGETNAME:指定编译链接产生的主文件名TARGETTYPE:指定编译链接产生的文件的类型(决定了扩展名)。
文件共分三种:.lib(LIBRARY)和.dll(DYNLINK)和.exe(PROGRAM)。
TARGETLIBS:定义.lib链接文件,链接时需要这个文件。
SOURCES:源码文件。
包含扩展名为*.c或*.h 或*.cpp的文件。
EXEENTRY:.exe文件的执行代码入口点。
kconfiglib 语法
kconfiglib 语法什么是kconfiglibkconfiglib是一个用于解析和处理Linux内核配置文件的Python库。
该库提供了一个简化的接口,使得用户能够以编程的方式读取、修改和生成内核配置文件。
kconfiglib遵循Linux内核配置文件的语法规则,并提供了丰富的功能,使用户能够轻松地操作内核配置文件。
内核配置文件的作用内核配置文件是Linux内核中重要的配置文件之一,它决定了编译和构建内核时所包含的功能和选项。
通过配置文件,用户可以选择需要的内核功能和模块,使得编译出来的内核符合用户的需求和要求。
kconfiglib的使用安装kconfiglib在使用kconfiglib之前,需要先安装该库。
可以通过pip命令进行安装:$ pip install kconfiglib加载内核配置文件使用kconfiglib可以轻松地加载内核配置文件,并解析其中的内容。
以下是加载内核配置文件的示例代码:from kconfiglib import Kconfig# 创建Kconfig对象kconfig = Kconfig()# 加载内核配置文件kconfig.load_config("path/to/config")# 解析配置文件kconfig.parse_config()遍历内核配置项kconfiglib提供了丰富的接口,使用户能够方便地遍历内核配置项,并获取配置项的信息。
以下是遍历内核配置项的示例代码:# 遍历所有配置项for item in kconfig:# 获取配置项的名称name = # 获取配置项的类型type = item.type# 获取配置项的值value = item.str_value# 获取配置项的帮助信息help = item.help修改内核配置项的值使用kconfiglib可以方便地修改内核配置项的值。
以下是修改内核配置项值的示例代码:# 遍历所有配置项for item in kconfig:# 如果配置项的名称为CONFIG_SOME_OPTIONif == "CONFIG_SOME_OPTION":# 修改配置项的值为yitem.set_user_value("y")生成内核配置文件使用kconfiglib可以轻松地生成内核配置文件,将修改后的配置项写入到文件中。
配置文件怎么写
1.怎么写配置文件配置文件可以是任何形式,可以是xml或者txt都行,比如数据库的连接配置比如://这句一定要有,下面的你随意写这就是个配置文件,在winform里面直接用DataSet的ReadXml()方法就能读取到里面的值。
2.怎么写c#的配置文件#region API函数声明 [Dllimport("kernel32")]//返回0表示失败,非0为成功 private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); [Dllimport("kernel32")]//返回取得字符串缓冲区的长度 private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); #endregion///// 读ini文件数据 ////// 默认值 /// 文件地址 /// public static string ReadIniData(string Section, string Key, string NoText, string iniFilePath) { if (File.Exists(iniFilePath)) { StringBuilder temp = new StringBuilder(1024); GetPrivateProfileString(Section, Key, NoText, temp, 1024, iniFilePath); return temp.ToString(); } else { return String.Empty; } } ////// 写ini文件数据 ////// /// /// /// 文件地址 /// public static bool WriteIniData(string Section, string Key, string Value, string iniFilePath) { if (File.Exists(iniFilePath)) { long OpStation = WritePrivateProfileString(Section, Key, Value, iniFilePath); if (OpStation == 0) { return false; } else { return true; } } else { return false; } } ////// 读取文件内容 /// 当文件不存在是引发异常 ////// 文件全路径 /// 编码方式 /// 返回文件内容 /// public static string ReadData(string pathandname, Encoding encoder) { if (!File.Exists(pathandname)) return string.Empty; try{ using (FileStream fs = new FileStream(pathandname, FileMode.Open)) using (StreamReader sr = new StreamReader(fs, encoder)) return sr.ReadToEnd(); } catch { return string.Empty; } }。
linux centos mysql配置文件说明
Linux centos 6 mysql 配置文件说明在软件包rpm中安装mysql时,其中在文件夹usr/share/doc/mysql-server5.16中就有五个文件,这些文件就在默认下根据使用内在的大小提供的五种级别的配置标准。
下面是f配置文件的详细说明。
更多详细内容,可以进“潘田博客”查找相关文章。
# Example MySQL config file for medium systems.## This is for a system with little memory (32M - 64M) where MySQL plays# an important part, or systems up to 128M where MySQL is used together with # other programs (such as a web server)## MySQL programs look for option files in a set of# locations which depend on the deployment platform.# You can copy this option file to one of those# locations. For information about these locations, see:# /doc/mysql/en/option-files.html## In this file, you can use all long options that a program supports.# If you want to know which options a program supports, run the program# with the "--help" option.# The following options will be passed to all MySQL clients[client] // 在mysql命令下链接数据库时用的默认值#password = your_password // 登录时的默认密码,默认配置中无效port = 3306 //默认端口是3306socket = /var/lib/mysql/mysql.sock //mysq socket连接的文件;# Here follows entries for some specific programs# The MySQL server[mysqld] //这块是mysql服务器配置指令port = 3306 //mysql 服务器监听的端口号 ,默认3306socket = /var/lib/mysql/mysql.sock //socket链接文件skip-locking //外部数据锁key_buffer_size = 16M //索引区的RMA内在大小默认是8M,现在是16Mmax_allowed_packet = 1M //系统最大的缓冲区值table_open_cache = 64 //表高速缓存区的大小sort_buffer_size = 512K //排序高速缓存的大小net_buffer_length = 8K //指定链接缓冲区与结果缓冲区的初始大小read_buffer_size = 256K //读表操作缓冲区的大小read_rnd_buffer_size = 512K //随机排序的缓冲区大小myisam_sort_buffer_size = 8M //# Don't listen on a TCP/IP port at all. This can be a security enhancement, # if all processes that need to connect to mysqld run on the same host.# All interaction with mysqld must be made via Unix sockets or named pipes. # Note that using this option without enabling named pipes on Windows# (via the "enable-named-pipe" option) will render mysqld useless!##skip-networking //不能过TCP网络与客户端链接,而是通过socket进行链接# Replication Master Server (default)# binary logging is required for replicationlog-bin=mysql-bin //用于设置二进制的日志文件名,日志文件可用于数据恢复到最后状态# binary logging format - mixed recommendedbinlog_format=mixed# required unique id between 1 and 2^32 - 1# defaults to 1 if master-host is not set# but will not function as a master if omittedserver-id = 1 //设置服务器进程的id号,在设置主从服务器时用到# Replication Slave (comment out master section to use this)## To configure this host as a replication slave, you can choose between# two methods :## 1) Use the CHANGE MASTER TO command (fully described in our manual) -# the syntax is:## CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,# MASTER_USER=<user>, MASTER_PASSWORD=<password> ;## where you replace <host>, <user>, <password> by quoted strings and# <port> by the master's port number (3306 by default).## Example:## CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,# MASTER_USER='joe', MASTER_PASSWORD='secret';## OR## 2) Set the variables below. However, in case you choose this method, then# start replication for the first time (even unsuccessfully, for example # if you mistyped the password in master-password and the slave fails to # connect), the slave will create a file, and any later# change in this file to the variables' values below will be ignored and # overridden by the content of the file, unless you shutdown # the slave server, delete and restart the slaver server.# For that reason, you may want to leave the lines below untouched# (commented) and instead use CHANGE MASTER TO (see above)## required unique id between 2 and 2^32 - 1# (and different from the master)# defaults to 2 if master-host is set# but will not function as a slave if omitted#server-id = 2## The replication master for this slave - required#master-host = <hostname>## The username the slave will use for authentication when connecting# to the master - required#master-user = <username>## The password the slave will authenticate with when connecting to# the master - required#master-password = <password>## The port the master is listening on.# optional - defaults to 3306#master-port = <port>## binary logging - not required for slaves, but recommended#log-bin=mysql-bin# Uncomment the following if you are using InnoDB tables#innodb_data_home_dir = /var/lib/mysql#innodb_data_file_path = ibdata1:10M:autoextend#innodb_log_group_home_dir = /var/lib/mysql# You can set .._buffer_pool_size up to 50 - 80 %# of RAM but beware of setting memory usage too high#innodb_buffer_pool_size = 16M#innodb_additional_mem_pool_size = 2M# Set .._log_file_size to 25 % of buffer pool size#innodb_log_file_size = 5M#innodb_log_buffer_size = 8M#innodb_flush_log_at_trx_commit = 1#innodb_lock_wait_timeout = 50[mysqldump] //mysqldump工具使用的配置Quick //表示支持较大的数据库的转存max_allowed_packet = 16M //数据表转存包的最大值[mysql] //启动mysql服务的配置no-auto-rehash //些选项让服务器较快的启动# Remove the next comment character if you are not familiar with SQL #safe-updates //启用安全更新功能[myisamchk] //指定使用smchk工具所修复表时的配置key_buffer_size = 20M //存放索引块缓冲区的大小sort_buffer_size = 20M 设置排序时所用的缓冲区的大小read_buffer = 2M 读操作时所使用的缓冲区的大小write_buffer = 2M 写操作时所使用的缓冲区的大小[mysqlhotcopy] 采用热贝时使用的工具interactive-timeout 热贝时的最大超时时间,默认2880S。
configure 配置参数
configure 配置参数'configure'脚本有大量的命令行选项.对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的.带上'-- help'选项执行'configure'脚本可以看到可用的所有选项.尽管许多选项是很少用到的,但是当你为了特殊的需求而configure一个包时,知道他们的存在是很有益处的.下面对每一个选项进行简略的介绍:--cache-file=FILE'configure'会在你的系统上测试存在的特性(或者bug!).为了加速随后进行的配置,测试的结果会存储在一个cache file里.当configure一个每个子树里都有'configure'脚本的复杂的源码树时,一个很好的cache file的存在会有很大帮助.--help输出帮助信息.即使是有经验的用户也偶尔需要使用使用'--help'选项,因为一个复杂的项目会包含附加的选项.例如,GCC包里的'configure'脚本就包含了允许你控制是否生成和在GCC中使用GNU汇编器的选项.--no-create'configure'中的一个主要函数会制作输出文件.此选项阻止'configure'生成这个文件.你可以认为这是一种演习(dry run),尽管缓存(cache)仍然被改写了.--quiet--silent当'configure'进行他的测试时,会输出简要的信息来告诉用户正在作什么.这样作是因为'configure'可能会比较慢,没有这种输出的话用户将会被扔在一旁疑惑正在发生什么.使用这两个选项中的任何一个都会把你扔到一旁.(译注:这两句话比较有意思,原文是这样的:If there was no such output, the user would be left wondering what is happening. By using this option, you too can be left wondering!)--version打印用来产生'configure'脚本的Autoconf的版本号.--prefix=PEWFIX'--prefix'是最常用的选项.制作出的'Makefile'会查看随此选项传递的参数,当一个包在安装时可以彻底的重新安置他的结构独立部分. 举一个例子,当安装一个包,例如说Emacs,下面的命令将会使Emacs Lisp file被安装到"/opt/gnu/share":$ ./configure --prefix=/opt/gnu--exec-prefix=EPREFIX与'-- prefix'选项类似,但是他是用来设置结构倚赖的文件的安装位置.编译好的'emacs'二进制文件就是这样一个问件.如果没有设置这个选项的话,默认使用的选项值将被设为和'--prefix'选项值一样.--bindir=DIR指定二进制文件的安装位置.这里的二进制文件定义为可以被用户直接执行的程序.--sbindir=DIR指定超级二进制文件的安装位置.这是一些通常只能由超级用户执行的程序.--libexecdir=DIR指定可执行支持文件的安装位置.与二进制文件相反,这些文件从来不直接由用户执行,但是可以被上面提到的二进制文件所执行.--datadir=DIR指定通用数据文件的安装位置.--sysconfdir=DIR指定在单个机器上使用的只读数据的安装位置.--sharedstatedir=DIR指定可以在多个机器上共享的可写数据的安装位置.--localstatedir=DIR指定只能单机使用的可写数据的安装位置.--libdir=DIR指定库文件的安装位置.--includedir=DIR指定C头文件的安装位置.其他语言如C++的头文件也可以使用此选项.--oldincludedir=DIR指定为除GCC外编译器安装的C头文件的安装位置.--infodir=DIR指定Info格式文档的安装位置.Info是被GNU工程所使用的文档格式.--mandir=DIR指定手册页的安装位置.--srcdir=DIR这个选项对安装没有作用.他会告诉'configure'源码的位置.一般来说不用指定此选项, 因为'configure'脚本一般和源码文件在同一个目录下.--program-prefix=PREFIX指定将被加到所安装程序的名字上的前缀.例如,使用'--program-prefix=g'来configure一个名为'tar'的程序将会使安装的程序被命名为'gtar'.当和其他的安装选项一起使用时,这个选项只有当他被`Makefile.in'文件使用时才会工作.--program-suffix=SUFFIX指定将被加到所安装程序的名字上的后缀.--program-transform-name=PROGRAM这里的PROGRAM是一个sed脚本.当一个程序被安装时,他的名字将经过`sed -e PROGRAM'来产生安装的名字.--build=BUILD指定软件包安装的系统平台.如果没有指定,默认值将是'--host'选项的值.--host=HOST指定软件运行的系统平台.如果没有指定,将会运行`config.guess'来检测.--target=GARGET指定软件面向(target to)的系统平台.这主要在程序语言工具如编译器和汇编器上下文中起作用.如果没有指定,默认将使用'--host'选项的值.--disable-FEATURE一些软件包可以选择这个选项来提供为大型选项的编译时配置,例如使用Kerberos认证系统或者一个实验性的编译器最优配置.如果默认是提供这些特性,可以使用'--disable-FEATURE'来禁用它,这里'FEATURE'是特性的名字.例如:$ ./configure --disable-gui-enable-FEATURE[=ARG]相反的,一些软件包可能提供了一些默认被禁止的特性, 可以使用'--enable-FEATURE'来起用它.这里'FEATURE'是特性的名字.一个特性可能会接受一个可选的参数.例如:$ ./configure --enable-buffers=128`--enable-FEATURE=no'与上面提到的'-- disable-FEATURE'是同义的.--with-PACKAGE[=ARG]在自由软件社区里,有使用已有软件包和库的优秀传统.当用'configure'来配置一个源码树时,可以提供其他已经安装的软件包的信息.例如,倚赖于Tcl和Tk的BLT器件工具包.要配置BLT,可能需要给'configure'提供一些关于我们把Tcl和Tk装的何处的信息:$ ./configure --with-tcl=/usr/local --with-tk=/usr/local'--with- PACKAGE=no'与下面将提到的'--without-PACKAGE'是同义的.--without-PACKAGE有时候你可能不想让你的软件包与系统已有的软件包交互.例如,你可能不想让你的新编译器使用GNU ld.通过使用这个选项可以做到这一点:$ ./configure --without-gnu-ld--x-includes=DIR这个选项是'--with-PACKAGE'选项的一个特例.在Autoconf最初被开发出来时,流行使用'configure'来作为Imake的一个变通方法来制作运行于X的软件.'--x-includes'选项提供了向'configure'脚本指明包含X11头文件的目录的方法.--x-libraries=DIR类似的,'--x-libraries'选项提供了向'configure'脚本指明包含X11库的目录的方法.在源码树中运行'configure'是不必要的同时也是不好的.一个由'configure'产生的良好的'Makefile'可以构筑源码属于另一棵树的软件包.在一个独立于源码的树中构筑派生的文件的好处是很明显的:派生的文件,如目标文件,会凌乱的散布于源码树.这也使在另一个不同的系统或用不同的配置选项构筑同样的目标文件非常困难.建议使用三棵树:一棵源码树(source tree),一棵构筑树(build tree),一棵安装树(install tree).这里有一个很接近的例子,是使用这种方法来构筑GNU malloc包:$ gtar zxf mmalloc-1.0.tar.gz$ mkdir build && cd build$ ../mmalloc-1.0/configurecreating cache ./config.cachechecking for gcc... gccchecking whether the C compiler (gcc ) works... yeschecking whether the C compiler (gcc ) is a cross-compiler... nochecking whether we are using GNU C... yeschecking whether gcc accepts -g... yeschecking for a BSD compatible install... /usr/bin/install -cchecking host system type... i586-pc-linux-gnuchecking build system type... i586-pc-linux-gnuchecking for ar... archecking for ranlib... ranlibchecking how to run the C preprocessor... gcc -Echecking for unistd.h... yeschecking for getpagesize... yeschecking for working mmap... yeschecking for limits.h... yeschecking for stddef.h... yesupdating cache ../config.cachecreating ./config.status这样这棵构筑树就被配置了,下面可以继续构筑和安装这个包到默认的位置'/usr/local':$ make all && make install用于配置的参数(configure)configure 里可用的参数集可以通过键入下面命令获得$ ./configure --help下面的参数可能会引起安装者的兴趣:Directories to install PostgreSQL in(安装postgreSQL 的目录):--prefix=PREFIX install architecture-independent files in PREFIX(把体系无关的文件装在PREFIX)[/usr/local/pgsql]--bindir=DIR user executables in DIR (用户的可执行文件装在DIR )[EPREFIX/bin]--libdir=DIR object code libraries in DIR (目标代码库在DIR )[EPREFIX/lib] --includedir=DIR C header files in DIR (C 头文件放在DIR)[PREFIX/include] --mandir=DIR man documentation in DIR (手册文档在DIR )[PREFIX/man] Features and packages(特性和包):--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)(不包含FEATURE (等效于--enable-FEATURE=no))--enable-FEATURE[=ARG] include FEATURE (包含FEATURE )[ARG=yes]--with-PACKAGE[=ARG] use PACKAGE (使用PACKAGE)[ARG=yes]--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)(不使用PACKAGE (等效于--with-PACKAGE=no))--enable and --with options recognized(可识别的附加选项):--with-template=templateuse operating system template file(使用操作系统模板文件)see template directory(参阅模板目录)--with-includes=dirs look for header files for tcl/tk, etc in DIRS(tk/tcl等的头文件在DIR)--with-libraries=dirs look for additional libraries in DIRS(在DIR里查找附加库)--with-libs=dirs alternate spelling of --with-libraries(--with-libraries 的可选写法)--enable-locale enable locale support(打开本地化支持)--enable-recode enable cyrillic recode support(打开西里尔字母(斯拉夫语言字母)记录的支持)--enable-multibyte enable multibyte character support(打开多字节支持)--with-pgport=portnum change default postmaster port(更改缺省的启动端口)--with-maxbackends=n set default maximum number of server processes (设置缺省的最大服务器进程数)--with-tcl build Tcl interfaces and pgtclsh(制作Tcl 接口和pgtclsh)--with-tclconfig=tcldirtclConfig.sh and tkConfig.sh are in DIR(tclConfig.sh 和tkConfig.sh 在DIR)--with-perl build Perl interface and plperl(制作Perl 接口和plperl)--with-odbc build ODBC driver package(制作ODBC 驱动包)--with-odbcinst=odbcdirchange default directory for odbcinst.ini(为odbcinst.ini 改变缺省路径)--enable-cassert enable assertion checks (for debugging)(打开断言检查(调试))--enable-debug build with debugging symbols (-g) (带调试符号(-g)制作)--with-CC=compileruse specific C compiler(使用声明的C 编译器)--with-CXX=compileruse specific C++ compiler(使用声明的C++ 编译器)--without-CXX prevent building C++ code (禁止制作C++ 代码)有些系统在制作Postgres 的一些特性时有问题.例如,有些系统的C++ 编译器坏了,可能就需要声明--without-CXX 告诉制作过程忽略libpq++ 的制作.如果你想用安装在非相同标准查找路径里的头文件或库制作Postgres ,请使用--with-includes 和--with-libraries 选项.例如,你可能用这些制作一个实验版本的Tcl.如果你需要为头文件或库声明超过一个的非标准目录,这样做:--with-includes="/opt/tcl/include /opt/perl5/include"[root@web ffmpeg]# ./configure --helpUsage: configure [options]Options: [defaults in brackets after descriptions]Standard options: 基本选项参数--help 显示此帮助信息|print this message--log[=FILE|yes|no] 记录测试并输出到config.err文件|log tests and output to FILE [config.err]--prefix=PREFIX 安装程序到指定目录(默认/usr/local)|install in PREFIX [/usr/local]--libdir=DIR 安装库到指定目录(默认prefix/lib)|install libs in DIR [PREFIX/lib]--shlibdir=DIR 指定共享库路径(默认prefix/lib)|install shared libs in DIR [PREFIX/lib]--incdir=DIR 指定includes路径(默认prefix/include/ffmpeg)|install includes in DIR[PREFIX/include/ffmpeg]--mandir=DIR 指定man page路径(默认prefix/man)install man page in DIR [PREFIX/man]--enable-mp3lame 启用mp3编码libmp3lame(默认关闭)enable MP3 encoding via libmp3lame[default=no]--enable-libogg 启用ogg支持libogg(默认关闭)enable Ogg support via libogg [default=no]--enable-vorbis 启用V orbis支持libvorbis(默认关闭)enable V orbis support via libvorbis [default=no]--enable-faad 启用faad支持libfaad(默认关闭)enable FAAD support via libfaad[default=no]--enable-faadbin 启用faad运行时链接支持(默认关闭)build FAAD support with runtime linking[default=no]--enable-faac 启用faac支持libfaac(默认关闭)enable FAAC support via libfaac [default=no]--enable-libgsm 启用GSM支持libgsm(默认关闭)enable GSM support via libgsm [default=no]--enable-xvid 启用xvid支持xvidcore(默认关闭)enable XviD support via xvidcore [default=no]--enable-x264 启用H.264编码(默认关闭)enable H.264 encoding via x264 [default=no]--enable-mingw32 启用MinGW本地/交叉win环境编译|enable MinGW native/cross Windows compile--enable-mingwce 启用MinGW本地/交叉winCE环境编译enable MinGW native/cross WinCE compile--enable-a52 启用A52支持(默认关闭)enable GPLed A52 support [default=no]--enable-a52bin 启用运行时打开liba52.so.0(默认关闭)open liba52.so.0 at runtime [default=no]--enable-dts 启用DTS支持(默认关闭)enable GPLed DTS support [default=no]--enable-pp 启用后加工支持(默认关闭)enable GPLed postprocessing support [default=no]--enable-static 构建静态库(默认启用)build static libraries [default=yes]--disable-static 禁止构建静态库(默认关闭)do not build static libraries [default=no] --enable-shared 构建共享库(默认关闭)build shared libraries [default=no]--disable-shared 禁止构建共享库(默认启用)do not build shared libraries [default=yes]--enable-amr_nb 启用amr_nb float音频编解码器|enable amr_nb float audio codec --enable-amr_nb-fixed 启用fixed amr_nb codec | use fixed point for amr-nb codec--enable-amr_wb 启用amr_wb float音频编解码器|enable amr_wb float audio codec--enable-amr_if2 启用amr_wb IF2音频编解码器|enable amr_wb IF2 audio codec --enable-sunmlib 启用Sun medialib(默认关闭)| use Sun medialib [default=no] --enable-pthreads 启用pthreads(多线程)(默认关闭)use pthreads [default=no] --enable-dc1394 启用libdc1394、libraw1394抓取IIDC-1394(默认关闭)enable IIDC-1394 grabbing using libdc1394 and libraw1394 [default=no]--enable-swscaler 启用计数器支持?(默认关闭)software scaler support [default=no]--enable-avisynth 允许读取A VISynth脚本本件(默认关闭)allow reading A VISynth script files [default=no]--enable-gpl 允许使用GPL(默认关闭)allow use of GPL code, the resulting libav* and ffmpeg will be under GPL [default=no]Advanced options (experts only): 高级选项参数(供专业人员使用)--source-path=PATH 源码的路径(当前为/root/flv/ffmpeg)| path to source code [/root/flv/ffmpeg]--cross-prefix=PREFIX 为编译工具指定路径| use PREFIX for compilation tools []--cross-compile 假定使用了交叉编译| assume a cross-compiler is used--cc=CC 指定使用何种C编译器(默认gcc)use C compiler CC [gcc] --make=MAKE 使用特定的make | use specified make [make]--extra-cflags=ECFLAGS 添加ECFLAGS到CFLAGS | add ECFLAGS to CFLAGS []--extra-ldflags=ELDFLAGS 添加ELDFLAGS到LDFLAGS(默认-Wl,--as-needed)| add ELDFLAGS to LDFLAGS [ -Wl,--as-needed]--extra-libs=ELIBS 添加ELIBS | add ELIBS []--build-suffix=SUFFIX 为专用程序添加后缀| suffix for application specific build []--arch=ARCH 选择机器架构(默认x86)select architecture [x86]--cpu=CPU 选用最低的cpu(影响指令的选择,可以在老CPU上出错)| selects the minimum cpu required (affects instruction selection, may crash on older CPUs)--powerpc-perf-enable 启用PPC上面的性能报告(需要启用PMC)enable performance report on PPC(requires enabling PMC)--disable-mmx 禁用MMX | disable MMX usage--disable-armv5te 禁用armv5te | disable armv5te usage--disable-iwmmxt 禁用iwmmxt | disable iwmmxt usage--disable-altivec 禁用AltiVec | disable AltiVec usage--disable-audio-oss 禁用OSS音频支持(默认启用)disable OSS audio support [default=no]--disable-audio-beos 禁用BeOS音频支持(默认启用)disable BeOS audio support [default=no]--disable-v4l 禁用video4linux提取(默认启用)disable video4linux grabbing [default=no]--disable-v4l2 禁用video4linux2提取(默认启用)disable video4linux2 grabbing [default=no]--disable-bktr 禁用bktr视频提取(默认启用)disable bktr video grabbing [default=no]--disable-dv1394 禁用DV1394提取(默认启用)disable DV1394 grabbing [default=no]--disable-network 禁用网络支持(默认支持)disable network support [default=no] --disable-ipv6 禁用ipv6支持(默认支持)disable ipv6 support [default=no]--disable-zlib 禁用zlib(默认支持)disable zlib [default=no]--disable-simple_idct 禁用simple IDCT例程(默认启用)disable simple IDCT routines [default=no]--disable-vhook 禁用video hooking支持| disable video hooking support--enable-gprof enable profiling with gprof [no]--disable-debug 禁用调试符号| disable debugging symbols--disable-opts 禁用编译器最优化| disable compiler optimizations--disable-mpegaudio-hp 启用更快的解码MPEG音频(但精确度较低)(默认禁用)faster(but less accurate) MPEG audio decoding [default=no]--disable-protocols 禁用I/O 协议支持(默认启用)disable I/O protocols support [default=no]--disable-ffserver 禁用生成ffserver | disable ffserver build--disable-ffplay 禁用生成ffplay | disable ffplay build--enable-small 启用优化文件尺寸大小(牺牲速度)optimize for size instead of speed--enable-memalign-hack 启用模拟内存排列,由内存调试器干涉?| emulate memalign, interferes with memory debuggers--disable-strip 禁用剥离可执行程序和共享库| disable stripping of executables and shared libraries--disable-encoder=NAME 禁用XX编码器| disables encoder NAME--enable-encoder=NAME 启用XX编码器| enables encoder NAME--disable-decoder=NAME 禁用XX解码器| disables decoder NAME--enable-decoder=NAME 启用XX解码器| enables decoder NAME--disable-encoders 禁用所有编码器| disables all encoders--disable-decoders 禁用所有解码器| disables all decoders--disable-muxer=NAME 禁用XX混音器| disables muxer NAME--enable-muxer=NAME 启用XX混音器| enables muxer NAME--disable-muxers 禁用所有混音器| disables all muxers--disable-demuxer=NAME 禁用XX解轨器| disables demuxer NAME--enable-demuxer=NAME 启用XX解轨器| enables demuxer NAME--disable-demuxers 禁用所有解轨器| disables all demuxers--enable-parser=NAME 启用XX剖析器| enables parser NAME--disable-parser=NAME 禁用XX剖析器| disables parser NAME--disable-parsers 禁用所有剖析器| disables all parsers。
libconfig中文手册
libconfig手册翻译自libconfig英文版手册部分内容——倪里特1、配置文件libconfig支持结构化、层次化的配置。
这些配置可以从文件中读取或写入文件,也可以在内存中操作。
一个配置由一组setting构成,setting由名字(name)关联,并有相应的值(value)。
一个值(value)可以是以下任意一种类型:标量值(scalar value):整型、64位整型、浮点数、布尔值或者字符串数组(array):一组标量值的序列,所有的标量值必须为同一类型群组(group):多个setting的集合列表(list):一组值(value)的序列,各个值可(value)以分别为不同的类型,其他的列表也可以包含其中。
观察下面这一个层次化GUI应用程序的配置文件,它阐明了一个配置文件语法所有的元素。
#Exampleapplicationconfigurationfileversion="1.0";application:{window:{title="MyApplication";size={w=640;h=480;};pos={x=350;y=250;};};list=(("abc",123,true),1.234,(/*anemptylist*/));books=({title="TreasureIsland";author="RobertLouisStevenson";price=29.95;qty=5;},{title="SnowCrash";author="NealStephenson";price=9.99;qty=8;});包含在配置中的某个setting可以用path来唯一定义,path用点号分隔连接多个名字(name),由最顶层的群组(group)开始,到setting自身结束。
libconfig
libconfig的使用2011-10-15 16:251. 编译、链接时使用libconifgC程序中使用libconfig库包含头文件:#include <libconfig.h>链接时指定: specify ‘-lconfig’as an argument to the linker.C++程序中使用libconfig库包含头文件:#include <libconfig.h++>指定使用命名空间:using namespace libconfig;链接时指定: specify ‘-lconfig++’as an argument to the linker.2. Libconfig库支持pkg-config管理gcc `pkg-config --cflags libconfig` myprogram.c -o myprogram \`pkg-config --libs libconfig`g++ `pkg-config --cflags libconfig++` myprogram.cpp -o myprogram \ `pkg-config --libs libconfig++`3. Libconfig库的配置文件格式1. Setting:k/v值2. Group:{}3. List:()元素可以不同类型4. Array:()元素类型必须一致举例:4. Libconfig库C++ APIConfig:Config represents a configurationSetting:And the class Setting represents a configuration setting.Exceptions:ConfigExceptionFileIOException ParseExceptionSettingTypeException SettingNotFoundException SettingExistsException[Method on Config]l 读取配置文件初始化数据结构void read (FILE * stream) void write (FILE * stream)void readFile (const char * filename) void writeFile (const char * filename)void setAutoConvert (bool flag) bool getAutoConvert ()setAutoConvert() enables number auto-conversion for the configuration if flag is true, and disables it otherwise.l 数据结构查找Settingbool exists (const std::string &path) bool exists (const char *path)Setting & getRoot ()Setting & lookup (const std::string &path)Setting & lookup (const char * path)l 直接读取某个Setting的值bool lookupValue (const char *path, bool &value)bool lookupValue (const std::string &path, bool &value)bool lookupValue (const char *path, std::string &value)bool lookupValue (const std::string &path,std::string &value) .............[Method on Setting]l 复合Setting的操作1)检索Setting & operator[] (int index)Setting & operator[] (const std::string &name)Setting & operator[] (const char *name)A Setting object may be subscripted with an integer index if it is an array or list, or with either a string name or an integer index if it is a group.2)读值bool lookupValue (const char *name, bool &value)bool lookupValue (const char *name, double &value)bool lookupValue (const char *name, std::string &value)bool lookupValue (const std::string &name,std::string &value)bool lookupValue (const std::string &name,double &value) ...................These are convenience methods for looking up the value of a child setting with the given name.3)复合Setting的添加删除子配置Setting & add (const std::string &name, Setting::Type type)Setting & add (const char *name, Setting::Type type)These methods add a new child setting with the given name and type to the setting,whic h must be a group.Setting & add (Setting::Type type)This method adds a new element to the setting, which must be of type TypeArray or Typ eList.void remove (const std::string &name)void remove (const char *name)These methods remove the child setting with the given name from the setting, which mu st be a group.l 简单Setting操作1)简单Setting的读值operator bool()operator int()operator std::string().................These cast operators allow a Setting object to be assigned to a variable of typeXXXXX 2)简单Setting的赋值值Setting & operator= (bool value)Setting & operator= (const double &value)Setting & operator= (const std::string &value)..............These assignment operators allow values of type bool, int, long, float, double, const char *, and std::string to be assigned to a setting.Multithreading Issues.......5. Summary需要掌握的API有如下:构建配置数据结构类Config,读取配置文件初始化通过Config直接读取某Setting的值通过Config检索某个Setting简单Setting读取简单Setting配置值赋值简单Setting复合Setting (Array List Group形式)检索子Setting添加和删除子Setting赋值复合Setting。
Linux下库的设置:ld.so.conf文件与PKG_CONFIG_PATH变量
一、编译和连接一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径。
由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径的不同,造成了用 -I 参数指定的头文件的路径也可能不同,其结果就是造成了编译命令界面的不统一。
如果使用 -L 参数,也会造成连接界面的不统一。
编译和连接界面不统一会为库的使用带来麻烦。
为了解决编译和连接界面不统一的问题,人们找到了一些解决办法。
其基本思想就是:事先把库的位置信息等保存起来,需要的时候再通过特定的工具将其中有用的信息提取出来供编译和连接使用。
这样,就可以做到编译和连接界面的一致性。
其中,目前最为常用的库信息提取工具就是下面介绍的 pkg-config。
pkg-config 是通过库提供的一个 .pc 文件获得库的各种必要信息的,包括版本信息、编译和连接需要的参数等。
这些信息可以通过 pkg-config 提供的参数单独提取出来直接供编译器和连接器使用。
The pkgconfig package contains tools for passing the include path and/or library paths to build tools during the make file execution.pkg-config is a function that returns meta information for the specified library.The default setting for PKG_CONFIG_PATH is /usr/lib/pkgconfig because of the prefix we use to install pkgconfig. You may add to PKG_CONFIG_PATH by exporting additional paths on your system where pkgconfig files are installed. Note that PKG_CONFIG_PATH is only needed when compiling packages, not during r un-time.在默认情况下,每个支持 pkg-config 的库对应的 .pc 文件在安装后都位于安装目录中的 lib/pkgconfig目录下。
一步一步教你玩转.NET Framework的配置文件app.config
一步一步教你玩转.NET Framework的配置文件app.config在一般的项目中,为了使你的代码更加灵活,更方便调整,减少不必要的hard code,我们都在config中添加许多配置信息,一般可以选择.NET自带的配置文件形式app.config或者web 项目中的web.config来完成配置工作。
.NET中提供了几个和配置有关的类来支持用完轻松的完成配置文件的读写设置:System.Configuration.ConfigurationSectionGroup一般和你项目中使用的Assambly保持1:1的对应关系,这样划分使得结构相对清晰,权责明确。
当然你可以不使用它,这样一旦你的Assambly在别的地方要被重用时,找出相应的config信息就变得很困难。
System.Configuration.ConfigurationSection维护一个相对独立的配置节,使用时需现在<ConfigSections></ConfigSections>节点下声明。
我们熟悉的<appSettings></appSettings>以及<connectionStrings></connectionStrings/>就是.NET为我们预留的一个Section。
System.Configuration.ConfigurationElementCollection &System.Configuration.ConfigurationElement就是Section下具体的配置信息和配置信息的集合了。
下面来看看怎么使用这些类玩转app.config1.初级玩法最初级的用法当然是使用<appSettings/>,我们在app.config 中添加<configuration><appSettings><add key="MyConfigString" value="Test Config Data"/></appSettings></configuration>访问它public class AppSettingConfig{public string resultValue;public AppSettingConfig(){this.resultValue =ConfigurationManager.AppSettings["MyConfigString"].ToString();}}[TestMethod]public void TestAppSettingConfigNode(){AppSettingConfig appCon = new AppSettingConfig();Assert.AreEqual("Test Config Data", appCon.resultValue);}没有问题!我们加个Section来看看如何访问:<configuration><configSections><sectionGroup name="MySectionGroup"><section name="MyFirstSection"type="System.Configuration.DictionarySectionHandler"/><section name="MySecondSection"type="System.Configuration.DictionarySectionHandler"/></sectionGroup></configSections><MySectionGroup><MyFirstSection><add key="First" value="First Section"/></MyFirstSection><MySecondSection><add key="Second" value="Second Section"/></MySecondSection></MySectionGroup></configuration>注意我们在section的type中给出了System.Configuration.DictionarySectionHandler,这也限制了我们在具体的ConfigurationElement中只能使用<add key=”” value=””/>的形式,使得我们GetSection()方法返回的是一个IDictory对象,我们可以根据Key来取得相应的值public class SectionConfig{public string resultValue;public SectionConfig(){System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None );IDictionary dic =ConfigurationManager.GetSection("MySectionGroup/MySecondSection") as IDictionary;this.resultValue = dic["Second"].ToString();}}[TestMethod]public void TestSectionGroupConfigNode(){SectionConfig sc = new SectionConfig();Assert.AreEqual("First Section", sc.resultValue);}还是没问题。
creo工程图打印配置教程
creo工程图打印配置教程在creo中,利用普通的喷墨或激光打印机进行打印输出,需要用到两个配置文件:对应打印机的pcf文件和定义线宽的table.pnt还有一些config选项,下面我们就一一进行讲解。
1。
打印配置config选项plotter指定的默认打印机名称,也是保存配置的时候的默认的保存名称在本例中,我们使用的名称为:HP OfficeJet Pro K850.要注意的是这个选项要和我们第二步所说的.pcf配置文件进行搭配使用,如果使用我们在第二步进行详细讲解,如果没有对应的pcf文件,这个选项是无效的plotter_command指定的打印指令,我们就用系统默认的好了: windows_print_managerpro_plot_config_dir指定的配置文件目录,Pro/E会在打印启动时到这个目录寻找打印机的配置文件并从这些配置文件中找出所有可用的打印机并添加到打印机列表中以供用户选择。
如:d:\0_objlib\configpaster_plot_dpi打印的dpi(分辨率),dpi越高,每英寸打印的像素值越高,打印结果越精细,当然也更费墨了和水了呵呵,所以我们在打印照片的时候要选择高dpi值,但是在打印工程图的时候就不必要了,100可以了。
可选值:100/200/300/…use_8_plotter_pens是否使用8支笔,对绘图仪来说,有四支笔和八支笔的分别,但对我们的打印机来说就是八种颜色和四种颜色的区别了,自然我们选yes也没啥坏处。
可选值:yes/nopen_table_file线宽定义文件,指定答应时各几何使用的线宽和颜色等,详细的定义方法我们会在第三步进行讲解。
如果定义了这个选项并且对应的table file存在的话,那么最后的八个定义线宽的config选项将失效。
值如:d:\0_objlib\config\table.pntpen1_line_weightpen2_line_weightpen3_line_weightpen4_line_weightpen5_line_weightpen6_line_weightpen7_line_weightpen8_line_weight定义不同的几何的打印线宽,值越大线线越粗。
Python中的配置文件
Python中的配置文件随着信息技术的不断发展,软件开发已经成为现代企业的一项必要工作。
在软件开发过程中,如何管理配置文件是一个至关重要的问题。
Python是一种广泛使用的编程语言,在许多软件开发中广泛应用。
在Python中,配置文件是一种非常常见的工具,用于存储和管理应用程序的配置信息。
在本文中,我们将探讨Python中的配置文件,并介绍如何使用Python进行配置文件管理。
一、配置文件的概念配置文件是一种用于存储和管理应用程序配置信息的文件。
它通常包括诸如数据库连接信息、网络连接信息、文件路径、日志级别等应用程序配置信息。
在软件开发中,配置文件都是以文本形式存储,方便开发人员进行修改和维护。
配置文件可以使软件在不同环境中运行时具有灵活性和适应性。
配置文件通常具有以下特点:1.文本文件:配置文件通常以文本格式存储在磁盘上,方便开发人员阅读和修改。
2.结构化:配置文件通常具有特定的结构,以便读取和使用。
3.易于修改:配置文件通常可以轻松修改,例如更改数据库连接信息或端口号等。
4.灵活性:配置文件通常可以针对不同的环境进行自定义配置,例如开发环境、测试环境和生产环境。
二、Python中的配置文件在Python中,我们可以使用不同的库来管理配置文件。
其中,比较常用的库包括configparser、json和yaml。
这些库提供了读取、创建、修改和写入配置文件的功能,并使得我们可以轻松地加载配置信息、进行自动化测试和部署。
1.configparserconfigparser是Python中标准库configparser的缩写,用来解析INI配置文件。
INI配置文件是Windows下常用的配置文件格式,也被称为“工作台”文件。
configparser模块允许使用Python解析INI 文件,INIGetConfigParser()方法用于创建一个configParser对象,该对象可用于获取和修改INI文件内容。
ldconfig命令
ldconfig命令简介ldconfig是⼀个动态链接库管理命令,命令的⽤途,主要是在默认搜寻⽬录(/lib和/usr/lib)以及动态库配置⽂件/etc/ld.so.conf内所列的⽬录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进⽽创建出动态装⼊程序(ld.so)所需的连接和缓存⽂件.缓存⽂件默认为 /etc/ld.so.cache,此⽂件保存已排好序的动态链接库名字列表.ldconfig通常在系统启动时运⾏,⽽当⽤户安装了⼀个新的动态链接库时,就需要⼿⼯运⾏这个命令。
ldconfig命令参数说明:1、-v或–verbose:⽤此选项时,ldconfig将显⽰正在扫描的⽬录及搜索到的动态链接库,还有它所创建的连接的名字.2、-n :⽤此选项时,ldconfig仅扫描命令⾏指定的⽬录,不扫描默认⽬录(/lib,/usr/lib),也不扫描配置⽂件/etc/ld.so.conf所列的⽬录.3、-N :此选项指⽰ldconfig不重建缓存⽂件(/etc/ld.so.cache).若未⽤-X选项,ldconfig照常更新⽂件的连接.4、-X : 此选项指⽰ldconfig不更新⽂件的连接.若未⽤-N选项,则缓存⽂件正常更新.5、-f CONF : 此选项指定动态链接库的配置⽂件为CONF,系统默认为/etc/ld.so.conf.6、-C CACHE :此选项指定⽣成的缓存⽂件为CACHE,系统默认的是/etc/ld.so.cache,此⽂件存放已排好序的可共享的动态链接库的列表.7、-r ROOT :此选项改变应⽤程序的根⽬录为ROOT(是调⽤chroot函数实现的).选择此项时,系统默认的配置⽂件/etc/ld.so.conf,实际对应的为ROOT/etc/ld.so.conf.如⽤-r/usr/zzz时,打开配置⽂件/etc/ld.so.conf时,实际打开的是/usr/zzz/etc/ld.so.conf⽂件.⽤此选项,可以⼤⼤增加动态链接库管理的灵活性.8、-l :通常情况下,ldconfig搜索动态链接库时将⾃动建⽴动态链接库的连接.选择此项时,将进⼊专家模式,需要⼿⼯设置连接.⼀般⽤户不⽤此项.9、-p或–print-cache :此选项指⽰ldconfig打印出当前缓存⽂件所保存的所有共享库的名字.10、-c FORMAT 或–format=FORMAT :此选项⽤于指定缓存⽂件所使⽤的格式,共有三种:ld(⽼格式),new(新格式)和compat(兼容格式,此为默认格式).11、-V : 此选项打印出ldconfig的版本信息,⽽后退出.12、- 或 --help 或–usage : 这三个选项作⽤相同,都是让ldconfig打印出其帮助信息,⽽后退出.ldconfig需要注意的地⽅:1、往/lib和/usr/lib⾥⾯加东西,是不⽤修改/etc/ld.so.conf⽂件的,但是添加完后需要调⽤下ldconfig,不然添加的library会找不到。
Linux网络属性配置—修改配置文件
Linux⽹络属性配置—修改配置⽂件linux⽹络配置⽂件修改配置⽂件⽰例:设置⼀个静态的ip固定的虚拟机⽹络配置⽂件(静态ipVMvare虚拟机使⽤桥接模式)TYPE=EthernetBOOTPROTO=staticDEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=noNAME=eno16777736ONBOOT=yesIPADDR=192.168.4.111NETMASK=255.255.255.0GATEWAY=192.168.4.1DNS1=114.114.114.114⼀般情况下改成如下就⾏:(动态ipVMvare虚拟机使⽤NAT模式)TYPE=EthernetBOOTPROTO=dhcpDEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=noNAME=eno16777736ONBOOT=yes重启命令1:systemctl restart network重启命令2:service network restart如果使⽤的是VMvare重启之后需要设置VMvare的⽹络连接为桥接模式名称不⼀致:通过查找cd /etc/udev/rules.dls⽬录下的⽂件,然后编辑⾥边对应的⽂件虚拟机⾥边装KVM,配置⽂件对应的路径:/etc/libvirt/qemu/XXX.xml<!--WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:virsh edit cepo-JK1or other application using the libvirt API.--><domain type='kvm'><name>cepo-JK1</name><uuid>6661f0f8-f727-4e8b-9f6b-946b8601a6ee</uuid><memory unit='KiB'>4194304</memory><currentMemory unit='KiB'>4194304</currentMemory><vcpu placement='static'>2</vcpu><os><type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type><boot dev='hd'/></os><features><acpi/><apic/></features><cpu mode='custom' match='exact' check='partial'><model fallback='allow'>Haswell-noTSX-IBRS</model></cpu><clock offset='utc'><timer name='rtc' tickpolicy='catchup'/><timer name='pit' tickpolicy='delay'/><timer name='hpet' present='no'/></clock><on_poweroff>destroy</on_poweroff><on_reboot>restart</on_reboot><on_crash>destroy</on_crash><pm><suspend-to-mem enabled='no'/><suspend-to-disk enabled='no'/></pm><devices><emulator>/usr/libexec/qemu-kvm</emulator><disk type='file' device='disk'><driver name='qemu' type='qcow2'/><source file='/home/kvm/cepo-JK1.img'/><target dev='hda' bus='ide'/><address type='drive' controller='0' bus='0' target='0' unit='0'/></disk><disk type='file' device='cdrom'><driver name='qemu' type='raw'/><target dev='hdb' bus='ide'/><readonly/><address type='drive' controller='0' bus='0' target='0' unit='1'/></disk><controller type='usb' index='0' model='ich9-ehci1'><address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x7'/></controller><controller type='usb' index='0' model='ich9-uhci1'><master startport='0'/><address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/> </controller><controller type='usb' index='0' model='ich9-uhci2'><master startport='2'/><address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/></controller><controller type='usb' index='0' model='ich9-uhci3'><master startport='4'/><address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/></controller><controller type='pci' index='0' model='pci-root'/><controller type='ide' index='0'><address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/></controller><interface type='bridge'><mac address='52:54:00:49:00:b7'/><source bridge='br0'/><model type='rtl8139'/><address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/></interface><interface type='direct'><mac address='52:54:00:c7:67:0a'/><source dev='eno2' mode='passthrough'/><model type='rtl8139'/><address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/></interface><serial type='pty'><target type='isa-serial' port='0'><model name='isa-serial'/></target></serial><console type='pty'><target type='serial' port='0'/></console><input type='mouse' bus='ps2'/><input type='keyboard' bus='ps2'/><graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'><listen type='address' address='0.0.0.0'/></graphics><video><model type='cirrus' vram='16384' heads='1' primary='yes'/><address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/></video><memballoon model='virtio'><address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/></memballoon></devices></domain>1、ip、MASK、GW、DNS配置⽂件的位置: /etc/sysconfig/network-scripts/ifcfg-IFACE[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33TYPE=Ethernet 接⼝类型,常见的有ETHERNET(以太⽹)、Bridge(桥接接⼝) BOOTPROTO=dhcp 激活此接⼝使⽤什么协议来配置接⼝属性:dhcp,boot,static,none DEFROUTE=yes PEERDNS=yes 如果BOOTPROTO的值为“dhcp”,是否允许dhcpDNS1:第⼀DNS服务器指向;若/etc/resolve的配置⽂件也有,则此处优先DNS2:备⽤DNS服务器指向;PEERROUTES=yesIPV4_FAILURE_FATAL=noIPV6INIT=yes 是否初始化IPV6IPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_PEERDNS=yesIPV6_PEERROUTES=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=0ea5507b-feab-4d8a-b582-e1874ca0bb97 此设备的唯⼀标识DEVICE=ens33 此配置⽂件对应的设备名称ONBOOT=yes 操作系统启动时,在系统引导过程中,是否激活此接⼝IPADDR:指明IP地址;NETMASK:⼦⽹掩码;CentOS 7⽀持使⽤PREFIX以长度⽅式指明⼦⽹掩码;GATEWAY:默认⽹关;USERCTL:是否允许普通⽤户控制此设备;eg:# vim ifcfg-eth01、设置:BOOTPROTO=static2、增加:IPADDR=172.16.100.12NETMASK=255.255.0.0GATEWAY=172.16.0.1DNS1=172.16.0.1# route -n 执⾏命令,查看发现此时还没有⽣效,重启后后效# ifconfig eth0 down ifconfig eth0 up 禁⽤⽹卡就,再重启,不建议,建议重启⽹络# service network restart 重启说明:# service network restart相当于 # /etc/rc.d/init/d/network restart service命令调⽤上⾯这个脚本并传递参数restart 2、配置路由 配置⽂件位置: /etc/sysyconfig/network-scripts/route-IFACE ⽀持两种配置⽅式,当不可混⽤ (1)、每⾏⼀个路由条⽬: TARGET VIA GW (2)每三⾏⼀个路由条⽬: ADDRESS#=TARGET(#:0.1.2.3....) NETMASK#=MASK :⽬标地址对应的掩码 GATEWAY#=NEXTHOP :指明⽹关 eg: # 给eno33554984配置路由⽂件:[root@yph7 network-scripts]# vim route-eno33554984[root@yph7 network-scripts]# cat route-eno3355498410.0.0.0/8 via 192.168.0.1或者以下⾯的格式:ADDRESS0=20.0.0.0NETMASK0=255.0.0.0GATEWAY0=192.168.10.2给⽹卡接⼝配置多地址 ip addr之外,ifconfig或配置⽂件都可以; 1、ifconfig 格式: # ifconfig IFACE_LABEL IPADDR/NETMASK 说明:IFACE_LABEL:类似于eth0:0,eth0:1 eg:[root@localhost ~]# ifconfig ens33:0172.22.132.26[root@localhost ~]# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.22.133 netmask 255.255.255.0 broadcast 192.168.22.255inet6 fe80::e508:e81e:801f:4073 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:d3:73:49 txqueuelen 1000 (Ethernet)RX packets 5235 bytes 481513 (470.2 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 4234 bytes 488692 (477.2 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 172.22.132.26 netmask 255.255.0.0 broadcast 172.22.255.255ether 00:0c:29:d3:73:49 txqueuelen 1000 (Ethernet) 2、ip 格式:# ip addr add IP dev DEVICE label IFACE_LABEL 3、给⽹卡别名添加配置⽂件 在上⾯讲的设置配置⽂件的基础上只需要修改两个地⽅: DEVICE=“ens33:0” IPADDR=..... 注意⽹卡别名不⽀持动态获取地址,所以可以⽤的是:static,noneLinux⽹络属性配置的tui⼯具tui:text user interface,⽂本⽤户接⼝⼯具命令⼯具:# system-config-network-tui 注意:保存之后会直接修改配置⽂件,不会⽴即有效,要重启⽹络服务,或者使⽤setup找到配置当前主机的主机名 1、命令:hostname 2、修改配置⽂件 /etc/sysconfig/nerwork eg:[root@localhost ~]# cat /etc/sysconfig/network# Created by anacondaHOSTNAME=CentOS7[root@localhost ~]# hostnamelocalhost.localdomain 重启后会改变为CentOS7[root@localhost ~]#nmcli命令 1、CentOS7上ip配置的拎⼀个命令 2、格式: nmcli [ OPTIONS ] OBJECT { COMMAND | help } OBJECT: 1、device :查看和管理⽹络接⼝ COMMAND = {status | show | connect | disconnect | delete | wifi | wimax } 2、connection :开启、禁⽌管理⽹络连接 COMMAND = { show| up | down | add | edit | modify | delete | reload | load } 注意:connection可以缩写为conn eg: # 显⽰设备[root@localhost ~]# nmcli device showGENERAL.设备: virbr0GENERAL.类型: bridgeGENERAL.硬盘: 52:54:00:84:35:64GENERAL.MTU: 1500GENERAL.状态: 100 (连接的)GENERAL.CONNECTION: virbr0GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1IP4.地址[1]: 192.168.122.1/24IP4.⽹关:IP6.⽹关:# 显⽰设备状态[root@localhost ~]# nmcli device status设备类型状态 CONNECTIONvirbr0 bridge 连接的 virbr0ens33 ethernet 连接的 ens33lo loopback 未管理 --virbr0-nic tun 未管理 --3、如何修改IP地址等属性 格式: # nmcli conn modify IFACE [+|-]setting.property value 说明:modify⽀持修改的参数如下: ipv4.address ipv4.gateway ipv4.dns1 ipv4.method manual 注意:这个命令还不成熟,添加地址后,先down后up才能⽣效 eg:[root@yph6 network-scripts]# nmcli conn modify eno33554984 +ipv4.address 192.168.200.10/24 [root@yph6 network-scripts]# nmcli conn down eno33554984[root@yph6 network-scripts]# nmcli conn up eno33554984[root@yph6 network-scripts]# nmcli conn show[root@yph6 network-scripts]# nmcli conn modify eno33554984 -ipv4.address 192.168.200.10/24 [root@yph6 network-scripts]# nmcli conn down eno33554984[root@yph6 network-scripts]# nmcli conn up eno33554984[root@yph6 network-scripts]# nmcli conn show补充: ⽹络服务: network和NetworkManager centos6中最好⽤network centos7⽤NetworkManager 管理⽹络服务: CentOS 6: service SERVICE {start|stop|restart|status(查看状态)} CentOS 7:systemctl {start|stop|restart|status} SERVICE[.service] 配置⽂件修改之后,需要重启⽹络服务才能让配置⽂件⽣效哦; CentOS 6:# service network restart CentOS 7:# systemctl restart network.service centos7也可与6的⽤法⼀样,只是不太正规。
linux2.6.x的配置文件kconfig语法
linux2.6.x的配置文件kconfig语法linux在 2.6版本以后将配置文件由原来的config.in 改为kconfig,对于kconfig的语法在/Documentation/kbuild/kconfig-language.txt中做了详细的说明,在这里给出kconfig-language.txt的中文版。
介绍----在配置数据库的配置选项是以树的形式组织的:+- Code maturity level options| +- Prompt for development and/or incomplete code/drivers+- General setup| +- Networking support| +- System V IPC| +- BSD Process Accounting| +- Sysctl support+- Loadable module support| +- Enable loadable module support| +- Set version information on all module symbols| +- Kernel module loader+- ...每个选项都有其自己的依赖关系。
这些依赖关系决定了选项是否是可见的。
父选项可见,子选项才能可见。
菜单选项--------大多数的选项都定义了一个配置选项,其它选项则有助于对它们进行组织。
(原文:Most entries definea config option, all other entries help to organize them.)一个配置选项定义可以是下面的形式:config MODVERSIONSbool "Set version information on all module symbols"depends MODULEShelpUsually, modules have to be recompiled whenever you switch to a new kernel. ...每行都是以关键字开始,并可以接多个参数。
libconfig cmake 编译
"如果你准备好潜入Libconfig和CMake的世界,抠上安全带,因为我们即将开始一个令人兴奋的冒险!首先要确定你系统安装了CMake 如果不行,请绕道快速设置。
完成后,抓好libconfig源代码,将其全部解开,准备滚动。
接下来,让我们在你的系统中刻出一个特别的地方来构建libconfig。
创建全新的目录并直接潜入。
在这个目录中,我们将工作一些魔法,并创建一个"CMakeLists。
txt"文件。
这个文件就像我们的秘密地图,给CMake所有它需要的指示工作它的构建系统巫术。
在"CMakeLists。
txt"的档案中,由你来指挥。
您将指定所需的最小CMake 版本,给您的工程一个很酷的名称,并排出所有需要构建的源文件。
感觉像一个大胆的代码师?继续投放一些配置选项和标语以真正调味物。
一旦我们的“ CMakeLists。
txt” 文件全部设置完毕,表演时间就到!冲到终点站打开你的手指释放出"制造"的魔力这就像一个管弦乐团的指挥者,接受我们的指示从“ CMakeLists。
txt” 文件,并利用它们生成所有的踢屁股构建文件我们需要。
就这样,你释放出CMake的力量征服Libconfig!拍拍你的背,你冒险的编码法师,你。
"一旦你运行了'cmake'mand,你就可以继续使用它生成的构建文件来组合libconfig。
通常,你只需要从同一个构建目录运行终端中的“ make” mand。
如果一切顺利,没有错误,你就会有libconfig库和任何相关的程序都准备就绪。
但如果在构建过程中有任何打嗝,只需查看错误消息并修复源代码或构建配置。
一旦Libconfig全部建成并设置,你可以继续安装在你的系统中,如果你想的话。
运行'make安装'mand 作为超级用户你可以走了。
为了有效地利用 CMake 来显示 libconfig,必须在新指定的构建目录中建立“ CMakeLists。
python config库用法
python config库用法在 Python 中,你可以使用 configparser 库来处理配置文件,特别是 INI 文件格式。
以下是 configparser 库的基本用法:首先,确保你已经导入了 configparser 模块:import configparser接下来,你可以执行以下步骤:创建配置文件对象并读取配置文件:config = configparser.ConfigParser()# 读取配置文件config.read('config.ini')读取配置值:你可以使用 get() 方法来读取配置文件中的值,指定要读取的部分和键:value = config.get('section_name', 'key_name')写入或更新配置值:你可以使用 set() 方法来设置或更新配置文件中的值:config.set('section_name', 'key_name', 'value')保存配置文件:一旦你更新了配置文件,记得保存它:with open('config.ini', 'w') as configfile:config.write(configfile)检查部分和键是否存在:你可以使用 has_section() 和 has_option() 方法来检查部分和键是否存在:if not config.has_section('section_name'):config.add_section('section_name')if not config.has_option('section_name', 'key_name'):config.set('section_name', 'key_name', 'default_value')这只是 configparser 库的基本用法示例。
配置文件解析利器-Config库
配置⽂件解析利器-Config库================typesafe config的使⽤====================Typesafe的Config库,纯Java写成、零外部依赖、代码精简、功能灵活、API友好。
⽀持Java properties、JSON、JSON超集格式HOCON 以及环境变量。
#1、加⼊依赖包 config-1.2.1.jar#2、加载配置public class Configure {private final Config config;public Configure(String confFileName) {config = ConfigFactory.load(confFileName);}public Configure() {config = ConfigFactory.load();}public String getString(String name) {return config.getString(name);}}ConfigFactory.load()会加载配置⽂件,默认加载classpath下的application.conf,application.json和application.properties⽂件。
当然也可以调⽤ConfigFactory.load(confFileName)加载指定的配置⽂件。
配置内容即可以是层级关系,也可以⽤”.”号分隔写成⼀⾏:host{ip = 127.0.0.1port = 2282}或者:host.ip = 127.0.0.1host.port = 2282即json格式和properties格式。
(貌似*.json只能是json格式,*.properties只能是properties格式,⽽*.conf可以是两者混合,⽽且配置⽂件只能是以上三种后缀名)如果多个config ⽂件有冲突时,解决⽅案有:1. a.withFallback(b) //a和b合并,如果有相同的key,以a为准2. a.withOnlyPath(String path) //只取a⾥的path下的配置3. a.withoutPath(String path) //只取a⾥出path外的配置例如:Config firstConfig = ConfigFactory.load("test1.conf");Config secondConfig = ConfigFactory.load("test2.conf");//a.withFallback(b) a和b合并,如果有相同的key,以a为准Config finalConfig = firstConfig.withOnlyPath("host").withFallback(secondConfig);finalConfig中的配置是test1.conf中的host节点的所有配置与test2.conf所有节点的配置合集。
vuecli3项目添加配置文件以及使用@映射、代理
vuecli3项⽬添加配置⽂件以及使⽤@映射、代理在根⽬录下新建 vue.config.js1、vue.config.js中配置路径别名⽅法// vue.config.jsmodule.exports = {configureWebpack: {resolve: {alias: {'assets': '@/assets','components': '@/components','views': '@/views',}}},}之所以⽤'@/assets',是因为偷了个懒利⽤3.x中/node_modules/@vue/cli-service/lib/config/base.js中已经配好的@路径,有兴趣的可以进⼊⽂件⾥⾯看⼀看2、使⽤vuecli 2.0的⽅式设置const path = require("path");function resolve(dir) {return path.join(__dirname, dir);}module.exports = {chainWebpack: config => {config.resolve.alias.set("@", path.join(__dirname, "src")).set("components", resolve("src/components"));}};这个我个⼈配置的项⽬config (映射、代理服务)// vue.config.jsconst path = require("path");function resolve(dir) {return path.join(__dirname, dir);}module.exports = {baseUrl: "/",outputDir: "dist", // 打包的⽬录lintOnSave: true, // 在保存时校验格式productionSourceMap: false, // ⽣产环境是否⽣成 SourceMap//代理服务配置项⽬跨域⽤到devServer: {open: true, // 启动服务后是否打开浏览器host: "0.0.0.0",port: 8080, // 服务端⼝https: false,hotOnly: false,proxy: {"/api": {target: "",ws: true, // proxy websocketschangeOrigin: true, // needed for virtual hosted sitespathRewrite: {"^/api": "" // 设置过滤关键字api ,// '^/': '' // 设置过滤关键字为空,}}}},chainWebpack: config => {config.resolve.alias.set("@", path.join(__dirname, "src")).set("components", resolve("src/components"));} };。