LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1407|回复: 3

linux内核中如何对文件进行操作,能使用fopen()等吗

[复制链接]
发表于 2007-5-6 22:50:31 | 显示全部楼层 |阅读模式
例如我在内核中实现附加功能,该功能需要读取某个文件(比如/etc/ipencrypt/ip.list)到内核某存储结构中,应该如何实现.
有知道的望不吝赐教,谢谢!
发表于 2007-5-7 16:14:37 | 显示全部楼层
fopen()不行吧, 那是库里面的函数. 如果你想在内核中打开一个文件的话,
可以去看看sys_open()这个函数.
回复 支持 反对

使用道具 举报

发表于 2007-5-9 10:25:00 | 显示全部楼层
可以用   fp=filp_open()  fp->f_op->read()  filp_close()  这些函数
不过这个read/write里的缓冲区指针是用户态的,所以要用 set_fs来修改。具体实现我忘了,不过可以在网上搜到。
回复 支持 反对

使用道具 举报

发表于 2007-5-16 22:04:44 | 显示全部楼层

这一小段代码可以打开文件

int fd;

        mm_segment_t old_fs=get_fs();
        set_fs(get_ds());

        fd = open("文件名", O_RDWR, 0);

        // 你需要的操作
        
        set_fs(old_fs);

经过测试过的. 在linux2.4.20-8的redhat9上测试过.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表