原创 linux進程池

進程池的概念: 進程池是由服務器預先創建好的一組子進程,子進程的數量大概在3-10個左右。進程池中的所有子進程都運行着相同的代碼,並且有着相同的屬性(如優先級)。當接到服務請求後,服務器會通過某種方式從已經存在的子進程中挑選出一個進行服務

原创 拷貝構造函數和賦值運算符有哪些不同點和相同點

‘=’只有在賦值時,才調用賦值函數,當在聲明變量時,B b3=b1和B b4(b3)調用的函數是一樣的,均爲拷貝構造函數。   一、 拷貝構造,是一個的對象來初始化一邊內存區域,這邊內存區域就是你的新對象的內存區域賦值運算,對

原创 linux之守護進程的創建

1.什麼是守護進程? 守護進程也稱精靈進程(Daemon),是運⾏行在後臺的⼀一種特殊進程。它獨⽴立於控制終端並 且週期性地執⾏行某種任務或等待處理某些發⽣生的事件。守護進程是⼀一種很有⽤用的進程。 Linux的⼤大多數服務器就是⽤用守護

原创 RARP應用場景

RARP反向地址轉換協議,允許局域網的物理機器從網關服務器的 ARP 表或者緩存上請求其 IP 地址。網絡管理員在局域網網關路由器裏創建一個表以映射物理地址(MAC)和與其對應的 IP 地址。當設置一臺新的機器時,其 RARP 客戶機程

原创 linux 線程池服務器代碼

\r\n"); p += sprintf(p, "\r\n"); p += sprintf(p, "連接狀態\r\n");

原创 dup和dup2原理

dup 和 dup2 是用來複制一個文件描述符,通常用來重定向進程的stdin(文件描述符0),stdout(文件描述符1),  stderr(文件描述符2)。 函數原型和參數如下所示: dup只有一個參數,dup2有兩個參數。

原创 守護進程爲什麼要fork兩次?

上一篇博客講了,fork的作用,那麼爲什麼有時候有些代碼會調用兩次fork呢? (1)調用一次fork的作用:     第一次fork的作用是讓shell認爲這條命令已經終止,不用掛在終端輸入上,還有就是爲了後面的setsid服務,因爲

原创 繼承中構造函數和析構函數的調用順序

      1 今天在博客上看到一段解釋繼承中析構函數和構造函數的調用順序描述,覺得講的不錯,分享給大家,下面的代碼是自己的驗證。       首先說說構造函數,大家都知道構造函數裏就可以調用成員變量,而繼承中子類是把基類的成員變成自己

原创 string 和 int之間的轉化

int轉換爲string #include <iostream> /* #include <sstream> using namespace std; int main() { //第一種:使用itoa int aa = 30

原创 CRC循環冗餘檢驗

現實的通信鏈路都不會是理想的。比特在傳輸過程中可能會產生差錯:1可能變成0,而0也可能變成1,這叫做比特差錯。 CRC循環冗餘檢驗:是一種根據網絡數據包或電腦文件等數據產生簡短固定位數校驗碼的一種散列函數,主要用來檢測或校驗數據傳輸或者保

原创 線程安全和可重入函數的關係,區別

•概念 重入:即重複調用,函數被不同的流調用,有可能會出現第一次調用還沒返回時就再次進入該函數開始下一次調用。 可重入:當程序被多個線程反覆執行,產生的結果正確。 如果一個函數只訪問自己的局部變量或參數,稱爲可重入函數。 不可重

原创 linux 模擬實現my_sleep的兩個版本

1.既然要講sleep,那麼大家就有必要了解一下什麼是信號。 信號:是UNIX進程間通信的一種標準方式。 信號的產生:1.鍵盤快捷鍵       2.異常       3.操作系統命令和函數       4.鬧鐘 信號的數量:64種,1-

原创 (BST)二叉搜索樹操作(二)

這篇博客接着上篇博客,主要講二叉樹搜索樹的刪除操作。 如上圖,對一個二叉搜索樹進行刪除操作要分情況討論。    1.要刪除的節點沒有左右孩子,(如圖中的0,或者9);    2.要刪除的節點有左孩子,沒右孩子(如圖中的1); (1)要刪

原创 自己編寫shell

#include #include #include #include #include int main() { char cmd[128]; while(1){ printf("[lx@bogon class4]# ");

原创 NAT和代理服務器的原理及應用

NAT原理: NAT網絡地址轉換(NAT,Network Address Translation)屬接入廣域網(WAN)技術,是一種將私有(保留)地址轉化爲合法IP地址的轉換技術,它被廣泛應用於各種類型Internet接入方式和各種類型