原创 函數指針與回調函數

一.函數指針與指針函數的區別    1. 指針函數是指帶指針的函數,本質上是一個函數,函數返回類型是某一類型的指針,其形式一般如下:          類型標識符 *函數名(參數列表)    例如:int *f(x,y),它的意思是聲明一個

原创 C++函數的重載/覆蓋/隱藏

一.重載    成員函數被重載的特徵:    (1)相同的範圍(在同一個類中);    (2)函數名字相同;    (3)參數不同;    (4)virtual關鍵字可有可無。二.覆蓋    覆蓋是指派生類函數覆蓋基類函數,特徵是:    

原创 IO多路複用之select

一.概念      select系統調用是用來讓程序監視多個文件句柄的狀態變化。程序會停在select這裏等待,直到被監視的文件句柄有一個或多個的狀態發生了改變。關於文件句柄,其實就是一個整數,我們最熟悉的句柄是0、1、2三個,0是標準輸入

原创 基於UDP的socket編程

一.相關函數說明    UDP是無連接的,即發送數據之前不需要建立連接。    除了基於TCP中的socket編程所需的函數之外,基於UDP的socket編程中還需要用到兩個函數。    1.sendto函數:用於客戶端中指定一目的地發送數

原创 基於UDP的socket編程

一.相關函數說明    UDP是無連接的,即發送數據之前不需要建立連接。    除了基於TCP中的socket編程所需的函數之外,基於UDP的socket編程中還需要用到兩個函數。    1.sendto函數:用於客戶端中指定一目的地發送數

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

一.對於C語言的函數來說    在C語言的時代,可重入函數是說當一個函數被不同的線程訪問的時候,每一份調用都獨自使用自己的一份數據,多次調用之間不存在數據共享。所以C語言的可重入函數一定是線程安全的,因爲根本不存在多個線程共享一份數據的問題

原创 搜索二叉樹

    二叉查找樹(Binary Search Tree),也稱有序二叉樹(ordered binary tree),排序二叉樹(sorted binary tree),是指一顆空樹或者具有下列性質的二叉樹:    (1)每個節點都有一個作

原创 紅黑樹

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

原创 shell練習題

1.命令test或[可以測試一個條件是否成立,如果測試結果爲真,則該命令的返回狀態爲0;如果測試結果爲假,則該命令的返回狀態爲1。(與C語言的邏輯表示正好相反)2.  -eq(等於)    -ne(不等於)    -lt(小於)    -l

原创 我的友情鏈接

流蘇

原创 IO多路複用之poll

不同於select使用三個位圖來表示三個fdset的方式,poll使用一個pollfd的指針實現。    pollfd結構包含了要監視的event和發生的event,不再使用select“參數-值”傳遞的方式。同時,pollfd並沒有最大數

原创 I/O多路轉接之epoll

一、對epoll的初步認識    epoll是爲了處理大量句柄而對poll做了改進。    epoll的相關係統調用:    (1)iint epoll_create(int size)            創建一個epoll的句柄。si

原创 搜索二叉樹

    二叉查找樹(Binary Search Tree),也稱有序二叉樹(ordered binary tree),排序二叉樹(sorted binary tree),是指一顆空樹或者具有下列性質的二叉樹:    (1)每個節點都有一個作

原创 對堆棧的認識

一.堆棧在地址空間中的位置任何一個程序通常都包含代碼段和數據段,這些代碼和數據本身都是靜態的。程序想要運行,首先要由操作系統爲其創建進程,並在進程的虛擬地址空間爲其代碼段和數據段建立映射。光有代碼段和數據段是不夠的,進程在運行過程中還要有其

原创 基於TCP的socket 編程

一.對socket的理解    1.socket本身有“插座“的意思,因此用來描述網絡連接的一對一關係。    2.在TCP/IP協議中,“IP地址+TCP/UDP端口號”唯一標識網絡通信中的一個進程,“IP地址+端口號”就稱爲socket