原创 grep 和正則表達式續(六)

        我們今天繼續來學習下 grep 和正則表達式。        1、匹配開頭和結尾字符            格式:grep { ^string | string $ } filename        示例:grep ^[a

原创 KMP 算法的應用(二十七)

        我們在上節博客中講到了 KMP 算法的具體實現,那麼我們本節就來看看 KMP 算法的應用。問題:如何在目標字符串中查找是否存在指定的子串?        我們來看看字符串類中的新功能,如下圖所示       1、子串查找(K

原创 KMP子串查找算法(二十六)

        我們在之前學習了字符串類,那麼查找字符串類的需求就隨之而來。如何在目標字符串 S 中,查找是否存在子串 P?        我們大家最先能想到的肯定是樸素解法,何謂樸素解法呢?就是一個一個進行對比,如果比對不成功,便向後移一

原创 shell 之 數學計算 &引用(三)

        今天我們來看看 shell 中的數學計算和引用。在 shell 中的計算方法有三種:1、expr;2、();3、let。下來我們來仔細的看看這三種數學計算:        1、第一種:expr            格式:e

原创 棧(二十二)

        今天我們來學習下棧。那麼什麼是棧呢?棧是一種特殊的線性表,它僅能在線性表的一段進行操作。棧頂(Top)是允許操作的一端,棧底(Bottom)是不允許操作的一端。棧的特性是後進先出(last in first out),另外一

原创 雙向循環鏈表(二十一)

        我們在上節博客中介紹了 Linux 中的內核鏈表,下來我們就用 Linux 內核鏈表來實現 DTLib 中的雙向循環鏈表。它繼承自 DualLinkList,它的繼承關係如下圖所示        下來我們來講講它的設計思路:

原创 Linux 內核鏈表剖析(二十)

        上節博客中,我們講到了 Linux 中的宏定義 offsetof 與 container_of 宏。那麼本節我們的課程目標就是一直 Linux 內核鏈表,使其適用於非 GNU 編譯器,分析 Linux 內核中鏈表的基本實現。

原创 shell簡介基礎(一)

        我們在嵌入式的開發中,難免會要用到腳本。常用的也就是 makefile 和 shell 腳本了,之前我們學習了 makefile 相關的知識,接下來我們也將要學習 shell 相關的知識,以便在以後的嵌入式開發中能更快、更高

原创 shell 學習

        我們在嵌入式的開發中,難免會要用到腳本。常用的也就是 makefile 和 shell 腳本了,之前我們學習了 makefile 相關的知識,接下來我們也將要學習 shell 相關的知識,以便在以後的嵌入式開發中能更快、更高

原创 主引導程序的擴展(四)

        我們在前面講解了主引導程序的基礎知識,今天我們就來講講主引導程序的擴展。 不過主引導程序有個限制,那便是主引導程序的代碼量不能超過 512 字節!那麼我們如何來突破這個限制呢?        我們現在的基本思路是在主引導程序

原创 C之指針與數組組合(二十六)

        我們在前面講到數組的本質是一段連續的內存空間,那麼它的大小爲 sizeof(array_type) * array_size,同時數組名可看做指向數組第一個元素的常量指針。那麼問題來了,數組 a + 1 的意義是什麼呢?結果

原创 C之main函數和命令行參數(三十)

        我們知道在 C 語言中,程序是從 main 函數開始運行的,我們稱其爲主函數。我們來看看下面幾種 main 函數定義正確嗎?        那麼 main 函數的原型到底是什麼呢?我們來看看編譯器怎麼說,我們分別編譯下四種

原创 C之指針閱讀技巧(三十三)

        在 C 語言中,指針是精華所在了,那麼我們總是覺得指針是最難理解的。它也是筆試面試中必問的知識點之一,今天我們就來看看那些複雜難懂的指針是怎麼閱讀的。        在閱讀指針相關的函數中,我們有個左右法則(這是唐長老總結的

原创 C之編譯和鏈接(十八)

        我們平時所做的編譯工作其實是由編譯器來完成的,那麼編譯器都是由哪幾部分構成的呢?包括四大部分:預處理器、編譯器、彙編器以及鏈接器組成。我們來看看一個由 file.c 文件是怎樣得到 file.o 文件的,如下        

原创 C之數組指針和指針數組(二十九)

        我們今天來看下傳說中的指針數組和數組指針。在 C 語言中,數組都有自己特定的類型。那麼數組的類型是怎樣的呢?它是由元素類型和數組大小共同決定的。比如 int array[5] 的類型就是 int[5]。        在 C