gpt4 book ai didi

c - 如何在我只有文件描述符的 Linux 中删除文件

转载 作者:IT王子 更新时间:2023-10-29 00:06:24 28 4
gpt4 key购买 nike

我有一个之前打开的int 文件描述符(通过open),我需要删除该文件。

我真的必须先获取文件名并调用 remove 吗?(例如,通过使用 Getting Filename from file descriptor in C 中的技术)

或者是否有其他一些(特定于 Linux 的)方法可以仅基于文件描述符来完成此操作?

我已经搜索过了,我能找到的最好答案就是上面的答案。

最佳答案

您可以使用/proc 查看打开的fd 链接到哪个路径,realpath获取符号链接(symbolic link)的完整路径。

# ls -l /proc/8701/fd
total 0
lr-x------ 1 root root 64 Apr 23 22:44 0 -> /dev/null
lrwx------ 1 root root 64 Apr 23 22:44 1 -> /dev/null
lrwx------ 1 root root 64 Apr 23 22:44 2 -> /dev/null
lrwx------ 1 root root 64 Apr 23 23:19 20 -> socket:[16204]
lrwx------ 1 root root 64 Apr 23 23:19 21 -> socket:[16205]
lrwx------ 1 root root 64 Apr 23 22:44 3 -> socket:[18743]
l-wx------ 1 root root 64 Apr 23 22:44 4 -> /var/lib/dhcp/dhclient-7a30dd46-5058-47aa-b71e-ff77cfbe4194-wlan0.lease
lrwx------ 1 root root 64 Apr 23 22:44 5 -> socket:[16872]
lrwx------ 1 root root 64 Apr 23 22:44 6 -> socket:[18747]

关于c - 如何在我只有文件描述符的 Linux 中删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23255287/

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