久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

linux param指的是什么

174次閱讀
沒有評論

共計 1944 個字符,預計需要花費 5 分鐘才能閱讀完成。

這篇文章主要介紹“linux param 指的是什么”的相關知識,丸趣 TV 小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“linux param 指的是什么”文章能幫助大家解決問題。

linux param 指的是“module_param”函數,其作用是傳遞命令行參數;在用戶態下編程可以通過“main()”的參數來傳遞命令行參數,而編寫一個內核模塊則通過“module_param()”來傳遞參數。

從 main 函數說起

我們在用戶態寫程序時都喜歡用 main 函數的如果參數來向程序內傳遞數據

#include stlib.h 
#include stdio.h
int main(int argc,char **argv)
{
exit(0);
}

其中 argc 為傳入程序內參數的個數,argv 為傳入的參數,其中的第一個參數 argv[0] 為當前文件的含路徑的名字,所以實際傳入程序內的參數個數為 argc- 1 個。

內核模塊傳入參數

內核模塊中沒有 main 函數,所以向模塊內部傳入參數可以通過 module_param 這個宏定義來實現:

// 原型 
#define module_param(name, type, perm)     \
module_param_named(name, name, type, perm)

name: 傳入參數名稱
type: 傳入參數類型,有 byte, short, ushort, int, uint, long, ulong, charp, bool,invbool 這幾種類型
perm: 這個為 sysfs 中資源的訪問權限,下面再細說,主要有以下權限類型在 uapi/linux/stat.h 中定義

#define S_IRWXU 00700    // 用戶讀寫可執行權限 
#define S_IRUSR 00400    // 用戶讀權限
#define S_IWUSR 00200    // 用戶寫權限
#define S_IXUSR 00100    // 用戶可執行權限

#define S_IRWXG 00070    // 用戶組讀寫可執行權限
#define S_IRGRP 00040    // 用戶組讀權限
#define S_IWGRP 00020    // 用戶組寫權限
#define S_IXGRP 00010    // 用戶組可執行權限

#define S_IRWXO 00007    // 其他人可讀寫執行權限
#define S_IROTH 00004    // 其他人可讀權限
#define S_IWOTH 00002    // 其他人可寫權限
#define S_IXOTH 00001    // 其他人可執行權限

模塊 代碼編寫:

#include linux/module.h 

int num = 100;
module_param(num,int,S_IRUSR);

static int __init param_init(void)
{
printk([%s] num = %d\r\n ,__FUNCTION__,num);
return 0;
}

static void __exit param_exit(void)
{
printk([%s]  num = %d\r\n ,__FUNCTION__,num)
}

module_init(param_init);
module_exit(param_exit);
MODULE_LICENSE(GPL
MODULE_AUTHOR(Chen

Makefile 文件:

ifneq ($(KERNELRELEASE),)
obj-m:=param.o
else
KERNEL_DIR:=/lib/modules/$(shell uname -r)/build
CURRENT_DIR:=$(shell pwd)
ccflags-y:=-std=gnu99 -Wno-declaration-after-statement
all:
$(MAKE) -C $(KERNEL_DIR) M=$(CURRENT_DIR) modules
clean:
$(MAKE) -C $(KERNEL_DIR) M=$(CURRENT_DIR) clean
endif

編譯 程序,安裝模塊,然后 dmesg

模塊安裝后在 /sys/module 文件夾下會生成 對應模塊名字的文件夾,進入文件夾內

進入文件夾,文件夾內 parameters 文件夾內會會有之前程序中的 num

從圖片中可以看出內核在文件系統中會生成對應的文件讓用戶訪問,并且模塊中 module_param 宏定義中的 perm 設置了用戶只讀權限,所以 num 文件權限與其對應。
當然你也可以設置可寫權限來改變輸入參數 的值,改變后內核模塊中的 該 參數會改變但是不會有任何信息提示。

關于“linux param 指的是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注丸趣 TV 行業資訊頻道,丸趣 TV 小編每天都會為大家更新不同的知識點。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-12發表,共計1944字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 正定县| 江都市| 桃园市| 横山县| 湖口县| 新巴尔虎右旗| 元氏县| 苍溪县| 兴国县| 科尔| 南澳县| 信丰县| 永仁县| 阳谷县| 海城市| 花垣县| 临泽县| 海安县| 秭归县| 海晏县| 泰兴市| 大洼县| 浠水县| 修武县| 遂宁市| 湘乡市| 林州市| 柘城县| 郴州市| 广饶县| 宜丰县| 锡林浩特市| 四子王旗| 伊春市| 托克逊县| 宜宾市| 林口县| 雷山县| 光泽县| 卓尼县| 夏津县|