proc文件(OLD)

写一个模块测试proc文件的读写:

 1 #include linux/module.h  
 2 #include linux/kernel.h  
 3 #include linux/proc_fs.h  
 4 #include linux/sched.h  
 5 #include asm/uaccess.h  
 6  
 7 #define STRINGLEN 1024  
 8  
 9 char global_buffer[STRINGLEN];  
10  
11 struct proc_dir_entry *example_dir, *hello_file;  
12  
13 int proc_read_hello(char *page, char **start, off_t off, int count, int *eof,  
14                 void *data) {  
15         int len;  
16         len = sprintf(page, global_buffer); //把global_buffer的内容显示给访问者  
17         return len;  
18 }  
19  
20 int proc_write_hello(struct file *file, const char *buffer, unsigned long count,  
21                 void *data) {  
22         int len;  
23  
24         if (count = STRINGLEN)  
25                 len = STRINGLEN – 1;  
26         else  
27                 len = count;  
28  
29         copy_from_user(global_buffer, buffer, len);  
30         global_buffer[len] = \0′;  
31         return len;  
32 }  
33  
34 static int __init proc_test_init(void) {  
35         example_dir = proc_mkdir("proc_test", NULL);  
36         hello_file = create_proc_entry("hello", S_IRUGO, example_dir);  
37         strcpy(global_buffer, "hello");  
38         hello_file->read_proc = proc_read_hello;  
39         hello_file->write_proc = proc_write_hello;  
40         return 0;  
41 }  
42  
43 static void __exit proc_test_exit(void) {  
44         remove_proc_entry("hello", example_dir);  
45         remove_proc_entry(“proc_test”, NULL);  
46 }  
47  
48 module_init(proc_test_init);  
49 module_exit(proc_test_exit);  

 


写入proc文件

echo "Hello from kernel" /proc/proc_test/hello'

读取proc文件内容,将看到屏幕上显示了我们写入的字符串:Hello from kernel

cat /proc/proc_test/hello

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java学习(七)java中抽象类及 接口

抽象类的特点: A:抽象类和抽象方法必须用abstract关键字修饰。 B:抽象类中不一定有抽象方法,但是抽象方法的类必须定义为抽象类 c: 抽象类不能被实例化,因为它不是具体的。 抽象类有构造方法,但不能被实例化&#xff1…

手机的小窗口怎么弄_荣耀9X如何设置桌面小工具?划重点,这个要考

为了方便手机操作,一些小伙伴会在手机桌面上添加天气、一键锁屏、日历等窗口小工具,那么问题来了!荣耀9X这款新手机是如何添加窗口小工具呢?官维君今天就来给大家讲解一下方法。标准姿势看这里——第一步:在桌面双指头…

ASP.NET Core 同时支持多种认证方式 | Swagger 支持

前言上次,我们实现了《ASP.NET Core 同时支持多种认证方式》:services.AddAuthentication().AddDemoAuthentication(options > { }).AddJwtBearer(options >{...});我们还希望为 Swagger 也添加多种认证支持。原来为支持 JWT 认证,Swag…

js监听url变化

//监听触发操作 function hashChangeFire(){alert("k") }//url变化监听器 if( (onhashchange in window) && ((typeof document.documentModeundefined) || document.documentMode8)) {// 浏览器支持onhashchange事件window.onhashchange hashChangeFire; …

Redis指南

一、简介 redis 和 memcached 都是高性能的键值缓存数据库服务,其中 memcached 支持多线程,而 redis 支持丰富的数据结构且能内置持久化机制。 redis 数据都是以键值形式存储的,键是字符串类型,值有 7 种类型(本质上是…

SpringIOC之AbstractMessageSource

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

python3怎样交换数字顺序_python中怎么交换列的顺序

DataFrame的列有时我们需要对添加的列或原来的列进行交换顺序。data pd.DataFrame(np.arange(16).reshape(4,4),columnslist(abcd))In [88]: dataOut[88]:a b c d0 0 1 2 31 4 5 6 72 8 9 10 113 12 13 14 15一:获取DataFrame列标签cols list(data)In [94]: colsO…

【实战】手把手教你从 0 到 1 搭建一套 RocketMQ 集群

大家好,我是君哥。今天来分享怎样搭建 RocketMQ 集群。本文搭建集群使用的环境是 2 个云主机,架构如下:在 47.xx.xx.xx 和 39.xx.xx.xx 上分别部署一个 Name Server 和 Broker 主节点,这里不搭建从节点。也就是官网介绍的 2m-nosl…

使用SMART监控Ubuntu

参考:完全用 GNU/Linux 工作 - 29. 檢測硬碟 S.M.A.R.T. 健康狀態 1.安装 sudo apt-get install smartmontools2.查看硬盘的参数,需要获得Root权限 sudo smartctl -i /dev/sdasmartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-122-generic] (local bu…

Shell中各种判断语法

Shell判断 按照文件类型进行判断 -b 判断文件是否存在,并且是否为快设备文件(是块设备文件为真) -c 判断文件是否存在,并且是否为字符设备文件(是字符设备文件为真) -d 判断文件是否存在,并且是…

敏捷制造:并不是你想像的矛盾体

\关键点\敏捷制造使企业能够比传统制造方式更快更有效地取悦客户 \敏捷方法实际上是为制造而不是软件而开发的 \敏捷制造需要从上到下的数字视角和承诺 \敏捷制造需要新的技能,还需要授权、扁平化合作和贯穿整个组织的沟通 \迈向敏捷制造的第一步可以是通过升级传统…

c#队列取值_在队列的开头获取对象– C#中的窥视操作

要在队列的开始处获取对象,代码如下-示例using System;using System.Collections.Generic;public class Demo {public static void Main() {Queue queue new Queue();queue.Enqueue("A");queue.Enqueue("B");queue.Enqueue("C");que…

上海一趟,我陷入了沉思

hi,这里是桑小榆。2022年8月20日,我去了一趟上海,交了很多新朋友,和各行业且具备独立思考的伙伴交流了很多,也吸收了很多的新东西。此篇我将分享我的感悟,并以自己的角度剖析存在的问题。痛苦与症状在此之前…

廖雪峰 练习 把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字...

# -*- coding: utf-8 -*- #输入名字,变成首字母大写,其他字母小写的标准格式 def normalize(name):str1 for i, ch in enumerate(name):if i 0:str1 str1 ch.upper() #str.upper() 方法让字母转大写else:str1 str1 ch.lower() #str.lower()…

Swiper(Swiper master)是目前应用较广泛的移动端网页触摸内容滑动js插件

为什么80%的码农都做不了架构师?>>> Swiper(Swiper master)是目前应用较广泛的移动端网页触摸内容滑动js插件 http://www.swiper.com.cn/ 转载于:https://my.oschina.net/huqiji/blog/800482

vue实现todo功能(一):搭建vue-webpack环境

前言 我最开始因为项目原因接触的是react,对于我这种美观狂而言,react中难以调解的css让我十分抓狂,说是在写页面,因为不能写自己的样式,像是在拼凑页面,没意思。于是我开始了解vue这种将css html javacrip…

单模光电转换器怎么接_以太网光纤收发器怎么用?

以太网光纤收发器有单模、多模,单纤、双纤,百兆、千兆,电信级和工业级品质,稳定可靠,是网络高清监控优选设备。那么,以太网光纤收发器怎么用呢?接下来就由飞畅科技的小编来为大家详细介绍下以太…

Unity浅析

在分析PRISM项目的时候, 发现里面用到了Unity 这个Component, 主要用于依赖注入的。由于对其不熟悉,索性分析了一下,记载在此,以作备忘。 任何事物的出现,总有它独特的原因,Unity也是如此。 在Unity产生之前&#xff0…

WPF效果第一百九十六篇之彩色马蹄形图

上一篇又是基于ListBox改了改模板实现了点不一样的效果;今天来分享一点这些天一直摸索的好玩的效果;闲话不多扯直接看效果:1、对于各种定义就直接看下面:https://www.wigglepixel.nl/en/blog/what-are-color-spaces-color-profiles-and-gamma-correction2、关于马蹄图我找到了S…

grub4dos中的不容易理解的问题

2019独角兽企业重金招聘Python工程师标准>>> menu.lst中写有菜单,但又发现很多人使用BCD,是否是这样,通过menu.lst中的菜单引导的系统,是不通过BCD文件引导的,还是说它们是必须同时有的,并且要关联呢&#…