原创 建議性鎖和強制性鎖的區別

       建議性鎖: 所謂建議性鎖就是假定人們都會遵守某些規則去幹一件事。例如,人與車看到紅燈都會停,而看到綠燈纔會繼續走,我們可以稱紅綠等爲建議鎖。但這只是一種規則而已,你並不防止某些人強闖紅燈。而強制性鎖是你想闖紅燈也闖不了。

原创 linux多進程共享內存

shmget函數原型 shmget(得到一個共享內存標識符或創建一個共享內存對象) 所需頭文件 #include <sys/ipc.h> #include <sys/shm.h> 函數說明 得到一個共享內存標識符或創建

原创 多進程寫文件的三種方式

      多進程寫log:       (1)通過文件加鎖的方式,在一個進程訪問的時候將文件加鎖,處理完了再關閉,不過這種方式會造成文件大頻繁操作,導致性能比較低(磁盤慢)。                 另外對於這種方式,有個

原创 MySQL 入門教程

  目錄 一、MySQL的相關概念介紹二、Windows下MySQL的配置 配置步驟MySQL服務的啓動、停止與卸載三、MySQL腳本的基本組成四、MySQL中的數據類型五、使用MySQL數據庫 登錄到MySQL創建一個數據庫選擇所

原创 關於C++中的虛擬繼承的一些總結(虛擬繼承,覆蓋,派生,隱藏)

1.爲什麼要引入虛擬繼承 虛擬繼承是多重繼承中特有的概念。虛擬基類是爲解決多重繼承而出現的。如:類D繼承自類B1、B2,而類B1、B2都繼承自類A,因此在類D中兩次出現類A中的變量和函數。爲了節省內存空間,可以將B1、B2對A的繼承

原创 C語言調用C++庫接口的方法概述

最近需要在由純c語言編寫的代碼中調用C++的動態庫,在網上找了一些資料,現在總結下解決方法。 主要的思想就是將C++的動態庫再封裝一層,在這一層編寫C語言的函數api,這API中使用C++動態庫提供的類; 具體例子如下: 1,假如

原创 C++析構函數爲什麼要爲虛函數

1.爲什麼基類的析構函數是虛函數?   在實現多態時,當用基類操作派生類,在析構時防止只析構基類而不析構派生類的狀況發生。   下面轉自網絡:源地址 http://blog.sina.com.cn/s/blog_7c773cc50

原创 理解互斥量和信號量

互斥量(Mutex)   互斥量表現互斥現象的數據結構,也被當作二元信號燈。一個互斥基本上是一個多任務敏感的二元信號,它能用作同步多任務的行爲,它常用作保護從中斷來的臨界段代碼並且在共享同步使用的資源。   Mutex本質上

原创 文件系統ext3的文件大小限制

大小限制[編輯] ext3有一個相對較小的對於單個文件和整個文件系統的最大尺寸。這些限制依賴於文件系統的塊大小;下面的表格總結了這些限制[5]: 塊尺寸 最大文件尺寸 最大文件系統尺寸 1KiB 16GiB 2TiB 2Ki

原创 判斷CPU的大小端

下面的兩個程序均可判斷CPU的大小端問題 int i=1;       char *p=(char *)&i;       if(*p==1)                printf("Little_endian");   //L

原创 C++調用C生成的動態庫

看下面這個例子,其中add函數是用c編寫的代碼,而主函數是用c++編寫的代碼,將c代碼編譯成動態庫,然後用c++調用。 add.h  #ifndef  ADD_FILE_HEADER_INC#define  ADD_FILE_HE

原创 兩個有序數組中找中位數或者第K大的元素

RT,在兩個有序數組中找中位數或者第K大的元素. 假設兩個數組爲A, B長度分別爲m,n.分別是遞增順序。 可以採用的算法有很多: 首先想到的是類似MergeSort的方式,合併的同時找第K大元素,這個基本沒難度,複雜度O(m +

原创 設計一組N個數,確定其中第k個最大值

今天看算法分析是,看到一個這樣的問題,就是在一堆數據中查找到第k個大的值。       名稱是:設計一組N個數,確定其中第k個最大值,這是一個選擇問題,當然,解決這個問題的方法很多,本人在網上搜索了一番,查找到以下的方式,決定很好

原创 linux生產者,消費者問題

   pthread_cond_wait() :用於阻塞當前線程,等待別的線程使用pthread_cond_signal()或pthread_cond_broadcast來喚醒它。 pthread_cond_wait() 必須與pth

原创 可重入函數的深入理解以及printf的可重入性

 這個概念在嵌入式操作系統中比較重要,由於存在任務的調度,它實時系統,可剝奪型內核中是危險的,如同一個安靜的水雷。可能會被觸發,也可能安然無恙。由於它運行結果的不可預期性,會使系統帶來隱患。 printf()經常有重入解釋