下面所示清單為乙個簡單的 /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程式中,要根據程式運 況,使用者自己從輸入裝置上 如終端上 實時輸入即...