-
如何给模块传一个数组性参数
#include <linux/moduleparam.h> static int arr_var[10]; static int num=0; module_param_array(arr_var, int, &num, 0644);//最后一个数字是访问权限
-
/proc编程
-
创建entry:
struct proc_dir_entry * entry = proc_create("name", 0444, NULL, &file_ops);
其中parent为NULL即直接创建在/proc目录下, file_ops是文件操作
-
file_operations
file_operations的的结构体定义如下,
struct file_operations { struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char *, size_t, loff_t *); ssize_t (*write) (struct file *, const char *, size_t, loff_t *); int (*readdir) (struct file *, void *, filldir_t); unsigned int (*poll) (struct file *, struct poll_table_struct *); int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); int (*mmap) (struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); int (*flush) (struct file *); int (*release) (struct inode *, struct file *); int (*fsync) (struct file *, struct dentry *, int datasync); int (*fasync) (int, struct file *, int); int (*lock) (struct file *, int, struct file_lock *); ssize_t (*readv) (struct file *, const struct iovec *, unsigned long, loff_t *); ssize_t (*writev) (struct file *, const struct iovec *, unsigned long, loff_t *); };
当我们需要定义自己的文件操作的时候,
static const struct file_operations proc_read_only_fops = { .open = my_open, .read = my_read };
-
Linux内核编程(持续整理)
最新推荐文章于 2024-07-14 21:53:39 发布