named()C函数在整个文件系统中均不起作用。因此,我可以通过打开副本,读取它们并将它们写入新副本然后取消链接来通过副本移动文件。但是我很难使它与符号链接一起使用。(这个想法是移动一个文件夹,其中包含一堆其他文件/文件夹/符号链接等)。基本上在C中实现mv命令。
open(file, O_RDONLY)
while ((c = read(source_descriptor, buf, SIZE)) > 0){
write(d, buf, c);
}
unlink file;
Run Code Online (Sandbox Code Playgroud)
适用于普通文件(我还有另一个功能可以正常处理目录)。但是每当它到达一个符号链接时,我都会感到恐惧,吐出这样的文件或目录。
我可以通过d_type来检测它是否是一个符号链接,但是我不确定一旦有符号链接就如何读取/复制它,因为普通文件复制似乎不适用于符号链接,因为open()拒绝打开它们。