原创 shell中的變量擴展

1. Shell中變量的原形:${var} 一般來說,$var和{var}效果一樣,都可以擴展一個變量(即獲得它的值)。但如果要顯示變量值加一些字符時,就會出錯,因爲默認時他會把$後的一整個單詞作爲擴展對象。 這時應該用變量的原形:$

原创 插入排序

插入排序 介紹 插入排序將待排序數組分成兩部分:已排序部分和待插入部分。將帶插入部分逐個插入到已排序序列中。它是in-place的,時間複雜度O(n2),空間複雜度O(1)。 循環不變式:在將第i個元素插入之前,array[0~i-

原创 高級shell命令

高級命令 用戶 /etc/passwd並不是一個用來保存密碼的文件,而是用來保存用戶信息的文件。保存密碼的是/etc/shadow。 /etc/passwd的字段包括:登錄用戶名、用戶密碼、用戶UID、用戶的組ID、備註、HOME目錄的

原创 makefile變量

makefile 變量與宏 變量和宏其實說的是同一東西。一個變量的內容是一個字符串,從一個變量名獲得變量內容的過程叫做變量的擴展,用()或者()或者 {}擴住變量名即可。而不像編程語言那樣,使用變量名就能引用變量的值。 變量的類型 mak

原创 正則表達式

正則表達式 1.概覽 正則表達式由兩個基本組成部分:一般字符和特殊字符。一般字符指的是任何沒有特殊意義的字符。特殊字符成爲元字符,如下表所示。某些情況下,特殊字符也會被視爲一般字符。 字符 BRE/ERE 含義 \ both

原创 shell輸入輸出

shell 輸入輸出 命令行參數 在shell腳本中可以使用$n來引用命令行中指定的參數。$0是腳本名字,$1是第一個參數,$2是第二個…以此類推直到$9。命令來行上指定的參數以空格隔開,如果需要包含空格的參數,要用引號擴起來。如果需要指

原创 makefile函數

函數 GNUmake支持內置函數和用戶自定義函數。函數調用看起來像是變量引用,只不過多了用逗號隔開的參數而已。所有的函數都具有相同的形式:$(function-namearg1[, argn])$之後是函數的名稱,接着是函數的參數,參數之

原创 GCC內聯彙編

GCC內聯彙編 基本內聯語法: GCC用關鍵字asm表示一段用彙編語言寫的源代碼。形式如下: asm ("assemble language"); 說明: 1. 彙編指令必須用雙引號擴起來 2. 如果有多條彙編指令,必須用換行符

原创 句柄類

句柄類 C++中的訪問控制允許將實現部分與接口部分分開,但實現部分的隱藏是不完全的。編譯器仍然必須知道一個類的所有部分的聲明,以便於正確創建和管理它。可以想象一種只需要聲明類的公共接口部分的編程語言,它將私有實現部分完全隱藏。但C++爲

原创 Linux文件IO詳解

文件IO 不帶緩存的IO函數:open, read, write, lseek和close。每個函數對應內核的一個系統調用,這些函數不是C語言標準,但屬於POSIX接口。 文件描述符 對Linux而言,所有的打開文件都由文件描述符引用。文

原创 makefile規則

makefile中的規則 規則的一般形式: target: normal-prerequisites | order-only-prerequisites ; commands commands makefile的構成主體是各種規

原创 Makefile自動產生依賴

Makefile自動產生依賴 在寫makefile時,有一種簡單通用的方法指定目標文件對頭文件的依賴關係。其使用基礎是編譯器能分析源文件中頭文件的包含關係。 比如:gcc -M選項可以自動產生依賴關係。 $ echo "#incldue

原创 基本shell命令

基本shell命令 幫助手冊 man: 查看命令、系統調用和庫函數等幫助手冊。 info: 類似man,但不是以分頁的形式顯示。 -help選項: 大多數命令都有這個選項,顯示其使用方法。 文件和目錄 pwd: 查看當前工作目錄 cd

原创 重載new和delete

重載new和delete 當我們創建一個new表達式時,會發生兩件事,首先,使用operator new()來分配內存,然後調用構造函數。在delete表達式裏,調用了析構函數,然後使用operator delete()釋放內存。我們無

原创 makefile簡介

Makefile簡介 背景 程序設計通常遵循着一個極爲簡單的慣例:編輯源代碼文件、將源代碼文件編譯成可執行文件以及對成果進行調試。make程序可以讓將一個項目中的源文件編譯成可執行文件之類的工作自動化。相對於腳本,make的優點是:它可以