gpt4 book ai didi

c++ - 如何在另一个进程完成后删除文件?

转载 作者:太空宇宙 更新时间:2023-11-04 08:49:04 24 4
gpt4 key购买 nike

我的内存中有要打开的数据。我在 ubuntu 上创建了一个临时文件并 fork xdg-open 以使用标准应用程序打开一个文件。我想在程序关闭后删除临时文件。问题是 xdg-open 本身会打开另一个进程并立即退出。因此,我不知道是什么进程打开了文件。我尝试使用 flock 获得独占锁,并在等待 20 个 src 后尝试 unlink 文件(以确保其他进程先打开文件) ,调用成功,打开的程序只是关闭文件。我想等到程序关闭后再删除文件。有谁知道如何做到这一点?

最佳答案

当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/

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