现在,这个问题可能看起来很奇怪,而且可能确实如此,但为了提供一些背景信息,我一直在阅读this http://linuxgazette.net/105/pitcher.html要了解 i 节点,作者给出了一个有趣的例子:
{
FILE *fp;
fp = fopen("some.hidden.file","w");
unlink("some.hidden.file"); /* deletes the filename part */
/* some.hidden.file no longer has a filename and is truly hidden */
fprintf(fp,"This data won't be found\n"); /* access the data part */
/*etc*/
fclose(fp); /* finally release the data part */
}
这允许创建“隐藏”临时文件。
我的问题是:有没有办法重新创建一个指向由打开的 inode 的文件名fp
after打电话给unlink()
?
免责声明:我不打算在实际代码中这样做;我只是(重新)学习 i 节点并想知道这是否可能。
恐怕这是不可能的,因为link
系统调用需要有效的文件名(这意味着现有的链接)而不是 UNIX 文件描述符。没有flink
函数于单一 UNIX 规范 http://pubs.opengroup.org/onlinepubs/007908799/xsh/unistd.h.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)