gpt4 book ai didi

linux - 如何在 linux 上创建无论如何都会自动清理的临时文件?

转载 作者:IT王子 更新时间:2023-10-29 01:12:19 49 4
gpt4 key购买 nike

我想在 Linux 上创建一个临时文件,同时确保该文件在我的程序终止后消失,即使它被杀死或有人在错误的时刻执行了硬重启。 tmpfile() 会为我处理所有这些吗?

最佳答案

您似乎全神贯注于这样的想法,即由于某些竞争条件,文件可能会以某种方式被遗忘,但我没有看到对为什么这是一个问题的解释。

“由于事件的意外排序导致对同一资源的争用,程序无法按预期运行时,就会出现竞争条件。”

根据您对其他答案的评论,我假设您的关注点特别在于死锁,这是试图补救竞争条件(共享资源争用)的结果。仍然不清楚您关心的是什么,调用 tmpfile() 并在该函数调用 unlink() 之前让程序异常退出是您最不担心的,如果您的应用程序真的那么脆弱。

鉴于没有提及并发、线程或其他进程将此文件描述符共享到此临时文件,我仍然看不到竞争条件的可能性,也许是概念不完整的逻辑交易,但可以检测和清理。

绝对确保清理所有分配的文件系统资源的正确方法不仅在应用程序退出时,而且在启动时 -起来。我所有的服务器代码,确保所有东西都从以前的运行中清理干净之前它开始并使其可用。

将您的临时文件放在 /tmp 的子目录中,确保您的应用程序在启动和正常关闭时清除此子目录。您可以使用一个 shell 脚本来启动您的应用程序,该脚本可以根据 PID 的存在检测异常 (kill -9) 关闭并执行清理事件。

关于linux - 如何在 linux 上创建无论如何都会自动清理的临时文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9889277/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com