Linux學習筆記之proc檔案使用篇
在proc 目錄下建立檔案,不得不提到的struct file_operations , 詳細struct 資訊,可以查閱—— [linux kernel] .
本篇主要討論的是以下幾個介面:
open
int (open) (struct inode , struct file *); //開啟
實現test_proc_show function,這樣可以在shell 下輸入cat /proc/test返回help 資訊、或者顯示你希望提供的資訊。
test_proc_show 函式:
static int test_proc_show(struct seq_file *m, void *v);
write
read/write 功能類似,write 相對較為複雜,這裡主要介紹下write。
static ssize_t test_proc_write(stuct file *file, const char *buf, size_t count, loff_t *f_ops);
write 使用有兩種方法:
- shell 下輸入echo X X > /proc/test
- 使用linux 提供的write介面。
第一個方法比較簡單,就不說了。主要說下第二個例子:
/* open file */
char * file = "/proc/test" ;
int fd = 0;
fd = open(file, O_RDWR);
if (fd == -1) {
prerror("open fail\n");
return NULL;
}
關於test_proc_write的功能編寫,與正常的function沒有區別,主要注意返回值:
- 如果正常執行,請返回count;如果無法用sscanf拿到預期的值,請再使用sscanf拿一次字串,如果返回值非0,請返回count;如果返回值為0,請返回異常值。關於sscanf 請參考—— [Linux學習筆記之sscanf] .
- 如果異常執行,請返回異常值。
建立proc下檔案
說了這麼多,可能還不知道如何在proc 下建立一個file 呢?其實比較簡單, 核心的function就是:
static inline struct proc_dir_entry *proc_create(
const char *name, umode_t mode, struct proc_dir_entry *parent,
const struct file_operations *proc_fops);
示例:
如果返回非空,則表示file 建立成功,當然在建立的時候需要制定檔名(name), 操作許可權(mode),parent可以填NULL,proc_fops就是上文提到的file_operations.
proc_create 一般是放在init函式裡面,init 函式在linux kernel 裡面有兩種方法:
- 提供一個init 函式,由相關module init 的時候呼叫;
- 提供module init / module exit 函式入口,由kernel 載入或者手動inmod
moudle_init(void )/module_exit(void )
相關推薦
Linux學習筆記之proc檔案使用篇
在proc 目錄下建立檔案,不得不提到的struct file_operations , 詳細struct 資訊,可以查閱—— [linux kernel] . 本篇主要討論的是以下幾個介面: open int (open) (struct
Linux學習筆記之1——檔案和目錄管理(硬連線和軟連線)(連結檔,相當於快捷方式)
在這節將要學習linux的連線檔,在之前用"ls -l" 檢視檔案屬性的命令時, 其中第二個屬性是連線數。那麼這個連線數是幹什麼的?這就要理解inode。 先說一下檔案是怎麼儲存的。檔案儲存在硬碟上,硬碟的最小儲存單位叫做"扇區"(Sector),每個扇區儲存512位元
Linux學習筆記之smb檔案共享
SMB檔案共享服務:SMB協議是建立在NetBIOS協議之上的應用協議,是基於TCP138、139兩個埠的服務,NetBIOS出現之後,Microsoft就使用NetBIOS實現了一個網路檔案/列印服務系統。這個系統基於NetBIOS設定了一套檔案共享協議,Microsoft稱之為SMB(Server Mes
Linux學習筆記之在Linux下查詢檔案的md5,sha1值
眾所周知,md5,sha1作為一種演算法被廣泛採用,尤其是在驗證一些軟體時尤為重要。 在Linux上,md5sum和sha1sum是校驗檔案的重要工具,其使用方式總結如下: 一:驗證md5值  
Linux學習筆記之——使用者、使用者組、檔案屬性許可權、目錄概念
Linux學習筆記之——使用者、使用者組、檔案許可權、目錄概念 摘要:對一些很重要的概念和目錄進行說明、後面筆記中的練習就不再贅述這些概念以及他們之間的關係了。很重要! 一:使用者與使用者組 Linux是一個多使用者作業系統,那麼如何保證安全性和隱私性
Linux指令碼攻略學習筆記之臨時檔案命名與隨機數
最適合儲存臨時資料的位置是 /tmp(該目錄中的內容在系統重啟後會被清空) mktemp 命令的用法非常簡單。它生成一個臨時檔案並返回其檔名(如果建立的是目錄,則返回目錄名)。如果提供了定製模板, X
【Linux學習筆記之八】檔案與檔案系統的壓縮,打包與備份
8.2Linux系統常見的壓縮指令 在 Linux 的環境中,壓縮檔案案的副檔名大多是: 『.tar, .tar.gz, .tgz, .gz, .Z, .bz2, *.xz』,為什麼會有這樣的副檔名呢? 這是因為 Linux 支援的壓縮指令非常多,且
Linux學習筆記之管道、重定向與正則表達式
linux管道與重定向 linux學習筆記 linux 正則表達式 管道:前一個命令的輸出,作為後一個命令的輸入命令1 | 命令2 | 命令3| 命令4 #tee 即在顯示器顯示,又在文件在保存文件例#echo “hello ,word” | tee /tmp/ hello.out例#wc -l
Linux學習筆記之vim編輯技巧
vim linux學習筆記 linux vim編輯技巧 vim,一個純文本(純文本信息,ASCII text)編輯器,Vi(Visual Interface) IMproved,是一個模式化的編輯器。> vim有自帶的教程,也是linux的一個內置命令一、基本模式分類1 編輯模式(命令模式)
Linux學習筆記之四————Linux常用命令 ( 待補充)
-h http “.” 現實 人性化 快捷 我們 包括 無法 一、Linux命令——文件、磁盤管理 1.文件管理 <1>查看文件信息:ls ls是英文單詞list的簡寫,其功能為列出目錄的內容,是用戶最常用的命令之一,它類似於DOS下的dir命令。 Linu
Linux學習筆記之二————Linux系統的文件和目錄
管道 過程 命令 合成 給定 cal 如圖所示 項目 img 一、Windows和Linux文件系統區別 1、在 windows 平臺下,打開“計算機”,我們看到的是一個個的驅動器盤符: 每個驅動器都有自己的根目錄結構,這樣形成了多個樹並列的情形,如圖所示:
Linux學習筆記之三————Linux命令概述
上下 eight ive 幫助 option pos misc tor tro 一、引言 很多人可能在電視或電影中看到過類似的場景,黑客面對一個黑色的屏幕,上面飄著密密麻麻的字符,梆梆一頓敲,就完成了竊取資料的任務。 Linux 剛出世時沒有什麽圖形界面,所有的操
Linux學習筆記之九————ubuntu軟件安裝與卸載
升級 獲取 tor mage 技術 png bsp and rem 一、更新 源 1. 尋找國內鏡像源 所謂的鏡像源:可以理解為提供下載軟件的地方,比如Android手機上可以下載軟件的91手機助手;iOS手機上可以下載軟件的AppStore 2. 備份Ubuntu
Linux學習筆記之十————Linux常用服務器構建之ftp服務器
download pytho ftp服務 nsf png tp服務器 圖片 拷貝文件 span 一、ftp服務器介紹 FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。 用於Internet上的控制文件的雙向傳輸。
linux 學習筆記之二
幫助 bsp line 所有 默認 bin span mina eight 1 shell CLI(command line interface) GNIME Terminal Ctrl+Alt+T 快速打開Terminal F11 在全屏和普通模式下切換 默認shell
Linux 學習筆記之四 查看文件
lin 學習 文件內容 筆記 文件 內容 上下 post blog 一 cat cat filename 查看文件內容 cat -n filename 查看文件內容,帶上行號 cat -b filename 查看文件內容 ,空行不帶行號 二 more more file
Linux學習筆記之搭建LNMP服務器環境
linux mysql php nginx contos LNMP(linux+nginx+mysql+php)服務器環境配置作為新手,肯定是需要linux+nginx+mysql+php這套環境來實驗一些東西的,但是網上的教程亂七八糟的,今天我就來分享一個不錯的快速集成環境安裝包吧系統要
Linux學習筆記之基礎命令與獲取幫助文檔
內容 大寫 用戶 協議 當前時間 switch 使用 主機 當前 一、linux的基本原則:1、 由目的單一的小程序組成,組合小程序,完成復雜任務;2、 一切皆文件;3、 盡量避免捕獲用戶接口;4、 配置文件保存為純文本格式二、shellGUI :Graphic U
Linux學習筆記之文件系統
type 個人 入口 鼠標 動態鏈接庫 資源 功能 系統文件 學習筆記 文件系統→rootfs:根文件系統FHS(Filesystem Hierarchy Standard):文件系統層次化標準一、/boot:系統啟動相關文件,如內核,initrd,以及grub(bootl
Linux學習筆記之bash
識別 命令替換 管理 proc del man -m histsize 單詞 一、shell(外殼)→離用戶最近的計算機程序,提供人機交互的功能廣義的shell:GUI(Graphical User Interface) CLI(Command Line Interfa