当前位置:  技术问答>linux和unix

请教在内核中如何读写文件

    来源: 互联网  发布时间:2016-08-22

    本文导语:  我是一个linux刚入门的学生,有个问题问一下吧里的高手。我想在内核里面修改一段代码,具体来说就是读取一个proc文件的内容,但是编译时不正确,说没有这个头文件。但是我在用户态就可以实现我要的功能。以下...

我是一个linux刚入门的学生,有个问题问一下吧里的高手。我想在内核里面修改一段代码,具体来说就是读取一个proc文件的内容,但是编译时不正确,说没有这个头文件。但是我在用户态就可以实现我要的功能。以下是用户态下的代码
#include
#include
#include
#include
int main()
{
int fd,size;
char buffer[10];
fd=open("/proc/hidden",O_RDONLY);
size=read(fd,buffer,sizeof(buffer));
close(fd);
if(*buffer=="0")
printf("%s",buffer);
return 1;
}
请问如果我想在内核代码fs/proc/base.c中加入一段可以这样读写proc文件的代码,应该怎么写!打扰了,谢谢啊~

|
以下被我写成了lkm ,你只要把testkernel_init_module()里的代码拿来用就好了
那就是对/proc/intterrupts的读取10个字节的操作
至于如何添加到内核的合适位置来判断是否应该隐藏,还是你自己决定吧




#include 
#include 
#include 
#include 
#include 
#include 

struct file *fp=NULL;

MODULE_DESCRIPTION("My kernel module");
MODULE_AUTHOR("root (root@localhost.localdomain)");
MODULE_LICENSE("Dual BSD/GPL");
 int fd;
static int testkernel_init_module(void)
{
char buf[10];
//参见http://blog.csdn.net/hqzh1234/archive/2008/06/14/2546798.aspx
mm_segment_t old_fs = get_fs();
set_fs(KERNEL_DS);
fp = filp_open("/proc/interrupts", O_RDONLY,0);
if(IS_ERR(fp))
{
printk("Can't open file: /proc/interruptsn");
goto out;
}

fp->f_op->read(fp, buf, 10,&fp->f_pos) ;
if(*(int *)buf==0)
{

}
else
{

}
filp_close(fp,0);
out:
set_fs(old_fs);
return 0;
}

static void testkernel_exit_module(void)
{
printk( KERN_DEBUG "Module testkernel exitn" );
sys_close(fd);
}

module_init(testkernel_init_module);
module_exit(testkernel_exit_module);




    
 
 

您可能感兴趣的文章:

  • 请教如何提高SD卡的读写速度?
  • 虚拟地址(不可读写)问题请教
  • 请教如何挂载普通用户可读写的ReiserFS系统?(Fedora9)
  • 请教一个关于文件打开与读写的小问题。
  • 请教高手:Linux 串口读写 的问题?????
  • 请教jsp中读写文件的方法……
  • 请教2.6内核下如何进行文件的读写?
  • 请教如何在qt-linux环境下两个cpp文件中对同一个数组作读写互斥操作?
  • 请教 UNIX 和 WINDOWS 读写竞争的问题.
  • 请教linux下读写 gpio端口控制寄存器的方法
  • 高分请教!回答完了再加200分!linux 上的c++或c 程序能不能读写excel文件?
  • 请教个嵌入式读写错误的问题
  • 请教一个I/O读写的问题!
  • 请教一个进程读写文件的问题
  • 请教一个串口读写问题
  • 请教:如何安装新内核(rpm包)而不同原来得内核冲突?? 在线等待!!
  • 请教一个linux进程内核栈的问题
  • 【请教】怎么修改linux内核参数
  • 请教,linux内核协议栈中,从内核往驱动发送的报文(注意是下行,不是上行),如何从sk_buff判断是组播数据报文还是组播协议报文????
  • 万能的CSDN啊,100分请教高手一个编译内核传参的问题!
  • 请教风河 linux内核 如何配置使之支持xwindows?
  • 80分请教关于内核的module机制
  • 请教内核ppp代码的内容——在线等
  • 请教高手:如何学习内核编程?
  • 请教内核编译的问题!
  • 请教Linux内核编译的问题
  • 初学Linux内核编译,几个问题请教一下
  • 请教:想学LINUX内核编程,请指点
  • 内核安装错误,请教!
  • 请教内核树的问题
  • 请教部分内核参数的意义
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教: 如何用tar.gz格式的文件升级.rpm的文件
  • 请教为什么要运行一个可执行文件要以./文件名 的形式来运行?
  • 请教如何比较两个文件夹下所有子目录里的文件是否一样?
  • 请教:如何选择拷贝出目录里面部分文件?文件名格式见内
  • 请教:哪里有将CLASS文件反编译为JAVA文件的软件???
  • 用word2000将文档存为纯文本文件,所得文本文件不满足AScii标准?请教。
  • 请教一个文件 .bin文件改如何打开?
  • 请教:shell遍历文件夹,处理其中的文件。
  • 请教,Makefile目标文件要通配目录下所有C文件,如何写?
  • 请教:在程序中创建文件夹,应该用什么函数?怎么判断文件夹存不存在呢?
  • 请教 UNIX 和 WINDOWS 读写竞争的问题. iis7站长之家
  • 新手请教:/usr/include/这个目录怎么才三个文件夹和一个文件?
  • 100请教:如何编写脚本,执行某个目录下的所有可执行文件,并将其输出内容重定向到某个文件。(在线等)
  • 请教/var/adm/wtmpx文件的最大大小是多少?是一个数值还是一个与文件系统的比值?是如何设置大小限制的?谢谢!!
  • 请教高手一个简单问题:给定一个文件名,如何去查找该文件正在被几个程序使用,并怎么样才可以切断这个文件与正在打开该文件的程序之间的
  • 请教:修改Linux内核时,需要调用驱动程序的函数,头文件也包含了,但是编译时候说头文件找不到!
  • 请教如何在指定目录下查找包含指定文字的文件
  • 看到一个问题不错,我也想知道,就转过来,请教各位:如何让虚拟空间用户不能执行他自己文件外的文件操作命令?
  • 请教个unix文件问题
  • 有个文件第一行为:#!/usr/bin/parse 这个文件看起来象是一个脚本,但是没有见过,请教!
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3