由于定期清理,是否可以在/tmp中可靠地读取一个短暂的文件



我正在考虑让我的应用程序在/tmp中创建一个文件。我所做的只是制作一个临时文件,将其复制到一个新位置。天气好的时候,这看起来像:

  1. 编写临时文件
  2. 将临时文件移动到新位置

但是,在我的系统(RHEL 7(上,/usr/lib/tmpfiles.d/tmp.conf处有一个文件,表明/tmp每10天清理一次。据我所知,这是默认安装。所以,我担心的是,我有以下情况:

  1. 编写临时文件
  2. /tmp被清理
  3. 将临时文件移动到新位置(爆炸(

我的担忧有根据吗?如果是这样的话,如何在复杂的程序中解决这个问题?如果没有复杂的技巧,那我就有点困惑了,因为如果/tmp在任何时候都能被完全摧毁,我对它的效用没有一个具体的了解。

如果在操作过程中打开文件描述符,这应该不会有问题。只要文件描述符打开,FS就会将文件保存在磁盘上,但在使用ls时它不会出现;重新检测";在某种程度上。在已删除的文件上保持打开的fd是在linux 上创建临时文件的常见方法

见男子3取消链接:

unlink((函数应删除指向文件的链接。[..]unlink((将删除由指向的路径名命名的链接路径,并应递减文件的链接计数链接引用的。

当文件的链接数变为0并且没有进程打开文件时,文件占用的空间将被释放,并且文件将不再可访问。如果一个或多个进程在删除最后一个链接时打开文件,在unlink((返回之前应删除该链接,但文件内容应推迟到对该文件的引用将关闭。

相关内容

  • 没有找到相关文章

最新更新