原创 Winsock I/O方法

1.blocking(阻塞)模型 最簡單的模式,也是最基礎的模式。 2.select模型         其使用select函數實現對I/O的管理。select函數可以判斷套接字上是否有數據,或者是否能夠向套接字上寫數據。設計這可函數的

原创 Winsock中名稱解析和地址解析

隨着IPv6添加了兩個既能解析IPv4又能解析IPv6的函數:getnameinfo和getaddrinfo。這兩個函數定義在頭文件WS2TCPIP.H。 1.getaddrinfo 其提供獨立於協議的名稱解析。其定義如下: int ge

原创 線程同步

一、用戶方式中的線程同步 1.互鎖函數        可以使用InterlockedExchangeAdd函數對一個長變量以原子操作的方式遞增一個值: LONG InterlockedExchangedAdd( PLONG plA

原创 windows程序設計複習(一)

窗口創建過程 1.註冊窗口類        定義一個WNDCLASS結構體,對結構體進行初始化,然後調用RegisterClass函數註冊該窗口類: typedef struct { UINT style ;//窗口的類別

原创 SQL Server索引

一、SQL Server存儲機制 1.數據庫:數據庫是最高級別的存儲機制。 2.區段:區段是用來爲表和索引分配空間的基本存儲單元。它由8個連續的8k數據頁組成。對於新記錄,內存空間的每次分配的是一個區段。區段是建立在數據庫的基礎上的。 3

原创 獲取設備上下文

獲取設備上下文有三種方法:BeginPaint、GetDC、GetWindowDC。        方法一:BeginPaint和EndPaint函數。BeginPaint函數適用在WM_PAINT消息中。使用這種方法可以自動將無效區域設

原创 線程一

        線程由兩部分組成:線程內核對象和線程堆棧。         每個進程至少有一個線程。當進程初始化時,系統就會創建一個主線程。該主線程隨C/C++運行期啓動代碼一道運行,啓動代碼會調用進入點函數(main、wmain、Win

原创 CreateToolHelp32Snapshot函數獲取系統快照

        系統爲我們在內存中指定了一個關於進程、線程、堆和模塊等的當前狀態信息副本-----系統快照,我們可以通過CreateToolHelp32Snapshot函數來獲取系統快照的句柄,通過該句柄來獲取當前狀態信息。該函數如下:

原创 Unicode

        Unicode的全部字符都佔用兩個字節。 1.C運行庫對Unicode的支持       在string.h中定義了一個wchar_t類型代替char類型來支持Unicode字符串:         typedef uns

原创 SQL Server視圖

1.創建視圖 視圖是一個存儲查詢,其用於混合和匹配基本表的數據。其語法結構如下: WITH ENCPYPTION:用於對視圖進行加密,這樣就不能夠獲取視圖的代碼。 WITH SCHEMABINDING:設置這個選項後,就可以創建視圖索

原创 進程

        進程常被定義爲一個正在運行的程序的實例。其由兩部分組成:1)用於管理進程的進程內核對象;2)一個地址空間,其中包括代碼和數據,以及動態分配的空間。         進程是死的,它至少應該有一個主線程,該主線程可以創建其它線

原创 線程二

一、線程的調度         window是搶佔式多線程操作系統,也就是說一個線程可以隨時停止運行,即不管這個線程是否已經消耗完自己的時間片,隨後另一個線程可進行調度。線程的內核對象中使用線程上下文結構(CONTEXT結構)來保存自己線

原创 SQL Server約束

約束可分爲3類:實體約束、域約束和參照完整性約束。 實體約束有:CHECK約束、規則、默認值和DEFAULT約束。域約束用於處理一個或多個列。 域約束有:主鍵約束和唯一約束(替換鍵)。實體約束是關於每一行。 參照完整性約束有:外鍵約束。如

原创 Linux下MakeFile文件

1. makefile文件是Linux下用於編譯的規則文件,我們可以用make命令來運行makefile文件。makefile文件的基本規則如下: 目標文件列表:依賴文件列表 [;命令語句]

原创 cpu獨佔和親和性

1.可以通過設置isolcpus來設置獨佔,在機器啓動的時候,線程默認不佔用該CPU,但通過設置cpu親和性可以佔用該cpu. 2.ubutun設置isolcpus的步驟:          2-1)修改/etc/default/grub