原创 關聯、聚合、組合

關聯、聚合(Aggregation)以及組合(Composition)的區別?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 涉及到

原创 GCC指令

gcc and g++分別是gnu的c & c++編譯器 gcc/g++在執行編譯工作的時候,總共需要4步 1.預處理,生成.i的文件[預處理器cpp] 2.將預處理後的文件不轉換成彙編語言,生成文件.s[編譯器egcs] 3.有彙編變爲

原创 高質量編程

1.類型轉換:由於派生類和基類之間的關係,C++保證了派生類對象必須保證其基類子對象的完整性. 2.強制轉換: 例子:double d3=1.25e+20; doubl

原创 黑盒測試、白盒測試

什麼是黑盒測試和白盒測試? 任何工程產品(注意是任何工程產品)都可以使用以下兩種方法之一進行測試。 黑盒測試:已知產品的功能設計規格,可以進行測試證明每個實現了的功能是否符合要求。 白盒測試:已知產品的內部

原创 軟件測試

軟件測試概念  使用人工或者自動手段來運行或測試某個系統的過程,其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別.  它是幫助識別開發完成(中間或最終的版本)的計算機軟件(整體或部分)的

原创 線程和進程的關係

在多進程情況下,每個進程都有自己獨立的地址空間,而在多線程情況下,同一個進程內的線程共享進程的地址空間。線程的優點是:節約資源、節約時間。子進程是通過拷貝父進程的地址空間來實現的,而線程與進程內的線程共享程序代碼。

原创 堆棧的區別

堆棧是系統使用是臨時存儲區域。它是後進先出的數據結構。C++主要將堆棧用於函數調用。當函數調用時,各種數據被推入堆棧頂部;函數終止後的返回地址、傳遞給函數的參數、函數返回的結果以及函數中聲明的局部變量等等。因此當函數A調用函數B調用函數C

原创 孤兒進程、殭屍進程

    殭屍進程:一個子進程在其父進程還沒有調用wait()或waitpid()的情況下退出。這個子進程就是殭屍進程。    孤兒進程:一個父進程退出,而它的一個或多個子進程還在運行,那麼那些子進程將成爲孤兒進程。孤兒進程將被init進程

原创 殭屍進程

      在fork()/execve()過程中,假設子進程結束時父進程仍存在,而父進程fork()之前既沒安裝SIGCHLD信號處理函數調用 waitpid()等待子進程結束,又沒有顯式忽略該信號,則子進程成爲殭屍進程,無法正常結束,

原创 進程控制

1.獲取進程標識    #include<sys/types.h>    #include<unistd.h>    pid_t getpid(void) 返回調用進程的進程ID    pid_t getppid(void) 返回進程的父

原创 線程的私有數據

線程的私有數據包括:線程號、寄存器(包括程序計數器和堆棧指針)、堆棧、信號掩碼、優先級、線程私有的存儲空間。

原创 LINUX 下異常信號收藏

我們介紹一些標準信號的名稱以及它們代表的事件。每一個信號名稱是一個代表正整數的宏,但是你不要試圖去推測宏代表的具體數值,而是直接使用名稱。這是因爲這個數值會隨不同的系統或同樣系統的不同版本而不同,但是名稱還算是標準化和統一的。   這些名

原创 ubuntu利用配置編輯器管理桌面圖標

配置編輯器是一個很好用的Gnome桌面管理工具,但是在Ubuntu中默認菜單中是不顯示它的。啓動配置編輯器有兩種方式。一個簡單的方法是用快捷鍵打開運行應用程序的小窗口,請同時按下這兩個按鍵:+你將會看到這個

原创 打造Windows環境下的GCC+VIM的程序編寫編譯新模式

用vim編寫源代碼,用gcc編譯連結程序幾乎已成爲LINUX下程序設計的標準開發模式了,(當然emacs也是非常出色和流行的),本文教你如何在Windows下做到同樣的事情。  gcc和vim都有支持不同平

原创 LINUX進程

1. LINUX 進程有三部分組成,代碼段:存放程序的可執行代碼;數據段:存放程序的全局變量,常量,靜態變量。堆棧段:存放動態分配的內存變量。2.進程的狀態可分爲:1.運行狀態:進程正在運行或者在運行隊列中