uci 是openwrt為實現配置集中化而引入的乙個軟體包, 通過修改uci,可以實現對openwrt的絕對部分配置的修改.luci(openwrt 的web配置介面)也是通過讀uci配置檔案的操作來實現使用者對路由的配置的。通過掌握uci的api的使用,可以方便地將您的軟體的配置介面整合到luci中.
luci的配置檔案一般儲存在 /etc/config目錄下。比如網路配置檔案則是 /etc/config/network 無線的配置檔案是 /etc/config/wireless. 跟多配置檔案的含義參考官方 wiki
uci上下文: struct uci_context *
包(package): 乙個包對應乙個uci格式的檔案.型別是 struct uci_package *
節(section): 乙個配置檔案的節點. 型別是 struct uci_list *
值(value):乙個節下面可能包含多個值 乙個值具有乙個名字.
uci配置檔案的基本操作.
[cpp]view plain
copy
#include
#include
#include
#include
static
struct
uci_context * ctx = null;
//定義乙個uci上下文的靜態變數.
/*********************************************
* 載入配置檔案,並遍歷section.
*/bool
load_config()
// 如果您不確定是 string型別 可以先使用 uci_lookup_option() 函式得到option 然後再判斷.
// option 的型別有 uci_type_string 和 uci_type_list 兩種.
} uci_unload(ctx, pkg); // 釋放 pkg
cleanup:
uci_free_context(ctx);
ctx = null;
}
加入現在有乙個如下的配置檔案:
[plain]view plain
copy
config "server" "webserver"
list "index" "index.html"
list "index" "index.php"
list "index" "default.html"
**片:
[cpp]view plain
copy
// s 為 section.
struct
uci_option * o = uci_lookup_option(ctx, s,
"index"
);
if((null != o) && (uci_type_list == o->type))
//o存在 且 型別是 uci_type_list則可以繼續.
} uci提供了乙個簡潔的辦法來操作配置資訊,例如有乙個配置檔案
[plain]view plain
copy
#檔名: testconfig
config 'servver'
option 'value' '123' # 我們想修改 'value' 的值為 '456'
**如下:
[cpp]view plain
copy
struct
uci_context * ctx = uci_alloc_context();
//申請上下文
struct
uci_ptr ptr =;
uci_set(_ctx,&ptr); //寫入配置
uci_commit(_ctx, &ptr.p, false
); //提交儲存更改
uci_unload(_ctx,ptr.p); //解除安裝包
uci_free_context(ctx); //釋放上下文
依照上面的例子,我們可以舉一反三, uci_ptr 用來指定資訊.而是用uci_set則是寫入資訊.同類的函式有如下幾個: 針對list的操作:
[cpp]view plain
copy
uci_add_list()
// 新增乙個list 值
uci_del_list() // 刪除乙個list 值
uci_delete() // 刪除乙個option值
tp Yaconf 配置檔案使用
yaconf是乙個高效能的php配置容器,它在php啟動的時候把格式為ini的配置檔案parse後儲存在php的常駐記憶體中 configure with php config usr bin php config make j make install 查詢php.ini檔案php i grep ...
配置檔案Profile使用
spring.profiles.active dev 在yaml檔案中支援使用多文件塊方式,不同的環境可以通過 進行分隔,如果有編寫的pplication properties yml檔案,則檔案優先。spring profiles active prod 指定需要切換的環境,檔案優先 spring...
應用程式配置檔案
這裡主要記錄一下在學習過程中配置檔案的使用,因為是從機房重構接觸到的,就以機房裡的窗體為例子。應用程式配置檔案包含應用程式特定的設定。該檔案包含公共語言執行庫讀取的配置設定 如程式集繫結策略 遠端處理物件等等 以及應用程式可以讀取的設定。應用程式配置檔案的名稱和位置取決於應用程式的宿主,在vs中,配...