有没有一种方法可以在C/C++应用程序中以一种方式写入打开Linux上的文件,以便如果应用程序被杀死,则打开的文件将被丢弃?
应用程序可能会被SIGKILL终止,因此无法使用信号处理程序。
有没有一种方法可以在C/C++应用程序中以一种方式写入打开Linux上的文件,以便如果应用程序被杀死,则打开的文件将被丢弃?
应用程序可能会被SIGKILL终止,因此无法使用信号处理程序。
link("/proc/self/fd/n", "permanent-name");
吗? - Ben VoigtAT_FDCWD
和AT_EMPTY_PATH
标志的linkat
函数。另请参阅http://comments.gmane.org/gmane.linux.file-systems/76553 - Ben Voigt
close()
之前生存下来,那么再给文件改名。如果进程被终止,你可以选择立即清理临时文件的方式:定期清理的 cron 任务,或者由父进程检测到子进程已经结束并进行清理。 - Harald