原创 庫-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地址衝突呢? 一: