我正在尝试分析一些代码(不是我自己编写的),它用readlink
调用bufsize
,然后测试结果是否为零。我无法看到结果如何为零,我尝试的一切都是-1,真实链接的大小或软链接的大小。
结果可以为零,如果是,如何?
答案 0 :(得分:2)
根据spec
成功完成后,readlink()将返回缓冲区中的字节数。否则,它将返回值-1,保持缓冲区不变,并设置errno以指示错误
这里有两个可能的答案
答案 1 :(得分:1)
readlink()
的POSIX描述说:
返回值
成功完成后,readlink()将返回缓冲区中的字节数。否则,它将返回值-1,保持缓冲区不变,并设置errno以指示错误。
由于空字符串不是有效的文件名,如果bufsize
大于0,我无法看到返回值为零。