原创 我感覺我要學GO之一

要學一下GO了,工作中要用到。 第一步我不怎麼關心語法啊什麼的,我而是關心一個GO工程的目錄結構是怎麼樣的。通過學習這篇文章《理解Golang包導入》,我大體初步瞭解了一個Go工程的基本結構。 以下在windows下使用LiteIDE進行

原创 dup和dup2

閱讀一些C或者C++第三方庫開源源碼的時候,有些源碼中會使用dup和dup2這兩個函數,由於在工作中基本上用不到這兩個函數,所以它們對閱讀源代碼提升了一些難度。雖然當時看過相關博文後能理解,不過過了一段時間就又忘了,今天不算總結,就把這兩

原创 linux動態庫so的運用

so文件的運用在C和C++變成中運用的非常廣泛,以下博文是我的使用心得。 一.so的靜態加載 在gcc(或者g++)中使用-l 參數在編譯器加載so文件。這樣的使用場景,應用程序必須要有於so一同發佈的h文件,因爲h文件就是so的一個符號

原创 python 閱讀github上某項目所得總結

有如下例子程序 a = [1, 2, 3] b = (1, 2, 3) if isinstance(a, (list, tuple)): print('1.ok') else: print('1.error') if isinst

原创 python 構建一個回調函數2

class Test: def __init__(self): self.f_list = [] def register(self, function): if function in self.f_list: p

原创 python 構建一個回調函數

在工作中,回調函數使用的場景是非常多的,下面的例子程序利用了python的屬性機制構建了一個回調函數 class Callback: def __init__(self, instance, function_name): self

原创 python 生成器和lambda的故事

今天在思考python表推導的語法的時候,很好奇這樣的結果: a = [ x for x in [1, 2, 3] ] b = ( x for x in [1, 2, 3] ) print('a type: {}'.format(typ

原创 linux下把log4cxx封裝成so動態庫文件(一)

這是一個經常遇到的問題,在軟件開發過程中,需要將某些功能封裝成一個獨立的模塊,這樣維護升級也很方便。現在我們就要把開源日誌庫log4cxx封裝成so動態加載庫文件。 在上一篇文章《log4cxx日誌庫RedHat下安裝》中,我們已經將lo

原创 python 那些待深入理解的東西

class Father:#2.7版本的老式類 def __init__(self): pass def function(self): print(type(self)) print(isinstance(self,

原创 Linux命令之tr

tr '[0*4]' '*' < data.txt 若data.txt中的任意行中出現了連續4個0,就是4個****替換。必須是[0*4]形式,不能是0*4,否則數字4會被替換成*,原因是[0*4]是tr的語法[CHAR*REPEAT],