使用 proc測試

2021-06-07 05:47:27 字數 1558 閱讀 3126

下面所示清單為乙個簡單的 /proc 使用範例,這段**在模組載入函式中建立 /proc 檔案節點,在模組解除安裝函式中撤銷 /proc 節點,檔案中儲存了乙個32位無符號整形值。

#include #include #include static struct 	proc_dir_entry *proc_entry;

static unsigned long val = 0x12345678;

/* 璇籶roc 鏂囦歡鎺ュ彛*/

ssize_t ******_proc_read(char *page,char **start,off_t off,int count,int *eof,void *data)

len = sprintf(page,"%08x\n",val);

return len;

}/* 鍐檖roc 鏂囦歡鎺ュ彛*/

ssize_t ******_proc_write(struct file *filp,const char __user *buff,unsigned long len,void *data)

else

val = new;

return count;

} err:

return ret;

}int __init ******_proc_init(void)

else

return 0;

err:

return -enomem;

}void __exit ******_proc_exit(void)

module_init(******_proc_init);

module_exit(******_proc_exit);

module_author("gudujian");

module_description("a ****** module for showing proc");

module_version("v1.0")

上面**中第36行呼叫的******_strtoul()用於轉換使用者輸入的字串為無符號長整數,第3個引數16意味著轉化方式是16進製制。

obj-m	+= proc.o

kdir = /home/gudujian/work/linux-2.6.35.9

extra_cflags=-g -o0

build:kernel_modules

kernel_modules:

make -c $(kdir) m=$(curdir) modules

clean:

make -c $(kdir) m=$(curdir) clean

上述程式編譯完成之後生成乙個檔案proc.ko。

啟動虛擬機器,將proc.ko拷貝到虛擬機器中,執行 insmod proc.ko載入該模組後 /proc目錄下將多出乙個檔案sim_proc.

ls -l 顯示如下:

現在讀取 sim_proc 節點:

使用echo命令修改它的值為0x21456

再檢視新值:

說明剛才的執行是正確的。

使用proc介面例子

proc.c的檔案內容為 include include include static int hello proc show struct seq file m,void v ssize t test proc write struct file file,const char user buff...

PRO C 使用滾動游標

該文件拷貝與 該文件僅僅為了用於儲存,留於以後檢視,如有侵權,敬請諒解!1.使用非滾動游標 execsql prepare sql statement from statement checksqlerror preparesql statement execsql declare sql curs...

Pro C 的使用 三

7 動態定義語句 sql語句分動態定義語句和靜態定義語句兩種 1 靜態定義語句 sql語句事先編入pro c中,在經過預編譯器編譯之後形成目標程式 boj,然後執行目標程式預即可。2 動態定義語句 有些語句不能事先嵌入到pro c程式中,要根據程式運 況,使用者自己從輸入裝置上 如終端上 實時輸入即...