背景我读了关于Open Group规范的关于 >的错误,它有一个错误,称为cc,表示“在解析路径参数时遇到的符号链接中存在一个循环”,所以我假设这个函数将继续进行路径解析,直到遇到一个非链接文件为止。然而,我做了一个实验,发现ELOOP只解析传入的readlink()参数,只在那里停止,但在到达非链接文件之前不继续解析。我的问题如果是为了path,那么将realpath()作为一个可能的错误是有意义的。但是为什么ELOOP甚至存在于ELOOP而它只解决路径一次?我在规范“添加了[ELOOP]可选错误条件以与IEEE P1003.1a草案标准保持一致”中看到了这一点,这是否意味着readlink()的行为(在到达非链接文件之前是否保持解析)取决于实现?我的gcc版本是readlink() (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 readlink提供符号链接的直接目标。但是,如果解析到符号链接的路径涉及另一个符号链接怎么办?以readlink("/foo/bar")为例。它应该返回bar的链接目标,但如果/foo是指向自身的符号链接,则会得到ELOOP,因为readlink必须在到达最终条目之前解析目录部分。另请参见man path_resolution。关于c - 为什么C readlink()可能会出现ELOOP错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53239691/ (adsbygoogle = window.adsbygoogle || []).push({});
10-08 23:21