栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

重新打开具有另一个访问权限的文件描述符?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

重新打开具有另一个访问权限的文件描述符?

是! 诀窍是通过访问已删除的文件

/proc/self/fd/n
。据我所知,这只是一个Linux技巧。

运行此程序:

#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main() {    FILE* out_file;    FILE* in_file;    char* dev_fd_path;    char buffer[128];        out_file = fopen("test.txt", "w");    fputs("hi!n", out_file);    fflush(out_file);        unlink("test.txt");        system("ls test.txt");        asprintf(&dev_fd_path, "/proc/self/fd/%d", fileno(out_file));    in_file = fopen(dev_fd_path, "r");    if (!in_file) {        perror("in_file is NULL");        exit(1);    }    printf("%s", fgets(buffer, sizeof(buffer), in_file));    return 0;}

它将一些文本写入文件,将其删除,但保持文件描述符为打开状态,然后通过其他途径重新打开它。直到拥有最后一个文件描述符的最后一个进程关闭文件才真正删除文件,直到那时,您可以通过获得文件内容

/proc


感谢我的前任老板Anatoly在删除一些重要文件的过程中教给我了这个技巧,幸运的是,这些文件仍然被另一个进程附加!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/408731.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号