繁体   English   中英

Boost :: filesystem :: is_symlink()不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM