//header: sysctl-exam.h
#ifndef _SYSCTL_EXAM_H
#define _SYSCTL_EXAM_H
#include <linux/sysctl.h>
#define MY_ROOT (CTL_CPU + 10)
#define MY_MAX_SIZE 256
enum {
MY_INT_EXAM = 1,
MY_STRING_EXAM = 2,
}; //sysctl 条目 ID,用户态应用和内核模块需要这些 ID 来操作和注册 sysctl 条目
#endif
//kernel module: sysctl-exam-kern.c
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/sysctl.h>
#include "sysctl-exam.h"
static char mystring[256];
static int myint; // 定义模块内部变量
static struct ctl_table my_sysctl_exam[] = { // 在该内核模块中,每一个 sysctl 条目对应一个 struct ctl_table 结构
{
.ctl