原创 shell腳本中反引號與雙引號的·區別與聯繫

雙引號目的: 爲了包含文字或者函數段. 除了本身,反引號內的函數,$開頭的變量和\開頭反轉換的字符外, 其餘都是直接輸出.被雙引號用括住的內容,將被視爲單一字串。它防止通配符擴展,但允許變量擴展。這點與單引數的處理方式不同。反引號目的是爲了

原创 生產者消費者

生產者把數據放入緩衝區,消費者從緩衝區中取數據。

原创 命名管道

命名管道基本概念:    匿名管道沒有名字,因此只有血緣關係的進程間纔可以通信,命名管道的提出就是爲了克服這個限制。命名管道是一個設備文件,因此,即使進程間無血緣關係,只要可以訪問該路徑,就能夠通過FIFO通信。FIFO總是按照先進先出的原

原创 匿名管道(4種情況 )

匿名管道:管道是一種最基本的IPC機制,由pipe函數創建:#include <unistd.h>int pipe(int filedes[2]);調用pipe函數時在內核中開闢一塊緩衝區(稱爲管道)用於通信,它有一個讀端一個寫端,然後通過

原创 線程概念

線程是運行在一個進程的基本執行流。線程是進程調度的基本實體。線程強調共享,但也有自己的私有資源。爲什麼要有線程?1.進程雖然獨佔資源,但對進程間通信維護比較不好,切換成本較大。2.線程切換成本較小,線程運行在進程內部。創建線程:返回值:成功

原创 紅黑樹

紅黑樹是一棵二叉搜索樹,它在每個節點上增加了一個存儲位來表示節點的顏色,可以是Red或Black。通過對任何一條從根到葉子簡單路徑上的顏色來約束,紅黑樹保證最長路徑不超過最短路徑的兩倍,因而近似於平衡。紅黑樹是滿足下面紅黑性質的二叉搜索樹每

原创 高度平衡的二叉搜索樹—AVLTree

AVL樹AVL樹又稱爲高度平衡的二叉搜索樹,是1962年有俄羅斯的數學家G.M.Adel'son-Vel'skii和E.M.Landis提出來的。它能保持二叉樹的高度平衡,儘量降低二叉樹的高度,減少樹的平均搜索長度。AVL樹的性質左子樹和右

原创 vfork和fork區別

fork:   一個現有進程可以調用fork創建一個新進程。   返回值:子進程中返回0,父進程返回子進程ID,出錯返回零。    子進程是父進程的副本。一個現有進程可以調用fork函數創建一個新進程。由fork創建的新進程被稱爲子進程(c

原创 http中的keep-alive

HTTP是一個請求<->響應模式的典型範例,即客戶端向服務器發送一個請求信息,服務器來響應這個信息。在老的HTTP版本中,每個請求都將被創建一個新的客戶端->服務器的連接,在這個連接上發送請求,然後接收請求。這樣的模式有一個很大的優點就是,

原创 消息隊列

消息隊列基本概念:    消息隊列提供了一種從進程向另一個進程發送一個數據塊的方法。每個數據塊都被認爲是有一個類型,接收者進程接收的數據塊可以有不同的類型。我們可以通過發送消息來避免命名管道的同步和阻塞問題。消息隊列與管道的區別:    消

原创 shell腳本的基本算法編程

第一題:斐波那契數列的遞歸與非遞歸非遞歸:遞歸:注意在shell下return的範圍是0-255,在這不能用return1第二題:字符串截取cut第三題:求100個數的和第一種非遞歸:第二種遞歸第三種工具第四題:求三個數的最大值,最小值,平

原创 shell條件判斷中單箇中括號和霜中括號有什麼需要

  1、單中括號 []    ①bash 的內部命令,[和test是等同的。如果我們不用絕對路徑指明,通常我們用的都是bash自帶的命令。if/test結構中的左中括號是調用test的命令標識,右中括號是關閉條件判斷的。這個命令把它的參數作

原创 Linux中的crond命令

crond是Linux用來定期執行程序的命令。當安裝完成操作系統之後,默認便會啓動此任務調度命令。crond命令每分鍾會定期檢查是否有要執行的工作,如果有 要執行的工作便會自動執行該工作。而Linux任務調度的工作主要分爲以下兩類:1、系統

原创 shell腳本中的eval

eval的作用是再次執行命令行處理,也就是說,對一個命令行,執行兩次命令行處理。1、例子1:用eval技巧實現shell的控制結構for用eval技巧實現shell的控制結構for。 [root@home root]# cat myscri