[英]Boost::filesystem::is_symlink() does not work
当我启动这段代码时,它说每个文件都是常规的,甚至是符号链接:
cout<<boost::filesystem::is_symlink(boost::filesystem::status("link-name"))<<endl;
有人知道为什么吗? (编译期间没有警告也没有错误)该链接是使用以下命令创建的:
ln -s file-name link-name
ls命令说这是一个链接:
ls -l link-name
lrwxrwxrwx 1 myname mygroup 8 juil. 23 14:12 link-name -> file-name
谢谢 !
编辑:另一方面,函数boost :: filesystem :: is_regular_file始终返回true。
在代码中,您具有link_name
,在文件系统中,您具有link-name
。
您应该像boost参考文档中一样使用symlink_status(const path& p)
。
file_status symlink_status(const path& p);
返回:与status()相同,除了如果属性指示符号链接(如通过ISO / IEC 9945 S_ISLNK()一样),则返回file_status(symlink_file)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.