原创 釋放typedef的數組,用delete還是delete[]

typedef int scorers[LESSONS_NUM] int *pScorer = new scorers; delete pScorers; //Wrong!!! delete[]

原创 僅運行一個程序的單個實例

一些程序,特別是很多的daemon,需要確保同一時刻只有一個程序實例在系統中運行。完成這項任務的一個常見方法是:使用記錄鎖。       讓daemon創建一個文件並在該文件上放置一把寫鎖。daemon在其執行期間一直持有這個文件鎖並在即

原创 IO複用,select、poll、epoll綜述

      如果不希望進程在對文件描述符執行I/O操作時被阻塞,我們可以創建一個新的進程來執行I/O。此時父進程可以去執行其他的任務,而子進程將阻塞直到I/O操作完成。如果我們需要處理多個文件描述符上的I/O,那麼需要爲每個文件描述符創

原创 底層const能區分拷貝,固然也能區分函數重載

void   func(int i)  {……..} void   func(const  int  i  /* 頂層const */)  {……..} 之所以能根據不同的實參來區分實際該調用哪個函數。(即函數重載)。最主要的根

原创 C++如何禁止掉對象的複製操作

最容易想到的是將拷貝構造函數與賦值函數聲明爲private。但是,private只是說外部不能直接調用,但是可以間接通過類的成員函數與友元函數對其訪問。那麼怎麼辦呢? ----》在類中,允許聲明函數,但是,可以不用實現該函數,這是合法的。

原创 C++對象模型

何爲C++對象模型? C++對象模型可以概括爲以下2部分: 1. 語言中直接支持面向對象程序設計的部分 2. 對於各種支持的底層實現機制 語言中直接支持面向對象程序設計的部分,如構造函數、析構函數、虛函數、繼承(單繼承、

原创 linux下網絡調試工具

linux下網絡調試工具,主要包括tcpdump、netstat和lsof工具。 1.    tcpdump  (dump traffic on a network) tcpdump打印指定網絡接口中與布爾表達式匹配的報頭信息。 tcpd

原创 C++函數匹配

候選--->可行--->最佳 候選: 1、與被調用的函數同名。 2、其聲明在調用點可見。   可行: 1、其形參數量與本次調用提供的實參數量相等。 2、每個實參的類型與對應的形參類型相同,或者能轉換成形參的類型。   最佳: 1、    

原创 unix網絡編程基礎接口

typedef unsigned short int uint16_t; typedef unsigned int uint32_t;   typedef unsigned short int sa_family_t; typedef

原创 UML類圖關係(泛化 、繼承、實現、依賴、關聯、聚合、組合)

By Lee - Last updated: 星期六, 十月 19, 2013 Leave a Comment   在UML類圖中,常見的有以下幾種關係: 泛化(Generalization),  實現(Realization),關

原创 C ++ 函數後面加throw()的作用

Following declaration gives a message to the user of your class: my method doesn't throw any exception. Don't bother to

原创 C++的Enum hack

從一個例子開始吧 class Game { private: static const int GameTurn = 10; int scores[GameTurn]; }; 對於支持類內初始化的C++編譯器,這段代碼

原创 find命令常用

find是UNIX/Linux命令行工具箱中最棒的工具之一。這個命令對編寫shell腳本很有幫助。 find命令的工作方式如下:沿着文件層次結構向下遍歷,匹配符合條件的文件,並執行相應的操作。 1.   根據文件名或正則表達式匹配搜索

原创 xargs將stdin轉換爲命令行參數

      我們可以用管道將一個命令的stdout(標準輸出)重定向到另一個命令的stdin(標準輸入)。例如: $cat  foo.txt |  grep  “test”       但是,有些命令只能以命令行參數的形式接受收據,而無法

原创 C ++的new、delete

當寫出p = new P();這樣的代碼的時候, 實際上有兩步操作, 首先分配內存,然後在分配好的內存之上初始化類成員.第二步是有構造函數完成的, 第一步就是new函數的工作.全局的new有六種重載形式,void *operator n