原创 守護進程

一、守護進程定義    守護進程也稱精靈進程( Daemon),是運行在後臺的一種特殊進程。它獨立於控制終端並且週期性地執行某種任務或等待處理某些發生的事件。守護進程是一種很有用的進程。 Linux的大多數服務器就是用守護進程實現的。比如,

原创 shell中的`和$()、eval、crontab

一、`和$()的區別    反引號本身就對\進行了轉義,保留了本身意思,如果我們想在反引號中起到\的特殊意義,我們必須使用2個\來進行表示。    反引號中: \\ = \    $()中:\ = \    注意:反引號是老的用法,$()是

原创 基於epoll的簡單服務器

一、epoll    1.epoll只有epoll_create,epoll_ctl,epoll_wait 3個系統調用    (1)int epoll_create(int size);     創建一個epoll的句柄。自從linux2

原创 五種I/O模型

一、I/O簡介     Unix下共有五種I/O模型:阻塞I/O、非阻塞I/O 、I/O複用(select和(e)poll)、信號驅動、I/O(SIGIO)、異步I/O(Posix.1的aio_系列函數)。      IO請求分兩步:   

原创 淺談NAT和代理服務器

一、NAT    1.工作原理簡介    藉助於NAT,私有(保留)地址的"內部"網絡通過路由器發送數據包時,私有地址被轉換成合法的IP地址,一個局域網只需使用少量IP地址(甚至是1個)即可實現私有地址網絡內所有計算機與Internet的通

原创 HTTP中GET與POST

    http是基於請求與響應。請求由三部分組成,分別是:請求行、消息報頭、請求正文。    請求行以一個方法符號開頭,以空格分開,後面跟着請求的URI和協議的版本,格式如下:Method Request-URI HTTP-Version

原创 vim安裝及簡易配置

vim安裝vim編輯器需要安裝三個包:vim-enhanced-7.0.109-7.el5vim-minimal-7.0.109-7.el5vim-common-7.0.109-7.el5    查看一下你本機已經存在的包,確認一下你的VI

原创 linux中的死鎖

    死鎖:一般情況下,如果同一個線程先後兩次調用lock,在第二次調用時,由於鎖已經被佔用,該線程 會掛起等待別的線程釋放鎖,然而鎖正是被自己佔用着的,該線程又被掛起而沒有機會釋放鎖, 因此 就永遠處於掛起等待狀態了,這叫做死鎖(Dea

原创 小程序的棧幀分析

    函數調用另一個詞語表示叫作過程。一個過程調用包括將數據和控制從代碼的一部分傳遞到另一部分。另外,它還必須在進入時爲過程的局部變量分配空間,並在推出時釋放這些空間。而數據傳遞,局部變量的分配和釋放通過操縱程序棧來實現。    棧幀也叫

原创 路由表建立的算法

一、路由表    在計算機網絡中,路由表或稱路由擇域信息庫(RIB)是一個存儲在路由器或者聯網計算機中的電子表格(文件)或類數據庫。路由表存儲着指向特定網絡地址的路徑(在有些情況下,還記錄有路徑的路由度量值)。路由表中含有網絡周邊的拓撲信息

原创 IP數據報的分片和組裝

一、IP數據報的格式    IP數據報的首部長度和數據長度都是可變長的,但總是4字節的整數倍。   (1)對於IPv4 ,4位版本字段是4。         (2)4位首部長度的數值是以4字節爲單位的,最小值爲5,也就是說首部長度最小是4x

原创 線程安全與可重入函數的區別及聯繫

一、線程安全    如果你的代碼所在的進程中有多個線程在同時運行,而這些線程可能會同時運行這段代碼。如果每次運行結果和單線程運行的結果是一樣的,而且其他的變量的值也和預期的是一樣的,就是線程安全的。   或者說:一個類或者程序所提供的接口對

原创 Linux下的簡易進度條的實現

       進度條的實現就是用‘#’字符數量模擬當前進度,進度條的實現代碼並不難,但首先應該注意以下幾點:1.\r和\n         回車換行符,是2個符。一個回車,一個換行。\r僅僅是回車,\n是換行。\r實際是回到行首。\n如果下