9

さて、この質問は奇妙に思えるかもしれませんが、おそらくそうかもしれませんが、状況を説明するために、私はこれを読んで、著者が興味深い例を示している 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 */
}

これにより、「隠し」一時ファイルを作成できます。

ここでの私の質問は次のとおりです。への呼び出しfp に開かれた inode を指すファイル名を再作成する方法はありますunlink()か?

免責事項: 実際のコードでこれを行うつもりはありません。私は i ノードについて (再) 学習しているだけで、これが可能かどうか疑問に思っています。

4

1 に答える 1

2

link残念ながら、システム コールは UNIX ファイル記述子ではなく、有効なファイル名 (つまり、既存のリンク) を要求するため、それは不可能です。Single UNIX Specificationflinkには機能がありません。

于 2013-04-23T12:43:24.937 に答える