原创 庫-libuv:概述
libuv 是 Node 的新跨平臺抽象層,用於抽象 Windows 的 IOCP 及 Unix 的 libev。作者打算在這個庫的包含所有平臺的差異性。 特性: 非阻塞 TCP 套接字 非阻塞命名管道 UDP
原创 inline和宏的優點和缺點
inline內聯函數 優點: 1)inline定義的內聯函數,函數代碼被放入符號表中,在使用時進行替換(像宏一樣展開),效率很高。 2)類的內聯函數也是函數。編繹器在調用一個內聯函數,首先會檢查參數問題,保證調用正確,像對待真正函
原创 虛表的存儲位置
我看到了很多有意思的答案,都回答的比較好,下面貼出一些具有代表性的: Answer 1: Answer 2: 我們都知道,虛函數是多態機制的基礎,就是在程序在運行期根據調用的對象來判斷具體調用哪個函數,現在我們來說說它的具體實現原理,主
原创 字節對齊與結構體大小
說明: 結構體的sizeof值,並不是簡單的將其中各元素所佔字節相加,而是要考慮到存儲空間的字節對齊問題。這些問題在平時編程的時候也確實不怎麼用到,但在一些筆試面試題目中出是常常出現,對sizeof我們將在另一篇文章中總結,這篇文章我
原创 C++中placement new操作符
placement new是重載operator new的一個標準、全局的版本,它不能被自定義的版本代替(不像普通的operator new和operator delete能夠被替換成用戶自定義的版本)。 它的原型如下: void *op
原创 linux虛擬內存和物理內存的理解
首先,讓我們看下虛擬內存: 第一層理解 1. 每個進程都有自己獨立的4G內存空間,各個進程的內存空間具有類似的結構 2. 一個新進程建立的時候,將會建立起自己的內存空間,此進程的數據,代碼等從磁盤拷貝到自己
原创 Golang輸出顏色
Go語言要打印彩色字符與Linux終端輸出彩色字符類似,以黑色背景高亮綠色字體爲例: fmt.Printf("\n %c[1;40;32m%s%c[0m\n\n", 0x1B, "testPrintColor", 0x1B) 其中
原创 c++異常機制分析
C++異常機制概述 throw 關鍵字 異常對象 catch 關鍵字 棧展開、RAII 異常機制與構造函數 異常機制與析構函數 noexcept修飾符與noexcept操作符 異常處理的性能分析 正
原创 shell腳本顯示顏色
shell腳本中echo顯示內容帶顏色顯示,echo顯示帶顏色,需要使用參數-e 格式如下: 複製代碼代碼如下: echo -e "\033[字背景顏色;文字顏色m字符串\033[0m" 例如: 複製代碼代碼如下:
原创 gdb調試正在運行的進程
有時會遇到一種很特殊的調試需求,對當前正在運行的其它進程進行調試(正是我今天遇到的情形)。這種情況有可能發生在那些無法直接在調試器中運行的進程身 上,例如有的進程 只能在系統啓動時運行。另外如果需要對進程產生的子進程進行調試的話,也只能
原创 逆波蘭表達式
將一箇中序表達式轉化成爲逆波蘭表達式的方法其實很簡單,也是一個成型的算法。通過逆波蘭表達式求一個計算式子的值,也是很簡單的,只要遇到過會用就行了。 1、將一箇中序表達式轉化成爲逆波蘭表達式。 首先維護的是兩個棧,我
原创 算法-求二進制數中1的個數
問題描述 任意給定一個32位無符號整數n,求n的二進制表示中1的個數,比如n = 5(0101)時,返回2,n = 15(1111)時,返回4 這也是一道比較經典的題目了,相信不少人面試的時候可能遇到過這道題吧,下面介紹了幾種方法來實現
原创 yum只下載不安裝包
1. 安裝yum-downloadonly或 yum-plugin-downloadonly 軟件包。 可以執行以下命令安裝yum-downloadonly包: #yum install yum-downloadonly 說明:y
原创 大型項目使用Automake/Autoconf完成編譯配置
使用過開源C/C++項目的同學們都知道,標準的編譯過程已經變成了簡單的三部曲:configure/make/make install, 使用起來很方便,不像平時自己寫代碼,要手寫一堆複雜的Makefile,而且換個編譯環境,Makef
原创 Ip衝突檢測
有一個IP地址衝突意味着有一個以上的網絡設備或計算機的IP地址相同。在給服務器配置IP的時候,如果前期沒有做好IP地址規劃,IP地址使用明細登記,有可能就將已再用的IP又分配給另一臺服務器。 那麼怎麼檢測 IP地址衝突呢? 一: