免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: feimenguser

内核中如何删除文件? [复制链接]

论坛徽章:
0
发表于 2011-02-17 12:49 |显示全部楼层
环境:
2.6.32.12-0.7-default(suse11)

代码:
int tmp_unlink(OSP_CHAR *pcName)
{
    int ret = 0;
    struct nameidata nd;
    struct dentry *dentry;

    memset(&nd, 0, sizeof(nd));

    path_lookup(pcName,LOOKUP_PARENT,&nd);
    if (ret != 0)
    {
        return -ENOENT;
    }
   
    dentry = lookup_one_len(nd.last.name, nd.path.dentry, strlen(nd.last.name));
    if (IS_ERR(dentry))
    {
        path_put(&nd.path);
        return -EACCES;
    }
   
    vfs_unlink(nd.path.dentry->d_inode, dentry);

    path_put(&nd.path);

    return 0;
   
}

调用示例:
tmp_unlink("/tmp/test");

论坛徽章:
0
发表于 2011-02-17 15:47 |显示全部楼层
export  sys_unlink函数,       
    mm_segment_t fs;
      fs = get_fs();
     set_fs(KERNEL_DS);
     sys_unlink("/test.bin");
      set_fs(fs);

论坛徽章:
0
发表于 2015-04-27 14:27 |显示全部楼层
您好 ,  有个问题想请教下, 由于没有发消息的权限,所以只能在帖子上评论了, 我在内核里hook删除文件的操作, sys_unlink但不知为什么, 删除文件没有触发这个系统调用, 又hook  sys_unlinkat 但是这个不能得到全路径, 有个dfd竟然是-100,  我就蒙了,  求大神指点迷津!回复 3# Godbach


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

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP