诚意请教一个filp_open的问题。

发布时间:2007-04-13 10:52:19来源:红联作者:keith_269

诚意请教一个filp_open的问题。

大家应该都知道filp_open(const char * filename, int flags, int mode)是打开文件用的。但我是个菜鸟,遇见个问题,如果filename=NULL时打开的是哪个文件,是pwd显示的当前目录吗,还是另有高深含义?请高手不吝指教!

谢先!

其实我在看下面的代码,通过vfs层来劫持系统调用。但不知道这个opt_fs为什么为NULL,为什么要对NULL的文件截获readdir这个函数???

望不吝赐教!!!

MODULE_AUTHOR("xunil@BMY");

MODULE_DESCRIPTION("By utilizing the VFS filesystem, this module can capture

system calls.");

MODULE_LICENSE("GPL");

char *opt_fs=NULL; //

typedef int (*readdir_t)(struct file *,void *,filldir_t);

readdir_t orig_opt_readdir=NULL;

int myreaddir(struct file *fp,void *buf,filldir_t filldir)

{

int r;

printk("<1>You got me partner!\n");

r=orig_opt_readdir(fp,buf,filldir);

return r;

}

int patch_vfs(const char *p,readdir_t *orig_readdir,readdir_t new_readdir)

{

struct file *filep;

filep=filp_open(p,O_RDONLY,0);//if(IS_ERR(filep))

return -1;

if(orig_readdir)

*orig_readdir=filep->f_op->readdir;

filep->f_op->readdir=new_readdir;

filp_close(filep,0);

return 0;

}

int unpatch_vfs(const char *p,readdir_t orig_readdir)

{

struct file *filep;

filep=filp_open(p,O_RDONLY,0);

if(IS_ERR(filep))

return -1;

filep->f_op->readdir=orig_readdir;

filp_close(filep,0);

return 0;

}

static int patch_init(void)

{

patch_vfs(opt_fs,&orig_opt_readdir,myreaddir);

printk("<1>VFS is patched!\n");

return 0;

}

static void patch_cleanup(void)

{

unpatch_vfs(opt_fs,orig_opt_readdir);

printk("<1>VFS is unpatched!\n");

}

module_init(patch_init);

module_exit(patch_cleanup);

linux filp open,诚意请教一个filp_open的问题。相关推荐

  1. linux 汇编语言ldreq,请教一个中断句柄的问题 - ARM技术论坛-ARM嵌入式论坛-人气最火爆ARM学习论坛 - 21ic电子技术开发论坛...

    首先,谢谢大家能够进来看我的这个问题. 我想请教一个问题: 代码: NoInt       EQU 0x80 USR32Mode   EQU 0x10 SVC32Mode   EQU 0x13 SYS ...

  2. linux c语言修改文件的时间属性,请教一个关于用标准C语言修改文件创建时间、修改时间和访问时间的问题。...

    请教一个关于用标准C语言修改文件创建时间.修改时间和访问时间的问题. 标准C里面有没有这种方法呢?我需要在Unix下运行,具体的是Solaris 9下,把某个目录下的所有文件的这三个时间属性都改成某年 ...

  3. linux系统怎么查找 文件是否存在,在Linux上,如何知道一个可执行文件是否包含调试信息呢?...

    请教,在Linux上,如何知道一个可执行文件是否包含调试信息呢?我的意思是是否该文件是使用如gcc -g 这样的参数编译的. 2楼 发表于 2008-12-3 15:44 nm -a binary_f ...

  4. html5shiv 源码,javascript,_请教一个html5shiv源码插入样式的问题,javascript - phpStudy...

    请教一个html5shiv源码插入样式的问题 阅读html5shiv源码的时候,对addStyleSheet函数添加样式的方式有些困惑,特来请教 源码如下: function addStyleShee ...

  5. linux用户在哪个文件夹,LINUX中用命令成功建立一个用户后信息会记录在哪个文件中...

    LINUX中用命令成功建立一个用户后信息会记录在哪个文件中 发布时间:2007-07-28 10:14:57来源:红联作者:MPiops 增加用户帐号后 新建用户的命令十分简单,在命令行下使用 use ...

  6. Linux下静态编译的一个TIP

    Linux下静态编译的一个TIP | 素包子 Linux下静态编译的一个TIP 2010年3月28日 baoz 阅读评论 linux下静态编译好处很多,一来是可以跨发行版(debian redhat ...

  7. 【LINUX】——linux如何使用Python创建一个web服务

    问:linux如何使用Python创建一个web服务? 答:一句话,Python! 一句代码: /usr/local/bin/python -m SimpleHTTPServer 8686 > ...

  8. 查看依赖树_如何在基于 Ubuntu 或 Debian 的 Linux 发行版中查看一个软件包的依赖...

    但如果你想在安装一个软件包之前或之后知晓这个软件包的依赖,那该怎么办呢? 来源:https://linux.cn/article-12987-1.html 作者:Abhishek Prakash 译者 ...

  9. 编译我的第一个c语言,linux菜鸟学习写第一个C语言代码--“hello Linux!”

    2004年4月20日最新版本的GCC编译器3.4.0发布了.目前,GCC可以用来编译C/C++.FORTRAN.JAVA.OBJC.ADA等语言的程序,可根据需要选择安装支持的语言.GCC 3.4.0 ...

  10. linux下Qt编写串口调试助手,如何在linux下用QT写一个简单的串口调试助手

    如何在linux下用QT写一个简单的串口调试助手 QT5串口类 在QT5以前,编写串口一般使用的是qextserialport类,但在QT5之后有了QT自带的串口类SerialPort(串口基础类)和 ...

最新文章

  1. linux ls 按 文件名 大小 时间 排序
  2. c语言倒计时不影响进程_2017级C语言大作业 - 见缝插针
  3. atomic底层实现是基于无锁算法cas
  4. 存储基础知识一 主要技术DAS、SAN、NAS
  5. 软件设计模式之适配器模式(JAVA)
  6. 【Java】列表、集合、哈希表和可变参数
  7. 单链队列实现及基本操作
  8. java数据存在ie中_[Java教程]解决在IE中获取数据的缓存问题,运行环境为node.js
  9. oracle磁盘组实例启动,12c rac 实例无法启动之磁盘组空间耗尽
  10. 磁盘空间使用关乎SQL Server性能
  11. Bitbucket 触发内网 Jenkins Build
  12. 计算机cpu温度显示原理,鲁大师的测温功能是怎么做到的?测温原理介绍
  13. 万恶的less-loader
  14. Lamber表达式 List,Map,Set 互相转换
  15. ArcGIS:如何进行栅格数据的拼接和裁剪、坡度坡向的提取、地形透视图的建立、等高线的提取、剖面图的创建?
  16. 浅谈我对思维导图的认识
  17. 【Neuralink 与大脑的神奇未来】Part 2:大脑
  18. 51单片机模拟PS2协议制作5X5矩阵工业键盘
  19. 个人作品设计展示官网源码
  20. unity ugui改变pos,width,height

热门文章

  1. python的十句名言_经典十句名言
  2. mysql远程主机强迫关闭了_channal经常关闭
  3. 修改服务器的返回数据,使用charles 修改服务器返回数据
  4. 37手游基于云平台的大数据建设实践
  5. IOS入门之StoryBoard
  6. 朝花夕拾 - jsliang 大白前端新年庆
  7. python求周长_计算任何三角形的周长[python 3]
  8. RVN 一种新的聚类算法
  9. e4a浏览框本地HTML,E4A浏览器 · E4A易安卓中文开发教程-E4A社区 · 看云
  10. 有关于昨晚几位 Crypto CEO 国会听证会部分实录总结