我正在编写一个使用*NIX系统调用的C程序。现在,当用户调用删除特定文件时,我希望将创建的所有符号链接也一并删除。这该如何实现?
我正在编写一个使用*NIX系统调用的C程序。现在,当用户调用删除特定文件时,我希望将创建的所有符号链接也一并删除。这该如何实现?
除非你搜索整个目录树,或者你有其他方法知道这些符号链接的位置,否则你无法找到它们。一个文件并不“知道”哪些符号链接指向它。你必须自己找到每个符号链接并使用unlink()
函数解除链接。
没有办法直接获取指向特定文件的符号链接列表,除非“费力气”的方法,即递归遍历整个文件系统(或者你知道符号链接子集所在的文件系统)并确定是否有任何链接指向该文件。你最好将此任务外包给find
实用程序。