原创 關於磁盤分區的小腳本-----parted命令

腳本內容如下:   1 #!/bin/sh   2 val1=$(fdisk -l | grep "Disk /dev/sda" | awk '{print $5}')   3 val2=$[1024 * 1024]   4 disksi

原创 DNS報文學習

DNS協議運行在UDP協議之上,使用端口53。   DNS請求報文的結構是 0                                   15   16                                  31

原创 性能分析工具--- gprof

性能分析工具gprof介紹Ver:1.0目錄1.    GPROF介紹    42.    使用步驟    43.    使用舉例    43.1    測試環境    43.2    測試代碼    43.3    數據分析    53

原创 淺析C語言的非局部跳轉:setjmp和longjmp

淺析C語言的非局部跳轉:setjmp和longjmp 作者:李恩華  寫於2012.4.22日凌晨西甲國家德比之前 C語言中有一個goto語句,其可以結合標號實現函數內部的任意跳轉(通常情況下,很多人都建議不要使用goto語句,因爲採

原创 什麼是MIPI接口

什麼是MIPI接口   摘要: 隨着客戶要求手機攝像頭像素越來越高同時要求高的傳輸速度傳統的並口傳輸越來越受到挑戰。提高並口傳輸的輸出時鐘是一個辦法但會導致系統的EMC設計變得越來困難增加傳輸。   手機

原创 C++代碼優化總結-1

最近負責代碼的優化工作,在優化工作過程中發現,優化工作需要學習瞭解的東西還是比較多的,在此慢慢累積。 1 選擇合適的算法和數據結構 選擇一種合適的數據結構很重要,如果在一堆隨機存放的數中使用了大量的插入和刪除指令,那使用鏈表要快得多

原创 虛擬地址、線性地址和物理地址的轉換

虛擬地址、線性地址和物理地址的轉換 一、             虛擬地址 即邏輯地址,是指由程序產生的與段相關的偏移地址部分。例如,你在進行C語言指針編程中,可以讀取指針變量本身值(&操作),實際上這個值就是邏輯地址,它是相對於你當前進

原创 左值引用與右值引用

在C語言中,我們常常會提起左值(lvalue)、右值(rvalue)這樣的稱呼。而在編譯程序時,編譯器有時也會在報出的錯誤信息中會包含左值、右值的說法。不過左值、右值通常不是通過一個嚴謹的定義而爲人所知的,大多數時候左右值的定義與其判別

原创 valgrind

http://blog.csdn.net/yanghao23/article/details/7514587 valgrind通常用來成分析程序性能及程序中的內存泄露錯誤 一 Valgrind工具集簡紹 Valgrind包

原创 內存池的小結

在編程中使用到了內存池,爲此先學習一下內存池的相關知識吧! 1. 什麼是內存池? 所謂內存池就是預先分配好的一定數量的大小相等的內存塊,當需要使用的時候可以直接從中使用,而不必再申請。 2. 爲什麼要使用內存池?有什麼優點? 使用n

原创 單內核與微內核

單內核是個很大的進程。它的內部又能夠被分爲若干模塊(或是層次或其他)。但是在運行的時候,他是個單獨的二進制大映象。其模塊間的通訊是通過直接調用其他模塊中的函數實現的,而不是消息傳遞。在運行效率上,單內核會具有一定的好處. 單內核結構是非常

原创 回調函數

回調函數   在看LWIP時,見到用回調函數,再看某老外公司OPC源代碼時,見到用回調函數。看我國內某些代碼(我公司軟件等)時沒用到。於是,我對回調函數產生了很大的好奇。以前,我寫VC程序時用到過回調函數,但是沒有用C語言來使用。最近,看

原创 linux線程編程

進程   系統中程序執行和資源分配的基本單位   每個進程有自己的數據段、代碼段和堆棧段   在進行切換時需要有比較複雜的上下文切換   線程   減少處理機的空轉時間,支持多處理器以及減少上下文切換開銷, 比創建進程小很多   進程內獨

原创 關於加密和解密 -- 1

在對文件進行加密處理中,主要分爲兩種加密方式,對稱加密和公鑰加密,常用的對稱加密:DES, 3DES, AES128,AES256,公鑰加密:RSA。 使用公鑰加密能夠進行身份驗證以及具有不可否認性,但該加密過程相比對稱加密要慢很多,而對

原创 callgrind查看程序流程

如果想了解某塊源碼的流程,做法是:先使用-g選項把代碼編譯成可執行文件,然後使用以下命令運行:valgrind --tool=callgrind myprogram args此時,當前目錄產生一個文件如:callgrind.out.<PI