原创 哪些函數可以成爲虛函數,哪些函數不可以成爲虛函數

一,什麼是虛函數 擁有 Virtual 關鍵字的函數稱之爲虛函數 虛函數的作用是實現動態綁定的,也就是說程序在運行的時候動態的的選擇合適的成員函數 那麼,有哪些函數可以成爲虛函數?那些函數不可以成爲虛函數? 要成爲虛函數必須滿足兩點,一就

原创 linux 文件描述符與文件指針 詳解

簡單歸納:fd只是一個整數,在open時產生。起到一個索引的作用,進程通過PCB中的文件描述符表找到該fd所指向的文件指針file。 1,文件描述符       文件描述符的操作(如: open)返回的是一個文件描述符,內核會在每個進程空

原创 c++之哪些成員函數不能被繼承

C++中,並不是所有的成員函數都能被子類繼承,有三類成員函數不能被子類繼承,分別是:構造函數(包括拷貝構造)、析構函數、賦值運算符重載函數。 一,構造函數    構造方法用來初始化類的對象,與父類的其它成員不同,它不能被子類繼承(子類可以

原创 wireshark中“tcp segment of a reassembled pdu”的解釋

“TCP segment of a reassembled PDU”指TCP層收到上層大塊報文後分解成段後發出去。於是有個疑問,TCP層完全可以把大段報文丟給IP層,讓IP層完成分段,爲什麼要在TCP層分呢? 其實這個是由TCP的MSS(

原创 程序結束後,malloc申請的內存會被釋放掉嗎

1,有這麼一個問題,下面這段程序執行完畢後,malloc的內存會釋放嗎? int main () { int *p = malloc(10 * sizeof *p); *p = 42; return 0; //Exitin

原创 進程間通訊IPC的幾種方式的優缺點總結

Linux進程間的通訊 Unix發展做出重大貢獻的兩大主力AT&T的貝爾實驗室及BSD(加州大學伯克利分校的伯克利軟件發佈中心)在進程間通信方面的側重點有所不同。前者對Unix早期的進程間通信手段進行了系統的改進和擴充,形成了“syste

原创 二維數組如何申請和釋放

1,二維數組的申請 typedef struct dictht { dictEntry **table; unsigned long size; unsigned long sizemask; unsig

原创 __cplusplus 和extern “C”

由於C++編譯器需要支持函數的重載,會改變函數的名稱,因此dll的導出函數通常是標準C定義的。這就使得C和C++的互相調用變得很常見。但是有時可能又會直接用C來調用,不想重新寫代碼,讓標準C編寫的dll函數定義在C和C++編譯器下都能編譯

原创 頭文件unistd.h中的unistd是什麼的縮寫?

unix standard header   ->   unistd.h standard input output header  ->  stdio.h standard library header  ->  stdlib.h

原创 網絡編程 read 阻塞和非阻塞下的區別

1,read 原型,參數以及返回值。 #include <uinstd.h> ssize_t read(int fd, void *buf, size_t nbytes); -----read,只是將內核中緩衝區的數據搬到用戶進程空間

原创 網絡編程 write 阻塞和非阻塞下的區別

1,write原型,參數及返回值。 #include <unistd.h> ssize_t write(int fd, const void *buf, size_t nbytes);     ------函數write 只是將用戶進

原创 HTTP 401和403的區別

一句話: 401 未認證響應-------是由於用戶沒有進行身份認證或者身份認證不對。 403 拒絕響應----------是當用戶通過了身份驗證,但無權對給定資源執行請求的操作(比如沒有讀寫權限)。   引用書上的話來說明: There

原创 從彙編角度看引用

一,彙編分析引用: 引用類型到底是什麼?它和指針有什麼關係?它本身佔用內存空間嗎? 帶着這些疑問,我們來進行分析。 先看代碼: #include <stdio.h> #include <iostream>   using namespac

原创 進程上下文切換與和線程上下文切換的區別

1.首先,需要搞明白什麼是上下文切換? 上下文切換就是從當前執行任務切換到另一個任務執行的過程。但是,爲了確保下次能從正確的位置繼續執行,在切換之前,會保存上一個任務的狀態。 2. 然後,需要明白進程與線程的區別?(網上很多,這裏簡單說明

原创 __attribute__中constructor和destructor

  1,__attribute__介紹 __attribute__可以設置函數屬性(Function Attribute)、變量屬性(Variable Attribute)和類型屬性(Type Attribute)。__attribute