我想打开内存中保存的数据。我创建了一个临时文件并在 ubuntu 上 fork xdg-open
以使用标准应用程序打开文件。我想在程序关闭后删除临时文件。问题在于 xdg-open 本身打开了另一个进程并立即退出。因此,我不知道哪个进程打开了该文件。我尝试使用flock
获得独占锁,并尝试在等待20个src后取消链接
文件(以确保其他进程首先打开该文件) ,调用成功并且打开的程序只是关闭文件。我想等到程序关闭然后删除该文件。有谁知道如何实现这一目标吗?
最佳答案
当xdg-open不依赖后缀时,可以使用
fd = open(filename, O_RDONLY|O_CLOEXEC);
unlink(filename);
system("xdg-open /proc/%u/fd/%u", getpid(), fd); /* pseudo-code! system is not printf() like! */
close(fd);
关于c++ - 在另一个进程完成后如何删除文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20340146/