原创 一個簡單的消息隊列類(封裝system V消息隊列)

基本的思想是, 1、將消息隊列封裝成一個類,可以簡單地控制消息隊列的建立、收發和刪除。 2、更改消息協議時,不需要修改收發的類。 以下是代碼,使用模板來達到上述第二點的要求,只要按規則定義了消息結構,則可以複用此消息隊列的代碼。因爲使用了

原创 AIX上使用gcc和g++的一個編譯問題的解決

編譯時出現以下錯誤: /tmp//ccoVFPzP.s: line 85771: Only .llong should be used for relocatable expressions. /tmp//ccoVFPzP.s: line

原创 AIX使用g++編譯的程序使用異常時的問題

     繼解決了aix上各種奇怪的缺少編譯選項導致的問題之後,我又碰到了新的問題。      程序在不斷拋出異常的情況,程序不是很穩定。我使用了一個string來保存異常的信息,然而在實際運行中發現,經過多次異常拋出(有時侯需要很多)後

原创 使用ftok獲取ipc的key值的一點注意事項

        system V消息隊列、信號量還有共享內存都採用key_t作爲標識,通常使用ftok這個函數來賦予。它的聲明如下 //成功返回IPC key,若出錯返回 -1 #include <sys/ipc.h> key

原创 推薦vim插件exvim和tagbar

exvim是一個插件的集合,具體的配置比較複雜,集合了大部分常用的插件,插件功能比較齊全,個人感覺比較特別並且好用的是它的工程管理插件exproject,對於代碼比較多的情況管理起來是相當方便的。下載和配置說明可以見以下頁面:      

原创 我的vim插件包(內含說明文檔)

      本插件包基於exvim改造,具體改了啥我也記不得了,用了半年多。基本上用着什麼不爽就改什麼,並且添加了一些我個人認爲有用的插件。       本插件包主要適用於linux下的c++開發,沒有針對windows做配置,安裝說明和

原创 《修改代碼的藝術》讀書筆記001——修改軟件的原因和存在的問題

一、修改軟件的起因及其本質。 修改軟件是任何一個開發人員所面對的問題,軟件是否容易修改,被修改後的軟件是否變得更好,是每一個開發人員都知道必須關注但是在實際開發過程中卻往往忽視的問題。有多少人在接手一個新項目時抱怨新項目的遺留代碼質量太

原创 2015讀書清單(20150308更新)

這個文檔用於記錄2015年讀過的書,隨時可能更新。 自控力–20150109 寫了很多關於自控力的常見誤區,很有趣 古董局中局–20150111 結尾倉促,但是不失爲一本好書 古董局中局2–20150113 設局不錯,但是有點入

原创 Emacs org模式的簡單GTD流程

http://www.phonzia.com/2014/07/Emacs_org_GTD/

原创 aix使用g++編譯時一個stl string的問題

        當好不容易解決了異常拋出不捕捉等問題之後,我在aix上又碰到了新的問題,同樣的代碼在linux下運行無誤,但在aix下,總是出現core dump,每次core dump的位置均不一樣,但是都出現在stl string相關

原创 linux socket編程中出現發送或接收錯誤時退出程序問題

    當使用socket的程序,對socket進行讀或者寫出錯時,系統會發送一個SIGPIPE的信號,該信號的默認處理是退出程序。解決的方法,要麼處理該信號,要麼交給系統處理,交給系統處理如下:     signal(SIGPIPE,S

原创 [算法學習筆記]算法基礎知識

算法基礎知識 算法的五大要素 有窮性:算法必須能夠在有限個步驟內完成。 確定性:算法的每一步必須有確定的定義。 輸入 輸出 可行性:算法的每個步驟都必須能分解爲基本的可執行操作,每個步驟都必須能在有限時間內完成 循環不變式 循環中的循

原创 linux或unix安裝軟件包空間不足的解決辦法

        最近因爲公司的服務器編譯器版本太老需要在上面安裝新的gcc,但是安裝的時候又出現了安裝目錄/opt/空間不足的問題,讓我鬱悶了好久。         一個同事想出來以下的解決辦法:         軟件包的目標路徑是/op

原创 Erlang學習筆記001--入門

一、erlang入門1、erlang的安裝。     我建議使用debian系的linux來進行erlang的學習,因爲在debian系的linux上,erlang的安裝是非常簡單的,我們不需要花費一整天的時間來搭建一個舒心的環境。  

原创 用boost在共享內存上創建一個複雜的map

boost的interprocess類提供了在共享內存上創建複雜數據對象和容器的方式,以下是在共享內存上創建一個string map的代碼,代碼在32位linux上測試通過#include <boost/