1. 程式人生 > >openwrt uci api續: 找出匿名節點的"名字"

openwrt uci api續: 找出匿名節點的"名字"

在使用uci api函式進行配置檔案管理的時候,有些配置檔案裡面會有匿名節點的存在。現有的uci api沒有直接支援修改匿名節點的api,所以想要修改匿名節點就略顯頭疼,甚至無從下手。其實匿名節點並非真的匿名,它也有名字存在。以下以/etc/config/wireless檔案為例:



這裡這個節點就是匿名節點(anonymous section),上面有說這個節點其實是有名字的,可以通過下面這個函式得到所有節點的名稱,包括匿名節點

static void list_all_section()
{
	struct uci_context *ctx = uci_alloc_context();  //申請一個uci上下文
	struct uci_package *pkg = NULL;
	struct uci_element *e;
	//int i = 0;
	
	
	if(UCI_OK != uci_load(ctx, "/etc/config/wireless", &pkg))
		return;
 	//遍歷uci配置檔案的每一個節
	uci_foreach_element(&pkg->sections, e)
	{
		struct uci_section *s = uci_to_section(e);
		
		//if(!strcmp("wifi-iface", s->type))   //進行節點型別刪選
		//{
			printf("section name is %s\n", s->e.name); 
		//}
	}
	fclose(fp);
	uci_unload(ctx, pkg);
	uci_free_context(ctx);
	ctx = NULL;
}

s->e.name就是節點的名字,接下來就和有名節點一樣,可以用uci的大批api來進行配置檔案的操作了。過兩天上傳本人對配置檔案操作的基本api介面

相關推薦

openwrt uci api: 匿名節點的"名字"

在使用uci api函式進行配置檔案管理的時候,有些配置檔案裡面會有匿名節點的存在。現有的uci api沒有直接支援修改匿名節點的api,所以想要修改匿名節點就略顯頭疼,甚至無從下手。其實匿名節點並非真的匿名,它也有名字存在。以下以/etc/config/wireless檔

遞迴法節點的所有父節點直到根節點

今天在C# and Java QQ群裡看到有人在問如下一題: “ 出道題目啊,我的面試題,碰到2次了sid pidA NULLB AC NULLD CE DF Esid是子節點,pid是父節點,查出f的所有父節點,一直查到他的根節點為止 ” 要求用sql語句寫出來,一時難倒

OpenWRT UCI API的使用——C語言

UCI 是OpenWRT為實現配置集中化而引入的一個軟體包, 通過修改UCI,可以實現對OpenWRT的絕對部分配置的修改.LUCI(OpenWRT 的WEB配置介面)也是通過讀UCI配置檔案的操作來實現使用者對路由的配置的。通過掌握UCI的API的使用,可以方便地將您的軟

Openwrt UCI API的使用

OpenWRT UCI API的使用 UCI 是OpenWRT為實現配置集中化而引入的一個軟體包, 通過修改UCI,可以實現對OpenWRT的絕對部分配置的修改.LUCI(OpenWRT 的WEB配置介面)也是通過讀UCI配置檔案的操作來實現使用者對路由的配置的。通過掌握

linked-list-cycle-ii——鏈表,開始循環節點

cnblogs xtra break cycle list ini def int using Given a linked list, return the node where the cycle begins. If there is no cycle, return

C 兩個連結串列中資料節點的資料域為一個字母 ,其中L1包含L2,在L1中與L2相等的字串,並將其逆置

前面相關操作在這呢,這個函式依託於此 //結構體 typedef struct Node { ElementType data; struct Node * next; } LNode, * LinkNode; //兩個連結串列中資料節點的資料域為一個字母 http

資料結構演算法題/兩個連結串列的第一個公共節點

分析:如果兩個單向連結串列有公共的結點,也就是說兩個連結串列從某一結點開始,它們的m_pNext都指向同一個結點。但由於是單向連結串列的結點,每個結點只有一個m_pNext,因此從第一個公共結點開始,之後它們所有結點都是重合的,不可能再出現分叉。所以,兩個有公共結點而部分重合的連結串列,拓撲形狀看起

二叉搜尋樹的最大節點和最小節點

problem:Write recursive versions of TREE-MINIMUM and TREE-MAXIMUM. typedef struct BiTNode {     int data;     struc

題目8  假定兩個帶頭節點的單鏈表,儲存單詞,字尾相同時共享相同空間,共同字尾的起始位置。

假定兩個帶頭節點的單鏈表,儲存單詞,字尾相同時共享相同空間,找出共同字尾的起始位置。 首先:這裡給出建立的程式碼:至於createList函式,寫在了標頭檔案中,後面統一給出。 char word1[]={'l','o','a','d'}; char word2[]={'p'

演算法題008 -- [寫一個程式兩個單鏈表的交叉節點] by java

題目 寫一個程式找出兩個單鏈表的交叉節點。 演算法要求: 如果兩個連結串列沒有交叉點,就返回null 這兩個連結串列必須在方法結束後保持他們原來的資料結構 你可以認定在連結串列的結構不存在環 時間複雜度O(n), 空間複雜度O(1) 舉例

二叉搜尋樹的最小節點絕對值之差/在二叉查詢樹中尋找兩個節點,使它們的和為一個給定值/ BST 中的所有眾數(出現頻率最高的元素)。

關於二叉樹的數值運算,一般考慮借用中序遍歷為陣列;再進行計算的思想。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; *

2. 給定一個 query 和一個 text,均由小寫字母組成。要求在 text 中以同樣的順序連 現在 query 中的最長連續字母序列的長度。例如, query 為“acbac”,text

2. 給定一個 query 和一個 text,均由小寫字母組成。要求在 text 中找出以同樣的順序連 續出現在 query 中的最長連續字母序列的長度。例如, query 為“acbac”,text 為 “acaccbabb”,那麼 text 中的“cba”為最長的連續出現

程式設計師面試金典: 9.4樹與圖 4.2給定有向圖,設計一個演算法,兩個節點之間是否存在一條路徑。

#include <iostream> #include <stdio.h> #include <vector> #include <queue> using namespace std; /* 問題:給定有向圖,設計一個

題目8  假定兩個帶頭節點的單鏈表,儲存單詞,字尾相同時共享相同空間,共同字尾的起始位置。

假定兩個帶頭節點的單鏈表,儲存單詞,字尾相同時共享相同空間,找出共同字尾的起始位置。 首先:這裡給出建立的程式碼:至於createList函式,寫在了標頭檔案中,後面統一給出。 char wor

Openwrt下C呼叫UCI API

“uci”是”Unified Configuration Interface”(統一配置介面)的縮寫,意在OpenWrt整個系統的配置集中化。 許多程式在系統某處擁有自己的配置檔案,比如/etc/network/interfaces, /etc/expor

js 當前元素所包含的最後一個元素節點(不是文字節點

elem.lastChild只能確保找出的是當前元素的最後一個節點,不能保證這個節點是元素節點還是文字節點。 為了確保找出的節點是當前元素的最後一個元素節點,可以如下寫: var elemChildren=elem.getElementByTagName("*"): if(

PHP 通過一個節點所有父節點

如圖,拿到所有給出節點的父節點。百度搜了半天,都是通過父節點找子節點的。無奈,後來只能自己寫了。遍歷+遞迴,大神們不要鄙視我。。。我資料結構。。。<?php //測試資料 $arr = [ ['id'=>8,'pid'=>7,'username'=&

LeetCode 重構二叉搜尋數,即兩個被交換的節點

題意:二叉搜尋樹中,有兩個結點的位置被交換了,請找出這兩個結點並交換回來。 “直觀的想法可能是中序遍歷一遍二叉樹,得到一個有序的二叉樹,然後找出其中逆序的地方,交換回來就好了。但這樣空間複雜度就是O(n),題目要求O(1)。 我們來分析下有哪些情況:1) 被交換的兩個結點相鄰,如124356,這樣只需要把相

連結串列---單鏈表中倒數第k個節點

思路: 1、迭代,二指標,快的先走n步,然後一起走,當fast走到最後,slow就是結果 2、遞迴,到達連結串列末尾返回一個0計數器,當計數器等於k時就是第k個 迭代 ListNode nthToLast(ListNode head, int n) {

有環連結串列中環的起始節點

  給定一個有環的連結串列,寫一個演算法,找出環的起點。 例如: 輸入:A->B->C->D->E->C[與前面的C是同一個節點] 輸出:C 判斷一個連結串列是否存在環有一個簡單的方法,就是使用一個快指標、和一個慢指標,快指標每次走兩步,慢指