原创 Qt學習記錄--01 Qt的model/view架構介紹

一 引入:         有時,我們的系統需要顯示大量數據,比如從數據庫中讀取數據,以自己的方式顯示在自己的應用程序的界面中。早期的 Qt 要實現這個功能,需要定義一個組件,在這個組件中保存一個數據對象,比如一個列表。我們對這個列表進

原创 C++11新語法--01 Lambda表達式

         C++ 11中的Lambda表達式用於定義並創建匿名的函數對象,以簡化編程工作。Lambda的語法形式如下: [函數對象參數] (操作符重載函數參數) mutable或exception聲明 ->返回值類型 {函數體

原创 Qt學習記錄--05 函數指針以及類函數指針用於Qt信號槽

一 函數指針:         顧名思義,函數指針即指向函數之指針,它與其他普通類型指針一樣,所佔內存爲4個字節(32位系統)。所不同的是其內部存儲了函數的地址而非數據地址,函數指針可以實現對參數類型、參數順序、返回值都相同的函數進行封裝

原创 Qt學習記錄--02 Qt的信號槽機制介紹(含Qt5與Qt4的差異對比)

一 閒談:         熟悉Window下編程的小夥伴們,對其消息機制並不陌生, 話說:一切皆消息。它可以很方便實現不同窗體之間的通信,然而MFC庫將很多底層的消息都屏蔽了,儘管使用戶更加方便、簡易地處理消息,但也讓人特別是沒有Win

原创 macOS--macOS下NFS服務器禁止掛載(mount)問題

    說明: Linux版本爲ubuntu 14.04 LTS, 具體如下:     安裝好nfs服務器端(nfs-kernel-server),配置文件(/etc/exports)修改如下:     客戶端使用mount進行掛載,

原创 Qt學習記錄--04 Qt的對話框介紹

一 引言:         熟悉win32(MFC)的小夥伴們會知道, 對話框分爲模態對話框和非模態對話框,他們的明顯差異是: 模態對話框在彈出後,會阻塞同一應用程序中其它窗體的輸入,即無法獲取鼠標和鍵盤等響應。模態對話框很常見,比如記事

原创 Linux開發--探討將標準輸入輸出及錯誤重定向到/dev/null

Q: 我使用瞭如下代碼將stdin、stdout、stderr重定向到/dev/null freopen( "/dev/null", "w", stdout ); freopen( "/dev/null", "w", st

原创 Linux開發--使用Memory barrier實現無鎖環形緩衝區

一 說明     涉及到併發編程中較底層的memory barrier相關知識,本人水平有限,在此不展開講述,讀者自行查閱。 二 代碼     Linux內核中,實現了一個無鎖(只有一個讀線程和一個寫線程時)環形緩衝區 kfifo 使用

原创 linux系統--mount 掛載訪問windows共享文件夾

命令大致如下:mount -t cifs  //10.10.105.222/Linux/ /home/jiguochao/share/Linux/ -o username=jiguochao,password=******,domain=

原创 Linux系統--進程地址空間之虛擬地址空間

    Linux系統,支持物理內存虛擬化,即進程並不直接在真實物理地址上尋址,而是由Linux內核爲每一進程維護了一個特殊的虛擬地址空間(virtual address space)。這個地址空間是線性的,從0開始尋址,到某個最大值(不

原创 C++注意事項--02 函數指針用於帶默認參數的函數

一 引言:         在前面文章(Qt學習記錄--05 函數指針以及類函數指針用於Qt信號槽)中簡要描述了函數指針的使用及在Qt信號槽的應用,本次主要說一下,它的某一方面的注意事項。         在聲明函數時,在特定場景下,我們

原创 Linux系統--常用壓縮/解壓縮命令總結

    Linux實際使用中,特別是命令行模式下爲了方便文件的傳輸,常常對多個文件或目錄進行解壓縮,下面對幾種常見命令的常用格式進行簡要總結 1 tar命令     實際上tar是用於歸檔的命令,不過其可以自動調用壓縮命令對歸檔文件進一

原创 Windows開發--獲取文件大小及獲取文件夾大小的方法

獲取文件大小 Windows提供了好幾個API函數來獲取文件大小,還可以使用標準C和標準C++庫函數來獲取(當然了,標準庫函數的底層實現也是調用了Windows API函數,效率上可能有所影響)。 const wchar_t* pFil

原创 linux開發--dup和dup2函數解析

一 理論介紹: 1.1 文件描述符在內核中數據結構          在具體說dup/dup2之前,我認爲有必要先了解一下文件描述符在內核中的形態。一個進程在此存在期間,會有一些文件被打開,從而會返回一些文件描述符,從shell中運行一

原创 Linux系統--棧幀詳解

一、 什麼是棧幀?     什麼是棧幀,相信很多從事C編程的童鞋還是沒有搞明白,首先引用百度百科的經典解釋:“棧幀也叫過程活動記錄,是編譯器用來實現過程/函數調用的一種數據結構。”。     實際上,可以簡單理解爲:棧幀就是存儲在用戶