我有一个int早先打开的文件描述符(via open),我需要删除该文件.
我真的必须先获取文件名并打电话remove吗?(例如,通过使用C中的文件描述符获取文件名中的技术)
或者是否有其他(linux特定的OK)方式完全基于文件描述符?
我搜索过,我能找到的最好的是上面的答案.
您可以使用/proc以查看open fd链接到哪个路径,realpath获取符号链接的完整路径.
# 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]
Run Code Online (Sandbox Code Playgroud)