原创 恢復 rm -rf * 誤刪數據

摘要 1. xen server上磁盤分區、格式化、掛載; 2. NFS server搭建、掛載遠程目錄; 3. 使用extundelete恢復數據; 數據恢復 目錄[-] 一、 將磁盤分區掛載爲只讀 二、 使用數據恢復工具 ex

原创 lseek及llseek介紹

lseek在manpage中的相關說明: 名稱        lseek - 重新定位讀/寫文件偏移量 內容簡介        #include         #include         off_t lseek(int fd

原创 關於鏈表中頭指針和頭結點的理解

線性表使用順序(數組)存儲時有個弊端,那就是在插入和刪除時需要大量的移動數據,這顯示是非常消耗時間的,所以可以採用鏈式存儲,即有一個指針域(單鏈表),來記錄下個結點的存儲位置(地址),這樣在插入和刪除結點時只需要修改指針域即可,從而大量減

原创 linux中斷--中斷下半部機制的使用&中斷編程

linux中斷--中斷下半部機制的使用&中斷編程 2014-04-15      0 個評論    來源:linux中斷--中斷下半部機制的使用 & 中斷編程   收藏    我要投稿 中斷程序一般會包含在某個設備的驅動程序中

原创 linux CGI編程

爲什麼要進行CGI編程?   在HTML中,當客戶填寫了表單,並按下了發送(submit)按鈕後,表單的內容被髮送到了服務器端,一般的,這時就需要有一個服務器端腳本來對錶單的內容進行一些處理,或者是把它們保存起來,或者是按內容進行一些查詢

原创 Linux內核驅動之自動創建設備文件

設備文件是非常重要的文件,是應用程序與設備驅動交換數據,控制硬件的橋樑。在驅動程序中open、release的實現過程中其中的一個參數struct inode實質就是設備文件的索引,沒有這個索引也就沒有後期的各種操作,通常設備文件也被稱爲

原创 JSP起源、JSP的運行原理、JSP的執行過程

JSP起源 在很多動態網頁中,絕大部分內容都是固定不變的,只有局部內容需要動態產生和改變。  如果使用Servlet程序來輸出只有局部內容需要動態改變的網頁,其中所有的靜態內容也需要程序員用Java程序代碼產生,整個Servl

原创 數據庫設計(三範式,冗餘字段,逆範式)

數據庫設計(三範式,冗餘字段,逆範式)   在設計數據庫的時候,應該注意一下什麼呢?首先來看一張表。 學生成績表            姓名         性別         java成績         c

原创 C語言的那些祕密之---函數返回局部變量

  C語言的那些祕密之---函數返回局部變量 分類: 編程語言2011-08-17 13:06 14347人閱讀 評論(16) 收藏 舉報 語言c編譯器存儲       一般的來說,函數是可以返回局部變量的。 局部變量的作用域只在函

原创 自動創建設備節點

使用linux-2.6.30.4。 文件的管理使用的是 sysfs.(由udev製作的文件系統)   涉及兩個函數: virtual_disk_class = class_create(THIS_MODULE, "VirtualDisk"

原创 內核符號導出

1、創建實驗目錄 #mkdir /home/guoqian/4-1-4 #cd /home/guoqian/4-1-4 2、編寫內核模塊代碼calculate.c hello.c Makefile 這是calculate.c 這是he

原创 ontainer_of()宏

在學習Linux驅動的過程中,遇到一個宏叫做container_of。 該宏定義在include/linux/kernel.h中,首先來貼出它的代碼: /**  * container_of - cast a member of a

原创 module_param 模塊參數

模塊參數 引導模塊時,可以向它傳遞參數。要使用模塊參數加載模塊,這樣寫: insmod module.ko [param1=value param2=value ...] 爲了使用這些參數的值,要在模塊中聲明變量來保存它們,並在所

原创 鏈表、頭指針、頭結點

圖1爲線性表(ZHAO, QIAN, SUN, LI, ZHOU, WU, ZHENG, WANG)的邏輯狀態。頭指針 指示鏈表中第一個結點(即第一個數據元素的存儲映像)的存儲位置。同時,由於最後一個數據元素沒有直接後繼,則線性鏈表中最後

原创 Linux struct file結構

struct file結構體定義在/linux/include/linux/fs.h(Linux 2.6.11內核)中,其原型是: struct file {         /*          * fu_list becomes