您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

重新链接匿名(未链接但打开)的文件

重新链接匿名(未链接但打开)的文件

flink()几年前提交了一个用于提议的Linux 系统调用的补丁,但是当Linus声明“在HELL中,没有其他重大入侵我们无法安全地做到这一点”,这几乎结束了关于是否添加此问题的争论。

随着Linux 3.11的,现在可以创建具有不使用目录项文件open()与新的O_TMPFILE标志,并将其链接文件系统一旦使用完全形成linkat()/proc/self/fd/ FDAT_SYMLINK_FOLLOW标志。

open()手册页上提供了以下示例:

    char path[PATH_MAX];
    fd = open("/path/to/dir", O_TMPFILE | O_RDWR, S_IRUSR | S_IWUSR);

    /* File I/O on 'fd'... */

    snprintf(path, PATH_MAX,  "/proc/self/fd/%d", fd);
    linkat(AT_FDCWD, path, AT_FDCWD, "/path/for/file", AT_SYMLINK_FOLLOW);

请注意,使用linkat()删除最后一个链接后,将不允许重新打开文件unlink()

其他 2022/1/1 18:16:02 有519人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶