原创 GCC編譯歸納總結

概述 一般在做項目的時候,都忽略了這個步驟,因爲makefile是別人寫好的,自己只要執行make操作就ok了, 但是真正的項目開發,需要程序員有這項基本技能。 弄明白gcc/g++編譯器的基本參數和使用方法,在編譯make出錯後會有很大

原创 linux下的內存管理

概述 linux內存管理基礎知識,反覆看深入理解linux內核 內存分區  •位於最低端的 ZONE_DMA 內存區域是爲 ISA 設備保留的,這些設備僅有 16MB的 DMA 尋址能力。• ZONE_NORMAL 中的頁面具有 1:1

原创 正則表達式reg

通配符 wildchar * ^ $ \d 匹配一個數字字符。等價於[0-9]。 \w 匹配包括下劃線的任何單詞字符。等價於「[A-Za-z0-9_]」 + 匹配前面的子表達式一次或多次。例如,「zo+」能匹配「zo

原创 ssh服務相關問題

1、在腳本中使用ssh命令,報如下錯誤: ssh: Could notresolve hostname T02-OSD101: Name or service not known lost connection 但是,在shell下使用s

原创 linux內核設計與實現:系統調用

1) 函數聲明中都有asmlinkage限定詞,用於通知編譯器僅從棧中提取該函數的參數。 2) 系統調用getXXX()在內核中被定義爲sys_getXXX()。這是Linux中所有系統調用都應該遵守的命名規則。         系統調用

原创 常見系統調用總結

fcntl 操作文件描述符<span style="font-size:18px;">#include <unistd.h> #include <fcntl.h> Int fcntl(int fd, int cmd, …);</span>

原创 編程獲取linux系統配置

獲取系統當前的內核信息 #include <sys/utsname.h> int uname(struct utsname *buf);  運行時獲取配置信息 #include <unistd.h> long sysconf(int na

原创 網絡文件系統基礎

說到網絡文件系統,我們大家比較熟悉的有2種:cifs和nfs 先了解下nfs NFS Sun RPC遠程過程調用 流程: A、 服務器啓動,註冊端口 B、 客戶端啓動,通過端口映射器獲取port,獲取服務器文件系統的本地fd C、 

原创 本地文件系統基礎知識

本地文件系統 Btrfs 多設備管理 當前Linux系統,如果你想創建一個RAID-0或者RAID-1或者其他RAID級別,然後在這些設備用上LVM,你可能需要使用硬件RAID卡或者軟RAID(md)來做到把多個設備合成一個虛擬的設備。而

原创 linux進程控制

daemon守護進程     守護進程就是沒有控制終端,在後臺運行。在系統自舉時開始運行,直到系統停止運行。     那麼守護進程的處理結構?怎樣寫一個守護進程並且如何知曉在系統出現錯誤的時候能及時的報告狀態。     可能是因爲daem

原创 多線程編程基礎

線程 值得參考:http://www.csc.villanova.edu/~mdamian/threads/posixthreads.html 線程控制 創建線程 #include <pthread.h> int pthread_crea

原创 linux信號

綜述 信號是軟中斷,大多數的重要的應用程序需要處理信號。信號爲處理異步事件提供看方法:用戶在終端鍵入中斷鍵,來停止一個程序,或者說是下一個的程序在管道中過早地終止。POSIX標準提供了可靠的規則,我們將要討論的是這種情況。先熟悉一般的信號

原创 Clang編譯器

一個比gcc更輕量的編譯器 網址網址:http://clang.llvm.org/get_started.html  包含clang 和 clang++編譯器 clang++ test_leveldb.cc -o /tmp/level -

原创 常見的編譯錯誤

以下是在平常的實踐中出現的編譯錯誤 1、undefined reference問題總結 a、 鏈接時缺失了相關目標文件(.o) b、 鏈接時缺少相關的庫文件(.a/.so) c、鏈接的庫文件中又使用了另一個庫文件 同樣,如果我們的庫或者程

原创 linux 下的文件I/O方式

標準訪問文件的方式 Linux 中,這種訪問文件的方式是通過兩個系統調用實現的:read()和 write()。當應用程序調用 read()系統調用讀取一塊數據的時候,如果該塊數據已經在內存中了,那麼就直接從內存中讀出該數據並返回給應