Chrome Extension Basic
介紹
基本外掛
一開始要做一個簡單的外掛,建立一個按鈕在 Chrome 旁邊
要做一個按鈕會使用到 chrome.browserAction,如下圖所示
當然還有其他類型的按鈕,例如pageAction,下圖橘色 RSS 按鈕
不過為什麼不命名為browserButton
這就不清楚了
再來看一下 API 頁面的介紹,基本上 API 介紹不外乎下面幾個重點
1 | 描述功能 : 就是描述功能 |
一開始要做一個簡單的外掛,建立一個按鈕在 Chrome 旁邊
要做一個按鈕會使用到 chrome.browserAction,如下圖所示
當然還有其他類型的按鈕,例如pageAction,下圖橘色 RSS 按鈕
不過為什麼不命名為browserButton
這就不清楚了
再來看一下 API 頁面的介紹,基本上 API 介紹不外乎下面幾個重點
1 | 描述功能 : 就是描述功能 |
樹是1對多
的結構,沒有節點的樹稱為空樹
1.存在唯一的根節點(root)
2.其餘節點可成為另一棵樹或稱子樹,注意子樹互不相交
一個節點的子樹數量稱為度
度為 0 表示此節點是葉子
階級是從root
開始算,根為一階並往下加
最大階度也稱為樹的深度或高度
1 | 樹 (Tree) |
1.每個節點最多兩個子樹,所以沒有大於2度的節點
2.左子樹和右子樹是有順序的
3.即使只有一個子樹也要區分左右
斜樹:所有節點只有左子樹或右子樹
完滿二元樹(Full binary):所有葉子都在同一階,高度 h 要有 2^h-1 個 Node
完整二元樹(Complete binary):也就是高度 h 但 Node < 2^h-1 個 Node 的樹
3 種實作二元樹的方法
1 | 陣列表示法(如果是斜樹會浪費空間) |
走訪二元樹的順序很重要,每個 Node 只拜訪一次
主要分為下面 4 種走法,都用遞迴寫法
1 | 前序(PreOrder) |
線性串列是一種資料結構
包含順序儲存(陣列)或是鏈結串列都屬於線性串列
以下是線性串列的基本操作
1 | 線性串列 (LinearList) |
1 | # 解壓縮 |
1 | # 看 ethX 基本設定 |
系統呼叫流程,以使用 execve() 來說
1 | int main() |
execve 是 syscall 編號 11
編號定義位於kernel\linux-3.6.5\arch\x86\include\generated\asm\unistd_32/64.h
不同版本 Kernel 放的位置可能有點差別,另外 32/64 定義編號也會不一樣
1 |
前面目的檔章節介紹 ELF 檔案格式
此章節說明如果有兩個目的檔要如何連結
這裡使用 a.c 和 b.c 兩個檔案當範例
1 | # a.c |
指標宣告
1 | // countPtr 型態為 int* |
指標表示如下
1 | /* |