是否有可能重新从打开的文件描述文件?(Is it possible to recreate a fi

2019-08-31 22:24发布

现在,这个问题看似奇怪,它可能是,但给予一定的情况下,我一直在阅读这个了解的i-node中笔者给出了一个有趣的例子:

{
  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 ,来电 unlink()

免责声明:我不打算这样做的真正的代码; 我只是(重新)学习的i-node,不知道是否这是可能的。

Answer 1:

恐怕是因为它是不可能link系统调用需要一个有效的文件名(这意味着,现有链接),而不是一个UNIX文件描述符。 没有flink在功能上的单一UNIX规范 。



文章来源: Is it possible to recreate a file from an opened file descriptor?